Category Archives: Electronics
This is my attempt at coming up with a better dosing mechanism for my bartending robot (more on that soon). It’s a cheap, easy to build syringe pump using off-the-shelf parts.
What I used:
- Pololu stepper with 18cm leadscrew
- 100ml syringe from Amazon
- A handful of Actobotics parts
- A Pololu DRV8825 stepper driver
- A Teensy 3.1 (could be an Arduino or any other micro)
- Check valves, tubing, and a T-coupler. They’re not shown in the video, but these are common aquarium parts from Amazon.
The only modification I had to make was to cut the plunger ring off the syringe and drill some mounting holes in the plunger top and the grip flange.
You could easily make the metal brackets from aluminum channel. You could also use a cheaper stepper with a threaded rod coupled to the shaft to save on cost.
Here’s a short video of the action:
I’m always excited to get my hands on new sensors, so when I saw the APDS-9960 RGB and gesture sensor breakout board from SparkFun I ordered one immediately. The neat thing about this sensor is that it does a lot for its tiny size and relatively low cost.
The features this sensor offers are:
- Proximity measurement
- Ambient light intensity measurement
- Color detection
- Simple gesture detection including left, right, up, down, foward, and back
- More complex gestures are apparently possible, although I haven’t seen evidence of this yet
SparkFun offers an Arduino library for the sensor, but no other platforms are supported yet. I really wanted to use the sensor with the Raspberry Pi so I quickly ported it. The connections I’m using are:
I put the code up on BitBucket at https://bitbucket.org/justin_woodman/apds-9960-raspberry-pi-library. You can clone the repository using:
In order to get it working you’ll need to install wiringPi for I2C and interrupt support. Just follow the installation instruction at the wiringPi website.
Once you have wiringPi installed you can build any of the examples. So the GestureTest example can be built using the compile string:
g++ -Wall -o GestureTest GestureTest.cpp APDS9960_RPi.cpp -lwiringPi
It’ll be easier to write makefiles for larger projects so you don’t have to keep doing that, but for testing it’s fine. Before you run the program you’ll need to set up I2C and the interrupt with:
gpio load i2c
gpio edge 7 falling
You might get a warning with the i2c load, which you can safely ignore. Run the program with:
And wave your hand over the sensor to see what it does. Neat right?? I’ll be digging further into this code to see if I can get more complex gesture sensing to work if someone doesn’t beat me to it. Have fun!
This is a breadboard adapter I designed for the CFAF320240F TFT display from Crystalfontz. It breaks out the 0.5mm pitch connector to 0.1″ for use on a breadboard, and has a Fairchild FAN5333 LED driver circuit to power the backlight. All of the components were hand-soldered including the connector (using the flood-and-suck technique). It was designed for my PIC32 3D engine project, shown being used below:
This setup also uses the joystick (seen in the lower left) to rotate the 3D object on the screen around.
This is a binary clock I made for my girlfriend’s birthday. It uses 6 jumbo red LEDs which illuminate quartz crystals to display the minutes in binary. Two servo motors are used in the bottom half to display AM/PM and the hour. All of this is controlled with a PIC16F690 microcontroller assembled on a breadboard.
The clock does not use any sort of timekeeping chip or even an external crystal for the microcontroller, so it relies on the internal RC oscillator and tends to lose a few minutes each day. There are only two buttons on the clock, an “IM” button (increase minutes) and “DM” (decrease minutes) which allows the time to be set/adjusted as needed.