August 28, 2014

LED Pulse Network: Part 3

Today I managed to get 2 out of 3 devices to talk together properly. When the chipKit receives a pulse message, it lights up its LEDs, then sends a message to the Teensy++. The Teensy++ does the same thing.



Right now I am using a Python script to control the system, eventually the Arduino will control everything.

Here is a vid of the demo in action:


August 25, 2014

LED Pulse Network: Part 2

Lately I've been working on the serial communication portion of the pulse network I am making. The details get rather technical, but so far it is going well. I am testing one device at a time before I start wiring devices together. 

In this test, I made my chipKit respond to certain serial messages by turning on its on-board LEDs or pulsing the light through the line of LEDs forwards or backwards. 

I then put together a quick Python script to help automate the testing process. It gives me a command prompt and I can type one of the following commands to send messages to the device:

on - turn the on-board LEDs on
off - turn the on-board LEDs off
pulse forwards - "pulse" through the LEDs in the forwards direction
pulse backwards - "pulse" through the LEDs in the backwards direction

Here is a video:

August 22, 2014

LED Pulse Network: Part 1

Today I finally got around to starting a new project: making a ring network of three Arduino-compatible boards so they can talk to each other and pass around a "pulse" of light that will be displayed on a large number of LEDs.

Today I just set up the LEDs and made a rough sketch of the LED animation. Here's a pic of the setup:
I would have made an actual ring shape of LEDs, but considering that my other breadboards are currently in use, it was easiest to just wire them in rows. 

Currently, each device is its own separate circuit. Soon that will change, I will connect them together soon.

In the meantime, here's a video of the lights in action:



August 21, 2014

Invisible Light

Ever wonder what it's like to see infrared and ultraviolet light? Our eyes cannot detect such wavelengths of light just outside the range of visible light. Yet cameras can detect both types of light!

Check out this picture (Left LED is infrared, the right LED is ultraviolet)

The dark LED on the left is an Infrared LED. the pinkish/purplish white dot in the center is infrared. Here's a better picture taken from above with the UV light off:
In real life, the IR LED doesn't look like it turned on at all. The dark plastic filters out everything except UV. It's only when you use a digital camera (phone cameras work just fine!) that you can "see" the light.

To try this at home: get a TV remote and look at the end of it with a camera as you press buttons. You'll see pulses of IR light!

The UV LED (or black light if you wish) does emit visible light in the violet range, so it appears to be a purple LED. However, when you look at it through a camera, you see that there's way more light to be had, which is why in a photo it seems to glow so brightly!

This one is a bit harder to try at home, but if you ever go to a party with black lights, try taking pictures of the black light bulbs!

August 20, 2014

Dabbling With Yet Another Microcontroller

Finally got a chance to try out my Parallax Propeller QuickStart microcontroller. The programming language it uses is unusual to me, as it is closer to assembly language compared to C/C++ which is used in Arduino and other microcontrollers. Yet it's pretty cool to learn.

I also like how this board has 8 surface mount LEDs on it, makes it easy to test things without needing to find the right LEDs, resistors and jumper wire for the job.

Here's a vid of one little test I made:

Notice how the lights blink so fast it appears like it is a solid light! This effect is called Persistence of Vision (POV). 

August 4, 2014

A Key to the Floodgates of Awesome

Today I finally figured out how to run Python scripts from a Node.js server. Usually that would be unnecessary, but I find it useful. I will write BeagleBone Black programs in Python, Ruby, or Bonescript. The server will be able to run any of the above to allow browsers to interact with circuits.

Here is a video of the circuit and accompanying web page. The server gets a reading from the rotary encoder (the glowing cyan knob) and then controls the blue circle's position on the web page.

This demo is not very exciting, but it is key to learning about the BBB's web server. This is only the beginning. Imagine what can be done with electronic circuits and a full-featured web server? On top of this, imagine when I add in an Arduino Uno or two! The fun doesn't seem to want to end! Stay tuned for more!

August 2, 2014

Since When Did I Acquire So Many SD Cards??

Nothing new to show today, I was working hard at learning how Node.js and Socket.io work. I think I finally figured it out, but I will try it out tomorrow.

I did stop to consider one thing today: when did I acquire so many SD Cards?
Not Pictured: a μSD card in the phone that was used to take this picture

August 1, 2014

More Fractals and a Web Server

The other day I decided to try another fractal from the fractal programming book I have. Here are the results!


I also continued to try out my BeagleBone's web server! This video doesn't look like much, but it really shows the power of what even small web servers can do!

Basically, I start by running a Node.js script. It does three things:

  1. Runs a Ruby script which blinks the LEDs in order
  2. Runs a Python script which flashes 1 LED in an SOS pattern
  3. Hosts a web page that can be accessed from the local network. The web page has two buttons, one turns all the lights on, one turns them off.
This demo uses many different languages: HTML, JavaScript, Python and Ruby. That's my favorite part about web servers like this, it lets you get multiple types of programming language to communicate with each other!