Paso 3: La parte de vuelo
Montaje y programación de la parte de vuelo de los dirigibles
- Conectar un Arduino Uno al ordenador y abrir el IDE de Arduino
- Clonar el repositorio de GitHub y abra el archivo "uno_and_dc_motors_with_xbee.ino"
- Asegúrese de que tiene la Junta correcta y el puerto seleccionado en el IDE de Arduino a continuación, cargar el código.
- Coloque el protector de conductor del Motor en la ONU
- Apilar el Xbee Shield sobre el conductor del Motor. Tenga en cuenta que cuando se conecta el shield Xbee, el IDE de Arduino no permitirá cargar código para el Arduino si no mueves los encabezados de la pantalla donde dice "Xbee/USB" de lo Xbee en el lado USB.
Código de Arduino:
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); } } mientras (Serial.available() > 0) {/ / buscar el siguiente entero válido en la corriente entrante de serial: turnPotVal = Serial.parseInt(); turnPotVal2 = Serial.parseInt(); rightMotorSpeed = (1023-turnPotVal) / 4; leftMotorSpeed = turnPotVal2/4; analogWrite(leftMotorSpeedPin,leftMotorSpeed); //Enable izquierdo motor analogWrite(rightMotorSpeedPin,rightMotorSpeed) motor derecha //Enable digitalWrite(leftmotorBackward,LOW); / / baja unidades salidas hacia abajo digitalWrite(rightmotorBackward,LOW); digitalWrite(leftmotorForward,HIGH); digitalWrite(rightmotorForward,HIGH);