John Lim

mikromökki on robotti, joka käyttää sokkeloratkaisualgoritmia labyrinttiongelman autonomiseen ratkaisemiseen. Tässä postitse, aion kertoa, miten tiimini ja onnistuin tekemään sen paljon kaivattua ohjausta joitakin erittäin hyödyllisiä ihmisiä.

Syyslukukauteni aikana UC Berkeleyssä otin opiskelijavetoisen kurssin luodakseni robotin, joka autonomisesti ratkaisee labyrinttiongelman. Ajatukseni ovat, että jos olet UC Berkeley, kiinnostunut elektroniikkaprojekteista ja etsivät erittäin ohjattu ohjelma mahtava ohjaajia, tämä on hyvä paikka olla! Minulle tämä kurssi on erityinen, koska siellä aloitin matkani robotiikkaan, puuhasteluun ja tekemiseen ja se on sellainen, josta nautin syvästi. Tämä kurssi antoi minulle hyviä perusasioita, ja opin lisää matkan varrella, kun aloin ottaa uusia projekteja.

minä ja tiimini ja hiiremme
hiiremme sokkelossa
minä, tiimikaverini ja kurssinohjaajani

tässä on karkea joukko ohjeita siitä, miten aloittaa Micromouse-projekti aloittelijana:

  1. Parts List
  2. Putting the hardware parts together
    1. seting The Teensy Micro Controller & Arduino IDE
    2. Teensy pinOut Introduction
    3. Using Sensors
    4. Voltage Regulation
    5. H Bridge motor controller to control the motor
    6. using the Hall Effect Rotorary Encoder
    7. putting it all together
  3. koodaus
    1. kuinka hallita laitteistoa koodilla
    2. Sensing
    3. PID Control
    4. Maze solving Algorithm
    5. hienosäätö
  4. vianmääritys

osaluettelo

  • mekaaniset osat
    • alustat
    • Pyörät
    • paljon tarrateippiä, ellet aio 3D-tulostaa mittatilaustyönä valmistettuja osia tai käyttää rahaa mittatilaustyönä valmistettujen kiinnikkeiden ostamiseen
  • sähköosat
    • leipälauta, johdot
    • kaksi 5 voltin mini TASAVIRTAMOOTTORIA
    • pieni 7-9 voltin akku
    • 7805 jännitteen säädin
    • Hall-anturi rotoraarinen encoder
    • H-silta
    • Teensy (tai mikä tahansa pieni Mikroohjain. Arduino toimii myös!)
    • kaksi Etäisyysanturia (käytin infrapunasensoria)

laitteiston kokoaminen

2.1 Teensy-mikro-ohjaimen asettaminen & Arduino IDE

Teensy on mikro-ohjain, joka toimii Arduinon tavoin. Yksi valtava etu on sen koko. Kuten nimestäkin voi päätellä, Teinst on pieni ja kompakti, mikä on hienoa!

aloitamme asettamalla Tensy päälle joitakin otsikko nastat, ja sitten juottamalla otsikko nastat päälle Tensy, ja sitten asennus se tukevasti päälle leipälauta.

Aseta otsatapit leipälaudan päähän
Aseta Teensy tapeille
juottaa otsikko nastat päälle Teini
Yhdistä tietokoneeseen MicroUSB-kaapelilla

jos et ole vielä, asenna Arduino IDE tietokoneellesi. https://www.arduino.cc/en/Main/Software

erittäin tärkeää: jos käytät Teensy 3.1: tä, varmista, että asennat Arduinon version, joka on yhteensopiva Teensyn kanssa. Tässä on linkki Teensyduinon asentamiseen, jotta Teensy voi toimia Arduino IDE: n kanssa: https://www.pjrc.com/teensy/td_download.html

2.2 piiri

2,21) akun virtalähde: virtalähteen tulee olla vähintään 7,2 V. Kierroskonventilla voimme kutsua tätä Vcc2: ksi.

2.22) 5V säännelty virtalähde: elektroniset sirukomponentit tarvitsevat usein vakaan virtalähteen jännitteen toimiakseen oikein. Ongelma on, että laitteet, kuten moottorit, jotka voivat vetää suuria vaihtelevia määriä virtaa, tämä aiheuttaa Syöttöjännite dip. Siksi tarvitsemme jännitteensäätimen, joka toimittaa vakaan 5V: n muille elektroniikkakomponenteillesi.

 VoltageReg

2.23) Micro controller: tämä on aivot tahansa robotti, joka näyttää olevan mitään semblace älykkään ajattelun. Mikrokontrolleri voi tuntua aluksi monimutkaiselta, mutta alkuun pääseminen ei todellakaan ole niin vaikeaa. Tässä ovat perusasiat: yksinkertainen, mutta erittäin tärkeä.

 Mikrokontrollerit

2.23 a) digitaaliset tulonapit: pystyy lukemaan ja kirjoittamaan binäärisignaaleja. Eri mikrokontrollereilla on eri logiikkatasot, mutta useimmilla mikrokontrollereilla logiikkataso on joko 3.3 V tai 5V. esimerkiksi Arduino on mikrokontrolleri, jonka logiikkataso on 5V.lukiessa jännite jossain lähellä 5V rekisteröityy korkeaksi, kun taas jännite jossain lähellä 0V rekisteröityy pieneksi.

