Inhoudsopgave:

CircuitPython met een Itsybitsy M4 Express 1: instellen: 9 stappen
CircuitPython met een Itsybitsy M4 Express 1: instellen: 9 stappen

Video: CircuitPython met een Itsybitsy M4 Express 1: instellen: 9 stappen

Video: CircuitPython met een Itsybitsy M4 Express 1: instellen: 9 stappen
Video: Adafruit Metro M4 Express | Maker Minute 2024, Juli-
Anonim
CircuitPython met een Itsybitsy M4 Express 1: Setup
CircuitPython met een Itsybitsy M4 Express 1: Setup

Nieuw bij het coderen? Heb je alleen Scratch gebruikt en wil je overstappen op een tekstuele taal die gemakkelijk toegang geeft tot fysiek computergebruik met LED's, schakelaars, displays en sensoren? Dan is dit misschien iets voor jou.

Ik heb gemerkt dat deze site veel Instructables bevat over coderen met Arduinos met behulp van de Arduino IDE, maar heel weinig over Python. Ik geef sinds 1968 les in coderen. (Destijds noemden we het programmeren en gebruikten we FORTRAN IV met Hollerith-kaarten voor invoer!) verschillende versies op BASIC.

Meer recentelijk zijn veel scholen in het VK begonnen met het gebruik van Python in hun lessen, aangezien leerlingen de overstap maken van 'blok'-codering met Scratch of vergelijkbaar met tekstuitspraken. Python is waarschijnlijk een gemakkelijkere stap hoger dan het gebruik van de Arduino IDE. CircuitPython-code kan worden uitgevoerd door de code eenvoudig op het ontwikkelbord op te slaan alsof het een USB-station is. Ik heb Python voor Physical Computing met succes gebruikt met 8- tot 11-jarigen in de Coding Club van mijn kleindochter op de basisschool.

Ik heb besloten om de Itsybitsy M4 Express van Adafruit te gebruiken voor deze Instructables om de volgende redenen:

  • Goedkoop - minder dan $ 15 (£ 15)
  • Eenvoudig in te stellen en te programmeren met CircuitPython (een versie van Python die ideaal is voor mensen die nieuw zijn in coderen)
  • Digitale input/output-pinnen - het is erg leuk om met Blinkies te spelen
  • Analoge pinnen - 12 bit ADC en DAC - hoge nauwkeurigheid
  • Rode LED en RGB DotStar LED's ingebouwd
  • Stuurt Neopixels rechtstreeks aan
  • I2C en SPI ondersteund – voor sensoren en displays
  • Breed scala aan drivers in de uitgebreide bibliotheek
  • Snel en krachtig - ultrasnelle ATSAMD51 Cortex M4-processor met 120 MHz
  • Veel geheugen - 2 MB SPI Flash-geheugen voor CircuitPython-code of gegevensbestanden
  • Geweldige ondersteuning van Adafruit met volledige documentatie, handleidingen en een internethulpforum
  • Heeft alleen een oude laptop of computer nodig - geen speciale monitor, toetsenbord, voeding of muis.
  • Gebruikers kunnen converteren naar Arduino IDE, op hetzelfde bord, zodra ze ervaring hebben opgedaan met Python.

Deze eerste Instructable legt uit hoe je je bord opzet en je eerste scripts uitvoert.

Stap 1: Wat u nodig heeft om aan de slag te gaan

Wat je nodig hebt om te beginnen
Wat je nodig hebt om te beginnen

Hardware:

  • Itsybitsy M4 Express (adafruit.com, Pimoroni.com)
  • microUSB-kabel
  • Computer - een oude laptop is voldoende
  • Soldeerbout
  • Soldeer
  • Breadboard
  • Vrouwelijke kopstrip (optioneel)

Software:

Mu-editor

Download de Mu-editor van

Installeer het op uw computer. Zeer eenvoudig met volledige instructies op de site.

Stap 2: Controleer of CircuitPython is geïnstalleerd

Controleer of CircuitPython is geïnstalleerd
Controleer of CircuitPython is geïnstalleerd

Open Verkenner op uw computer.

Steek het kleine uiteinde van de USB-kabel in de connector op de Itsybitsy.

Steek het andere uiteinde van de kabel in een USB-poort op uw computer.

U zou een nieuwe schijf moeten zien verschijnen met de naam CIRCUITPY. (Zo niet, ga dan naar de UPDATE-pagina.)

Dubbelklik op boot_out en je zou een bericht als dit moeten zien:

Adafruit CircuitPython 3.1.1op 2018-11-02; Adafruit ItsyBitsy M4 Express met samd51g19

Dit laat zien dat je een oudere versie van CircuitPython hebt, aangezien we momenteel versie 4 hebben. Dit is voorlopig in orde, we zullen de versie later updaten. Adafruit verbetert CircuitPython regelmatig en publiceert updates. Deze updates zijn zeer eenvoudig te installeren.

Navigeer naar uw documentenmap en maak een nieuwe map met de naam Code-with-Mu erin.

Start de Mu Editor

Stap 3: De Mu Editor gebruiken voor uw eerste programma

De Mu Editor gebruiken voor je eerste programma
De Mu Editor gebruiken voor je eerste programma

Klik op het pictogram Serieel boven aan de editor. Dit zou het REPL-venster onder aan het scherm moeten openen. In de linkerbenedenhoek zou Adafruit moeten staan. Mu heeft herkend dat er een CircuitPython-bord op de computer is aangesloten.

We kunnen nu ons eerste programma of script schrijven. Klik met de muis in het bovenste venster en typ in:

print("Hallo wereld!")

Klik op het pictogram Opslaan. Selecteer het CIRCUITPY-station. Typ main.py in het titelvak en klik op de knop Opslaan.

Dit doet veel. Je script wordt opgeslagen op je Itsybitsy met de naam "main.py". Elk bestand met deze naam wordt onmiddellijk door het bestuur uitgevoerd. De uitvoer van de printopdracht verschijnt in het onderste REPL-venster.

Bewerk de programmaregel naar:

print("\nHallo, coder!") en klik op het pictogram Opslaan.

Probeer een paar vergelijkbare afdrukinstructies toe te voegen en voer uw nieuwe code uit.

Bekijk je Itsybitsey terwijl je een script uploadt. De knipperende groene DotStar wordt ROOD terwijl het script wordt opgeslagen en keert terug naar GROEN.

Laten we een fout maken om te zien wat er gebeurt. Verwijder gewoon het laatste aanhalingsteken en voer het script opnieuw uit. De editor geeft de fout aan en de uitvoer geeft het type fout aan - syntaxis - en het regelnummer - om u te helpen de fout te corrigeren. De DotStar geeft de storing aan door van kleur te veranderen. Hierover meer in een later hoofdstuk.

Corrigeer de fout en voer het script opnieuw uit.

We moeten ons script nu ergens veilig opslaan, zodat we het later kunnen gebruiken.

Dubbelklik op het tabblad boven uw script. Navigeer naar uw documenten Code-with-Mu map en sla uw script daar op met een handige bestandsnaam zoals FirstProg.py. Merk op dat de bestandsnaam en het pad aan de onderkant van de editor knipperen.

Stap 4: Uw tweede script - Knipperen

Je tweede script - Knipperen
Je tweede script - Knipperen

Typ het script, sla het op in CIRCUITPY als main.py en klik op Ja om de vorige main.py te vervangen.

(Gebruik altijd de bestandsnaam main.py voor je script wanneer je het opslaat naar je ItsyBitsy. CircuitPython voert dan onmiddellijk het nieuwe script uit.)

Wat het script doet:

  • Importeert bibliotheken voor de pinnamen op het bord, tijd om vertragingen te controleren en digitale pincontrole,
  • Stelt pin 13 in om spanningen uit te voeren naar de ingebouwde rode LED
  • Loopt een eindeloze lus om de LED AAN en UIT te zetten
  • Wacht op korte vertragingen zodat de LED knippert.

Het script heeft veel opmerkingen om uit te leggen wat er aan de hand is. Opmerkingen beginnen met een '#'-teken. Ze zijn bedoeld voor menselijk gebruik om u te helpen herinneren aan uw denken op dat moment. Goede scripts hebben veel commentaar.

  1. Probeer de waarden in de sleep()-instructies te wijzigen.
  2. Houd de LED twee keer zo lang aan als deze uit is.
  3. Wat gebeurt er als de vertragingen erg kort zijn? (0,001 seconden)

Dubbelklik op het tabblad boven je script en sla op met de naam Blink.py in je Code-with-Mu-map.

Stap 5: Uw versie van CircuitPython bijwerken

Uw versie van CircuitPython bijwerken
Uw versie van CircuitPython bijwerken

Navigeer naar https://circuitpython.org/downloads op internet. Klik op de afbeelding van de Itsybitsy M4 Express (niet de M0-versie).

Klik op de paarse knop om het. UF2-bestand te downloaden.

Start Verkenner en zoek het. UF2-bestand

Sluit uw Itsybitsy M4 Express aan op de USB-poort en zoek de drive - CIRCUITPY

Dubbelklik op de kleine resetknop en de bestandsnaam zou moeten veranderen in ITSYM4BOOT van CIRCUITPY. Je moet vrij snel dubbelklikken.

Sleep het UF2-bestand en zet het neer op de ITSYM4BOOT-schijf. Het UF2-bestand wordt gekopieerd naar het IBM4-bord en de schijfnaam keert terug naar CIRCUITPY.

Selecteer het CIRCUITPY-station en dubbelklik op het bestand boot_out.

U kunt het nieuwe versienummer lezen om te controleren of het is bijgewerkt.

Maak een nieuwe map op het CIRCUITPY-station met de naam lib. We hebben dit in latere Instructables nodig om stuurprogramma's voor sensoren en displays vast te houden.

Start de Mu-editor opnieuw. Laad uw main.py-bestand van de IBM4 en sla het terug op de IBM4 op. De rode LED zou moeten beginnen te knipperen.

Als u eenmaal op de reset-knop klikt, wordt het geladen main.py-script opnieuw gestart.

Stap 6: De REPL

de REPL
de REPL

Het venster onderaan de editor, aan- en uitgezet met het Serial-pictogram, is veel meer dan alleen een printvenster.

"Een read-eval-print loop (REPL), ook wel een interactieve top-level of taalschil genoemd, is een eenvoudige, interactieve computerprogrammeeromgeving die invoer van één gebruiker (dwz enkele uitdrukkingen) nodig heeft, deze evalueert en het resultaat retourneert aan de gebruiker; een programma geschreven in een REPL-omgeving wordt stuksgewijs uitgevoerd." (Google)

Kortom, als u een enkele python-instructie in de REPL schrijft, wordt deze in één keer uitgevoerd. Laten we het proberen.

Klik met uw muis in het REPL-venster.

Houd tijdens het uitvoeren van uw script de toets ingedrukt en tik op (CTRL-C). Dit stopt je script.

Tik op een willekeurige toets om de REPL in te voeren en de prompt '>>>' verschijnt.

typ in print (4 + 100)

Onmiddellijk komt het antwoord terug 104

Kijk naar de foto en probeer er een paar van jezelf. (Probeer +, -, *, /, // en %)

Probeer dit:

>> bord importeren

>> dir(bord)

['_class_', 'A0', 'A1', 'A2', 'A3', 'A4', 'A5', 'APA102_MOSI', 'APA102_SCK', 'D0', 'D1', 'D10', ' D11', 'D12', 'D13', 'D2', 'D3', 'D4', 'D5', 'D7', 'D9', 'I2C', 'MISO', 'MOSI', 'RX', 'SCK', 'SCL', 'SDA', 'SPI', 'TX', 'UART']

>>

Dit is een lijst van de pinnamen die beschikbaar zijn op het IBM4-bord

Om terug te keren naar normaal met een zachte herstart, typt u gewoon CTRL-D en main.py herstart.

Je bord loskoppelen

Werp het CIRCUITPY-station altijd uit voordat u het loskoppelt van de computer. Trek het er nooit uit terwijl het gegevens overdraagt.

Stap 7: De benen aantrekken

Op de benen zetten
Op de benen zetten
Op de benen zetten
Op de benen zetten

De mannelijke headers zijn te lang voor het bord, dus knip/knip er 2 op de juiste lengte.

Duw ze in een breadboard, plaats de IBM4 erop en soldeer ze vast. Zorg ervoor dat het bord goed omhoog staat! (chip bovenop)

Plaats geen mannelijke headers bovenaan. Ik gebruik een strook van 5 vrouwelijke headers aan de bovenkant, zodat ik alle pinnen kan gebruiken. Gebruik een bankschroef om de strook kopstuk stevig vast te houden, dicht bij het snijpunt. Gebruik een scherpe ijzerzaag om het midden van een gat te zagen - de koperen connector valt eruit tijdens het zagen. Vijl de snijrand voor een nette afwerking - geen groef.

Solderen op de pinnen is niet moeilijk. Kijk bij de cursussen Arduino en Elektronica als je nog nooit een soldeerbout hebt gebruikt. Als je kunt solderen, kun je mooie duurzame versies van je projecten op stripboard maken en het breadboard vervolgens opnieuw gebruiken.

Om te voorkomen dat het bord oververhit raakt, raad ik aan om niet aan de ene kant en vervolgens aan de andere kant te solderen. Laat gaten en vul later in. dat wil zeggen pinnen 10, RX, 2, A3, RS, BAT, 9, MI … enz

Stap 8: CircuitPython RGB-statuslampje - om u te helpen de fouten te vinden

CircuitPython RGB-statuslampje - om u te helpen de fouten te vinden
CircuitPython RGB-statuslampje - om u te helpen de fouten te vinden

ItsyBitsy M4 Express en vele andere M0- en M4-kaarten hebben allemaal een enkele NeoPixel- of DotStar RGB-led op het bord die de status van CircuitPython aangeeft. Hier zit hij tussen de (C) en pin A0.

Dit is wat de kleuren en het knipperen betekenen:

  • stabiel GROEN: code.py (of code.txt, main.py of main.txt) is actief
  • pulserend GROEN: code.py (etc.) is afgelopen of bestaat niet
  • constant GEEL bij opstarten: (4.0.0-alpha.5 en nieuwer) CircuitPython wacht op een reset om aan te geven dat het in de veilige modus moet starten
  • pulserend GEEL: Circuit Python bevindt zich in de veilige modus: het is gecrasht en opnieuw gestart
  • constant WIT: REPL wordt uitgevoerd
  • constant BLAUW: boot.py is actief

Kleuren met meerdere flitsen erna geven een Python-uitzondering aan en geven vervolgens het regelnummer van de fout aan. De kleur van de eerste flits geeft het type fout aan:

  • GROEN: Inspringfout
  • CYAAN: Syntaxisfout
  • WIT: Naamfout
  • ORANJE: OSEror
  • PAARS: Waardefout
  • GEEL: andere fout

Deze worden gevolgd door flitsen die het regelnummer aangeven, inclusief plaatswaarde. WITTE flitsen zijn de plaats van duizenden, BLAUWE zijn de plaats van honderden, GELE zijn de plaats van tientallen en CYAAN zijn de plaats van één. Een fout op regel 32 zou bijvoorbeeld drie keer GEEL knipperen en vervolgens twee keer CYAAN. Nullen worden aangegeven door een extra lange donkere opening.

Deze zijn vrij moeilijk te tellen. Houd altijd het REPL-venster open bij het ontwikkelen van een script en de foutmeldingen, in het Engels, zullen daar verschijnen.

Stap 9: Vooruitblikkend - Over naar jou

Ik kijk ernaar uit - Op naar jou
Ik kijk ernaar uit - Op naar jou

Toen ik aan deze Instructable begon, verwachtte ik dat het de eerste van een serie zou zijn waarin CircuitPython en Physical Computing worden verkend. Mijn plan voor de volgende is om de basisinvoer en -uitvoer te dekken met rekenkunde, LED's, schakelaars, potentiometers en invoerinstructies. Het behandelt ook looping-methoden en lijsten (arrays).

Voordat ik het schrijf, vraag ik om feedback, zodat ik het kan afstemmen op het publiek.

Het soort dingen dat ik zou willen weten zijn:

  • Is het tempo goed?
  • Is het detail te veel, te weinig of ongeveer goed?
  • Wil je wat oefenoefeningen?

Terug naar jou.

Aanbevolen: