Sisällysluettelo:
- Tarvikkeet
- Vaihe 1: Robotin käyttöönotto
- Vaihe 2: Ohjaussauvan asennus
- Vaihe 3: Ohjaussauvan arvojen tarkistaminen
- Vaihe 4: X- ja Y -muuttujien säätäminen
- Vaihe 5: X: n ja Y: n muuntaminen vasemman ja oikean moottorin arvoiksi
- Vaihe 6: Arvojen lähettäminen radioviestinä
- Vaihe 7: Viestien vastaanottaminen robotillasi
- Vaihe 8: Saapuvien viestien käyttäminen robotin moottoreiden ohjaamiseen
- Vaihe 9: Painikkeiden käyttö - Lisäviestien vastaanottaminen
- Vaihe 10: Lisäviestien lähettäminen ohjaimen painikkeilla
- Vaihe 11: Seuraavat vaiheet
Video: Micro: Bit Robot & Joystick -ohjelmointi: Bit Controller MicroPythonilla: 11 vaihetta
2024 Kirjoittaja: John Day | [email protected]. Viimeksi muokattu: 2024-01-30 09:01
Kesärobotiikkaleirillämme Robocamp 2019 -tapahtumassa 10-13-vuotiaat nuoret juottavat, ohjelmoivat ja rakentavat BBC: n mikro: bittipohjaista "vastapainorobottia" sekä ohjelmoivat micro: bitin kauko-ohjaimeksi.
Jos olet tällä hetkellä Robocampissa, siirry vaiheeseen 3, koska olemme tehneet kaksi ensimmäistä vaihetta ryhmänä
Tämä on vaiheittainen opas saadaksesi micro: bit-robotin kommunikoimaan ohjaussauvan: bitin ohjaimen kanssa.
Se ei ota nopeinta reittiä saadakseen kaiken toimimaan, mutta yrittää asioita pieninä paloina, jotta voit testata koodia matkalla, laittaa oman leiman siihen ja ymmärtää, miksi teemme asioita, joita teemme !
Tässä toiminnassa käytämme omaa mukautettua robottia, mutta se toimii minkä tahansa robotin kanssa, joka käyttää samanlaista moottoriajuria, kuten L9110s.
Robottimme suunnittelutiedostot löytyvät täältä:
Tämä opas on kirjoitettu aloittelijoille, mutta jos et ole koskaan aiemmin käyttänyt micro: bittiä MicroPythonin kanssa, suosittelemme kokeilemaan ensin yksinkertaisempaa ohjelmaa, kuten nimimerkkiämme Instructable: https://www.instructables.com/id/Felt -Microbit-Nam…
Tarvikkeet
2x BBC micro: bit
Robotti, joka toimii BBC: n mikro: bitin kanssa (katso selitys yllä)
ohjaussauva: bittiohjain (saimme omamme Cool Componentsilta)
Vaihe 1: Robotin käyttöönotto
Sinulla on muutamia vaihtoehtoja MicroPython -koodin kirjoittamiseen micro: bit: bit:
- Mu, jonka voit ladata ja asentaa täältä:
- Online -editori, jonka löydät täältä:
Näissä ohjeissa oletetaan, että käytät Mu -laitetta
Avaa Mu ja kytke micro: bit tietokoneeseen. Mu pitäisi tunnistaa, että käytät micro: bittiä ja valitse micro: bit 'Mode', mutta jos ei, muuta se manuaalisesti.
Kopio robotin moottorin testikoodista täältä:
Jos et ole tottunut Githubiin, se voi olla intuitiivinen! Kaksi helppoa tapaa saada tämä koodi ovat:
- Tallenna Raw -tiedosto tietokoneellesi ja lataa se sitten Mu -tiedostoon:
- Kopioi ja liitä kaikki annettu koodi uuteen tiedostoon Mu.
Napsauta nyt Mu -työkalurivin Flash -painiketta lähettääksesi uuden koodisi micro: bitille.
Tämä ei toimi, ellei micro: bit ole liitettynä
Micro: bitin takana oleva keltainen valo alkaa vilkkua. Kun se on valmis, koodisi on siirretty.
MOOTTORIN OHJEIDEN ASETTAMINEN
Tämä ohjelma käynnistää moottorit eri suuntiin, kun painat micro: bitin A -painiketta.
Mitä haluat tapahtuvan, on:
- Kun 'A' näkyy, vasen moottori eteenpäin
- Kun näytössä näkyy "B", vasen moottori taaksepäin
- Kun 'C' näkyy, oikea moottori eteenpäin
- Kun näytössä näkyy "D", oikea moottori taaksepäin
Näin ei todennäköisesti ole, koska se riippuu siitä, miten olet kytkenyt robotin!
Koodin yläosasta löydät luettelon muuttujista, jotka määrittävät, mikä mikro: bitin tappi ohjaa moottorin suuntaa.
Jos käytät jotakin robottiamme (tiedostoja), vaihda muuttujien nimet ympäri saadaksesi robotin liikkumaan oikeisiin suuntiin:
Jos käytät omaa robottiasi, tarkista ennen koodin muokkaamista, mihin nastoihin moottoriajuri on kytketty.
AJAN TESTAUS
Tarkista nyt, miten robotti ajaa, korvaamalla pääsilmukan testikoodin jollakin omalla koodillasi.
Käsket robotin ajamaan kutsumalla drive () -toimintoa. Tämä vaatii kaksi argumenttia - vasemman moottorin arvon ja oikean moottorin arvon välillä 0 (pois) ja 1023 (maksiminopeus).
Soittamalla esimerkiksi taajuusmuuttajalle (500, 500) kerrot molempien moottoreiden käynnistyvän eteenpäin suunnilleen puolen nopeuden verran.
Kokeile muutamia vaihtoehtoja saadaksesi käsityksen siitä, kuinka suora se ajaa ja kuinka hyvin se kääntyy.
Vinkki: moottoritestit olivat sekä True True -silmukan että if -lauseen sisällä - moottorit eivät kääntyneet ennen kuin painat mikro: bitin A -painiketta, ja se tarkistaa ikuisesti, oletko painanut A -painiketta.
Vihje: moottorit eivät sammu ennen kuin kerrot heille! He jatkavat aina viimeisten ohjeidensa noudattamista.
VALINNAINEN: AJON PARANTAMINEN SUORASSA LINJASSA
Jos robotti ei aja suoraa linjaa, toinen moottoreistasi saattaa pyöriä nopeammin kuin toinen.
Kun olet tarkistanut, ettei mikään fyysisesti estä pyörää pyörimästä vapaasti, voit muokata ajotoiminnon koodia pienentääksesi nopeamman moottorin nopeutta.
Vieritä ylöspäin löytääksesi ajotoiminnon määritelmän ja katso kaksi parasta ohjetta:
takaveto (L, R):
# Alla on säätö moottorin nopeuseron korjaamiseksi L = int (L*1) R = int (R*1)
Nämä kaksi riviä saavat tällä hetkellä arvon L ja R, kerrotaan ne yhdellä ja varmistetaan, että ne ovat edelleen kokonaislukuja (int).
Jos esimerkiksi vasen moottori on nopeampi, muuta sen rivin *1 arvoksi *0,9 ja katso, parantaako se asioita.
Et voi tehdä siitä täydellistä, mutta voit jatkaa säätämistä, kunnes se ajaa suoremmin.
RADION ASETTAMINEN
Aseta radio nyt lisäämällä seuraavat rivit koodisi yläosaan:
tuoda radio
radio.config (kanava = 7, ryhmä = 0, jono = 1) radio.on ()
Tämä antaa robotillesi mahdollisuuden saada ohjeita toiselta micro: bitiltä, mutta tällä hetkellä se vastaanottaa ohjeita miltä tahansa muulta micro: bitiltä.
Tämä johtuu siitä, että kanava 7 ja ryhmä 0 ovat oletuskanavia.
Muuta näitä numeroita valitsemalla kanava välillä 0-82 ja ryhmä välillä 0-255. Nyt micro: bitisi saa vain ohjeita muilta, joilla on samat kokoonpanotiedot.
jono = 1 tarkoittaa, että mikro: bitti pitää vain yhden saapuvan viestin kerrallaan - tämä antaa hieman nopeamman vasteajan kuin oletusarvo, joka on 3.
Nyt sinun on muokattava pääsilmukan koodia niin, että painat painiketta painavien suoritusohjeiden sijasta, odota saapuvaa radioviestiä ja vastaa asianmukaisesti.
Kokeile seuraavaa koodia testinä (se ei tee mitään ennen kuin olet asettanut ohjaussauvan vaiheessa 2):
vaikka totta:
message = radio.recept () if message == 'forward': asema (500, 500)
Vaihe 2: Ohjaussauvan asennus
Irrota robotin micro: bit ja kytke ohjaussauvan micro: bit
Hanki kopio ohjaussauvan asennuskoodista täältä:
Määritä radio käyttämällä samaa kokoonpanoa (kanava- ja ryhmänumero) kuin robotille - tämä sallii kahden kommunikoida keskenään.
Käynnistä ohjelman päätyttyä pääsilmukka:
vaikka totta:
if button_a.was_pressed (): radio.send ('eteenpäin')
Tämä koodi ei vielä käytä ohjaussauvaa: bit. Se käyttää micro: bitin painiketta A viestin lähettämiseen.
Varmista, että sekä robotissasi että ohjaimesi micro: bitissä on virtaa, ja lähetä sitten viestisi painamalla painiketta.
Jos viesti vastaanotetaan ja robotti liikkuu… hyvin tehty! Olet suorittanut asennusohjeet.
VIANETSINTÄVINKKEJÄ
Jos saat virheilmoituksen ohjaimesi micro: bit… virheenkorjauksesta
Jos saat virheilmoituksen robotti micro: bit… radioviestisi lähetettiin onnistuneesti! Mutta robotti ei voi ymmärtää sitä, joten tarkista, että lähettämäsi viesti ja viesti, jonka kerroit robotille, kuuntele ottelua.
Jos mitään ei tapahdu ollenkaan
- Varmista, että olet väläyttänyt oikean koodin jokaiselle micro: bitille - väärän koodin vilkkuminen on helppoa!
- Varmista, että kanavasi ja ryhmäsi numerot vastaavat kutakin micro: bittiä
Vaihe 3: Ohjaussauvan arvojen tarkistaminen
Seuraavat vaiheet käyttävät kaikki ohjaimen koodia
Ennen kuin voit käyttää ohjaimen ohjaussauvaa, sinun on tiedettävä, millaisia arvoja saat, kun painat tikkua.
Korvaa pääsilmukka seuraavalla koodilla:
vaikka totta:
joystick = joystick_push () tulosta (joystick) lepotila (500)
Flash tämä koodi micro: bit, ja napsauta sitten REPL painiketta Mu -työkalurivillä. Tämä avaa päätelaitteen editorin alareunaan, josta saat reaaliaikaisen linkin micro: bittiin.
Tämä ei toimi, ellei micro: bit ole liitettynä
Kun REPL on auki, paina micro: bitin takana olevaa nollauspainiketta.
Sinun pitäisi nähdä, että jotkut arvot tuovat "tulostetun" näytölle:
Paina ohjaussauvan sauvaa ja katso mitä numeroille tapahtuu.
Kirjoita muistiin arvot, jotka annetaan, kun ohjaussauva on keskiasennossa - minun tapauksessani (518, 523).
Sulje se napsauttamalla Mu -työkalurivin REPL -painiketta uudelleen - et voi vilkuttaa uutta koodia micro: bitille sen ollessa auki.
Vaihe 4: X- ja Y -muuttujien säätäminen
Haluat muuttaa joystick -toiminnon antamia arvoja seuraavasti:
- keskellä se on nolla
- ylöspäin on positiivinen
- alas on negatiivinen.
Tämä vastaa robotin tarvitsemia ohjeita - positiivinen numero eteenpäin ajamiseen ja negatiivinen luku taaksepäin ajamiseen.
Katsokaa lukuja, jotka saitte viimeisessä vaiheessa. Ensimmäinen numero on x ja toinen numero y.
Muokkaa jo ohjelmassa joystick_push () määritelmää miinus arvot alkuperäisestä:
def joystick_push ():
x = pin0.read_analog () - 518 y = pin1.read_analog () - 523 return x, y
Käytä omia numeroitasi, ne voivat olla erilaisia kuin minun
Flash uusi koodi, avaa REPL, paina micro: bitin nollauspainiketta ja tarkista arvosi.
Saatko (0, 0)?
Vaihe 5: X: n ja Y: n muuntaminen vasemman ja oikean moottorin arvoiksi
Tällä hetkellä tämä ohjaussauva ei ole kovin hyödyllinen ajamaan robottia. Kun työnnät eteenpäin, saat arvon, kuten (0, 500).
Jos annoit nämä numerot robotille, se käynnistää oikean moottorin, mutta ei vasenta, mikä ei ole sitä mitä haluat tapahtuvan!
Tämä kaavio näyttää, mitä tapahtuu x- ja y -arvoille, kun siirrät ohjaussauvaa, ja mitä haluamme robotin tekevän, kun liikutat ohjaussauvaa.
Sinun on käytettävä jotain matematiikkaa sekoittamaan x- ja y -arvot, jotta saat jotain hyödyllisempää.
n
MATEMAATIT
Aloitetaan painamalla ohjaussauvaa kokonaan eteenpäin.
Esimerkki mahdollisista arvoista on seuraava:
x = 0
y = 500
Jotta robotille olisi hyötyä, haluat saada seuraavat arvot:
vasemmalla = 500
oikea = 500
Yritetään lisätä x ja y eri tavoilla nähdäksemme, mitä numeroita saamme:
x + y = 0 + 500 = 500
x - y = 0-500 = -500 y + x = 500 + 0 = 500 y - x = 500-0 = 500
Katsotaan nyt, mitä tapahtuu, jos painamme ohjaussauvan kokonaan oikealle.
Esimerkki mahdollisista arvoista on seuraava:
x = 500
y = 0
Jotta robotti kääntyy oikealle, haluat vasemman moottorin ajavan eteenpäin ja oikean moottorin taaksepäin:
vasemmalla = 500
oikea = -500
Kokeillaan kaavaa uudelleen:
x + y = 500 + 0 = 500
x - y = 500-0 = 500 y + x = 0 + 500 = 500 y - x = 0-500 = -500
Vertaa kahta kaavasarjaa selvittääksesi, mikä vaihtoehto antaa sinulle oikean vasemman arvon ja mikä vaihtoehto antaa oikean oikean arvon.
Kokeile sitä joistakin joystickistä saamistasi arvoista varmistaaksesi, että valitsemasi kaava toimii koko ajan.
n
JOYSTICK -TOIMINNON LAAJENTAMINEN
Laajenna ja muokkaa ohjaussauvaa ja tee kaksi uutta muuttujaa vasemmalle ja oikealle sekä palauta nämä arvot x: n ja y: n sijaan:
def joystick_push ():
x = pin0.read_analog () - 518 y = pin1.read_analog () - 523 left = right = paluu vasemmalle, oikealle
Flash uusi koodi, avaa REPL, paina micro: bitin nollauspainiketta ja tarkista arvosi.
Saatko odottamasi arvot?
Jos tarvitset lisää apua, tutustu esimerkkikoodiini täältä:
Vaihe 6: Arvojen lähettäminen radioviestinä
Nyt sinulla on joitain arvoja valmiina lähetettäväksi robotillesi.
Muokkaa pääsilmukkaa niin, että se tarkistaa ohjaussauvan arvot, mutta sitten arvojen tulostamisen sijaan se saa ne valmiiksi lähetettäväksi radioviestinä.
vaikka totta:
joystick = joystick_push () viesti = str (joystick [0]) + "" + str (joystick [1])
Tämä ei oikeastaan lähetä viestiä vielä!
Mitä tässä uudessa koodirivissä tapahtuu?
- joystick [0] tarkoittaa joystick -toiminnosta tulevaa ensimmäistä tietoa (vasen)
- joystick [1] on seuraava bitti (oikea)
- str () muuntaa molemmat numerot merkkijonomuotoon (teksti numeroiden sijaan) - tämä on välttämätöntä, jotta tiedot voidaan lähettää radion kautta.
Olet tottunut näkemään + merkitsemään lisäystä - se voi sekä lisätä numeroita yhteen että yhdistää ketjuja, mikä tarkoittaa, että se kiinnittää kaksi informaatiobittiä yhteen.
Esimerkki:
150 + 100 = 250
str (150) + str (100) = 150100
Joten ketjutus pitää vasemman ja oikean arvon yhdessä.
Jos haluat pakottaa erottamaan kahden tietobittin (jotta robotti tietää, että ne ovat kaksi bittiä tietoa), yhdistä niiden välille ylimääräinen merkkijono käyttämällä "". Avaruuden ympärillä olevat puhemerkit tarkoittavat, että se on jo merkkijono.
Lopuksi laajenna koodiasi lähettääksesi tämän uuden viestin radion kautta:
radio.send (viesti)
nukkua (10)
Lepotila hidastaa viestien lähettämistä, jotta vastaanottava micro: bit ei ylikuormitu liikaa informaatiota!
Flash tämä koodi ohjaimesi micro: bit ja korjaa virheet ennen kuin siirryt seuraavaan vaiheeseen
Vaihe 7: Viestien vastaanottaminen robotillasi
Palaa robotikoodiin alusta alkaen - muista irrottaa ohjaimen micro: bit -pistoke pistorasiasta, jotta et vahingossa väläytä robotikoodia siihen
Vieritä alas pääsilmukkaan - poista testauskoodi ja lisää tämä tilalle:
vaikka totta:
viesti = radio. vastaanottaa () tulostaa (viesti) lepotila (100)
Tämä asettaa muuttujan, joka on sama kuin saapuva viesti, ja tulostaa viestin REPL: lle - tarkistaa, että viestit tulevat odotetusti.
Vilkkaa REPL -laitteeseen yhdistettyä uutta koodiasi ja paina ohjainta.
Sinun pitäisi saada jotain tällaista:
VIANETSINTÄVINKKEJÄ
Jos saat virheilmoituksen ohjaimesi micro: bit… virheenkorjauksesta
Jos saat virheilmoituksen robotti micro: bit… radioviestisi lähetettiin onnistuneesti! Mutta robotti ei voi ymmärtää sitä, joten tarkista, että lähettämäsi viesti ja viesti, jonka kerroit robotille, kuuntele ottelua.
Jos mitään ei tapahdu ollenkaan
- Varmista, että olet väläyttänyt oikean koodin jokaiselle micro: bitille - väärän koodin vilkkuminen on helppoa!
- Varmista, että kanavasi ja ryhmäsi numerot vastaavat kutakin micro: bittiä
Vaihe 8: Saapuvien viestien käyttäminen robotin moottoreiden ohjaamiseen
Saat nyt kaksi numeroa radion kautta merkkijonona.
Sinun on jaettava tämä viesti kahteen merkkijonoon, muunnettava sitten merkkijonot takaisin numeroiksi ja siirrettävä tämä ajotoimintoon. Paljon meneillään kerralla!
Ennen kuin teet tämän, sinun on tarkistettava, että saamasi viesti on oikeassa muodossa.
Jos viestejä ei lähetetä, saat sen sijaan "Ei mitään". Jos yrität jakaa tämän, saat virheilmoituksen.
vaikka totta:
message = radio.recept () jos viesti ei ole Ei mitään: message = message.split () asema (int (viesti [0]), int (viesti [1]))
Mitä täällä tapahtuu?
- Uusi koodi suoritetaan, jos viesti on jokin muu kuin Ei mitään.
- message.split () etsii viestissä tilaa (jonka lisäsimme viimeisessä vaiheessa) ja jakaa tämän viestin kahteen osaan.
- int (viesti [0]), int (viesti [1]) toimii päinvastoin kuin edellisessä vaiheessa - saa jokaisen tiedon erikseen ja muuntaa sen kokonaislukuksi (kokonaisluku).
- int (viesti [0]) käytetään taajuusmuuttajan vasemman moottorin arvona ja int (viesti [1]) oikean moottorin arvona.
Tarkista, että se toimii - pyörivätkö moottorit, kun painat ohjaussauvaa?
Jos ei - aika jonkinlaiselle virheenkorjaukselle!
Jos kyllä, fantastinen! Sinulla on toimiva kaukosäädinrobotti!
Vietä aikaa harjoittelemalla robotin kanssa ennen kuin siirryt seuraavaan vaiheeseen. Ajaako se odotetulla tavalla?
Seuraavissa vaiheissa kerrotaan, kuinka voit käyttää robotin lisätoimintoja ohjaussauvan painikkeilla
Jos haluat nähdä meidän version tästä koodista toistaiseksi:
- Robotti:
- Ohjain:
Vaihe 9: Painikkeiden käyttö - Lisäviestien vastaanottaminen
Tällä hetkellä koodisi yrittää jakaa kaikki viestit, jotka eivät ole Ei mitään. Tämä tarkoittaa, että jos se vastaanottaa esimerkiksi "hei", saat virheilmoituksen.
Jotta micro: bit voi tulkita muita viestejä, sen on ensin tarkistettava jokainen odotettu viesti ja jaettava se sitten vain, jos sitä ei ole kehotettu tekemään mitään muuta sen kanssa.
Laajenna koodisi seuraavasti:
jos viesti ei ole Ei mitään:
if message == 'hello': display.show (Image. HAPPY) elif message == 'duck': display.show (Image. DUCK) else: message = message.split () asema (int (viesti [0]), int (viesti [1]))
Ensinnäkin se tarkistaa, onko se vastaanottanut viestin "hei". Jos on, se näyttää onnellisen kuvan ja palaa sitten silmukan alkuun ja tarkista seuraava viesti.
Jos viesti ei ole hei, se tarkistaa seuraavaksi, onko viesti "ankka".
Jos viesti ei ole "hei" tai "ankka", se tekee luettelon viimeisen asian, joka jakaa viestin ja käynnistää moottorit. Se ei yritä jakaa viestiä, jos se on vastaanottanut "hei" tai "ankka", eli et saa virheilmoitusta kummastakaan näistä kahdesta viestistä.
Kaksinkertainen yhtäläisyysmerkki on tärkeä - se tarkoittaa 'on yhtä kuin', verrattuna yhteen yhtäläisyysmerkkiin, joka asettaa jotain (joten viesti = 'hei' tarkoittaa, että asetamme muuttujan arvoksi 'hei', viesti == 'hei' tarkoittaa, että kysymme, onko viesti sama kuin "hei").
Testaa nyt vain kahdella vaihtoehdolla - voit lisätä niin monta muuta viestiä kuin haluat myöhemmin.
Linkki toimivaan koodiin:
Vaihe 10: Lisäviestien lähettäminen ohjaimen painikkeilla
Irrota robotin micro: bit ja kytke ohjaussauvan micro: bit
Palaa ohjaimen koodiin muokataksesi.
Robotti -koodin tavoin haluamme, että ohjain tarkistaa ennen ohjaussauvan arvojen lähettämistä, yritätkö lähettää muita viestejä.
Silmukan yläosassa haluamme edelleen tarkistaa ohjaussauvan nykyiset arvot, mutta haluamme myös tarkistaa, painetaanko painiketta tällä hetkellä:
vaikka totta:
joystick = joystick_push () -painike = button_press ()
button_press () palauttaa arvon A, B, C, D, E tai F riippuen siitä, mitä painiketta parhaillaan painetaan (jos mitään ei paineta, se palauttaa Ei mitään).
Nyt voimme tehdä if-elif-else -lausekkeen, kuten teimme robottikoodille-käyttämällä kahta painiketta ja lähettämällä ohjaussauvan arvon, jos mitään painiketta ei paineta.
jos -painike == 'A':
radio.send ('hello') sleep (500) elif -painike == 'B': radio.send ('ankka') uni (500) else: message = str (joystick [0]) + "" + str (joystick [1]) radio. Lähetä (viesti) uni (10)
Kun painiketta painetaan, lähetä yksi viesteistä, jotka kerroit robotille varovasti edellisessä vaiheessa.
Viesti lähetetään aina, kun painiketta painetaan, ja tietokoneet ovat paljon nopeampia kuin ihmiset! Joten se voi lähettää viestin monta kertaa, ennen kuin olet onnistunut ottamaan sormesi pois painikkeesta.
Nukkuminen viestin lähettämisen jälkeen hidastaa sitä, joten se ei tarkista painiketta uudelleen niin nopeasti - kokeile muutamia numeroita täältä saadaksesi täydellisen ajan sinulle - liian hitaasti ja se ei myöskään reagoi nopeasti ja robotti saa niin monta painikeviestiä, että se saattaa lakata vastaamasta ohjaussauvaan!
Toimiiko se?
Jos saat virheilmoituksia, mieti tarkkaan, mitä olet juuri muuttanut ja mitä tapahtuu.
Jos saat virheen robotissa, kun painat ohjaimen painiketta - tiedät, että viesti menee perille, mutta se hämmentää robottia. Tarkista, että lähettämäsi viesti ja robotille etsimäsi viesti ovat samat.
Linkki toimivaan koodiin:
Vaihe 11: Seuraavat vaiheet
Sinulla on nyt tarvittavat tiedot työskennelläksesi robottisi moottoreiden ja joystick: bit -ohjaimen kanssa
Käytä tätä tietämystä parantaaksesi näitä kahta ohjelmaa ja tee niistä omasi. Alla muutama idea!
Sinulla on kuusi painiketta ohjaimessasi! Mitä haluat heidän tekevän?
- Entä ohjelmoitko tanssirutiinin robotillesi komennon mukaan? Kirjoita drive () -komentojen algoritmi, erotettuna sleep () -komennoilla!
- Haluatko muuttaa suunnan, jossa robotti liikkuu, jotta se voi ajaa helposti ylösalaisin? Ajattele ohjaussauvasi x- ja y -arvoja. Mitä ne edustavat ja miten voit manipuloida niitä?
- Onko robotissasi (tai voit lisätä!) Lisäominaisuuksia, kuten LEDit, kaiutin tai anturit?
Ideoita koodin parantamiseen
- Voisitko auttaa robottiasi selviytymään tuntemattomista viesteistä käyttämällä try/paitsi koodia?
- Matematiikka, jota käytetään vasemman ja oikean arvon laskemiseen ohjaussauvasta, ei anna meille kaikkia arvoja (robotin asema voi hyväksyä jopa 1023: n luvun). Voitko muokata tätä koodia saadaksesi paremman alueen?
- Joystick -arvojen sekoittamiseen on muitakin tapoja - voitko keksiä paremman tavan tehdä se?
Suositeltava:
"High-Fivey" Cardboard Micro: bit Robot: 18 vaihetta (kuvilla)
"High-Fivey" Cardboard Micro: bit Robotti: Stuck kotona, mutta silti tarvetta high-five joku? Teimme ystävällisen pienen robotin, jossa oli pahvia ja mikro: bittiä yhdessä Crazy Circuits Bit Boardin kanssa, ja hän haluaa sinulta vain viiden korkean pitääkseen rakkautensa sinua elossa
Micro: bit Robot Control kiihtyvyysanturilla: 4 vaihetta
Micro: bit Robot Control kiihtyvyysmittarilla: Tässä artikkelissa aiomme käyttää TinkerGenin BitCar-sarjaa rakentaaksesi Micro: bit-robotin ja ohjaamaan sitä käyttämällä kiihtyvyysmittaria toisella Micro: bit-kortilla. itse robotti, joka on suunniteltu STEM -koulutukseen. Se on helppo koota, esim
Tee itse infrapunalämpömittari COVID-19: lle MicroPythonilla: 8 vaihetta
Tee itse infrapunalämpömittari COVID-19: lle MicroPythonilla: Koronavirustaudin (COVID-19) puhkeamisen vuoksi yrityksen henkilöstö mittaa ja rekisteröi jokaisen työntekijän lämpötilan. Tämä on työläs ja aikaa vievä tehtävä HR: lle. Joten tein tämän projektin: työntekijä painoi painiketta, tämä
Micro: bit - Micro Drum Machine: 10 vaihetta (kuvilla)
Micro: bit - Micro Drum Machine: Tämä on micro: bit mikrorumpukone, joka äänen tuottamisen sijaan toimii tehokkaasti. Se on raskas innoittamana micro: bit -orkesterin kaneista. Kesti jonkin aikaa löytää joitakin solenoideja, joita oli helppo käyttää mocro: bit
Vielä yksi Arduinon sääasema (ESP-01 & BMP280 & DHT11 & OneWire): 4 vaihetta
Vielä yksi Arduino-sääasema (ESP-01 & BMP280 & DHT11 & OneWire): Täältä löydät yhden iteraation OneWiren käyttämisestä vain muutamalla ESP-01-nastalla. valinta (sinulla on oltava valtuudet …) Kerää aistitietoja BMP280: sta ja DHT11: stä