2,23 b) Pulssinleveysmoduloidut (PWM) tapit: nämä ovat digitaalisia tulonappeja, joilla on erityinen kyky tuottaa pulssinleveysmoduloitua signaalia. Se on digitaalinen signaali, joka on korkea tietyn prosenttiosuuden ajan ja alhainen toisen prosenttiosuuden ajan. Tätä kutsutaan toimintasykliksi. PWM-signaali 60%: n käyttöjaksolla on logiikkatason korkea 60% ajasta, kun taas logiikkatason matala 40% ajasta. Lue lisää PWM: stä täältä.

2,23 c) analogiset nastat: nämä nastat pystyvät lukemaan analogisen jännitteen missä tahansa 0: sta mainittuun volttimäärään. Kun kyseessä on Arduino, sen 0-5V. he voivat lukea sitä vaihtelevalla resoluutiolla, riippuen siitä, kuinka monta bittiä analogista Digitaalimuunninta käytetään. 8-bittinen analoginen digitaalimuunnin voi lukea resoluutio 2^8 = 256. 5V logiikkatasolla se voi lukea tarkkuudella 5V / 256 = 19,5 mV.

2,23 d) digitaaliset keskeytykset: Jotkin mikrokontrollereiden digitaaliset pinnit voidaan määrittää keskeytyssignaaleiksi. Keskeytys on todella siistiä. Kun pin on määritetty keskeytysnapiksi, se havaitsee joko (1) nousevan signaalin reunan (2) laskevan signaalin reunan tai (3) logiikkatason muutoksen. Jompikumpi näistä käynnistää niin sanotun keskeytyspalvelurutiinin (ISR). ISR on koodissa oleva lyhyt funktio, joka aktivoituu aina, kun keskeytys havaitaan.

2,26) moottorit: moottorit ovat laitteita, jotka kääntyvät, kun niille annetaan jännite. Tässä tapauksessa käytämme harjattua TASAVIRTAMOOTTORIA. Se on nimetty sellaisenaan, koska sen sisällä on kommutaattori DC-harja, joka auttaa sitä kääntymään oikein, kun sille annetaan jännite. Moottorit vetävät yleensä suuren virran ja kaikilla moottoreilla on tietty jännitteen teho. Kun moottorit kääntyvät, ne tuottavat back-emf: n. Tämä saattaa kuulostaa intuition vastaiselta, mutta maksiminopeudellaan pyörivä moottori vetää itse asiassa vähiten virtaa takimmaisen emf: n takia. Päinvastoin, moottori, joka on pysähtynyt (eli se haluaa liikkua, mutta ei voi ulkoisten voimien vuoksi) vetää eniten virtaa.

 Moottori

2.25) Motor Driver: tätä tarvitaan moottorin nopeuden/suunnan säätämiseen mikrokontrollerin avulla. Tämä johtuu siitä, että mikrokontrollerisi ei pysty syöttämään tarpeeksi jännitettä tai virtaa moottorin ajamiseen. Lisäksi, kun moottorit pyörivät, back-emf luotu voi helposti vahingoittaa Mikrokontrolleri. Näiden kahden välillä tarvitaan liitäntä, jotta moottorisi nopeutta ja suuntaa voidaan säädellä. Moottorinohjaimena oli SN754410 nelinkertainen puoli-H-kuljettaja. Mitä moottorin ohjain tekee on, että se ottaa signaalin, joka tulee mikro-ohjaimesta (yleensä Pulssinleveyden moduloitu signaali), ja sitten Aktivoi ’digitaalisen Kytkimen’ akusta moottoriin. Mitä se tekee on, että se kytkee digitaalikytkimen akusta moottoriin erittäin nopeasti. Jos Tämä digitaalinen kytkin on päällä 100% ajasta (tai 100% toimintasykli), moottori käy täydellä teholla. Jos digikytkin on päällä vain 50% ajasta, moottori käy 50% teholla.

motordriver

2.26) koodaajat: koodaajat ovat älykkäitä laitteita, jotka havaitsevat liikettä. Kuten esimerkiksi, jotkut anturit havaitsevat kuinka monta kertaa pyörä on pyörinyt, toiset ovat vielä tarkempia kertomaan tarkalleen, mitä kulmaa robottikäsivarsi on kääntynyt jne. Mikromuovia varten Käytämme antureita, jotka havaitsevat, kuinka monta kertaa pyörä on kääntynyt. On hall-efektiantureita eli optisia antureita. Kahdenlaisia koodaajia, mutta periaatteessa tekevät saman asian. Ne laukaisevat digitaalisen pulssin aina, kun pyörä on kääntynyt! Hall effect encoder toimii siten, että moottorin akseliin kiinnitetyn esineen sisällä on pieni kestomagneetti. Kun moottori pyörii, myös magneetti kääntyy. On sensoreita, jotka havaitsevat, milloin magneetti on mennyt ohi. Silloin se lähettää pulssin, jonka Mikrokontrolleri voi lukea. Lähetämme signaalin yleensä digitaaliseksi keskeytysnapiksi määritettyyn pin-koodiin.

