After my great journey in Fab Academy, I have decided to change initial project idea. I want to make
something to have fun
with, enjoy the process & also try something new.
after a little bit of brain storming & walking through some great projects
documentations stumbled upon
this project "Paper Airplane Launcher By Dano Wall" which inspire me to build
a Paper Airplane
Launcher.
Time | Task |
---|---|
20 May to 23 May |
Cardboard prototyping.
Prepare my bill of materials & sorce the needed components. |
24 May to 29 May |
Working on the bluetooth communication code.
Working on transmit and receive multi-Value serial data code. Write the whole code that will control the motors and test it. |
30 May to 7 June |
Design the Pan/Tilt mechanism and The launcher it self.
Design and fabricate PCBs. Test my PCBs with my other components. Code & CAD edits. 3D Printing & laser cut my parts. |
8 June to 11 June |
Assemble the project.
Final Code edits. Make the final presentation slide. Make the final presentation video. Documenting the final project page. |
For the design, I started by making a low fidelity cardboard prototype to determine
proper dimensions of
the final project and to be able to visualize it more. Also it helped me determine
proper length of the
airplane.
Then For the CAD design I used Autodesk Fusion 360.
#include <Chrono.h>
#define x 26
#define y 27
#define btn 28
Chrono btnChrono;
int previousButtonState;
int fire(int newButtonState) {
if (previousButtonState != newButtonState) {
previousButtonState = newButtonState;
if (newButtonState == LOW && btnChrono.hasPassed(10)) {
return 9;
}
btnChrono.restart();
}
return 0;
}
void setup() {
pinMode(x, INPUT);
pinMode(y, INPUT);
pinMode(btn, INPUT_PULLUP);
previousButtonState = digitalRead(btn);
Serial.begin(115200);
Serial1.begin(115200);
}
void loop() {
Serial1.print(map(analogRead(x), 0, 1023, 0, 3));
Serial1.print(',');
Serial1.print(map(analogRead(y), 0, 1023, 0, 3));
Serial1.print(',');
Serial1.println(fire(digitalRead(btn)));
Serial.print(map(analogRead(x), 0, 1023, 0, 3));
Serial.print(',');
Serial.print(map(analogRead(y), 0, 1023, 0, 3));
Serial.print(',');
Serial.println(fire(digitalRead(btn)));
delay(150);
}
#include <Servo.h>
#include <CSV_Parser.h>
#define panPin 26
#define tiltPin 27
#define dcMotors 28
#define solenoid 29
Servo pan;
Servo tilt;
char *incomingData;
int panAngle = 90;
int tiltAngle = 90;
void setup() {
pan.attach(panPin);
tilt.attach(tiltPin);
pan.write(panAngle);
tilt.write(tiltAngle);
Serial1.begin(115200);
Serial.begin(115200);
pinMode(dcMotors, OUTPUT);
digitalWrite(dcMotors, HIGH);
pinMode(solenoid, OUTPUT);
Serial1.flush();
Serial.flush();
}
void loop() {
CSV_Parser cp(Serial1.readStringUntil('\n').c_str(), /*format*/ "c", false);
incomingData = (char *)cp[0];
Serial.print("X = ");
Serial.println(int(incomingData[0]));
Serial.print("Y = ");
Serial.println(incomingData[1], DEC);
Serial.print("Fire = ");
Serial.println(incomingData[2], DEC);
if (int(incomingData[0]) == 2 && panAngle > 0) {
panAngle -= 10;
pan.write(panAngle);
}
if (int(incomingData[0]) == 0 && panAngle < 180) {
panAngle += 10;
pan.write(panAngle);
}
if (int(incomingData[1]) == 2 && tiltAngle < 149) {
tiltAngle += 10;
tilt.write(tiltAngle);
}
if (int(incomingData[1]) == 0 && tiltAngle > 30) {
tiltAngle -= 10;
tilt.write(tiltAngle);
}
}
Airplane Launcher By Mohahmed Tarek is licensed under a Creative Commons
Attribution-NonCommercial-NoDerivatives 4.0 International License.
while trying my Airplane launcher the launcher wheels didn't have enough fraction with the paper airplane so I add a little bit of the hot glue on the slides of the wheels to increase the fraction and it works
# | Item | Qty | Price/Item | Supplier Link |
---|---|---|---|---|
1 | Seeed Xiao RP2040 | 2 | - | Fab Inventory |
2 | Linear Solenoid | 1 | - | Fab Inventory |
3 | Resistors, Pin-Headers, Voltage regulator | - | - | Fab Inventory |
4 | Plywood 3mm | - | - | Fab Lab Egypt |
5 | PLA Filament | 500g | - | Fab Lab Egypt |
6 | L293DD Motor driver SO20W | 1 | $0.97 | UGE Electronics |
7 | Servo Motor Metal Gears "MG995" | 2 | $6.49 | Ram Electronics |
8 | Small DC Motor | 2 | $0.81 | Ram Electronics |
9 | Push Button | 1 | $0.21 | Ram Electronics |
10 | Bluetooth Module HC-05 | 2 | $6.49 | Ram Electronics |
11 | Joystick 2 Axis | 1 | $1.46 | Ram Electronics |
12 | SMPS Output +5VDC/5A | 1 | $7.30 | Ram Electronics |
13 | N20 Caster Ball Wheel | 3 | $0.81 | Maker Electronics |