Mechatronics Exercises

Workspace Navigation

Huoneen Kartoittava Robotti

Majander


Robotti, joka liikkuu huoneessa ja tekee siitä kaksiulotteista karttaa ultraäänietäisyysanturin avulla. 

Osat ja toiminnot

OsaLisätietoja
Arduino Mega 2560 

Robotti käyttää Arduino Megaa. Arduino Megan suurempi muisti mahdollistaa suuremman matriisin karttaa varten.

Ultraääni-etäisyysanturiKartan mittaus suoritetaan ultraäänietäisyysanturin avulla.
ServomoottoriAnturia kääntää servomoottori, ja robotti pitää muistissa tiedon siitä, missä kulmassa se on ja missä kulmassa se mittaa etäisyyttä.
RobottisarjaRobotti on rakennettu robottipohjalle, jonka mukana tuli mm. renkaat, niitä pyörittävät kaksi DC-moottoria ja moottorien ohjain. Takarengas on vapaasti kääntyvä.
HC-05 bluetooth-moduuliBluetooth-moduulin avulla robotti voidaan lähettää liikkeelle ja pysäyttää kartan tarkastelua varten vaikka älypuhelimella.

Enkooderirengas x 2

Enkooderi (LM393-tyyppinen) x 2

Robotin liikkumista kartan alueella mittaavat kahden moottorilla varustettuun eturenkaaseen kytketyt optiset enkooderit. Enkooderit myös ohjaavat robottia, jotta se kulkisi suoraan, ja auttavat pitämään käännökset tarkempina.

Enkooderien käyttöä varten niille piti myös tehdä low pass -filtteri, sillä muuten enkooderit tuottivat usean muutoksen yhdellä kertaa. Tätä "bouncing" -ongelmaa voisi kai korjata koodissakin, mutta ilmeisesti se on aika vaikeaa.

Hyppyjohtoja, vastuksia, kondensaattoreita, kytkentälautoja,

ruuveja, ilmastointiteippiä yms. yms.

Kaikenlaisia "perusosia" kytkentöjen tekemiseen ja osien kiinnittämiseen. Kondensaattoreita tarvitaan ainakin neljä. Vastuksia filttereihin ja bluetooth-moduulin jännitteenjakoa varten.

Yksi kondensaattoreista kytketään suoraan RESETistä GNDiin muistin pyyhkiytymisen estämiseksi. Suosittelen tekemään tämän kuitenkin niin että yhteyden saa helposti katkaistua jotta kartta voidaan pyyhkiä halutessa pois.

Paristorasia 4 x 1,5V AA-paristolleAiemmin käytettiin 9V paristoa, mutta sen virransyöttökyky oli liian huono robotin toimintaa varten enkooderien käyttöönoton jälkeen.

Robotin käyttämä koodi löytyy .txt-tiedostona tiedostolistasta sivun lopusta.

Kuvaus robotin toiminnasta

Kun robotti käynnistetään, se ei aluksi näytä tekevän mitään. Jotta mittaus alkaisi, on sille lähetelähetettävä bluetoothin kautta komentona "1". HC-05:n kanssa on kommunikoitu älypuhelimella, "Arduino bluetooth controller" -nimisen sovelluksen avulla.


Robotin mittaus toimii seuraavalla loopilla:

  1. Robotti mittaa 180 astetta kattavan alueen edessään 10 asteen väleissä. Samalla se merkitsee mitattujen etäisyyksien ja tunnettujen kulmien avulla pisteet karttaan. Karttana toimii 50x50 matriisi, jossa jokainen kohta vastaa 10cm x 10cm kokoista aluetta. Robotti voi siis kartoittaa 5m x 5m alueen.
  2. Robotti tarkistaa kolme mitattua arvoa, jotka ovat suoraan eteen, oikealle ja vasemmalle. Se, johon matka on pisin, siihen suuntaan robotti tarvittaessa kääntyy ja jatkaa. Jos jokaisessa suunnassa on etäisyyttä alle 70 cm, robotti kääntyy 180 astetta.
  3. Sitten robotti liikkuu suoraan eteenpäin joko 150 cm tai kunnes se kohtaa esteen alle 70 cm päässä. Liikkuessa enkooderit ohjaavat robottia pysymään suorassa. Niitä käytetään myös siirtymän mittaamiseen. Lisäksi etäisyysanturi mittaa (merkitsemättä kuitenkaan karttaan) eteenpäin tasaisin, nopein väliajoin.
  4. Looppi palaa alkuun.

Mitatessa robotti myös kuuntelee bluetoothia, ja se lopettaa mittauksen kun sille annetaan käsky "0". Tässä vaiheessa robotti palaa takaisin alkutilaansa, jossa se itseasiassa lähettää 10 sekuntin välein karttaa Serialiin. Koska RESET on kytketty kondensaattorin kautta GNDiin, kartta ei pyyhkiydy kun arduino kytketään tietokoneeseen. Karttaa voidaan katsella Arduino IDE:n serial monitorissa. 


Kartan voi pyyhkiä ainakin irroittamalla mainitun kondensaattorin ja kytkemällä Arduinon tietokoneeseen.



Ongelmia

Robottia tehdessä huomattiin asioita joita olisi voinut tehdä paremmin, mutta aika ei riittänyt tai oli muita juttuja jotka vaativat huomiota (tai minulla ei ollut tietoa tai taitoa tehdä paremmin). Joka tapauksessa, tähän listataan kuitenkin asioita joita opittiin ongelmien kautta. Osa näistä lukee muuallakin tällä sivulla.

  • Ultraäänianturi ei mittaa luotettavasti pehmeitä pintoja tai siihen nähden kallistettuja kappaleita. Pehmeistä kappaleista ääni ei heijastu takaisin, kun taas tarpeeksi kallistuneet pinnat eivät heijasta ääntä tarpeeksi vastaanottimen suuntaan.
  • Robottia rakennettaessa ajateltiin ettei enkooderit ole välttämättömiä. Ne kuitenkin lisättiin myöhemmin sillä käännösten kulma riippui ilman ohjausta liikaa paristojen jännitteestä ja robotti alkoi suoraan kulkiessa kaartaa vapaan takarenkaan asennosta riippuen eri suuntiin.
  • Särmiön muotoiset 9V paristot ovat heikkoja virransyötöltään, eivätkä toimi tässä laitteessa. Silloinkin kun ne toimivat, niiltä vaadittiin todennäköisesti enemmän virtaa kuin mitä ne on suunniteltu antamaan, joka selittäisi sen että ne tyhjenivät aika nopeasti.

Kuvia

Kytkentäkaavio. On muistettava että käytettiin Arduino megaa. Jotkin digitaaliset paikat eivät toisissa Arduino -malleissa ole välttämättä PWM-kykyisiä, kuten suurin osa osista vaatii, tai interrupt-kykyisiä, joka taas tarvitaan enkoodereille.

Konseptointia

Robotti ennen enkoodereiden asentamista ja vaihtamista 4 x 1,5V paristoihin

Video

karttarobotti2_majander.mp4

koko video

wikivideo.mp4

osat joissa robotti tekee jotain 1080p laadulla



  • No labels
  File Modified
JPEG File 20210517_160425.jpg May 17, 2021 by Martti Majander
JPEG File 20210517_160505.jpg May 17, 2021 by Martti Majander
JPEG File 20210620_220331.jpg Jun 20, 2021 by Martti Majander
JPEG File 20210620_220454.jpg Jun 20, 2021 by Martti Majander
JPEG File huone.jpg Apr 08, 2021 by Martti Majander
PNG File kaavio_toiminta.png Jun 27, 2021 by Martti Majander
Multimedia File karttarobotti2_majander.mp4 Jun 29, 2021 by Martti Majander
PNG File kytkentakaavio.png Jun 27, 2021 by Martti Majander
Text File map_robot_v12.txt Jun 29, 2021 by Martti Majander
JPEG File matriisi.JPG Apr 08, 2021 by Martti Majander
JPEG File robotti_concept.jpg Apr 08, 2021 by Martti Majander
Multimedia File wikivideo.mp4 Jun 29, 2021 by Martti Majander