Here’s yet another really awesome Halloween project we are just discovering now! Really neat project that I’d really like to see in 3D-printed characters! Works lovely to control a bunch of servos with a Pi — check out our tutorial as well! From HariEdo:
I found some squeaky rubber rats at the local dollar store last year. Of course I had to buy ten of them, and then work on some sort of project later. Once I got my Raspberry Pi, I knew I had to combine these into a Hallowe’en decoration project.
2S hobby lipo (2S4P in this configuration) for 7.4V
2x Sparkfun 5V/3.3V breadboard power regulator, modified to remove PTC fuses
Raspberry Pi Model B Rev 1
Adafruit Pi Cobbler GPIO breakout
Adafruit 16 Channel i2c PWM Servo Controller
10x Tower Pro SG92R micro servos (via Adafruit)
20x 5mm Red LEDs
10x 330 Ohm resistors
10x 1 meter Futaba-style servo extensions (via eBay)
10x 6 cm Futaba-style servo extensions (hand assembled)
10x dollar store rat toys
2x solderless breadboards and a few wires
USB micro B plug (chopped a USB plug) to power Raspberry Pi
You want to make a cool robot, maybe a hexapod walker, or maybe just a piece of art with a lot of moving parts. Or maybe you want to drive a lot of LEDs with precise PWM output. Then you realize that your microcontroller has a limited number of PWM outputs! What now? You could give up OR you could just get this handy PWM and Servo driver breakout.
When we saw this chip, we quickly realized what an excellent add-on this would be. Using only two pins, control 16 free-running PWM outputs! You can even chain up 62 breakouts to control up to 992 PWM outputs (which we would really like to see since it would be glorious)
It’s an i2c-controlled PWM driver with a built in clock. That means that, unlike the TLC5940 family, you do not need to continuously send it signal tying up your microcontroller, its completely free running!
It is 5V compliant, which means you can control it from a 3.3V microcontroller and still safely drive up to 6V outputs (this is good for when you want to control white or blue LEDs with 3.4+ forward voltages)
6 address select pins so you can wire up to 62 of these on a single i2c bus, a total of 992 outputs – that’s a lot of servos or LEDs
Adjustable frequency PWM up to about 1.6 KHz
12-bit resolution for each output – for servos, that means about 4us resolution at 60Hz update rate
Configurable push-pull or open-drain output
Output enable pin to quickly disable all the outputs
We wrapped up this lovely chip into a breakout board with a couple nice extras
Terminal block for power input (or you can use the 0.1″ breakouts on the side)
Reverse polarity protection on the terminal block input
Green power-good LED
3 pin connectors in groups of 4 so you can plug in 16 servos at once (Servo plugs are slightly wider than 0.1″ so you can only stack 4 next to each other on 0.1″ header
A spot to place a big capacitor on the V+ line (in case you need it)
220 ohm series resistors on all the output lines to protect them, and to make driving LEDs trivial
Solder jumpers for the 6 address select pins
This product comes with a fully tested and assembled breakout as well as 4 pieces of 3×4 male straight header (for servo/LED plugs), a 2-pin terminal block (for power) and a piece of 6-pin 0.1″ header (to plug into a breadboard). A little light soldering will be required to assemble and customize the board by attaching the desired headers but it is a 15 minute task that even a beginner can do. If you want to use right-angle 3×4 headers, we also carry a 4 pack in the shop.
An edge-lit acrylic zoetrope based on the linux game Word War VI. The game was written by Steve Cameron, a fellow member of hackerspace TX/RX Labs. I was looking to do a zoetrope project and his vector based game was perfect for a straight forward laser etched animation.
The display is a series of 12 frames on a spinning acrylic disk with a ring of LEDs around the edge that are flashed every 1/12th of a revolution to make the animation appear. A stepper motor directly drives the disk which is being controlled by an Adafruit motor shield on an Arduino UNO. The LEDs are switched by one of the extra h bridges on the motor shield. All the timing is done open loop with the Arduino just counting nanoseconds between when to flash and when to step the motor.
Arduino is a great starting point for electronics, and with a motor shield it can also be a nice tidy platform for robotics and mechatronics. Here is a design for a full-featured motor shield that will be able to power many simple to medium-complexity projects.
2012 is not only the year of the Olympics, but also the launch of the first ever ‘Digilympics’, a twitter-powered race for sporting success where you determine the outcome. Four Lego athletes move down a physical racetrack as fans Tweet their team to move them further towards the finish line.
A Processing sketch scans the Twitter account of each country for any ‘@’ replies. Any new replies are passed to an Arduino with 4 motors attached, one for each team. The motors spin and advance each team forward in response to tweets received. An infra-red beam detects the country reaching the finishing line first and signals for the reset of a new race.
This is our entry for the qualifying round of the 2012 Red Bull Creation competition. If chosen we will face 11 other elite maker teams. Basically we wrote a processing sketch that takes text or an image and converts the data to a huge I/O array that is then passed to the arduino Bullduino. The Bullduino then uses a adafruit motor shield to control the two drive wheels and and the servo while the laser is triggered to form each pixel. The blue laser then instantly charges the phosphorescent painted board to reveal the message. We are hoping to make a prettier version and have it use bluetooth to pass tweets filtered by #Studio KMD but thats down the road. The project was a bit rough around the edges for tastes but not bad for limited time, no budget and shorthanded team.
Im using an Adafruit motor shield to control two servos that act as the shoulder and elbow of a small robotic arm (photos and video here in this flickr set). The servos are hacked to remove the control board, so I control the robot directly through Arduino code and the Arduino PID library. Im sensing the current drawn by the motors by putting a tiny resistor in series with the motor power, sensing the voltage drop across it, then since V=IR and I know V and R I can get the current. Because the voltage drop is tiny, its amplified by op-amp before the Arduino reads it. Code and schematic for the current sense library and the Arduino code for the arm are on github. Its currently programmed to just draw a short vertical line over and over again.
Soooo… my issue is that Im trying to measure the power consumption each time through the loop by logging the current and voltage. But because the speed of the motor is controlled through PWM (at 1kHz through the motor shield M3 and M4 connections), the voltage input looks like a square wave. And since V=IR, the current looks like a square wave too. However, the point of using PWM to control the speed of the motor is to set an effective voltage between 0 and the maximum, by varying the duty cycle, so that if the input is say 0-5V, at 50% duty cycle the motor will only see 2.5V, and should feel a current pull in a similar way. So ideally both the current and voltage vs. time curves would be smooth because of PWM frequency being so high, but I get lower frequency spikes in the data. Any thoughts? I can only log data to serial at a rate of about 200 Hz, so my first guess is that is too slow and Im getting aliasing, but it seems that its not the whole story and Im not even sure if the whole Nyquist sampling theory applies here.
A picture of the current and voltage readings during the down stroke of drawing the vertical line is below.
Covernomics has developed our own unique reactive drawing machine, based on a variation of the hanging-pen plotter.
Drawnomic is capable of working in two distinct modes of operation: passive and reactive. In passive mode it simply recreates an existing image.
When in reactive mode Drawnomic can accept instruction and input directly, or indirectly from anywhere in the world via RSS and other data feeds. These instructions and inputs are then combined and interpreted by our unique software, the Drawnomic machine than takes a pen (a physical human tool) and uses it to draw the result.
Hi, Adafruit! I thought you’d want to hear about a robot built with your motor shield that made it’s first public appearance last night.
This is a wall-hanging, mural drawing robot. The code is [here]. And a set of assembly instructions is available [here].
It can draw pictures with commands sent from the the Arduino serial interface or it can be driven like an etch-a-sketch.
It understands g-code commands G0-G4,G90, and G91. (see: http://en.wikipedia.org/wiki/G-code)
Try uncommenting #VERBOSE in the Arduino code and see how busy that window gets
The missing parts to the TECHNOROBOT kit that I got at the explOratorium during the Stanford EPGY AI Program in 2008 have been found! This robot has been transformed many times, the first as an idea/prototype for an emotional line following robot, then a snowplow, and now it will be an XBee messenger robot!
Remember the 3D-printed mechanum wheels I blogged a while ago? Well, maker ROB K636 built a cool mecanum bot powered by four battery packs, an arduino, screw shields and what looks like a motor shield. I really like how he created colored wheels using regular old Rit clothing dye. My question is, why use mecanum wheels other than for cool? Wouldn’t you want one wheel on each side of a square chassis to enable 360-degree movement? The way it is now, it seems like you could use regular wheels and achieve the same range of movement. (Note: the maker has generously shared the wheels’ .STL files on Thingiverse.)
When my EPSON 830U decided not to work for me anymore (printing heads clogged) I thought I could make some use of the still working mechanics of the printer. It’s based on a couple of stepper motors for both axis of motion (print head and paper feed).
So I replaced the original power supply and drive electronics for an arduino board and an stepper motor driver from Adafruit industries. Now I could move the printhead
anywhere on a page. Next step was to add a laser on the printhead and to control it using a PWM output from arduino (so laser power could be modulated from the computer).
Though it only cut thin back color cardboard, it has may uses. I wrote a C program for arduino to control the stepper motors and laser. It receives data from the computer and
interfaces with the old printer guts.
Data format is very simple: each line contains a sequence of integer numbers separated by blank space. Each pair of numbers represents one XY coordinate. Line ends with a CR (0x0d) character (that also shuts down the laser to stop cutting). First coordinate of a line sets the starting point (before reaching that location the laser is off).
I wrote some software running on my iMac that reads a Inkscape SVG file (only straight lines are supported though, use Flatten Bezier on curves to get a sequence of straight line segments) and translates it to the desired data format for arduino and it shows a preview on the screen. Data is sent through a USB port to the arduino. iMac code was written using Processing language (Java-based) so it can run on Windows or Linux too.
If you have an old EPSON printer, you may want to give it a second thought before putting it to the trash.