- Robotin välttämistä esteen rakentaminen ultraäänianturin avulla
- Tarvittavat komponentit
- Piirikaavio
- Este robotin välttämiselle Arduino-koodilla
Esteiden välttämisen robotti on älykäs laite, joka tunnistaa automaattisesti edessään olevan esteen ja välttää sen kääntämällä itsensä toiseen suuntaan. Tämän rakenteen avulla robotti voi navigoida tuntemattomassa ympäristössä välttämällä törmäyksiä, mikä on ensisijainen vaatimus kaikille itsenäisille mobiiliroboteille. Estettä välttävän robotin käyttöä ei ole rajoitettu, ja sitä käytetään nyt useimmissa sotilaallisissa järjestöissä, mikä auttaa suorittamaan monia riskialttiita töitä, joita kukaan sotilas ei voi tehdä.
Olemme aiemmin rakentaneet Esteiden välttäminen -robotin käyttämällä Raspberry Pi: tä ja PIC-mikrokontrolleria. Tällä kertaa rakennamme esteitä välttävän robotin käyttämällä ultraäänianturia ja Arduinoa. Tässä ultraäänianturia käytetään polkuesteiden havaitsemiseen laskemalla robotin ja esteen välinen etäisyys. Jos robotti löytää esteen, se muuttaa suuntaa ja jatkaa liikkumista.
Robotin välttämistä esteen rakentaminen ultraäänianturin avulla
Ennen robotin rakentamista on tärkeää ymmärtää, miten ultraäänianturi toimii, koska tällä anturilla on tärkeä rooli esteen havaitsemisessa. Ultraäänianturin toiminnan perusperiaate on muistiinpanoaika, jonka anturi vie ultraäänikeilojen lähettämiseen ja ultraäänisäteiden vastaanottamiseen pintaan lyönnin jälkeen. Sitten etäisyys lasketaan edelleen kaavan avulla. Tässä projektissa käytetään laajasti saatavaa HC-SR04-ultraäänianturia. Tämän anturin käyttämiseksi noudatetaan samaa tapaa edellä.
Joten HC-SR04: n Trig-tappi on valmistettu korkealle vähintään 10 meille. Sonisäde lähetetään kahdeksalla 40 kHz: n pulssilla.
Signaali osuu sitten pintaan ja palaa takaisin ja sieppautuu HC-SR04: n vastaanottimen kaiun tapilla. Echo-tappi oli jo noussut korkealle tuolloin.
Aika, jonka keila palaa takaisin, tallennetaan muuttujaksi ja muunnetaan etäisyydeksi käyttämällä alla olevan kaltaisia asianmukaisia laskelmia
Etäisyys = (aika x äänen nopeus ilmassa (343 m / s)) / 2
Käytimme ultraäänianturia monissa projekteissa oppiaksesi lisää ultraäänianturista, tarkistamaan muita ultraäänianturiin liittyviä projekteja.
Tämän estävän robotin komponentit löytyvät helposti. Alustan valmistamiseksi mitä tahansa lelurunkoa voidaan käyttää tai se voidaan valmistaa mittatilaustyönä.
Tarvittavat komponentit
- Arduino NANO tai Uno (mikä tahansa versio)
- HC-SR04-ultraäänianturi
- LM298N-moottorin ohjainmoduuli
- 5 V DC -moottorit
- Akku
- Pyörät
- Alusta
- Neulalangat
Piirikaavio
Tämän projektin täydellinen piirikaavio on annettu alla, koska näet, että se käyttää Arduino-nanoa. Mutta voimme myös rakentaa esteen välttää robottia käyttämällä Arduino UNO: ta samalla piirillä (noudata samaa pinoutia) ja koodia.
Kun piiri on valmis, meidän on rakennettava estävä auto välttämällä kokoamalla piiri robottialustan päälle alla olevan kuvan mukaisesti.
Este robotin välttämiselle Arduino-koodilla
Koko ohjelma ja esittelyvideo annetaan tämän projektin lopussa. Ohjelma sisältää HC-SR04-moduulin asettamisen ja signaalien lähettämisen moottorin nastoille moottorin suunnan siirtämiseksi vastaavasti. Kirjastoja ei käytetä tässä projektissa.
Määritä ensin HC-SR04: n trig ja trigonometria ohjelmassa. Tässä projektissa liipaisin on kytketty GPIO9: ään ja kaiutappi on kytketty GPU10: een Arduino NANO: ssa.
int trigPin = 9; // HC-SR04: n trig-nasta int echoPin = 10; // Kaiku HC-SR04
Määritä nastat LM298N-moottorin ohjainmoduulin tuloa varten. LM298N: ssä on 4 tiedonsiirtotappia, joita käytetään siihen kytketyn moottorin suunnan ohjaamiseen.
int revleft4 = 4; // Vasemman moottorin käänteinen liike int fwdleft5 = 5; // Vasemman moottorin ForWarD-liike int oikea6 = 6; // Oikean moottorin peruutusliike int fwdright7 = 7; // Oikean moottorin ForWarD-liike
Määritä setup () -toiminnossa käytettyjen GPIO-nastojen tietosuunta. Neljä moottorin nastaa ja liipaisimen nasta on asetettu OUTPUT-tilaan ja kaiun tappi asetettu tuloksi.
pinMode (revleft4, OUTPUT); // aseta moottorin tapit lähtötapamoodiksi (fwdleft5, OUTPUT); pinMode (revright6, OUTPUT); pinMode (fwdright7, OUTPUT); pinMode (trigPin, OUTPUT); // aseta trig pin pin output pinMode (echoPin, INPUT); // aseta kaiutappi tuloksi heijastuneiden aaltojen sieppaamiseksi
In silmukka () funktio, saada etäisyys HC-SR04 ja etäisyyden perusteella siirtää moottorin suuntaan. Etäisyys näyttää kohteen etäisyyden, joka tulee robotin eteen. Etäisyys mitataan rikkomalla ultraäänisäde jopa 10 meille ja vastaanottamalla se 10 us: n jälkeen. Saat lisätietoja etäisyyden mittaamisesta ultraäänianturilla ja Arduinolla seuraamalla linkkiä.
digitalWrite (trigPin, LOW); viive mikrosekuntia (2); digitalWrite (trigPin, HIGH); // lähetä aaltoja 10 us viiveelläMikrosekunnit (10); kesto = pulssi (echoPin, HIGH); // vastaan heijastuneiden aaltojen etäisyys = kesto / 58,2; // muunna etäisyyden viiveeksi (10);
Jos etäisyys on suurempi kuin määritelty etäisyys, sen tiellä ei ole estettä ja se liikkuu eteenpäin.
if (etäisyys> 19) { digitalWrite (fwdright7, HIGH); // siirry eteenpäin digitalWrite (revright6, LOW); digitalWrite (fwdleft5, HIGH); digitalWrite (revleft4, LOW); }
Jos etäisyys on pienempi kuin määritelty etäisyys esteen välttämiseksi, edessä on jokin este. Joten tässä tilanteessa robotti pysähtyy hetkeksi ja palaa taaksepäin sen jälkeen taas hetkeksi ja kääntyy sitten toiseen suuntaan.
if (etäisyys <18) { digitalWrite (fwdright7, LOW); // Lopeta digitalWrite (revright6, LOW); digitalWrite (fwdleft5, LOW); digitalWrite (revleft4, LOW); viive (500); digitalWrite (fwdright7, LOW); // takasana digitalWrite (revright6, HIGH); digitalWrite (fwdleft5, LOW); digitalWrite (revleft4, HIGH); viive (500); digitalWrite (fwdright7, LOW); // Lopeta digitalWrite (revright6, LOW); digitalWrite (fwdleft5, LOW); digitalWrite (revleft4, LOW); viive (100); digitalWrite (fwdright7, HIGH); digitalWrite (revright6, LOW); digitalWrite (revleft4, LOW); digitalWrite (fwdleft5, LOW); viive (500); }
Joten näin robotti voi välttää esteitä tiellään jäämättä mihinkään. Löydä täydellinen koodi ja video alla.