Étape 6: Code pour robot
Les gars ici, nous avons utilisé plusieurs Arduino UNO chacune pour les différentes parties pour le travail du robot alors soyez alerte tout en brûlant le code dedans.
Droite et gauche émetteur code de contrôle :
int sen0 = A0 ;
sen1 int = A1 ;
sen2 int = A2 ;
sen3 int = A3 ;
int sen4 = A4 ;
int sen5 = A5 ;
void setup()
{
Serial.Begin(9600) ;
}
void loop()
{
int val0 = map(analogRead(sen0), 260, 450, 100, 210) ;
Serial.Print(val0) ;
int val1 = map(analogRead(sen1), 260, 450, 100, 210) ;
Serial.Print(val1) ;
int val2 = map(analogRead(sen2), 260, 450, 100, 210) ;
Serial.Print(val2) ;
val3 int = map(analogRead(sen3), 260, 450, 100, 210) ;
Serial.Print(val3) ;
int val4 = map(analogRead(sen4), 260, 450, 100, 210) ;
Serial.Print(Val4) ;
int val5 = map(analogRead(sen5), 260, 450, 100, 210) ;
Serial.Print(Val5) ;
Delay(50) ;
}
Contrôle de doigt grâce à flex code capteur de l’émetteur :
int sen0 = A0 ;
sen1 int = A1 ;
sen2 int = A2 ;
sen3 int = A3 ;
int sen4 = A4 ;
int sen5 = A5 ;
void setup()
{
Serial.Begin(9600) ;
}
void loop()
{
int val0 = 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) ;
int val5 = map(analogRead(sen5), 580, 650, 0, 9) ;
Serial.Print(Val5) ;
Delay(50) ;
}
Contrôle de doigt grâce à flex code récepteur capteur :
#include
int servo0Pin = 2 ;
int servo1Pin = 3 ;
int servo2Pin = 4 ;
int servo3Pin = 5 ;
int servo4Pin = 6 ;
int servo5Pin = 7 ;
val0 int ;
int val1 ;
val2 int ;
int val3 ;
int val4 ;
int val5 ;
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) ;
octet un = Serial.read() ;
b octets = Serial.read() ; Sholder gauche
c octets = Serial.read() ;
octet d = Serial.read() ;
e octets = Serial.read() ; lbow gauche
octet f = Serial.read() ;
g int = 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) ;
}
Droite et gauche récepteur code de contrôle :
#include
int ledPin = 13 ; choisir l’axe de la 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 ;
val0 int ;
int val1 ;
val2 int ;
int val3 ;
int val4 ;
int val5 ;
int pour le calcul des angles
int d, i, n, s, o, t ;
void setup()
{
setpin mode de comprendre le mode de fonctionnement
pinMode (ledPin, sortie) ; déclarer les LED en sortie
pinMode (inPin, entrée) ; déclarer les touche comme entrée
Serial.Begin(9600) ;
fixation des 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) ;
}
pour réduire l’effet de pointe
nlast, ilast, slast, olast, int dlast, DAU ;
void loop()
{
valinPin = digitalRead(inPin) ; lire la valeur d’entrée
Si (valinPin == HIGH) {/ / vérifier si l’entrée est haute (relâchez le bouton)
digitalWrite (ledPin, HIGH) ; allumer la LED
while(Serial.available() == 0) ;
données int = Serial.read() - « 0 » ;
octet un = Serial.read() ;
b octets = Serial.read() ; Sholder gauche
c octets = Serial.read() ;
octet f = Serial.read() ;
g octet = Serial.read() ; lbow gauche
h octets = Serial.read() ;
k octets = Serial.read() ;
l octets = Serial.read() ; W à gauche rond
m octets = Serial.read() ;
octet p = Serial.read() ;
octet q = Serial.read() ; W a laissé vers le bas jusqu'à
octet r = Serial.read() ;
extra pour six capteurs
u octet = Serial.read() ;
octet v = Serial.read() ; Tête ronde
octet w = Serial.read() ;
octet x = Serial.read() ;
octet y = Serial.read() ; Tête vers le haut vers le bas
octet z = Serial.read() ;
d = (c-48) + (b-48) * 10 + (a-48) * 100 ;
d = carte (d, 210, 20, 100, 130) ;
d = contraindre (d, 20, 130) ;
J’ai = (h-48) + (g-48) * 10 + (f-48) * 100 ;
J’ai = carte (i, 210, 20, 100, 130) ;
J’ai = contraindre (i, 20, 130) ;
n = (m-48) + (l-48) * 10 + (k-48) * 100 ;
n = carte (n, 210, 20, 100, 130) ;
n = contraindre (n, 20, 130) ;
s = (r-48) + (q-48) * 10 + (p-48) * 100 ;
s = map (s, 210, 20, 100, 130) ;
s = contrainte (s, 20, 130) ;
extra pour six capteurs
o int = (w-48) + (v-48) * 10 + (u-48) * 100 ;
o = carte (o, 210, 20, 100, 130) ;
o = contraindre (o, 20, 130) ;
int t = (z-48) + (y-48) * 10 + (x-48) * 100 ;
t = carte (t, 210, 20, 100, 130) ;
t = contraindre (t, 20, 130) ;
Servo 1
Si (d < 130 & & d > 20)
{
Si (dlast-d < = 20)
{
myservo0.Write(d) ;
int e = 150 - d ;
myservo1.Write(e) ;
Serial.Print(d) ;
Serial.Print ("\t") ;
}
}
Servo 2
Si (j’ai < 130 & & j’ai > 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 (slast-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 (DAU-t < = 20)
{
myservo5.Write(t) ;
Serial.Print(t) ;
}
}
Serial.println() ;
Serial.Flush() ;
int d = (int) ;
int e = (int) b ;
int f = (int) c ;
DLast = d ;
ilast = i ;
nlast = n ;
slast = s ;
olast = o ;
DAU = t ;
Delay(40) ;
}
d’autre
{
digitalWrite (ledPin, basse) ; éteindre la LED
int left0 = 90 ;
myservo0.Write(left0) ;
Serial.println(left0) ;
int left1 = 90 ;
myservo1.Write(left1) ;
Serial.println(left1) ;
int left2 = 90 ;
myservo2.Write(Left2) ;
Serial.println(Left2) ;
int left3 = 90 ;
myservo3.Write(left3) ;
Serial.println(left3) ;
int left4 = 90 ;
myservo4.Write(left4) ;
Serial.println(left4) ;
int left5 = 90 ;
myservo5.Write(left5) ;
Serial.println(left5) ;
}
}
Code de l’émetteur de contrôle de drone mobilité :
#include
const byte rangs = 4 ; quatre rangées
const byte COLS = 4 ; quatre colonnes
touches de char [lignes] [colonnes] = {}
{"UN","B', « C », AVAIT"},
{« E », « F », « G », « H »},
{« I », « J », « K », « L »},
{ME », « N », « O', 'P'}
};
rowPins Byte [rangs] = {2, 3, 0, 1} ; se connecter à la ligne de brochage du clavier
colPins Byte [CDL] = {6, 7, 4, 5} ; se connecter à la liste des broches colonne du clavier
Clavier clavier = clavier (makeKeymap(keys), rowPins, colPins, lignes, colonnes) ;
led0 int = 8 ;
led1 int = 9 ;
led2 int = 10 ;
led3 int = 11 ;
void setup() {}
Serial.Begin(9600) ;
pinMode (led0, sortie) ;
pinMode (led1, sortie) ;
pinMode (led2, sortie) ;
pinMode (DEL3, sortie) ;
}
void loop() {}
clé char = keypad.getKey() ;
Si (touche! = NO_KEY) {}
Serial.println(Key) ;
commutateur (clé) {}
affaire « A »: / /
digitalWrite (led0, HIGH) ;
digitalWrite (led1, faible) ;
digitalWrite (led2, faible) ;
digitalWrite (DEL3, faible) ;
Serial.println(Key) ;
Delay(2000) ;
digitalWrite (led0, HIGH) ;
digitalWrite (led1, HIGH) ;
digitalWrite (led2, HIGH) ;
digitalWrite (DEL3, HIGH) ;
rupture ;
case « C »: / /
digitalWrite (led0, faible) ;
digitalWrite (led1, HIGH) ;
digitalWrite (led2, faible) ;
digitalWrite (DEL3, faible) ;
Serial.println(Key) ;
Delay(2000) ;
digitalWrite (led0, HIGH) ;
digitalWrite (led1, HIGH) ;
digitalWrite (led2, HIGH) ;
digitalWrite (DEL3, HIGH) ;
rupture ;
affaire aurait ": / /
digitalWrite (DEL3, faible) ;
digitalWrite (led2, faible) ;
digitalWrite (led1, HIGH) ;
digitalWrite (led0, HIGH) ;
Serial.println(Key) ;
Delay(2000) ;
digitalWrite (led0, HIGH) ;
digitalWrite (led1, HIGH) ;
digitalWrite (led2, HIGH) ;
digitalWrite (DEL3, HIGH) ;
rupture ;
case « F »: / /
digitalWrite (led0, faible) ;
digitalWrite (led1, faible) ;
digitalWrite (led2, HIGH) ;
digitalWrite (DEL3, faible) ;
Serial.println(Key) ;
Delay(2000) ;
digitalWrite (led0, HIGH) ;
digitalWrite (led1, HIGH) ;
digitalWrite (led2, HIGH) ;
digitalWrite (DEL3, HIGH) ;
rupture ;
case « H »: / /
digitalWrite (led0, HIGH) ;
digitalWrite (led1, faible) ;
digitalWrite (led2, HIGH) ;
digitalWrite (DEL3, faible) ;
Serial.println(Key) ;
Delay(2000) ;
digitalWrite (led0, HIGH) ;
digitalWrite (led1, HIGH) ;
digitalWrite (led2, HIGH) ;
digitalWrite (DEL3, HIGH) ;
rupture ;
cas suis ': / /
digitalWrite (led0, faible) ;
digitalWrite (led1, HIGH) ;
digitalWrite (led2, HIGH) ;
digitalWrite (DEL3, faible) ;
Serial.println(Key) ;
Delay(2000) ;
digitalWrite (led0, HIGH) ;
digitalWrite (led1, HIGH) ;
digitalWrite (led2, HIGH) ;
digitalWrite (DEL3, HIGH) ;
rupture ;
cas ' o ': / /
digitalWrite (led0, HIGH) ;
digitalWrite (led1, HIGH) ;
digitalWrite (led2, HIGH) ;
digitalWrite (DEL3, faible) ;
Serial.println(Key) ;
Delay(2000) ;
digitalWrite (led0, HIGH) ;
digitalWrite (led1, HIGH) ;
digitalWrite (led2, HIGH) ;
digitalWrite (DEL3, HIGH) ;
rupture ;
}
}
}
Code de récepteur de contrôle de mobilité de drone :
int b0 ;
int b1 ;
int b2 ;
int b3 ;
le nombre de la tige poussoir
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 gauche = 12 ;
const int droite = 13 ;
le nombre de l’axe de la LED
variables vont changer :
variable pour la lecture de l’état de bouton poussoir
const int ledPin = A0 ;
void setup() {}
initialiser les broches de la LED en tant que sortie :
pinMode (b0, entrée) ;
pinMode (b1, entrée) ;
pinMode (b2, entrée) ;
pinMode (b3, entrée) ;
pinMode (mo0, sortie) ;
pinMode (mo1, sortie) ;
pinMode (mo2, sortie) ;
pinMode (mo3, sortie) ;
pinMode (mo4, sortie) ;
pinMode (mo5, sortie) ;
pinMode (à gauche, sortie) ;
pinMode (à droite, sortie) ;
pinMode (ledPin, sortie) ;
Serial.Begin(9600) ;
initialiser la tige poussoir comme entrée :
}
void loop() {}
lire l’état de la valeur du bouton poussoir :
B0 = digitalRead(2) ;
B1 = digitalRead(3) ;
B2 = digitalRead(4) ;
B3 = digitalRead(5) ;
Vérifiez si le bouton est appuyé.
Si c’est le cas, le buttonState est haute :
Si (b0 == HIGH & & b1 == LOW & & b2 == LOW & & b3 == faible) {/ / INF
allumer la LED :
digitalWrite (gauche, en bas) ;
digitalWrite (à droite, bas) ;
digitalWrite (mo4, HIGH) ;
digitalWrite (mo5, faible) ;
Serial.println ("moteur doun ») ;
Delay(16000) ;
digitalWrite (mo4, faible) ;
digitalWrite (mo5, faible) ;
digitalWrite (gauche, en bas) ;
digitalWrite (à droite, bas) ;
Serial.println("Done") ;
}
ElseIf (b0 == LOW & & b1 == HIGH & & b2 == LOW & & b3 == faible) {/ / fwd
allumer la LED :
digitalWrite (gauche, en bas) ;
digitalWrite (à droite, bas) ;
digitalWrite (mo0, HIGH) ;
digitalWrite (mo1, faible) ;
digitalWrite (mo3, HIGH) ;
digitalWrite (mo2, faible) ;
Serial.println("FWD") ;
}
ElseIf (b0 == HIGH & & b1 == HIGH & & b2 == LOW & & b3 == faible) {/ /
allumer la LED :
analogWrite (ledPin, HIGH) ;
Serial.println("Light") ;
}
ElseIf (b0 == LOW & & b1 == LOW & & b2 == HIGH & & b3 == faible) {/ / droite
digitalWrite (gauche, en bas) ;
digitalWrite (à droite, bas) ;
digitalWrite (mo0, HIGH) ;
digitalWrite (mo1, faible) ;
digitalWrite (mo2, HIGH) ;
digitalWrite (mo3, faible) ;
Serial.println("Right") ;
}
ElseIf (b0 == HIGH & & b1 == LOW & & b2 == HIGH & & b3 == faible) {/ / gauche
allumer la LED :
digitalWrite (gauche, en bas) ;
digitalWrite (à droite, bas) ;
digitalWrite (mo1, HIGH) ;
digitalWrite (mo0, faible) ;
digitalWrite (mo3, HIGH) ;
digitalWrite (mo2, faible) ;
Serial.println("left") ;
}
ElseIf (b0 == LOW & & b1 == HIGH & & b2 == HIGH & & b3 == faible) {/ / HUM
allumer la LED :
digitalWrite (gauche, en bas) ;
digitalWrite (à droite, bas) ;
digitalWrite (mo4, faible) ;
digitalWrite (mo5, HIGH) ;
Serial.println ("moteur vers le haut") ;
Delay(16000) ;
digitalWrite (mo4, faible) ;
digitalWrite (mo5, faible) ;
digitalWrite (gauche, haut) ;
digitalWrite (à droite, haut) ;
Serial.println("Done") ; }
ElseIf (b0 == HIGH & & b1 == HIGH & & b2 == HIGH & & b3 == faible) {/ / retour
allumer la LED :
digitalWrite (gauche, en bas) ;
digitalWrite (à droite, bas) ;
digitalWrite (mo1, HIGH) ;
digitalWrite (mo0, faible) ;
digitalWrite (mo2, HIGH) ;
digitalWrite (mo3, faible) ;
Serial.println("Back") ;
}
else {}
désactiver la LED :
digitalWrite (gauche, haut) ;
digitalWrite (à droite, haut) ;
digitalWrite (mo0, faible) ;
digitalWrite (mo1, faible) ;
digitalWrite (mo3, faible) ;
digitalWrite (mo2, faible) ;
digitalWrite (mo4, faible) ;
digitalWrite (mo5, faible) ;
analogWrite (ledPin, basse) ;
Serial.println("Stop") ;
}
}