Hogyan lehet akadályokat elkerülni a robotok használatával az Arduino használatával?

A világ gyorsan mozog, és a technika is mozog vele a robotika területén. A robotika alkalmazásai a világ minden táján láthatók. A külsõ segítség nélkül mozgó mobil vagy autonóm robotok fogalma a legmerülõbb kutatási terület. Olyan sokféle mobil robot létezik, mint például a Self Localization and Mapping (SLAM) tolmácsok, a vonalkövetés, a Sumo Bots stb. Technikát használ az út megváltoztatására, ha bármilyen akadályt észlel az útjában.



(Kép jóvoltából: áramköri kivonat)

Ebben a projektben egy Arduino-alapú akadálykerülő robotot terveztek, amely ultrahangos érzékelővel érzékeli az útjában lévő összes akadályt.



Hogyan lehet elkerülni az akadályokat az ultrahangos érzékelő használatával?

Amint ismerjük projektünk absztraktját, lépjünk előre és gyűjtsünk néhány információt a projekt elindításához.



1. lépés: Az összetevők összegyűjtése

A projektek megkezdésének legjobb módja az, hogy a kezdetekor elkészíti a teljes alkotóelemek listáját, és az egyes komponensek rövid tanulmányozásával végzi el. Ez segít elkerülni a kellemetlenségeket a projekt közepén. Az alábbiakban a projektben használt összes alkatrész teljes listája található.



  • Autó kerék alváz
  • Akkumulátor

2. lépés: Az alkatrészek tanulmányozása

Most, hogy az összes alkatrészről teljes listánk van, lépjünk előre és lépjünk át egy rövid tanulmányt az egyes alkatrészek működéséről.

Az Arduino nano egy kenyérlap-barát mikrokontroller kártya, amelyet egy áramkörben különböző feladatok vezérlésére vagy végrehajtására használnak. Égetünk egy C kód az Arduino Nano-n, hogy elmondja a mikrokontroller táblának, hogyan és milyen műveleteket hajtson végre. Az Arduino Nano pontosan ugyanolyan funkcionalitással rendelkezik, mint az Arduino Uno, de meglehetősen kicsi. Az Arduino Nano táblán található mikrovezérlő az ATmega328p.

Arduino Nano



Az L298N nagyáramú és nagyfeszültségű integrált áramkör. Ez egy kettős teljes híd, amelyet a standard TTL logika elfogadására terveztek. Két engedélyező bemenettel rendelkezik, amelyek lehetővé teszik a készülék független működését. Két motor csatlakoztatható és működtethető egyszerre. A motorok fordulatszáma a PWM csapok segítségével változtatható. Az impulzusszélesség-moduláció (PWM) olyan technika, amelyben bármely elektronikus alkatrész feszültségárama szabályozható. Ennek a modulnak van egy H-hídja, amely az áram irányának megfordításával felel a motorok forgásirányának szabályozásáért. Az A engedélyező és a B érintkező engedélyezi mindkét motor fordulatszámának megváltoztatását. Ez a modul 5 és 35 V között működhet, a csúcsáram pedig 2A-ig. Az 1. és 2. bemeneti, valamint az első motorhoz, a 3. és a 4. bemeneti csaphoz pedig a második motor tartozik.

L298N motorvezérlő

A HC-SR04 tábla egy ultrahangos érzékelő, amelyet két tárgy közötti távolság meghatározására használnak. Adóból és vevőből áll. Az adó átalakítja az elektromos jelet ultrahangos jellé, a vevő pedig az ultrahangos jelet visszaalakítja elektromos jellé. Amikor az adó ultrahangos hullámot küld, akkor az visszatükröződik, miután ütközött egy bizonyos objektummal. A távolság kiszámítása az idő felhasználásával történik, amelyre az ultrahangos jelnek az adóból kell mennie, és vissza kell térnie a vevőhöz.

Ultrahangos érzékelő

3. lépés: Az alkatrészek összeszerelése

Most, hogy már tudjuk a legtöbb használt alkatrész működését, kezdjük el az összes alkatrész összeállítását, és állítsunk elő akadályt elkerülő robotot.

  1. Vegyünk egy autó keréktámaszt és ragasszunk rá egy kenyérlapot. Szerelje fel az ultrahangos érzékelőt a tokok elejére, az akkumulátor kupakját pedig a tokok mögé.
  2. Rögzítse az Arduino Nano táblát a kenyérlapra, és rögzítse a motorvezérlőt közvetlenül a kenyérlap mögé, a ládákra. Csatlakoztassa mindkét motor Enable csapszegét az Arduino nano Pin6 és Pin9 csatlakozóihoz. A motorvezérlő modul In1, In2, In3 és In4 érintkezői az Arduino nano 2, 2, 3, 4 és 5 érintkezőihez vannak csatlakoztatva.
  3. Az ultrahangos érzékelő kioldó és visszhangja az Arduino nano 11-es és 10-es csatlakozójához van csatlakoztatva. Az ultrahangos érzékelő Vcc és földelt csapja az Arduino Nano 5 V-jához és földeléséhez csatlakozik.
  4. A motorvezérlő modult az akkumulátor táplálja. Az Arduino Nano kártya az áramot a motorvezérlő modul 5 V-os portjáról kapja, az ultrahangos érzékelő pedig az Arduino nano kártyáról kapja az energiát. az elemek súlya és energiája válhat a teljesítményének meghatározó tényezőjévé.
  5. Győződjön meg arról, hogy a kapcsolatai megegyeznek az alábbiakban a kapcsolási rajzon bemutatottakkal.

    Kördiagramm

4. lépés: Az Arduino használatának megkezdése

