Paso 6: Código para robot
Chicos aquí hemos utilizado varios Arduino UNO cada uno para diferentes partes de trabajo del robot así que alerta mientras que quema código en él.
Mano derecha e izquierda de control código del transmisor:
int sen0 = A0;
int sen1 = A1;
int sen2 = A2;
sen3 int = A3;
int sen4 = A4;
sen5 int = A5;
void setup()
{
Serial.Begin(9600);
}
void loop()
{
val0 int = map(analogRead(sen0), 450, 100, 260, 210);
Serial.Print(val0);
int val1 = map(analogRead(sen1), 450, 100, 260, 210);
Serial.Print(val1);
int val2 = map(analogRead(sen2), 450, 100, 260, 210);
Serial.Print(val2);
val3 int = map(analogRead(sen3), 450, 100, 260, 210);
Serial.Print(val3);
int val4 = map(analogRead(sen4), 450, 100, 260, 210);
Serial.Print(val4);
val5 int = map(analogRead(sen5), 450, 100, 260, 210);
Serial.Print(val5);
Delay(50);
}
Control de dedo a través de flex código del transmisor del sensor:
int sen0 = A0;
int sen1 = A1;
int sen2 = A2;
sen3 int = A3;
int sen4 = A4;
sen5 int = A5;
void setup()
{
Serial.Begin(9600);
}
void loop()
{
val0 int = map(analogRead(sen0), 580, 650,0, 9);
Serial.Print(val0);
int val1 = map(analogRead(sen1), 580, 650, 0, 9);
Serial.Print(val1);
int val2 = map(analogRead(sen2), 580, 650, 0, 9);
Serial.Print(val2);
val3 int = map(analogRead(sen3), 580, 650, 0, 9);
Serial.Print(val3);
int val4 = map(analogRead(sen4), 580, 650, 0, 9);
Serial.Print(val4);
val5 int = map(analogRead(sen5), 580, 650, 0, 9);
Serial.Print(val5);
Delay(50);
}
Control de dedo a través de flex código de receptor del sensor:
#include
int servo0Pin = 2;
int servo1Pin = 3;
int servo2Pin = 4;
int servo3Pin = 5;
int servo4Pin = 6;
int servo5Pin = 7;
int val0;
int val1;
int val2;
val3 int;
int val4;
val5 int;
Servo myservo0;
Servo myservo1;
Servo myservo2;
Servo myservo3;
Servo myservo4;
Servo myservo5;
void setup()
{
Serial.Begin(9600);
myservo0.Attach(servo0Pin);
myservo1.Attach(servo1Pin);
myservo2.Attach(servo2Pin);
myservo3.Attach(servo3Pin);
myservo4.Attach(servo4Pin);
myservo5.Attach(servo5Pin);
}
void loop()
{
while(serial.Available() == 0);
byte a = Serial.read();
byte b = Serial.read(); Sholder izquierdo
c bytes = Serial.read();
octeto d = Serial.read();
e bytes = Serial.read(); lbow izquierda
f bytes = Serial.read();
int g = map(a,0,9,0,180);
int h = map(a,0,9,0,180);
int i = map(a,0,9,0,180);
int j = map(a,0,9,0,180);
int k = map(a,0,9,0,180);
int l = map(a,0,9,0,180);
myservo0.Write(g);
myservo0.Write(h);
myservo0.Write(i);
myservo0.Write(j);
myservo0.Write(k);
myservo0.Write(l);
Delay(50);
}
Mano derecha e izquierda controlan el código receptor:
#include
int ledPin = 13; elige el pin para el LED
int inPin = 12;
int valinPin = 0;
int servo0Pin = 2;
int servo1Pin = 3;
int servo2Pin = 4;
int servo3Pin = 5;
int servo4Pin = 6;
int servo5Pin = 7;
int servo6Pin = 8;
int servo7Pin = 9;
Servo myservo0;
Servo myservo1;
Servo myservo2;
Servo myservo3;
Servo myservo4;
Servo myservo5;
Servo myservo6;
Servo myservo7;
int val0;
int val1;
int val2;
val3 int;
int val4;
val5 int;
int para el cálculo de ángulos
int d, i, n, s, o, t;
void setup()
{
setpin modo entender el modo de operación
pinMode (ledPin, salida); declarar el LED como salida
pinMode (inPin, entrada); declarar pulsador como entrada
Serial.Begin(9600);
conectar servos
myservo0.Attach(servo0Pin);
myservo1.Attach(servo1Pin);
myservo2.Attach(servo2Pin);
myservo3.Attach(servo3Pin);
myservo4.Attach(servo4Pin);
myservo5.Attach(servo5Pin);
myservo6.Attach(servo6Pin);
myservo7.Attach(servo7Pin);
}
para reducir el efecto de spike
int DÚltimo nlast, ilast, sÚltima, olast, tlast;
void loop()
{
valinPin = digitalRead(inPin); leer valor de entrada
Si (valinPin == HIGH) {/ / comprobar si la entrada es alta (tecla fuera)
digitalWrite (ledPin, HIGH); encender LED
while(serial.Available() == 0);
int datos = Serial.read() - '0';
byte a = Serial.read();
byte b = Serial.read(); Sholder izquierdo
c bytes = Serial.read();
f bytes = Serial.read();
g bytes = Serial.read(); lbow izquierda
h byte = Serial.read();
k bytes = Serial.read();
l byte = Serial.read(); W izquierda ronda
bytes m = Serial.read();
p bytes = Serial.read();
q bytes = Serial.read(); W a la izquierda hasta abajo
r bytes = Serial.read();
extra para seis sensores
byte u = Serial.read();
v bytes = Serial.read(); Cabeza redonda
w del byte = Serial.read();
byte x = Serial.read();
byte y = Serial.read(); Cabeza para abajo
z byte = Serial.read();
d = (c-48) + (b-48) * 10 + (a-48) * 100;
d = mapa (d, 100, 210, 20, 130);
d = restringir (d, 20, 130);
i = (h-48) + (g-48) * 10 + (f-48) * 100;
i = mapa (i, 100, 210, 20, 130);
i = restringir (i, 20, 130);
n = (m-48) + (l-48) * 10 + (k-48) * 100;
n = mapa (n, 210, 20, 100, 130);
n = restringir (n, 20, 130);
s = (r-48) + (q-48) * 10 + (p-48) * 100;
s = mapa (s, 100, 210, 20, 130);
s = restringir (s, 20, 130);
extra para seis sensores
o int = (w-48) + (v-48) * 10 + (u-48) * 100;
o = mapa (o, 210, 20, 100, 130);
o = restringir (o, 20, 130);
int t = (z-48) + (y-48) * 10 + (x-48) * 100;
t = mapa (t, 210, 20, 100, 130);
t = restringir (t, 20, 130);
Servo 1
Si (d < 130 & & d > 20)
{
Si (DÚltimo (DLast)-d < = 20)
{
myservo0.Write(d);
int e = 150 - d;
myservo1.Write(e);
Serial.Print(d);
Serial.Print ("\t");
}
}
Servo 2
Si (i < 130 & & i > 20)
{
Si (ilast-i < = 20)
{
myservo2.Write(i);
int j = 150 - i;
myservo3.Write(j);
Serial.Print(i);
Serial.Print ("\t");
}
}
Servo 3
Si (n < 130 & & n > 20)
{
Si (nlast-n < = 20)
{
myservo4.Write(n);
Serial.Print(n);
Serial.Print ("\t");
}
}
Servo 4
Si (s < 130 & & s > 20)
{
Si (sÚltima s < = 20)
{
myservo5.Write(s);
Serial.Print(s);
Serial.Print ("\t");
}
}
Servo 5
Si (o < 130 & & o > 20)
{
Si (olast o < = 20)
{
myservo5.Write(o);
Serial.Print(o);
Serial.Print ("\t");
}
}
Servo 6
Si (t < 130 & & t > 20)
{
Si (tlast-t < = 20)
{
myservo5.Write(t);
Serial.Print(t);
}
}
Serial.println();
Serial.Flush();
int d = (int);
int e = (int) b;
int f = (int) c;
DÚltimo (DLast) = d;
ilast = i;
nlast = n;
sÚltima = s;
Olast = o;
TLAST = t;
Delay(40);
}
otra cosa
{
digitalWrite (ledPin, LOW); Apague el LED
left0 int = 90;
myservo0.Write(left0);
Serial.println(left0);
left1 int = 90;
myservo1.Write(left1);
Serial.println(left1);
izquierda2 int = 90;
myservo2.Write(left2);
Serial.println(left2);
int left3 = 90;
myservo3.Write(left3);
Serial.println(left3);
left4 int = 90;
myservo4.Write(left4);
Serial.println(left4);
int left5 = 90;
myservo5.Write(left5);
Serial.println(left5);
}
}
Drone movilidad control transmisor código:
#include
const filas bytes = 4; cuatro filas
byte const COLS = 4; cuatro columnas
teclas de Char [filas] [COLS] = {}
{'A ',' B', 'C', HABÍA'},
{'E', 'F', 'G', 'H'},
{'I', 'J', 'K', 'L'},
{SOY ', ' N ', 'O', 'P'}
};
byte rowPins [filas] = {3, 2, 1, 0}; conectar a las conexiones de la fila del teclado
byte colPins [COLS] = {7, 6, 5, 4}; conectar a las conexiones de la columna del teclado
Teclado teclado = teclado (makeKeymap(keys), rowPins colPins, filas, COLS);
led0 int = 8;
int led1 = 9;
led2 int = 10;
led3 int = 11;
void setup() {}
Serial.Begin(9600);
pinMode (led0, salida);
pinMode (led1, salida);
pinMode (led2, salida);
pinMode (led3, salida);
}
void loop() {}
clave char = keypad.getKey();
Si (key! = NO_KEY) {}
Serial.println(Key);
Switch (key) {}
caso 'A': / /
digitalWrite (led0, HIGH);
digitalWrite (LED 1, bajo);
digitalWrite (led2, LOW);
digitalWrite (LED 3, bajo);
Serial.println(Key);
Delay(2000);
digitalWrite (led0, HIGH);
digitalWrite (LED 1, HIGH);
digitalWrite (led2, HIGH);
digitalWrite (LED 3, alto);
rotura;
caso 'C': / /
digitalWrite (led0, LOW);
digitalWrite (LED 1, HIGH);
digitalWrite (led2, LOW);
digitalWrite (LED 3, bajo);
Serial.println(Key);
Delay(2000);
digitalWrite (led0, HIGH);
digitalWrite (LED 1, HIGH);
digitalWrite (led2, HIGH);
digitalWrite (LED 3, alto);
rotura;
caso sería ': / /
digitalWrite (LED 3, bajo);
digitalWrite (led2, LOW);
digitalWrite (LED 1, HIGH);
digitalWrite (led0, HIGH);
Serial.println(Key);
Delay(2000);
digitalWrite (led0, HIGH);
digitalWrite (LED 1, HIGH);
digitalWrite (led2, HIGH);
digitalWrite (LED 3, alto);
rotura;
caso 'F': / /
digitalWrite (led0, LOW);
digitalWrite (LED 1, bajo);
digitalWrite (led2, HIGH);
digitalWrite (LED 3, bajo);
Serial.println(Key);
Delay(2000);
digitalWrite (led0, HIGH);
digitalWrite (LED 1, HIGH);
digitalWrite (led2, HIGH);
digitalWrite (LED 3, alto);
rotura;
caso 'H': / /
digitalWrite (led0, HIGH);
digitalWrite (LED 1, bajo);
digitalWrite (led2, HIGH);
digitalWrite (LED 3, bajo);
Serial.println(Key);
Delay(2000);
digitalWrite (led0, HIGH);
digitalWrite (LED 1, HIGH);
digitalWrite (led2, HIGH);
digitalWrite (LED 3, alto);
rotura;
caso soy ': / /
digitalWrite (led0, LOW);
digitalWrite (LED 1, HIGH);
digitalWrite (led2, HIGH);
digitalWrite (LED 3, bajo);
Serial.println(Key);
Delay(2000);
digitalWrite (led0, HIGH);
digitalWrite (LED 1, HIGH);
digitalWrite (led2, HIGH);
digitalWrite (LED 3, alto);
rotura;
caso ' o ': / /
digitalWrite (led0, HIGH);
digitalWrite (LED 1, HIGH);
digitalWrite (led2, HIGH);
digitalWrite (LED 3, bajo);
Serial.println(Key);
Delay(2000);
digitalWrite (led0, HIGH);
digitalWrite (LED 1, HIGH);
digitalWrite (led2, HIGH);
digitalWrite (LED 3, alto);
rotura;
}
}
}
Código de receptor de control de movilidad Drone:
int b0;
int b1;
int b2;
int b3;
el número de pin pulsador
const int mo0 = 6;
const int mo1 = 7;
const int mo2 = 8;
const int mo3 = 9;
const int mo4 = 10;
const int mo5 = 11;
const int izquierda = 12;
const int derecha = 13;
el número de los pines del LED
va a cambiar las variables:
variable para lectura del estado del pulsador
const int ledPin = A0;
void setup() {}
Inicializa el pin LED como salida:
pinMode (b0, entrada);
pinMode (b1, entrada);
pinMode (b2, entrada);
pinMode (b3, entrada);
pinMode (mo0, salida);
pinMode (mo1, salida);
pinMode (mo2, salida);
pinMode (mo3, salida);
pinMode (mo4, salida);
pinMode (mo5, salida);
pinMode (a la izquierda, salida);
pinMode (derecha, salida);
pinMode (ledPin, salida);
Serial.Begin(9600);
inicializar el perno pulsador como entrada:
}
void loop() {}
leer el estado del pulsador valor:
B0 = digitalRead(2);
B1 = digitalRead(3);
B2 = digitalRead(4);
B3 = digitalRead(5);
comprobar si el pulsador está presionado.
Si es así, el buttonState es alta:
Si (b0 == alto & & b1 == baja & & b2 == baja & & b3 == LOW) {/ / INF
encender LED:
digitalWrite (a la izquierda, baja);
digitalWrite (derecha, baja);
digitalWrite (mo4, HIGH);
digitalWrite (mo5, LOW);
Serial.println ("doun motor");
Delay(16000);
digitalWrite (mo4, LOW);
digitalWrite (mo5, LOW);
digitalWrite (a la izquierda, baja);
digitalWrite (derecha, baja);
Serial.println("Done");
}
else if (b0 == baja & & b1 == alto & & b2 == baja & & b3 == LOW) {/ / fwd
encender LED:
digitalWrite (a la izquierda, baja);
digitalWrite (derecha, baja);
digitalWrite (mo0, HIGH);
digitalWrite (mo1, LOW);
digitalWrite (mo3, HIGH);
digitalWrite (mo2, LOW);
Serial.println("FWD");
}
else if (b0 == alta & & b1 == alto & & b2 == baja & & b3 == LOW) {/ /
encender LED:
analogWrite (ledPin, HIGH);
Serial.println("Light");
}
else if (b0 == baja & & b1 == baja & & b2 == alta & & b3 == LOW) {/ / derecho
digitalWrite (a la izquierda, baja);
digitalWrite (derecha, baja);
digitalWrite (mo0, HIGH);
digitalWrite (mo1, LOW);
digitalWrite (mo2, HIGH);
digitalWrite (mo3, LOW);
Serial.println("Right");
}
else if (b0 == alta & & b1 == baja & & b2 == HIGH & & b3 == LOW) {/ / izquierda
encender LED:
digitalWrite (a la izquierda, baja);
digitalWrite (derecha, baja);
digitalWrite (mo1, HIGH);
digitalWrite (mo0, LOW);
digitalWrite (mo3, HIGH);
digitalWrite (mo2, LOW);
Serial.println("left");
}
else if (b0 == baja & & b1 == alta & & b2 == alto & & b3 == LOW) {/ / HUM
encender LED:
digitalWrite (a la izquierda, baja);
digitalWrite (derecha, baja);
digitalWrite (mo4, LOW);
digitalWrite (mo5, HIGH);
Serial.println ("motor para arriba");
Delay(16000);
digitalWrite (mo4, LOW);
digitalWrite (mo5, LOW);
digitalWrite (izquierda, arriba);
digitalWrite (derecha, alto);
Serial.println("Done"); }
else if (b0 == alta & & b1 == HIGH & & b2 == alto & & b3 == LOW) {/ /
encender LED:
digitalWrite (a la izquierda, baja);
digitalWrite (derecha, baja);
digitalWrite (mo1, HIGH);
digitalWrite (mo0, LOW);
digitalWrite (mo2, HIGH);
digitalWrite (mo3, LOW);
Serial.println("back");
}
Else {}
Apagar LED:
digitalWrite (izquierda, arriba);
digitalWrite (derecha, alto);
digitalWrite (mo0, LOW);
digitalWrite (mo1, LOW);
digitalWrite (mo3, LOW);
digitalWrite (mo2, LOW);
digitalWrite (mo4, LOW);
digitalWrite (mo5, LOW);
analogWrite (ledPin, LOW);
Serial.println("STOP");
}
}