- Vaaditut komponentit:
- Ultraäänianturimoduuli:
- Piirin selitys:
- Kuinka se toimii:
- Ohjelmoinnin selitys:
Robotit ovat koneita, jotka vähentävät ihmisten työtä raskaissa töissä automatisoimalla teollisuuden, tehtaiden, sairaaloiden jne. Tehtävät. Suurin osa robotteja ajetaan käyttämällä joitain ohjausyksiköitä tai komponentteja, kuten painike, kaukosäädin, ohjaussauva, tietokone, eleet ja jonkin komennon suorittaminen ohjaimen tai prosessorin avulla. Mutta tänään olemme täällä automaattirobotilla, joka liikkuu itsenäisesti ilman ulkoisia tapahtumia välttäen kaikki esteet tielleen, kyllä puhumme esteen välttämisestä. Tässä projektissa olemme käyttäneet Raspberry Pi- ja Motor-ohjaimia robotin ajamiseksi ja ultraäänianturia havaitsemaan esineitä robotin polulla.
Aiemmin olemme käsittäneet monia hyödyllisiä robotteja, löydät ne Robotiikka-projektit -osiosta.
Vaaditut komponentit:
- Vadelma Pi
- Ultraäänianturimoduuli HC-SR04
- ROBOT-runko ruuvilla
- DC-moottorit
- L293D IC
- Pyörät
- Leipälauta
- Vastus (1k)
- Kondensaattori (100nF)
- Johtojen liittäminen
- Virtalähde tai virtapankki
Ultraäänianturimoduuli:
Este Avoider robotti on automatisoitu robotti ja se ei tarvitse ohjata millä tahansa kaukosäätimellä. Tämäntyyppisissä automatisoiduissa robotteissa on joitain "kuudennen aistin" antureita, kuten esteilmaisimet, äänetunnistimet, lämpöilmaisimet tai metallinilmaisimet. Tässä olemme tehneet esteen havaitsemisen ultraäänisignaaleilla. Tähän tarkoitukseen olemme käyttäneet ultraäänianturimoduulia.
Ultraääniantureita käytetään yleisesti esineiden havaitsemiseen ja esteen etäisyyden määrittämiseen anturista. Tämä on loistava työkalu etäisyyden mittaamiseen ilman fyysistä kosketusta, kuten vesitason mittaus säiliössä, etäisyyden mittaus, esteiden välttäjä robotti jne. Joten tässä olemme havainneet kohteen ja mittaaneet etäisyyden käyttämällä ultraäänianturia ja vadelma Pi: tä.
Ultraäänianturia HC-SR04 käytetään mittaamaan etäisyyttä välillä 2 cm - 400 cm 3 mm: n tarkkuudella. Anturimoduuli koostuu ultraäänilähettimestä, vastaanottimesta ja ohjauspiiristä. Ultraäänianturi koostuu kahdesta pyöreästä silmästä, joista toista käytetään ultraäänen lähettämiseen ja toista sen vastaanottamiseen.
Voimme laskea kohteen etäisyyden sen ajan perusteella, jonka ultraääniaalto palaa takaisin anturiin. Koska äänen aika ja nopeus tunnetaan, voimme laskea etäisyyden seuraavilla kaavoilla.
- Etäisyys = (aika x äänen nopeus ilmassa (343 m / s)) / 2.
Arvo jaetaan kahdella, koska aalto kulkee eteenpäin ja taaksepäin samalla etäisyydellä.
Joten olemme laskeneet etäisyyden (senttimetreinä) esteestä kuten alla:
pulse_start = aika.aika (), kun taas GPIO.tulo (ECHO) == 1: #Tarkista, onko ECHO KORKEA GPIO.lähtö (led, väärä) pulssi_loppu = aika.aika () pulssin_kesto = pulssin_ loppu - pulssin aloitusaika = pulssin kesto * 17150 etäisyys = kierros (matka, 2) keskim. etäisyys = keskim. etäisyys + etäisyys
Missä pulssin kesto on aika ultraäänisignaalin lähettämisen ja vastaanottamisen välillä.
Piirin selitys:
Piiri on hyvin yksinkertainen tämän esteen välttämisen robotille Raspberry Pi: n avulla. Ultraäänianturi moduuli, joita käytetään kohteiden ilmaisemiseksi, on yhdistetty GPIO tappi 17 ja 27 Vadelma Pi. Moottorin ohjain IC L293D on kytketty Vadelma Pi 3 ajo robotin moottorit. Moottorin kuljettajan tulonastat 2, 7, 10 ja 15 on kytketty Raspberry Pi GPIO -tappiin numeroihin 12, 16, 20 ja 21. Tässä olemme käyttäneet kahta tasavirtamoottoria robotin ajamiseksi, jossa yksi moottori on kytketty moottoriohjaimen IC lähtöliittimiin 3 ja 6 ja toinen moottori kytketty moottoriohjaimen IC nastoihin 11 ja 14.
Kuinka se toimii:
Tämän itsenäisen robotin käyttö on erittäin helppoa. Kun robottiin kytketään virta ja se alkaa toimia, Vadelma Pi mittaa esineiden etäisyydet sen edessä käyttämällä ultraäänianturimoduulia ja tallentaa muuttujaan. Sitten RPi vertaa tätä arvoa ennalta määritettyihin arvoihin ja tekee päätökset sen mukaisesti siirtämällä robottia vasemmalle, oikealle, eteenpäin tai taaksepäin.
Tässä projektissa olemme valinneet 15 cm: n etäisyyden Raspberry Pi: n kaikkien päätösten tekemiseksi. Nyt, kun Vadelma Pi saa alle 15 cm: n etäisyyden mistä tahansa esineestä, Vadelma Pi pysäyttää robotin ja siirtää sen takaisin ja kääntää sitten vasemmalle tai oikealle. Nyt, ennen kuin siirrät sitä eteenpäin, Raspberry Pi tarkistaa uudelleen, onko esteitä 15 cm: n etäisyydellä, jos kyllä, toistaa sitten edellisen prosessin, muuten siirrä robottia eteenpäin, kunnes se havaitsee esteen tai esineen uudelleen.
Ohjelmoinnin selitys:
Käytämme tässä Python-kieltä ohjelmassa. Ennen koodaamista käyttäjän on määritettävä Raspberry Pi. Voit tarkistaa edelliset oppaamme Raspberry Pi: n käytön aloittamisesta ja Raspbian Jessie -käyttöjärjestelmän asentamisesta ja määrittämisestä Pi: ssä.
Tämän projektin ohjelmointiosalla on erittäin tärkeä rooli kaikkien toimintojen suorittamisessa. Ensinnäkin sisällytämme vaaditut kirjastot, alustamme muuttujat ja määritämme nastat ultraäänianturille, moottorille ja komponenteille.
tuo RPi.GPIO GPIO: na tuontiaika #Tuo aikakirjasto GPIO.setwarnings (False) GPIO.setmode (GPIO.BCM) TRIG = 17 ECHO = 27……………..
Sen jälkeen olemme luoneet joitain toimintoja def eteenpäin (), def taaksepäin (), def vasemmalle (), def oikealle () liikuttaaksesi robottia eteenpäin, taaksepäin, vasemmalle tai oikealle ja def stop () robotin pysäyttämiseksi, tarkista alla olevan koodin toiminnot.
Sitten pääohjelmassa olemme käynnistäneet ultraäänianturin ja lukeneet signaalin lähetyksen ja vastaanoton välisen ajan ja laskeneet etäisyyden. Tässä olemme toistaneet tämän prosessin viisi kertaa tarkkuuden parantamiseksi. Olemme jo selittäneet etäisyyden laskemisprosessin ultraäänianturilla.
i = 0 keskim. etäisyys = 0 i: lle alueella (5): GPIO.ulostulo (TRIG, väärä) aika. uni (0.1) GPIO.ulostulo (TRIG, tosi) aika. lepotila (0.00001) GPIO.ulostulo (TRIG, väärä) kun GPIO.input (ECHO) == 0: GPIO.output (led, False) pulse_start = time.time () kun taas GPIO.input (ECHO) == 1: #Tarkista, onko ECHO HIGH GPIO.output (led, Väärä) pulssi_loppu = aika.aika () pulssin kesto = pulssin_ loppu - pulssin aloitusmatka = pulssin kesto * 17150 etäisyys = kierros (etäisyys, 2) keskim. Etäisyys = keskim. Etäisyys + etäisyys
Lopuksi, jos robotti löytää esteen edestä, niin saavutettuamme etäisyyden esteeseen olemme ohjelmoineet robotin kulkemaan eri reittiä.
if avgDistance <15: count = count + 1 stop () time.sleep (1) back () time.sleep (1.5) if (count% 3 == 1) & (flag == 0): oikea () flag = 1 muu: vasen () lippu = 0 aika. Lepotila (1,5) pysäytys () aika. Lepotila (1) muu: eteenpäin () lippu = 0
Täydellinen koodi tälle Vadelma Pi Esteiden välttämistä -robotille annetaan alla esittelyvideolla.