Support

If you have a problem or need to report a bug please email : support@dsprobotics.com

There are 3 sections to this support area:

DOWNLOADS: access to product manuals, support files and drivers

HELP & INFORMATION: tutorials and example files for learning or finding pre-made modules for your projects

USER FORUMS: meet with other users and exchange ideas, you can also get help and assistance here

NEW REGISTRATIONS - please contact us if you wish to register on the forum

Users are reminded of the forum rules they sign up to which prohibits any activity that violates any laws including posting material covered by copyright

Ruby Help Needed Please

For general discussion related FlowStone

Ruby Help Needed Please

Postby aronb » Sat Apr 19, 2014 5:14 am

Hi,

I am trying to make an XY scope that has RGB color capability - think a color version of Asteroids (and yes I have seen a Flowstone Asteroids clown and it is quite nice).

My needs are slightly different. I need to make each line from sample to sample be colored instead of the entire array (graphic object in this case) be one color. For example imagine a circle that starts red at 12noon and changes color thru orange, yellow, green, blue. purple, etc. till the circle reached 12midnight.

In my FSM if the circle frequency (formed by two sin oscillators 90 degrees out of phase) is the same as the color signals the color would vary around the circle with a 1 to 1 correspondents, faster color "modulation" would cause the circle to have more color cycles, lower frequency less color cycles.

I can get the entire image / circle to change, but not change color as it draws out the circle. The far right XY Scope (in the FSM) works, it is made from other FSMs, but only colors the entire circle / image once per sample period (say 512 samples). The other XY Scope (written in RUBY) produces an image but no color variations at all, only random black and white frames.

Note that the Scope must have Streaming data for all of the XY and RGB inputs - the way a real o-scope works.

Thanks for any help you can give... I have bitten my nails off trying to solve this :? - with no luck, and short nails as the only result!

Aron
Attachments
XY_Scope_13.fsm
XY RGB Scope / Display
(105.67 KiB) Downloaded 763 times
User avatar
aronb
 
Posts: 154
Joined: Sun Apr 17, 2011 3:08 am
Location: Florida, USA

Re: Ruby Help Needed Please

Postby Nubeat7 » Sat Apr 19, 2014 10:29 pm

you did things right, but you used R_data for d,e,f so r,g,b get the same values just from the red channel, thats why its just white, any way you dont need this extra variables you can do
Code: Select all
cr = @R_data[i]
instead of
Code: Select all
cr = d[i]

to avoid confusions like this..
Attachments
XY_Scope_13 (1).fsm
(269.31 KiB) Downloaded 764 times
User avatar
Nubeat7
 
Posts: 1347
Joined: Sat Apr 14, 2012 9:59 am
Location: Vienna

Re: Ruby Help Needed Please

Postby aronb » Sun Apr 20, 2014 5:19 am

Nice call !

That's what I get for programming too late! :oops: But then again that is when most programming gets done!!!

So its getting closer, but now I think I am running into sampling issues and it interacts (I believe) with another want and desire in the "XY RGB Scope Module".

In a Real Oscilloscope, the phosphor screen display dies down over time say a 1/4 second or so as the image gets displayed - or the line draws across the screen.

In the included FSM, the color still is not changing during the time the XY data is streaming in, but it looks as though the color only changes every whole sample period... But the color is actually changing at every point along the XY coordinates that are being streamed into the XY RGB Scope. I wonder if is a limitation of the Color or Pen Class(?). For instance, if you move the XY Pad around a bit as the image is being displayed, it is drawn in one whole color instead of the image being made of a mix of colors as the pixels are drawing the VCA circle pattern (image).

NOTE: Make sure to hit the Trigger (upper right) to reset the oscillator phase and system timing. ;)

Do you have any thoughts on this? You are a much better programmer than me so again your help and comments are greatly appreciated - Thanks :D

My next steps may be to read the data (sample) in as small an increment as I can, then pass the values to another array, then another array, then another array, all with decreasing Alpha values to simulate the phosphor decay...

Getting late again, so I will do a few more tries...

Thanks again for the help - wish I could buy you a beer!!!
Attachments
XY_Scope_20.fsm
(145.89 KiB) Downloaded 768 times
User avatar
aronb
 
Posts: 154
Joined: Sun Apr 17, 2011 3:08 am
Location: Florida, USA

Re: Ruby Help Needed Please

Postby RJHollins » Sun Apr 20, 2014 6:52 am

hmmm .... the mention of 'phosphor decay' ...

