Ollie-en DIY autonom robot luftskepp (7 / 9 steg)
Steg 7: Ansluta allt
Ladda upp den slutliga Arduino skiss nedan till Pro Mini med FTDI kabel eller utbrytning styrelse.
Löda anslutningar till Arduino Pro Mini mycket noggrant enligt kopplingsschemat.
Bifoga krets till botten av ballong med liten mängd aluminiumfolie eller tejp.
Vid denna punkt kommer att krets vara lätt nog att lyftas av ballongen eller bara rätt vikt att hålla den i balans. Justera med en liten mängd lera om krets är för ljus.
#include < SoftwareServo.h >
SoftwareServo myservo; skapa objekt för att styra en servo servo
SoftwareServo myservo2;
int gruppinterna = 0;
int val = 0;
int vänta = 0;
int flyFor = 0;
lång flapTime = 0;
int angleMin = 0;
int angleMax = 120;
int upSpeed = 20;
int downSpeed = 1;
int buffert = 0;
Sund variabler
int potPin = 1; Välj input PIN-koden för sund sensor
int ledPin = 13. Välj den PIN-kod för LED
int soundVal = 0;
void setup()
{
pinMode (ledPin, produktionen); förklara ledPin som en utgång
myservo.attach(2); fäster servo på pin 2
myservo2.attach(4);
Serial.BEGIN(9600); Öppna den seriella porten på 9600 bps:
}
void loop()
{
Servo
om (flyFor < flapTime) {
om (vänta == 5) {
om (val < angleMin) {
gruppinterna = 1;
digitalWrite(ledPin,HIGH);
}
annars om (val > angleMax) {
gruppinterna = 0;
digitalWrite(ledPin,LOW);
}
om (gruppinterna == 0) {
Val-= upSpeed;
} annat {
Val += downSpeed;
}
}
vänta ++;
om (vänta > 200)
vänta = 0;
myservo.write(val);
anger servo skalad värde
myservo2.write(120-val);
SoftwareServo::refresh();
flyFor ++;
} annat {
Ljud
soundVal = analogRead(potPin);
Serial.println("listening...");
om (soundVal > 1020) {
Serial.println ("FREEAK ut!");
upSpeed = 15.
downSpeed = 15.
angleMax = 45;
angleMin = 10;
flapTime = 6000;
}
annars om (soundVal < 450 || soundVal > 750) {
om (buffert == 0) {
Serial.println(soundVal);
upSpeed = random (1, 20); 1 till 30
downSpeed = random (1, 30); / / 1 till 30
angleMax = random (110, 120);
angleMin = random (30, 45);
flapTime = 10000 + random (5000, 10000);
flyFor = 0;
buffert = 15.
} annat {
buffert--;
}
}
}
}