Kuinka tehdä este robotin välttämisestä Arduinolla?

Maailma liikkuu nopeasti, ja tekniikka liikkuu sen mukana myös robotiikan alalla. Robotiikan sovelluksia voidaan nähdä kaikkialla maailmassa. Käsite liikkuvista tai itsenäisistä robotteista, jotka liikkuvat ilman ulkoista apua, on kaikkein syventyvä tutkimusalue. Mobiilirobotteja on niin monen tyyppisiä, esimerkiksi Self Localization and Mapping (SLAM) -tulkit, linjaseuranta, Sumo-robotit jne. Esteitä välttävä robotti on yksi niistä. Se käyttää tekniikkaa polun muuttamiseen, jos se havaitsee esteensä tiellä.



(Kuva Kohteliaisuus: Piirin sulatus)

Tässä projektissa on suunniteltu Arduino-pohjainen esteen välttävä robotti, joka käyttää ultraäänianturia havaitsemaan kaikki esteensä polullaan.



Kuinka välttää esteitä ultraäänianturin avulla?

Kun tiedämme tiivistelmän projektistamme, siirtykäämme askel eteenpäin ja keräämme tietoja projektin aloittamiseksi.



Vaihe 1: Kerää komponentit

Paras tapa aloittaa projekti on laatia luettelo täydellisistä komponenteista alussa ja käydä läpi lyhyt tutkimus jokaisesta komponentista. Tämä auttaa meitä välttämään hankkeen keskellä olevat haitat. Alla on täydellinen luettelo kaikista tässä projektissa käytetyistä komponenteista.



  • Auton pyörän alusta
  • Akku

Vaihe 2: Komponenttien tutkiminen

Nyt kun meillä on täydellinen luettelo kaikista komponenteista, siirrymme eteenpäin ja käymme läpi lyhyen tutkimuksen jokaisen komponentin toiminnasta.

Arduino nano on leipälevyystävällinen mikro-ohjainkortti, jota käytetään ohjaamaan tai suorittamaan erilaisia ​​tehtäviä piirissä. Poltamme a C-koodi Arduino Nanossa kertomaan mikrokontrollerilevylle, miten ja mitkä toiminnot suoritetaan. Arduino nanolla on täsmälleen sama toiminnallisuus kuin Arduino Unolla, mutta melko pienessä koossa. Arduino Nano -taulun mikrokontrolleri on ATmega328p.

Arduino Nano



L298N on suurivirta- ja suurjännitteinen integroitu piiri. Se on kaksoissilta, joka on suunniteltu hyväksymään tavallinen TTL-logiikka. Siinä on kaksi mahdollistettua tuloa, jotka antavat laitteen toimia itsenäisesti. Kaksi moottoria voidaan kytkeä ja käyttää samanaikaisesti. Moottoreiden nopeutta vaihdellaan PWM-nastojen kautta. PWM (Pulse Width Modulation) on tekniikka, jolla jännitteen virtausta voidaan ohjata missä tahansa elektronisessa komponentissa. Tässä moduulissa on H-silta, joka vastaa moottorien pyörimissuunnan ohjaamisesta kääntämällä virran suuntaa. Aktivointitappia A ja Aktivointitappia B käytetään molempien moottorien nopeuden muuttamiseen. Tämä moduuli voi toimia välillä 5-35 V ja huippuvirta 2A asti. Ensimmäisen moottorin tulotappi 1 ja tulotappi 2 ja toisen moottorin tulotappi 3 ja tulotappi 4 ovat.

L298N-moottorin ohjain

HC-SR04-kortti on ultraäänianturi, jota käytetään kahden kohteen välisen etäisyyden määrittämiseen. Se koostuu lähettimestä ja vastaanottimesta. Lähetin muuntaa sähköisen signaalin ultraäänisignaaliksi ja vastaanotin muuntaa ultraäänisignaalin takaisin sähköiseksi signaaliksi. Kun lähetin lähettää ultraääniaallon, se heijastuu törmätessään tiettyyn esineeseen. Etäisyys lasketaan käyttämällä aikaa, jonka ultraäänisignaali menee lähettimestä ja palaa takaisin vastaanottimeen.

Ultraäänianturi

Vaihe 3: Komponenttien kokoaminen

Nyt kun tiedämme useimpien käytettyjen komponenttien toiminnan, aloitetaan kaikkien komponenttien kokoaminen ja tuotetaan este välttää robotti.

  1. Ota auton pyöränjalat ja kiinnitä leipälauta sen päälle. Asenna ultraäänianturi koteloiden eteen ja akkutulppa koteloiden taakse.
  2. Kiinnitä Arduino Nano -levy leipälautaan ja kiinnitä moottoriohjain suoraan leipälautan taakse, alustoihin. Liitä molempien moottorien Enable-nastat Arduino nanon Pin6- ja Pin9-liittimiin. Moottorin ohjainmoduulin In1-, In2-, In3- ja In4-nastat on kytketty vastaavasti Arduino nanonappeihin pin2, pin3, pin4 ja pin5.
  3. Ultraäänianturin liipaisin ja kaiutappi on kytketty vastaavasti Arduino nanonapiin 11 ja 10. Ultraäänianturin Vcc ja maadoitettu tappi on kytketty Arduino Nanon 5 V: iin ja maahan.
  4. Moottorin ohjainmoduuli saa virtaa akusta. Arduino Nano -kortti saa virran moottorikäyttömoduulin 5 V -portista ja ultraäänianturi saa virran Arduino nano -levyltä. paristojen painosta ja energiasta voi tulla ratkaiseva tekijä sen toiminnalle.
  5. Varmista, että liitännät ovat samat kuin alla olevassa piirikaaviossa.

    Piirikaavio

