I was playing around more with the wiringPi library and a Red Green Blue LED. I have a simple setup that will blink the led in each color. From the video, it's a bit tough to distinguish between blue and green so I included a few pictures of each color as well.
Saturday, July 13, 2013
Tuesday, July 9, 2013
Ubuntu on BeagleBone Black
After playing around with Angstrom, I wanted to try my hand at Ubuntu so I decided to flash my BBB with the Ubuntu wheezy image. The process was relatively painless and I was about to write up what I did, but I came across a post that was very similar to my steps so I'll link that one instead.
http://avedo.net/653/flashing-ubuntu-13-04-or-debian-wheezy-to-the-beaglebone-black-emmc/
Now that I am on familiar ground, I was able to port over my code for the OLED and GPS to the BBB. Though I haven't wired it all up yet, I was able to compile it without issues. I actually waiting for another breadboard that I ordered so I won't have to tear down what I currently have just to test my BBB setup.
http://avedo.net/653/flashing-ubuntu-13-04-or-debian-wheezy-to-the-beaglebone-black-emmc/
Now that I am on familiar ground, I was able to port over my code for the OLED and GPS to the BBB. Though I haven't wired it all up yet, I was able to compile it without issues. I actually waiting for another breadboard that I ordered so I won't have to tear down what I currently have just to test my BBB setup.
Labels:
bbb
,
beaglebone
Monday, July 8, 2013
GPIO using the Raspberry Pi
After getting my OLED and GPS working, I wanted to mess around with the GPIO pins so I bit off something simple. Here is what my setup looks like.
- Raspberry Pi
- Raspberry Pi T Cobbler
- Raspberry Pi Ribbon Cable
- Breadboard
- Two 1 KiloOhms resistors
- Two 10 KiloOhms resistors - pull up resistors
- 2 momentary pushbuttons
- Jumper wires
In this setup, pushing the button will drive the signal low. To keep things simple and just illustrate the point, pushing the button(s) will just print out a message to stdout. In doing some research, I came across Gordon's wiringPi library. I incorporated this into my code so I didn't have to reinvent the wheel! It is pretty simple to use for my C++ application. I started out the simple way and had a loop to check the pin status and act upon it if it has changed. However, that doesn't fit my end goal so I got a bit fancier with the implementation, but the good news is that it is supported by wiringPi. The fancier implementation is to use interrupts and to have a function pointer called when the interrupt is detected. Below is the code to drive this circuit. Currently, the circuit does bounce so debouncing code will need to be added to normalize this, but hopefully this illustrates the point.
#include <iostream> #include <wiringpi.h> // These are wiringPi pin numbers from http://wiringpi.com/pins #define BUTTON_1 7 // pin 7 on pi #define BUTTON_2 3 // pin 15 on pi using namespace std; void interruptHandler () { cout << "in interruptHandler()" << endl; } void interruptHandler2 () { cout << "in interruptHandler2()" << endl; } int main () { if (wiringPiSetup() < 0) { cout << "uniable to initialize wiringPi library!" << endl; return 1; } if (wiringPiISR (BUTTON_1, INT_EDGE_FALLING, &interruptHandler) < 0) { cout << "Unable to register interrupt handler for BUTTON_1!" << endl; return 1 ; } if (wiringPiISR (BUTTON_2, INT_EDGE_FALLING, &interruptHandler2) < 0) { cout << "Unable to register interrupt handler for BUTTON_2!" << endl; return 1 ; } // wait for interrupt, but don't consume 100% of cpu while (1) delay (100); return 0; }
Tuesday, July 2, 2013
Raspberry Pi GPS and LCD
The OLED is connected via I2C to the Raspberry Pi and the GPS is using the hardware UART on the Pi. The hard part is now out of the way! Next up, save the GPS data (in KML) to a file and plot that file on Google Earth.
Subscribe to:
Posts
(
Atom
)