RC Rocket LauncherAuthor: Dave Date: 02.24.25 - 5:23am So I want to create a rc missile battery using air powered rockets. Will use a compressor or co2 canister as the air source and include pan and and tilt capabilities. The number of RC signals on a typical receiver is usually 3-6, but I want to fire a bunch of rockets! So how do we pull this off with limited RC signals? The answer is actually super simple, we just read the RC receiver with an arduino. Every time the fire button is pushed, we launch a rocket then increment a counter to move to the next one. While the RC receiver signals may be limited in number, the number of arduino output pins has a much higher threshold. We actually wouldnt even want to use all different RC signals because we dont have that many buttons on our transmitter and could never keep track of which one came next. Below is a very simple arduino sketch to pull it off. I might add one more RC signal read to adjust the number to launch. Basically read an rc pot on the transmitter then map that value between 1 and x, then do a for loop in the launch section. Easy peasy. int rc_pin = 3; // rc receiver on ~PWM capable port int pins[] = {2, 5, 6, 7, 8}; int pinCnt = (sizeof(pins) / sizeof(int))-1; int trigger = 0; int lastVal = 0; void allLow(){ for (int i = 0; i <= pinCnt; i++) digitalWrite(pins[i], LOW);} void setup() { pinMode(rc_pin, INPUT); for (int i = 0; i <= pinCnt; i++) pinMode(pins[i], OUTPUT); allLow(); Serial.begin(9600); } void loop() { int rc5 = pulseIn(rc_pin, HIGH, 25000); if (rc5 > 1530) { if (trigger > pinCnt) { Serial.println("out of air rockets !"); allLow(); exit(0); } else { Serial.print("air rocket launch #"); Serial.println(trigger); digitalWrite(pins[trigger], HIGH); delay(1000); digitalWrite(pins[trigger], LOW); trigger++; } } delay(10); } Finally we need a way to control the heavy load of the air solenoid from the delicate digital logic of the arduino. You could use relay boards. I decided to use some cheap mosfet drivers instead. Each panel like this can control 3 solenoids. ![]() On these the ground is switched and the positive is just a pass through. I also included some flyback diodes since I am using an inductive load with the solenoids. This prevents the back current from going through the mosfets as the magnetic field collapses. (I blew a pot hole in one mosfet already lol) In order to get more rockets with a minimum of pins (and mosfets), I decided to create a matrix of columns and rows. Each mosfet switches the ground for an entire column. Then to select the active row, I switch the positives using a servo and a 5 position switch. ![]() Quick and dirty but it works. My 180 deg servo, didnt quite make the promised 180 deg of rotation, so I will have to deal with a 4x3 matrix but its acceptable. I did have to manually map the servo values to switch positions. The reason the switch is glued back together is because I opened it up to remove the detente mechanism. No sense stressing the servo or mounts. Here is the matrix connection board. The matrix board will be for the bottle rocket version. Each rocket igniter is now broken out with its own power and ground driven by the mosfet and servo switch. The LEDs will show which row is active. Below is a test video and a link to the missile_matrix.ino sketch if your interested. ![]() The air rockets are shooting super far once I found the right solenoid to use. I am getting like 150ft distance and 50ft vertical at 100psi. Plenty of power to be fun, but not so much fun as to anger the lords of the HOA. ![]() Sooo, all of the electronics fit. I went into the rear axles and removed the capicators. I still was not able to get proportional speed control to work. Its a triple reduction gearing. I am assuming the tiny motors just cant get things spinning on any less than full throttle which is unfortunate. but..start with a super cheap model, you get a super cheap model. Its not really worthy of the upgrades! ![]() ![]() So i had to ditch the mosfets and go to relays. Couple oddities, I noticed a 3v leakage on the firing pins, could be because of the voltage converter and having two voltage levels. It also burned out two of my arduino pins! So screw that, simplicity rules. Not shown, but to simplify wiring I added some jumpers under the relay boards to tie the power and grounds together, and give the relay commons ground for simplicity. Everything is working and stable now. fully operational final video is held back in case Karen is watching. This is why we cant have fun things. ![]() Comments: (0) |
About Me More Blogs Main Site |