Vaihe 4: Arduinon käytön aloittaminen

Jos et ole vielä perehtynyt Arduino IDE -ohjelmaan, älä huoli, koska vaiheittainen menettely Arduino IDE: n asettamiseksi ja käyttämiseksi mikrokontrollerikortin kanssa selitetään alla.

  1. Lataa uusin Arduino IDE -versio osoitteesta Arduino.
  2. Liitä Arduino Nano -kortti kannettavaan tietokoneeseen ja avaa ohjauspaneeli. napsauta ohjauspaneelissa Laitteisto ja ääni . Napsauta nyt Laitteet ja tulostimet. Täältä löydät portin, johon mikrokontrollerikortti on kytketty. Minun tapauksessani se on COM14 mutta se on erilainen eri tietokoneissa.

    Portin löytäminen

  3. Napsauta Työkalu-valikkoa. ja aseta lauta asentoon Arduino Nano avattavasta valikosta.

    Asennuslauta

  4. Määritä samassa Työkalu-valikossa portiksi sen portin numero, jonka havaitsit aiemmin Laitteet ja tulostimet .

    Portin asettaminen

  5. Aseta samassa Työkalu-valikossa Suoritin asentoon ATmega328P (vanha käynnistyslatain).

    Suoritin

  6. Lataa alla oleva koodi ja liitä se Arduino IDE -laitteeseesi. Klikkaa lataa -painiketta polttaaksesi koodin mikro-ohjainkortillesi.

    Lähetä

Lataa koodi Klikkaa tästä.

Vaihe 5: Koodin ymmärtäminen

Koodi on hyvin kommentoitu ja itsestään selvä. Mutta silti se selitetään alla

1. Koodin alussa kaikki Arduino Nano -kortin nastat, jotka on kytketty ultraäänianturiin ja moottorin ohjainmoduuliin, alustetaan. Pin6 ja Pin9 ovat PWM-nastoja, jotka voivat muuttaa jännitteen virtausta robotin nopeuden muuttamiseksi. Kaksi muuttujaa, kesto, ja etäisyys Alustetaan tallentamaan tietoja, joita käytetään myöhemmin ultraäänianturin ja esteen etäisyyden laskemiseen.

int enable1pin = 6; // Ensimmäisen moottorin tapit int motor1pin1 = 2; int moottori 1pin2 = 3; int enable2pin = 9; // Toisen moottorin tapit int motor2pin1 = 4; int moottori 2pin2 = 5; const int trigPin = 11; // Ultraäänisen Sesnorin liipaisintappi const int echoPin = 10; // Echo Pin Of Ultrasonic Sesnor pitkäaikainen; // muuttujat, joiden avulla lasketaan kelluvan etäisyys;

2. mitätön asennus () on toiminto, jota käytetään asettamaan kaikki käytetyt nastat, kuten TULO ja LÄHTÖ. Siirtonopeus on määritetty tässä toiminnossa. Siirtonopeus on tiedonsiirtonopeus, jolla mikro-ohjainkortti kommunikoi siihen integroitujen antureiden kanssa.

void setup () {Sarja.alku (9600); pinMode (trigPin, OUTPUT); pinMode (echoPin, INPUT); pinMode (enable1pin, OUTPUT); pinMode (enable2pin, OUTPUT); pinMode (moottori1pin1, OUTPUT); pinMode (moottori1pin2, OUTPUT); pinMode (moottori2pin1, OUTPUT); pinMode (moottori2pin2, OUTPUT); }

3. void loop () on toiminto, joka toimii toistuvasti jaksossa. Tässä toiminnossa kerromme mikro-ohjainkortille, miten ja mitkä toiminnot suoritetaan. Tässä ensin liipaisintappi asetetaan lähettämään signaali, jonka kaiutappi havaitsee. Sitten aika, jonka ultraäänisignaali kuljettaa anturista ja takaisin anturiin, lasketaan ja tallennetaan muuttujaan kesto. Sitten tätä aikaa käytetään kaavassa esteen ja ultraäänianturin etäisyyden laskemiseen. Sitten sovelletaan ehtoa, että jos etäisyys on yli 5 cm, robotti liikkuu eteenpäin suorana ja jos etäisyys on alle 50 cm, robotti ottaa jyrkän oikean käännöksen.

void loop () {digitalWrite (trigPin, LOW); // Ultraäänisignaalin viiveen lähettäminen ja havaitseminenMikrosekunnit (2); digitalWrite (trigPin, HIGH); viive mikrosekuntia (10); digitalWrite (trigPin, LOW); kesto = pulssi (echoPin, HIGH); // Ultraääniaallon ottaman ajan laskeminen taustamatkan heijastamiseksi = 0,034 * (kesto / 2); // Robbotin ja esteen välisen etäisyyden laskeminen. if (etäisyys> 50) // Siirry eteenpäin, jos etäisyys on yli 50 cm {digitalWrite (enable1pin, HIGH); digitalWrite (enable2pin, HIGH); digitalWrite (moottori1pin1, HIGH); digitalWrite (moottori1pin2, LOW); digitalWrite (moottori2pin1, HIGH); digitalWrite (moottori2pin2, LOW); } muu jos (etäisyys<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); }

Sovellukset

Joten tässä oli menettely esteen välttämiseksi robotin välttämiseksi. Tämä esteen välttävä tekniikka voidaan haastaa myös muissa sovelluksissa. Jotkut näistä sovelluksista ovat seuraavat.

  1. Seurantajärjestelmä.
  2. Etäisyyden mittaamisen tarkoitukset.
  3. Tätä voidaan käyttää automaattisissa imurobotteissa.
  4. Tätä voidaan käyttää sokeiden sauvoissa.