Stap 6: Code voor robot
Jongens hier hebben we gebruik gemaakt van verschillende Arduino UNO elk voor verschillende onderdelen voor de werking van robot dus wees alert tijdens het branden van code erin.
Rechter- en linkerhand controlecode zender:
int sen0 = A0;
int sen1 = a1 worden verkregen;
int sen2 = A2;
int sen3 = 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);
int val3 = 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);
}
Vinger controle door middel van flex sensor zender code:
int sen0 = A0;
int sen1 = a1 worden verkregen;
int sen2 = A2;
int sen3 = 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);
int val3 = 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);
}
Vinger controle door middel van flex sensor ontvanger code:
#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;
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);
byte een = Serial.read();
byte b = Serial.read(); schouder links
byte c = Serial.read();
byte d = Serial.read();
byte e = Serial.read(); lbow links
byte f = 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);
}
Rechter- en linkerhand controlecode ontvanger:
#include
int ledPin = 13; Kies de pin voor de 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;
int val3;
int val4;
int val5;
int voor berekening van hoeken
int d, i, n, s, o, t;
VOID Setup
{
setpin modus te begrijpen de bewerkingsmodus
pinMode (ledPin, OUTPUT); declareren van LED als de uitgang
pinMode (inPin, INPUT); drukknop declareren als input
Serial.begin(9600);
koppelen van servo 's
myservo0.attach(servo0Pin);
myservo1.attach(servo1Pin);
myservo2.attach(servo2Pin);
myservo3.attach(servo3Pin);
myservo4.attach(servo4Pin);
myservo5.attach(servo5Pin);
myservo6.attach(servo6Pin);
myservo7.attach(servo7Pin);
}
aan de Prikker effect verminderen
int dlast, nlast, ilast, slast, olast, tlast;
void loop
{
valinPin = digitalRead(inPin); lezen van de invoerwaarde
Als (valinPin == HIGH) {/ / controleren als de ingang hoog (knop uitgebracht is)
digitalWrite (ledPin, hoge); Zet LED ON
while(Serial.available() == 0);
int gegevens = Serial.read() - '0';
byte een = Serial.read();
byte b = Serial.read(); schouder links
byte c = Serial.read();
byte f = Serial.read();
byte g = Serial.read(); lbow links
byte h = Serial.read();
byte k = Serial.read();
byte l = Serial.read(); W links ronde
byte m = Serial.read();
byte p = Serial.read();
byte q = Serial.read(); W links omhoog omlaag
byte r = Serial.read();
extra voor zes sensoren
byte u = Serial.read();
byte v = Serial.read(); Hoofd ronde
byte w = Serial.read();
byte x = Serial.read();
byte y = Serial.read(); Hoofd omhoog naar beneden
byte z = Serial.read();
d = (c-48) + (b-48) * 10 + (a-48) * 100;
d = kaart (d, 100, 130, 210, 20);
d = beperken (d, 20, 130);
Ik = (h-48) + (g-48) * 10 + (f-48) * 100;
Ik kaart = (ik, 100, 130, 210, 20);
Ik = beperken (i, 20, 130);
n = (m-48) + (l-48) * 10 + (k-48) * 100;
n = kaart (n, 100, 130, 210, 20);
n = beperken (n, 20, 130);
s = (r-48) + (q-48) * 10 + (p-48) * 100;
s = kaart (s, 100, 130, 210, 20);
s = beperken (s, 20, 130);
extra voor zes sensoren
int o = (w-48) + (v-48) * 10 + (u-48) * 100;
o = kaart (o, 100, 130, 210, 20);
o = beperken (o, 20, 130);
int t = (z-48) + (y-48) * 10 + (x-48) * 100;
t = kaart (t, 100, 130, 210, 20);
t = beperken (t, 20, 130);
Servo 1
Als (d < 130 & & d > 20)
{
Als (dlast-d < = 20)
{
myservo0.write(d);
int e = 150 - d;
myservo1.write(e);
Serial.Print(d);
Serial.Print ("\t");
}
}
Servo 2
Als (ik < 130 & & ik > 20)
{
Als (ilast-i < = 20)
{
myservo2.write(i);
int j = 150 - i;
myservo3.write(j);
Serial.Print(i);
Serial.Print ("\t");
}
}
Servo 3
Als (n < 130 & & n > 20)
{
Als (nlast-n < = 20)
{
myservo4.write(n);
Serial.Print(n);
Serial.Print ("\t");
}
}
Servo 4
Als (s < 130 & & s > 20)
{
Als (slast-s < = 20)
{
myservo5.write(s);
Serial.Print(s);
Serial.Print ("\t");
}
}
Servo 5
Als (o < 130 & & o > 20)
{
Als (olast-o < = 20)
{
myservo5.write(o);
Serial.Print(o);
Serial.Print ("\t");
}
}
Servo 6
Als (t < 130 & & t > 20)
{
Als (tlast-t < = 20)
{
myservo5.write(t);
Serial.Print(t);
}
}
Serial.println();
Serial.Flush();
int d = (int);
int e = (int) b;
int f = c (int);
DLast = d;
ilast = i;
nlast = n;
slast = s;
olast = o;
tlast = t;
delay(40);
}
anders
{
digitalWrite (ledPin, laag); uitschakelen 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);
}
}
Drone mobiliteit controlecode zender:
#include
Const byte rijen = 4; vier rijen
Const byte COLS = 4; vier kolommen
char toetsen [ROWS] [COLS] = {}
{'A ',' B', 'C', HAD'},
{'E', 'F', 'G', 'H'},
{'I', 'J', 'K', 'L'},
{BEN "," N ", 'O', 'P'}
};
byte rowPins [ROWS] = {3, 2, 1, 0}; verbinding maken met de pinouts rij van het toetsenbord
byte colPins [COLS] = {7, 6, 5, 4}; verbinding maken met de kolom pinouts van het klavier
Toetsenbord toetsenbord toetsenbord = (makeKeymap(keys), rowPins, colPins, rijen, COLS);
int led0 = 8;
int led1 = 9;
int led2 = 10;
int led3 = 11;
VOID Setup {}
Serial.begin(9600);
pinMode (led0, OUTPUT);
pinMode (led1, OUTPUT);
pinMode (led2, OUTPUT);
pinMode (led3, OUTPUT);
}
void loop {}
char sleutel = keypad.getKey();
Als (sleutel! = NO_KEY) {}
Serial.println(Key);
schakelen (sleutel) {}
Case "A": / /
digitalWrite (led0, hoge);
digitalWrite (led1, laag);
digitalWrite (led2, laag);
digitalWrite (led3, laag);
Serial.println(Key);
delay(2000);
digitalWrite (led0, hoge);
digitalWrite (led1, hoge);
digitalWrite (led2, hoge);
digitalWrite (led3, hoge);
breken;
Case "C": / /
digitalWrite (led0, laag);
digitalWrite (led1, hoge);
digitalWrite (led2, laag);
digitalWrite (led3, laag);
Serial.println(Key);
delay(2000);
digitalWrite (led0, hoge);
digitalWrite (led1, hoge);
digitalWrite (led2, hoge);
digitalWrite (led3, hoge);
breken;
geval zou ': / /
digitalWrite (led3, laag);
digitalWrite (led2, laag);
digitalWrite (led1, hoge);
digitalWrite (led0, hoge);
Serial.println(Key);
delay(2000);
digitalWrite (led0, hoge);
digitalWrite (led1, hoge);
digitalWrite (led2, hoge);
digitalWrite (led3, hoge);
breken;
kast 'F': / /
digitalWrite (led0, laag);
digitalWrite (led1, laag);
digitalWrite (led2, hoge);
digitalWrite (led3, laag);
Serial.println(Key);
delay(2000);
digitalWrite (led0, hoge);
digitalWrite (led1, hoge);
digitalWrite (led2, hoge);
digitalWrite (led3, hoge);
breken;
kast 'H': / /
digitalWrite (led0, hoge);
digitalWrite (led1, laag);
digitalWrite (led2, hoge);
digitalWrite (led3, laag);
Serial.println(Key);
delay(2000);
digitalWrite (led0, hoge);
digitalWrite (led1, hoge);
digitalWrite (led2, hoge);
digitalWrite (led3, hoge);
breken;
geval ben ': / /
digitalWrite (led0, laag);
digitalWrite (led1, hoge);
digitalWrite (led2, hoge);
digitalWrite (led3, laag);
Serial.println(Key);
delay(2000);
digitalWrite (led0, hoge);
digitalWrite (led1, hoge);
digitalWrite (led2, hoge);
digitalWrite (led3, hoge);
breken;
geval ' o ': / /
digitalWrite (led0, hoge);
digitalWrite (led1, hoge);
digitalWrite (led2, hoge);
digitalWrite (led3, laag);
Serial.println(Key);
delay(2000);
digitalWrite (led0, hoge);
digitalWrite (led1, hoge);
digitalWrite (led2, hoge);
digitalWrite (led3, hoge);
breken;
}
}
}
Drone mobiliteit controlecode ontvanger:
int b0;
int b1;
int b2;
int b3;
het nummer van de drukknop pin
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 links = 12;
Const int rechts = 13;
het nummer van de LED-pin
variabelen zal veranderen:
variabele voor het lezen van de drukknop status
Const int ledPin = A0;
VOID Setup {}
Initialiseer de LED-pin als uitgang:
pinMode (b0, INPUT);
pinMode (b1, INPUT);
pinMode (b2, INPUT);
pinMode (b3, INPUT);
pinMode (mo0, OUTPUT);
pinMode (mo1, OUTPUT);
pinMode (mo2, OUTPUT);
pinMode (mo3, OUTPUT);
pinMode (mo4, OUTPUT);
pinMode (mo5, OUTPUT);
pinMode (links, uitvoer);
pinMode (rechts, uitvoer);
pinMode (ledPin, OUTPUT);
Serial.begin(9600);
Initialiseer de drukknop pin als input:
}
void loop {}
Lees de stand van de drukknop waarde:
B0 = digitalRead(2);
B1 = digitalRead(3);
B2 = digitalRead(4);
B3 = digitalRead(5);
Controleer als de drukknop ingedrukt is.
Als het is, is de buttonState hoog:
Als (b0 == HIGH & & b1 == LOW & & b2 == LOW & & b3 == LOW) {/ / INF
LED inschakelen:
digitalWrite (links, laag);
digitalWrite (rechts, laag);
digitalWrite (mo4, hoge);
digitalWrite (mo5, laag);
Serial.println ("motor doun");
delay(16000);
digitalWrite (mo4, laag);
digitalWrite (mo5, laag);
digitalWrite (links, laag);
digitalWrite (rechts, laag);
Serial.println("Done");
}
anders als (b0 == LOW & & b1 == HIGH & & b2 == LOW & & b3 == LOW) {/ / fwd
LED inschakelen:
digitalWrite (links, laag);
digitalWrite (rechts, laag);
digitalWrite (mo0, hoge);
digitalWrite (mo1, laag);
digitalWrite (mo3, hoge);
digitalWrite (mo2, laag);
Serial.println("FWD");
}
anders als (b0 == HIGH & & b1 == HIGH & & b2 == LOW & & b3 == LOW) {/ /
LED inschakelen:
analogWrite (ledPin, hoge);
Serial.println("Light");
}
anders als (b0 == LOW & & b1 == LOW & & b2 == HIGH & & b3 == LOW) {/ / rechts
digitalWrite (links, laag);
digitalWrite (rechts, laag);
digitalWrite (mo0, hoge);
digitalWrite (mo1, laag);
digitalWrite (mo2, hoge);
digitalWrite (mo3, laag);
Serial.println("right");
}
anders als (b0 == HIGH & & b1 == LOW & & b2 == HIGH & & b3 == LOW) {/ / links
LED inschakelen:
digitalWrite (links, laag);
digitalWrite (rechts, laag);
digitalWrite (mo1, hoge);
digitalWrite (mo0, laag);
digitalWrite (mo3, hoge);
digitalWrite (mo2, laag);
Serial.println("left");
}
anders als (b0 == LOW & & b1 == HIGH & & b2 == HIGH & & b3 == LOW) {/ / HUM
LED inschakelen:
digitalWrite (links, laag);
digitalWrite (rechts, laag);
digitalWrite (mo4, laag);
digitalWrite (mo5, hoge);
Serial.println ("motor UP");
delay(16000);
digitalWrite (mo4, laag);
digitalWrite (mo5, laag);
digitalWrite (links, hoog);
digitalWrite (rechts, hoge);
Serial.println("Done"); }
anders als (b0 == HIGH & & b1 == HIGH & & b2 == HIGH & & b3 == LOW) {/ / terug
LED inschakelen:
digitalWrite (links, laag);
digitalWrite (rechts, laag);
digitalWrite (mo1, hoge);
digitalWrite (mo0, laag);
digitalWrite (mo2, hoge);
digitalWrite (mo3, laag);
Serial.println("back");
}
else {}
LED uitschakelen:
digitalWrite (links, hoog);
digitalWrite (rechts, hoge);
digitalWrite (mo0, laag);
digitalWrite (mo1, laag);
digitalWrite (mo3, laag);
digitalWrite (mo2, laag);
digitalWrite (mo4, laag);
digitalWrite (mo5, laag);
analogWrite (ledPin, laag);
Serial.println("Stop");
}
}