pakkaaja

2.27) Infrapunaetäisyys anturit: aistii etäisyyden infrapunalla. Se ampuu infrapunasignaalin-ja odottaa, että signaali pomppaa takaisin-määrittääkseen, kuinka kaukana kohde on. Voit kokeilla, mutta jos poikkeutat signaalin pois vinosta pinnasta, et ehkä saa lukemaa IR-anturistasi. Tämä tekee siitä ei niin ihanteellinen. Tällä IR-sensorilla on myös rajallinen kantama, jolla se voi havaita etäisyyksiä. Punainen lanka on 5V teho, musta lanka GND, keltainen lanka signaalin. Tämä erityisesti IR-anturi, riippuen siitä, kuinka pitkälle IR-anturi aistii kohteen, se antaa eri analoginen jännite. Mitä voit tehdä on lukea, että analoginen jännite mikro-ohjain. Lue datalehti täältä saadaksesi lisätietoja IR-sensorista.

 IRsensor

2.3 Piirikaaviot & johdotus

tässä on karkea piirikaavio. Huom. En määritellyt tarkasti, mihin tappeihin johdot kytketään. Tämä johtuu siitä, että tunnusluvut vaihtelevat sen mukaan, mitä mikro-ohjainta käytät, mutta tässä annan yleiset periaatteet:

wiringdiagram

kooderin signaalit on johdettava digitaaliseen Keskeytysnappiin. Siten aina kun signaali lähetetään, Mikrokontrolleri voi tietää, että pyörä on kääntynyt 1 kierros.

infrapunasensorin signaalit on johdettava analogiseen Tulotappiin.

Moottorin ohjaimeen syötettävien signaalien pitäisi tulla ulos PWM-tapista.

*lisää piirikaavio

3.0 koodi & kontrollit:

en lähetä koodia, mutta tässä muutamia yleiskäsitteitä:

3.1 miten saada hiiri liikkumaan suoraan tai kääntymään:

tätä hiirtä ohjataan eri tavoin. Pyöriä on kaksi, ja molemmissa pyörissä on kaksi moottoria. Jos molemmat pyörät pyörivät samalla nopeudella, hiiri menee suoraan. Jos vasen pyörä kiihtyy ja oikea pyörä hidastuu, hiiri kääntyy oikealle. Tätä kutsutaan differentiaaliseksi kontrolliksi.

3.2 kontrollia & virheenkorjaus

, mutta täytyy miettiä, miten hiirtä ohjataan. Miten saamme sen liikkumaan sokkelossa törmäämättä seinään? Saatamme ajatella, että lähetämme kaksi yhtä suurta signaalia vasemmalle ja oikealle moottorille käskemään hiirtä menemään suoraan. Joten hiiren pitäisi mennä suoraan oikealle? Väärin! Erilaiset syyt voivat aiheuttaa sen, että moottorit eivät reagoi niin kuin me käskemme. Pohjimmiltaan jokainen moottori on rakennettu lähes sama, mutta ei aivan sama. Laitteisto ei ole koskaan rakennettu täydellisesti ja siellä on aina jokin rajallinen virhe.

miten varmistamme, että hiiri todella liikkuu siihen suuntaan, mihin käskemme sen liikkua? Tarvitsemme niin sanottua suljetun kierron ohjausta. Mikä tarkoittaa, että me kytkeä anturit mitata lähtö ja sitten syöttää tulos takaisin tuloon suorittaa virheenkorjaus. Lisää siitä myöhemmin. Tarvitsemme PID-ohjainta (Proportional Integral Derivative).

tässä tapauksessa hiiri kannattaa saada pitämään tiukasti etäisyyttä seinään. Sanotaan, 5cm päässä seinästä oikealla. Kutsumme tätä asetuspisteeksi. Poikkeamia asetuspisteestä kutsutaan virheiksi. Kun virhe havaitaan, haluamme hiiren korjaavan itsensä. Kun virhe on suuri, haluamme ison korjausliikkeen. Kun virhe on pieni, haluamme pienen korjausliikkeen.

hiiren sivulla olevat anturit määrittävät, kuinka kaukana hiiri on seinästä. Sanotaan, että hiiri on liian kaukana seinästä oikealla. Haluamme, että vasen pyörä kääntyy nopeammin, kun taas oikea pyörä kääntyy hitaammin, jotta hiiri voi siirtyä oikealle korjatakseen virheen. Jos hiiri on hyvin kaukana 5cm asetuspisteestä, kuten 10cm päässä seinästä, haluamme vasemman pyörän kääntyvän hyvin nopeasti, kun taas oikean pyörän hidastavan paljon. Jos hiiri on vain 6cm päässä seinästä, haluamme vasemman pyörän lisäävän nopeutta ja oikean pyörän vähentävän nopeuttaan, mutta vain hyvin vähän.

Leave a Reply

Vastaa

Sähköpostiosoitettasi ei julkaista.