Ha még nem ismeri az Arduino IDE-t, ne aggódjon, mert az Arduino IDE mikrokontroller-táblával történő beállításának és használatának lépésről lépésre történő leírását az alábbiakban ismertetjük.

  1. Töltse le az Arduino IDE legújabb verzióját innen: Arduino.
  2. Csatlakoztassa Arduino Nano kártyáját a laptophoz, és nyissa meg a kezelőpanelt. a vezérlőpulton kattintson a gombra Hardver és hang . Most kattintson a gombra Eszközök és nyomtatók. Itt keresse meg azt a portot, amelyhez a mikrokontroller kártya csatlakozik. Az én esetemben az COM14 de a különböző számítógépeken más.

    Port megtalálása

  3. Kattintson az Eszköz menüre. és állítsa a táblát Arduino Nano a legördülő menüből.

    Tábla beállítása

  4. Ugyanabban az Eszköz menüben állítsa be a portot arra a portszámra, amelyet korábban a Eszközök és nyomtatók .

    Port beállítása

  5. Ugyanebben az Eszköz menüben állítsa a processzort ATmega328P (Old Bootloader).

    Processzor

  6. Töltse le az alább csatolt kódot, és illessze be az Arduino IDE-be. Kattintson a feltölteni gombot a kód megírásához a mikrokontroller táblán.

    Feltöltés

A kód letöltéséhez kattints ide.

5. lépés: A kód megértése

A kód jól kommentált és magától értetődő. De mégis, az alábbiakban ismertetjük

1. A kód kezdetekor inicializálják az Arduino Nano kártya összes érintkezõjét, amely az ultrahangos érzékelõhöz és a motor meghajtó moduljához van csatlakoztatva. A Pin6 és Pin9 olyan PWM csapok, amelyek változtathatják a feszültség áramlását a robot sebességének változtatásához. Két változó, időtartam, és távolság inicializálva vannak az adatok tárolására, amelyeket később felhasználnak az ultrahangos érzékelő és az akadály távolságának kiszámításához.

int enable1pin = 6; // Az első motor csapjai int motor1pin1 = 2; int motor1pin2 = 3; int enable2pin = 9; // Pins for Second Motor int motor2pin1 = 4; int motor2pin2 = 5; const int trigPin = 11; // Az ultrahangos Sesnor kiváltó csapszeg konst int echoPin = 10; // Ultrahangos Sesnor visszhangcsapja hosszú időtartamú; // változók az úszótávolság kiszámításához;

2. void setup () egy olyan függvény, amelyet a felhasznált csapok beállítására használunk BEMENET és KIMENET. Az adatátviteli sebesség meghatározása ebben a funkcióban történik. A Baud Rate az a kommunikációs sebesség, amellyel a mikrokontroller kártya kommunikál a vele integrált érzékelőkkel.

void setup () {Serial.begin (9600); pinMode (trigPin, OUTPUT); pinMode (echoPin, INPUT); pinMode (enable1pin, OUTPUT); pinMode (enable2pin, OUTPUT); pinMode (motor1pin1, OUTPUT); pinMode (motor1pin2, OUTPUT); pinMode (motor2pin1, OUTPUT); pinMode (motor2pin2, OUTPUT); }

3. void loop () olyan funkció, amely egy ciklus alatt ismételten fut. Ebben a funkcióban elmondjuk a mikrovezérlő táblának, hogyan és milyen műveleteket kell végrehajtani. Itt először a ravasztüskét úgy állítják be, hogy jelet küldjön, amelyet a visszhangcsap érzékel. Ezután kiszámítja és eltárolja a változóban azt az időt, amelyet az ultrahangos jel az érzékelőtől az oda és vissza vezet időtartama. Ezután ezt az időt egy képlettel használják az akadály és az ultrahangos érzékelő távolságának kiszámításához. Ezután olyan feltétel kerül alkalmazásra, hogy ha a távolság meghaladja az 5 cm-t, akkor a robot egyenes vonalban halad előre, és ha a távolság kisebb, mint 50 cm, a robot élesen jobbra fordul.

void loop () {digitalWrite (trigPin, LOW); // Az ultrahangos jel késésének küldése és észleléseMikroszekundum (2); digitalWrite (trigPin, HIGH); késleltetés mikroszekundum (10); digitalWrite (trigPin, LOW); időtartam = pulseIn (echoPin, HIGH); // Az ultrahangos hullám által vett időszámítás a hátsó távolság tükrözése érdekében = 0,034 * (időtartam / 2); // A robbant és az akadály közötti távolság kiszámítása. if (távolság> 50) // Haladás előre, ha a távolság nagyobb, mint 50 cm {digitalWrite (enable1pin, HIGH); digitalWrite (enable2pin, HIGH); digitalWrite (motor1pin1, HIGH); digitalWrite (motor1pin2, LOW); digitalWrite (motor2pin1, HIGH); digitalWrite (motor2pin2, LOW); } else if (távolság<50) // Sharp Right Turn if the distance is less than 50cm { digitalWrite(enable1pin, HIGH); digitalWrite(enable2pin, HIGH); digitalWrite(motor1pin1, HIGH); digitalWrite(motor1pin2, LOW); digitalWrite(motor2pin1, LOW); digitalWrite(motor2pin2, LOW); } delay(300); }

Alkalmazások

Tehát itt volt az az eljárás, amellyel akadályt lehet elkerülni a robotban. Ez az akadálykerülő technológia más alkalmazásokban is perelhető. Néhány ilyen alkalmazás a következő.

  1. Követő rendszer.
  2. Távolságmérési célok.
  3. Ez automatikus porszívó robotokban használható.
  4. Ez a vakok számára használható botokban használható.