Inhoudsopgave:

MicroPython op SPIKE Prime: 12 stappen
MicroPython op SPIKE Prime: 12 stappen

Video: MicroPython op SPIKE Prime: 12 stappen

Video: MicroPython op SPIKE Prime: 12 stappen
Video: How to program SPIKE Prime with Python over Bluetooth - Swinging Monkey 2024, November
Anonim
MicroPython op SPIKE Prime
MicroPython op SPIKE Prime

U kunt SPIKE Prime coderen met MicroPython, een subset van python voor kleine microprocessors.

U kunt elke terminalemulator gebruiken om de SPIKE Prime-hub te coderen.

Benodigdheden

SPIKE Prime-naaf

Computer met USB-poort / bluetooth

USB-kabel om de hub op de computer aan te sluiten

Stap 1: Pak een Terminal Emulator

Pak een Terminal Emulator
Pak een Terminal Emulator
Pak een Terminal Emulator
Pak een Terminal Emulator

Er zijn veel opties om uit te kiezen.

CoolTerm werkt op alle platforms, inclusief Pi

Putty werkt op ramen

schermopdracht in Terminal op een Unix-besturingssysteem

Stap 2: Sluit SPIKE Prime aan op de USB-poort

Sluit SPIKE Prime aan op de USB-poort
Sluit SPIKE Prime aan op de USB-poort
Sluit SPIKE Prime aan op de USB-poort
Sluit SPIKE Prime aan op de USB-poort

Gebruik een microUSB-kabel om de SPIKE Prime op de computer aan te sluiten.

Stap 3: Zoek de poort

Vind de haven
Vind de haven
Vind de haven
Vind de haven

We moeten weten op welke seriële poort de SPIKE Prime-hub is aangesloten.

Typ op mac

ls /dev/tty.usbmodem*

Kijk op een pc in je apparaatbeheer onder serieel om te zien welke seriële poorten je hebt aangesloten

Op pi zal het zoiets zijn als ttyAMC0 - check in je /dev/folder

Stap 4: Maak verbinding

Verbinden
Verbinden
Verbinden
Verbinden

Maak verbinding met de juiste poort (van de vorige stap) op 115200 baud

Typ in Terminal

gebruikerscomputer$ scherm /dev/ 115200

In een andere IDE, druk op Open/connect (na het instellen van de poorten en baudrates)

Opmerking: geen pariteit, 8 databits en 1 stopbit

Stap 5: De REPL starten

De REPL starten
De REPL starten
De REPL starten
De REPL starten
De REPL starten
De REPL starten

Wanneer u verbinding maakt met de SPIKE Prime vanaf de terminal/PUTTY, ziet u een stroom van cijfers en tekens. Dat zijn gegevens van interne sensoren van de SPIKE Prime hub. Druk op control + c. om te beginnen

Het zal de seriële poort onderbreken en je zou zoiets als dit moeten zien.

MicroPython v1.9.4-1146-gca9944357 op 25-09-2019; LEGO Technic Grote Naaf met STM32F413xx Typ "help()" voor meer informatie.

Nu ben je klaar om te coderen.

Stap 6: Uw eerste code

Uw eerste code
Uw eerste code

hub importeren

hub.display.show('Tufts')

Let op de "import"-opdracht - die een python-bibliotheek binnenhaalt waarmee je met SPIKE Prime kunt praten. Je zou Tufts moeten zien geschreven op de LED-matrix op de hub.

Stap 7: Toon uw naam

probeer nu te typen

hub.display.show(' ')

merk op dat aangezien u de hub hierboven al hebt geïmporteerd, deze zich al in het geheugen bevindt. Als dit niet het geval was, zou u een foutmelding krijgen als:

Traceback (meest recente oproep laatst):File "", regel 1, inNameError: naam 'hub' is niet gedefinieerd

Stap 8: REPL gebruiken

Een van de krachtigere kenmerken van Python is dat je alles kunt testen voordat je code in de REPL schrijft (lees eval print loop).

Het zal elk python-commando uitvoeren - probeer 2 + 2 hieronder te typen en kijk wat het zegt:

2+2

Stap 9: MicroPython verkennen op SPIKE Prime

Nu is het tijd om te verkennen.

hub heeft veel functies - u kunt erachter komen door gewoon "hub" te typen. (vergeet de punt na hub niet) en druk vervolgens op de TAB-toets in de REPL. Dat laat u alle verschillende manieren zien waarop u de opdracht kunt voltooien.

Uitdaging: Kijk of je de versnelling kunt aflezen.

Stap 10: Sensorwaarden lezen…1

De versnellingsgegevens komen terug als een reeks waarden. dus als je alleen de X-waarde wilt, kun je het proberen

hub.motion.accelerometer()[0]

of een leukere manier om dit te coderen zou zijn om variabelen zoals deze te gebruiken:

hub importeren

accel = hub.motion.accelerometer() xAccel = accel[0] hub.display.show(str(xAccel))

Stap 11: Sensorwaarden lezen…2

Sensorwaarden lezen…2
Sensorwaarden lezen…2

Je zou ook alle drie versnellingen kunnen weergeven met een lus.

We zullen ook de utime van de bibliotheek importeren, zodat we kunnen pauzeren en u de tijd kunnen geven om het nummer op het scherm te lezen.

Probeer deze code:

import hub, utimeaccel = hub.motion.accelerometer() voor Acc in accel: hub.display.show(str(Acc)) utime.sleep(0.8)

Op dit punt worden een paar dingen belangrijk:

spaties - Python heeft alles te maken met het inspringen van rechts - vergelijkbaar met haakjes in andere talen, inspringen vertelt je wat er in de for-lus zit en wat niet.

wanneer u de REPL gebruikt, zult u merken dat wanneer u inspringt, deze de regel niet langer uitvoert, maar eerder wacht tot u de regels voor de for-lus hebt voltooid voordat deze wordt uitgevoerd (en de >>> wordt vervangen door …). Om de for-lus te beëindigen, drukt u drie keer op return en de lus wordt uitgevoerd.

Stap 12: Uitdaging

Kijk vervolgens of je kunt achterhalen wat de onderstaande code doet - en probeer het uit te voeren om te zien of je gelijk hebt.

importhub, utime

while True: accel = hub.motion.accelerometer() voor Acc in accel: hub.display.show(str(Acc)) utime.sleep(0.8) if hub.port. B.device.get(): break

Hint - je hebt een sensor op poort B nodig.

Aanbevolen: