EMPCCCC
This page last updated: December 21, 2012 as of October 2014
EMPCCCC Mobile Missile Launchers Hardware Software setup General instructions are here. Satire starts on the
Index page and continues here for in depth construction images.
- Hardware: Arduino, XBee and their supporting boards
- The Hitec HPP-21 is very usefull in testing the servos, prior to installation and when attached to the launcher or roof. The HPP-21 PC program displays the number to set for the max min range to raise - lower functions. Some servos only go 60 degrees even given the full range of values ie ERC 5, 8 gram. Run a new servo on an HPP-21 for a while to 'loosen' it up (spread the grease around) and determine an initial range would be helpful] Simply slide the bar with the mouse to move the servo arm. Be advised it starts at mid-range so when attached to the roof or launcher, manually move the roof or launcher -prior- to running the program. It is available at many stores that sell RC equipment.
- XBee 1mw (Pro 60mW is overkill) Wire Antenna for Base station with (500Ma)
sparkfun USB board for the PC base station
- It puts the XBee in the bucket.
- See here for how i mangled some protection for it
- It might be a good idea to configure the main-computers XBee and then use the sparkfun USB board again to configure the 1mW ones... or use an Adafruit XBee FTDI cable. Or totally ignore this line and do not change the XBee configuration : it works fine out of the box.
- XBee 1mW Wire Antenna on a breakout board and an Atmel ATmega328 : mini-pro for each receiver-to then operate things per instructions from Base-Computer powered by a 4.8 Volt battery (4 2/3 A cells).
- Solder together the bits and pieces for the breakout board. put the XBee in-on it and tape the foam pad on for protection. Configure now or previously... or not.
- Tape the pink plastic across the bottom of the mini-pro, glue 2 strips of headers (that have their pins soldered to a connecting wire (i used a thin copper strip across all pins - Adafruit sells something like it) so they make 2 rows of connected pins to use as a power bus; put some cardboard strips between the pin rows for electrical separation) to the pin 0..9 side (gives more usable pins. Tape some more pink plastic across these and the bottom.
- The picture shows a car on its side with a battery inside- centered and secured with some foam and an on-off switch connected. On the left are 2 Arduinos showing the plastic wrap and header rows. On the right are 2 XBees showing their pad protection (they are on Adafruit boards - Not the simple breakout boards you end up needing). On the far left is a USB cable and a FTDI Basic card in its bag used to connect the computer to the Arduino to program it.
The Left picture is an overhead view of everything stuffed inside a car. The Right picture is with all connected visible outside the car. Just wires soldered to a XBee header... a breakout board makes it neater tho.
- Connect them together with cables: RX, TX, Ground, VCC Power power from the 3 V Arduino to the breakout board : VCC to VCC, Rx(pin2) to Dout, TX(pin3) to Din, Ground to Gnd. All wires needed are on the left side of the XBee breakout board : 3 at top and Gnd at bottom. Adafruit sells color coded 40 wire sets in various lengths that can be peeled apart- they work great - plug one end into the servo wire and the other end into the Arduino.
- If using an Uno and an Adafruit board to set up and test the values before installation : Uno RX(pin2) goes to Ada TX and Uno TX(pin3) goes to RX. If you are using color coded wire you will notice there is a SWITCH going on (or maybe I made an error in this in my head). The Xbee Din is what is transmitted TX and Dout is what is received RX.
- - the Adafruit XBee board is not needed. just an XBee breakout board to hold headers to hold an XBee and connect to it... FTDI cable at 3.3V for grins and configuring an XBee.
- Software:
- XBee configuration ...is done using the Digi program. Defaults work for me .. the Version on All XBees used should be the same... Check the values and version. These are the values I use.
- well actually the defaults work for me as there are no other XBee radios around. .. and the install program crashed loading the new things.. so i did not do that option the next install...
- Com 5 9600 8-N-1 Flow None
- DH 0, DL 0, MY 0, NT 19, SC FFFE, SD 4
- ...
- MiniPro and breakout board-or-soldered header
- DIn is transmitted purple Pin 3 (Arduino TX)
- DOut is received gray Pin 2 (Arduino RX)
- Uno & Ada board
- RX gray Pin3 TX [Arduino TX to XBee RX]
- TX purple Pin 2 RX [Arduino RX to XBee TX]
- Arduino program
- Each 'Set' must have its own servo values entered and use its own version of the code. The code is uploaded to the Arduino through the USB cable on the FTDI Basic card while conected to the computer. And the XBee, Battery, Servos, and wires unplugged. I use an Arduino Uno and an XBee on an Adafruit board to test and debug the servo values... then upload that code to a Mini-Pro and go on to the next Set of missile servos.
- There is an Arduino "Test Swivel" program included that uses the push buttons from here to kinda pretest the cars Roof and missile servos. Even I do not use it anymore - just get the values with the HPP-21 and enter them into the Arduino program.
- Computer program
- Set the Com port to values the XBee uses. Save the configuration file.
- The Arduino-XBee sets are configured, powered on, ready to go... Press buttons on the computer program and watch the missile launchers operate flawlessly:)
- Update as of April 2013 : Video April 2013
- Something keep glitching the servos.. i dunno what, the roofs pop up a little and then back down
- The BABES rotation value seems to change all on its own .. it works: Stops rotating on command and then on another run the servo keeps rotating slowly... and then the next time it works great ... yeah and the same thing happens with the other servos sometimes they hum and other times they are silent...
- Might have to rewrite the code so new values can be sent and stored as an Initialization phase of the program... uhm would not actually be able to know the correct values to send... will try re-uploading the code to the arduino that has the 'changed' values. Might write a different program that is interactive... o well, too bummed that the servo values drift for now.
- Rewrite so values are entered for Min Max and they are stored by the computer and sent to the arduino as-with the commands.
Copyright © 1991..2014 by Ivan Lee Herring