Sisällysluettelo:

Micro: Bit Robot & Joystick -ohjelmointi: Bit Controller MicroPythonilla: 11 vaihetta
Micro: Bit Robot & Joystick -ohjelmointi: Bit Controller MicroPythonilla: 11 vaihetta

Video: Micro: Bit Robot & Joystick -ohjelmointi: Bit Controller MicroPythonilla: 11 vaihetta

Video: Micro: Bit Robot & Joystick -ohjelmointi: Bit Controller MicroPythonilla: 11 vaihetta
Video: Control Position and Speed of Stepper motor with L298N module using Arduino 2024, Marraskuu
Anonim
Micro: Bit Robot & Joystick -ohjelmointi: Bit Controller MicroPythonilla
Micro: Bit Robot & Joystick -ohjelmointi: Bit Controller MicroPythonilla

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.

valitse tila
valitse tila

Kopio robotin moottorin testikoodista täältä:

Jos et ole tottunut Githubiin, se voi olla intuitiivinen! Kaksi helppoa tapaa saada tämä koodi ovat:

  1. Tallenna Raw -tiedosto tietokoneellesi ja lataa se sitten Mu -tiedostoon:
  2. Kopioi ja liitä kaikki annettu koodi uuteen tiedostoon Mu.
tallenna raaka tiedosto
tallenna raaka tiedosto

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:

swap pin muuttujat
swap pin muuttujat

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.

avaa REPL
avaa REPL

Tämä ei toimi, ellei micro: bit ole liitettynä

Kun REPL on auki, paina micro: bitin takana olevaa nollauspainiketta.

Kuva
Kuva

Sinun pitäisi nähdä, että jotkut arvot tuovat "tulostetun" näytölle:

arvot päätelaitteessa
arvot päätelaitteessa

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.

kaavio
kaavio

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:

REPL -arvot
REPL -arvot

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: