Robotyaga Arduino - 3

Mivel az utolsó bejegyzés (www.drive2.ru/b/2540618/) a robot megváltozott - vált egy teljes körű négy kerék. És lehetséges, hogy próbálja ki a legegyszerűbb dolog, amit - lovagolni a „program”.

A legegyszerűbb dolog, ami eszébe jut -, hogy írni „nyolc”, „tér”, „körök” ...
Nincs ok, hogy ne próbálja ki!

De mielőtt elkezdi írni, azt tanácsolom, hogy nézd meg:
- az a tény, hogy mi legyen a vázlat;
- milyen kapcsolat van ARDUINO és hogyan lehet használni;
- Mi a PWM.
És valóban ez jó, hogy megismerhetjük a szabályokat a jó ízlés írásakor vázlatok - kiderül ott!
Ehhez először is ajánlom a könyvet Simon Monk „Programozható ARDUINO».

Amellett, hogy ez a könyv is, és meg kell ajánlani a híres „arduinschika” Jeremy Bloom könyv „Tanulás ARDUINO»: www.bhv.ru/books/book.php?id=193070.

Fiam, miután elolvasta a könyvet írt egy egyszerű „sketchik”, hogy az út ROBOTyagu a téren.
„Tér” algoritmus:
- közvetlenül;
- egy balra;
- közvetlenül;
- egy balra;
- közvetlenül;
- egy balra;
- közvetlenül;
- Állj!

felvázolni maga egyszerű:
1. Határozza száma ARDUINO terminálok motorvezérlés - emlékeztetem sofőrünk motorok előrehaladó mozgás parancsokat, hátra, a forgási sebesség által meghatározott külön „csatornák” - mindez, hogy ezt az elején a vázlatot.
Megjegyzés: Következtetések motor meghajtó kapcsolat minden én vázlatok ugyanaz, mint a kapcsolat a legtöbb érzékelők.
2. Beállítás:
- Személyre szabható beállítások Arduino következtetések - határozza meg őket, mint „out» - kimenet.
- írása „algoritmus” robot a téren, mint már említettük, ...
A különlegessége ennek a vázlat, hogy részben üres LOOP! Mert ha teszünk „algoritmus” mozgalom nem a SETUP, ami elég egyszer elején a vázlatot, hanem LOOP -robot Mezőkeresés által mozgatott „tér” beskonechnoooooo ...

vázlat:
[Kód]
// Mi megy a térre
*********************** // Set motorok következtetéseket ********************** ***
int MotorLeftSpeed ​​= 5; // Bal (A), a motor fordulatszám - ENA
int MotorLeftForward = 4; // Bal (A) a motor előre - IN1
int MotorLeftBack = 2; // Bal (A) Motor BACK - IN2
int MotorRightForward = 8; // Jobb (B) motor előre - IN3
int MotorRightBack = 7; // Jobb (B) Motor BACK - IN4
int MotorRightSpeed ​​= 6; // Jobb (B) SPEED motor - ENB

pinMode (MotorRightForward, kimenetet);
pinMode (MotorRightBack, kimenetet);
pinMode (MotorRightSpeed, kimenetet);

// ***************************** Áttérve „tér” ************** *************
digitalWrite (MotorRightForward, HIGH);
digitalWrite (MotorLeftForward, HIGH);
digitalWrite (MotorRightBack, LOW);
digitalWrite (MotorLeftBack, LOW);
analogWrite (MotorRightSpeed, 200);
analogWrite (MotorLeftSpeed, 200);
késleltetés (1000);
>
digitalWrite (MotorRightForward, HIGH);
digitalWrite (MotorLeftForward, LOW);
digitalWrite (MotorRightBack, LOW);
digitalWrite (MotorLeftBack, HIGH);
analogWrite (MotorRightSpeed, 140);
analogWrite (MotorLeftSpeed, 140);
késleltetés (700); // Time „fordulat” - meg kell, hogy hozzanak létre egy speciális robot!
>
digitalWrite (MotorRightForward, HIGH);
digitalWrite (MotorLeftForward, HIGH);
digitalWrite (MotorRightBack, LOW);
digitalWrite (MotorLeftBack, LOW);
analogWrite (MotorRightSpeed, 200);
analogWrite (MotorLeftSpeed, 200);
késleltetés (1000);
>
digitalWrite (MotorRightForward, HIGH);
digitalWrite (MotorLeftForward, LOW);
digitalWrite (MotorRightBack, LOW);
digitalWrite (MotorLeftBack, HIGH);
analogWrite (MotorRightSpeed, 140);
analogWrite (MotorLeftSpeed, 140);
késleltetés (700); // Time „fordulat” - meg kell, hogy hozzanak létre egy speciális robot!
>
digitalWrite (MotorRightForward, HIGH);
digitalWrite (MotorLeftForward, HIGH);
digitalWrite (MotorRightBack, LOW);
digitalWrite (MotorLeftBack, LOW);
analogWrite (MotorRightSpeed, 200);
analogWrite (MotorLeftSpeed, 200);
késleltetés (1000);
>
digitalWrite (MotorRightForward, HIGH);
digitalWrite (MotorLeftForward, LOW);
digitalWrite (MotorRightBack, LOW);
digitalWrite (MotorLeftBack, HIGH);
analogWrite (MotorRightSpeed, 140);
analogWrite (MotorLeftSpeed, 140);
késleltetés (700); // Time „fordulat” - meg kell, hogy hozzanak létre egy speciális robot!
>
digitalWrite (MotorRightForward, HIGH);
digitalWrite (MotorLeftForward, HIGH);
digitalWrite (MotorRightBack, LOW);
digitalWrite (MotorLeftBack, LOW);
analogWrite (MotorRightSpeed, 200);
analogWrite (MotorLeftSpeed, 200);
késleltetés (1000);
>
digitalWrite (MotorRightForward, HIGH);
digitalWrite (MotorLeftForward, HIGH);
digitalWrite (MotorRightBack, HIGH);
digitalWrite (MotorLeftBack, HIGH);
analogWrite (MotorRightSpeed, 0);
analogWrite (MotorLeftSpeed, 0);
>
>
// ***************************** ciklus ****************** ***************
void loop ()
// Csak üres - ciklus nem hajtódik végre
>
[/ Code]

Az „ideális” kéne valami ilyesmit:

De a való életben ... a robot lesz mindenre képes ... „gyémánt”, „trapéz”, „háromszög”, de nem „tér”!
És én annyira ... és mit látsz - ez az eredménye a sok próbálkozás, és úgy!

Sok oka van!
Kezdve az akkumulátort!
Az akkumulátor kapacitása fokozatosan csökken ... és ha azt hitted, hogy a robot már létrehozott ... pár utak, elkezd „nem dovorachivat» a sarkokban ... mikor cseréljük ki az akkumulátort kezd »adja át« ...
Ezért a vázlatot vonal „idő” kanyarodás:
késleltetés (700); // Time „fordulat” - meg kell, hogy hozzanak létre egy speciális robot!
FIGYELEM! Idő zárójelben egyedileg kell minden egyes robot!

De ez még nem minden! Még mindig vannak problémák ...
A tapadási tényező ...
A ROBOTYAGA, hogy a tartály típus, de ez csak egy nagyon könnyű és gumi kerekek részt különböző módokon való takaróval ... és nincs segítség - megrekedt!

Ja, és még egy ok, - a különbség a jellemzői a motorokat!
Nem minden motor egyformán „hasznos” ... Az okok - talán ő született, így ... talán ha forrasztott vezetéket a motor túlmelegedett, és a kefe költözött ...
De ez a probléma is megoldható - a motorcsere.

Összefoglaló.
Köszönhetően annak jellemzői ez a robot nem „minőségi”, hogy menjen a programot.
De ez nem jelenti azt, hogy ne próbálja meg, ez a vázlat!
Az első - ez az egyik legegyszerűbb módja, hogy feltámassza a robot!
A második - ez a legegyszerűbb vázlat, amely megmutatja, hogyan kell ellenőrizni a motorokat.
Harmadszor - ez a játék a gyermek - a bevezetése a folyamatba - ad neki egy feladat, hogy kiválassza a „idő” a forgatás, ami viszont a szög egyenes volt ... Elkezdi, hogy dolgozzon ki új számokat ...

Tehát hogyan mester egy ilyen mozgalom lépni ...
Azt hiszem, hogy az IR kezelése.
www.drive2.ru/b/2818339/

Kapcsolódó cikkek