Stap 3: Het vliegende deel
Montage en programmering van het Flying deel van de luchtballon
- Een Arduino Uno verbinden met uw computer en open de Arduino IDE
- Kloon de GitHub Repo en open het bestand "uno_and_dc_motors_with_xbee.ino"
- Zorg ervoor dat u de juiste bestuur en poort geselecteerd in de Arduino IDE dan uploaden van de code.
- Het schild van de Motor Driver op de Uno stapelen
- Stapel het schild Xbee bovenop de Motor Driver. Merk op dat wanneer het Xbee schild is aangesloten, de Arduino IDE niet zal toestaan u code uploaden naar de Arduino, tenzij u ze verplaatst de koppen op het schild waar het zegt "Xbee/USB" van de Xbee, naar de USB-kant.
Arduino Code:
int incomingByte; // a variable to read incoming serial data intoint leftmotorForward = 8; // pin 8 --- left motor (+) green wireint leftmotorBackward = 11; // pin 11 --- left motor (-) black wireint leftMotorSpeedPin = 9; // pin 9 --- left motor speed signalint rightmotorForward = 12; // pin 12 --- right motor (+) green wireint rightmotorBackward = 13; // pin 13 --- right motor (-) blackint rightMotorSpeedPin = 10; // pin 10 --- right motor speed signalint leftMotorSpeed = 0;int rightMotorSpeed = 0;int turnPotVal = 255; // variable to store the value coming from the sensorint turnPotVal2 = 255;
void setup() { pinMode(leftmotorForward, OUTPUT); pinMode(leftmotorBackward, OUTPUT); pinMode(leftMotorSpeedPin, OUTPUT); pinMode(rightmotorForward, OUTPUT); pinMode(rightmotorBackward, OUTPUT); pinMode(rightMotorSpeedPin, OUTPUT); Serial.begin(9600);}
void loop() { while (Serial.available() > 0) { // look for the next valid integer in the incoming serial stream: turnPotVal = Serial.parseInt(); turnPotVal2 = Serial.parseInt(); rightMotorSpeed = (1023-turnPotVal)/4; leftMotorSpeed = turnPotVal2/4; analogWrite(leftMotorSpeedPin,leftMotorSpeed); //Enable left motor analogWrite(rightMotorSpeedPin,rightMotorSpeed); //Enable right motor digitalWrite(leftmotorBackward,LOW); // Drives LOW outputs down first digitalWrite(rightmotorBackward,LOW); digitalWrite(leftmotorForward,HIGH); digitalWrite(rightmotorForward,HIGH); } } terwijl (Serial.available() > 0) {/ / zoeken de volgende geldige integer in de inkomende seriële stroom: turnPotVal = Serial.parseInt(); turnPotVal2 = Serial.parseInt(); rightMotorSpeed = (1023-turnPotVal) / 4; leftMotorSpeed = turnPotVal2/4; analogWrite(leftMotorSpeedPin,leftMotorSpeed); //Enable linker motor analogWrite(rightMotorSpeedPin,rightMotorSpeed) //Enable juiste motor digitalWrite(leftmotorBackward,LOW); / / Drives lage uitgangen naar beneden de eerste digitalWrite(rightmotorBackward,LOW); digitalWrite(leftmotorForward,HIGH); digitalWrite(rightmotorForward,HIGH);