In TROG's toolbox v3.1, he had modules that dealt with [maybe] something similar.

From his 'notes' section on this, he states:
Phosphors
Similar to view cache, but current and previous frames are overlaid so that "ghost images" slowly fade away. "Persistence" sets the rate of fading.
Some examples inside the module to the right.


I'm not sure this would be useful to your project or ideas, but it might be worth a look [if anything, for all the other great stuff he included in this toolbox.

Also ... been wondering why we've not seen a TROG post :| Certainly hope that all is well for him. Has anyone been in contact with him ??
RJHollins
 
Posts: 1571
Joined: Thu Mar 08, 2012 7:58 pm

Re: Ruby Help Needed Please

Postby Nubeat7 » Sun Apr 20, 2014 12:18 pm

aronb wrote:
In the included FSM, the color still is not changing during the time the XY data is streaming in, but it looks as though the color only changes every whole sample period...


yes because it updates all 512 smples...

so you would need to draw each line from p1 with a different color which means with a new pen
so my idea for this would be to make a color array and iterate through p1 and just draw one line on each index with its own pen (color)

would look something like this:
Code: Select all
   0.step(a.length-1,1) do |i|
      p1[i] = [((a[i]-@minX)/(@maxX-@minX))*wx,wy-((b[i]-@minY)/(@maxY-@minY))*wy]
      cols[i] = Color.new(255,@R_data[i],@G_data[i],@B_data[i])      
   end

   # Draw the vector coordinates in color!
   p1.each_index do |id|
     pen = Pen.new cols[id],0.3
     v.drawLine pen,p1[id],p1[id+1]
   end
Attachments
XY_Scope_20.fsm
(462.61 KiB) Downloaded 770 times
User avatar
Nubeat7
 
Posts: 1347
Joined: Sat Apr 14, 2012 9:59 am
Location: Vienna

Re: Ruby Help Needed Please

Postby aronb » Sun Apr 20, 2014 8:56 pm

Wow - Thanks for the help!!! :D :D Drinks all around on me !

It is getting very very close now.

Here it the XY RGB Scope with an RGB Color palette I did in Excel and then imported as a text file... Trying to figure out if the color blend discontinuity is an artifact of the color palette or sampling error.

Either way I am getting very close to a finished module - Thanks again for the support, I could not have done this without your help - FLOWSTONE ROCKS !!!!! Need to implement Alpha Blend now... :)

Now about Trog's Toolkit - Looked around and did not find it - where do I get this from - or where do I look please.

Here is the latest FSM for your enjoyment!
Attachments
XY_Scope_20(1).fsm
(159.24 KiB) Downloaded 778 times
User avatar
aronb
 
Posts: 154
Joined: Sun Apr 17, 2011 3:08 am
Location: Florida, USA

Re: Ruby Help Needed Please

Postby RJHollins » Sun Apr 20, 2014 9:54 pm

Now about Trog's Toolkit - Looked around and did not find it - where do I get this from - or where do I look please.


I think it was originally posted on the SM forum. There was also a forum started by a member that had this posted ... just don't remember the link.

I wish TROG would post back to let us know he's OK.

I hesitate to post someone else's work without a clear consent to do so. Maybe one of the senior members here knows the protocol better than I.

Just out of respect .
RJHollins
 
Posts: 1571
Joined: Thu Mar 08, 2012 7:58 pm

Re: Ruby Help Needed Please

Postby aronb » Mon Apr 21, 2014 5:11 am

I believe I saw and now have the Phosphor FSM. It deals with a view and bitmap type images.

I need to study it a bit to see if I can implement it in the XY RGB Module in Ruby... Wish I was a better Ruby programmer :oops: , but like everything else "I am working on getting better" ;)

Thanks for the help,

AB
User avatar
aronb
 
Posts: 154
Joined: Sun Apr 17, 2011 3:08 am
Location: Florida, USA

Re: Ruby Help Needed Please

Postby aronb » Wed Apr 23, 2014 9:55 pm

Hi,

It looks like Trog's Phosphor is done using a type of circular buffer - still trying to figure it out completely :?:

And because of its use of the "toolbox pen module" I will not be able to control the Pen setting at each data point/line :( so the Ruby Code version still seems the best way... I really wish I could simulate or program Trog's method using the toolbox modules in Ruby :?

Still working at it though !
User avatar
aronb
 
Posts: 154
Joined: Sun Apr 17, 2011 3:08 am
Location: Florida, USA


Return to General

Who is online

Users browsing this forum: Majestic-12 [Bot] and 75 guests