Leer hoe u Raspberry Pi GPIO-pinnen met scratch kunt gebruiken

In deze tutorial laat ik je zien hoe je het ScratchGPIO-uitbreidingspakket installeert, hoe je een breadboard met LED's en knoppen monteert en een eenvoudig Scratch-spel uitvoert dat de LED's en breadboard-knoppen gebruikt om te spelen.


Krassen

Met de nadruk die de Raspberry Pi legt op het onderwijs, is het volkomen logisch dat Scratch vooraf is geïnstalleerd op de standaard Raspbian-build en beschikbaar is als een pictogram op de desktop.

Simon Walters, @cymplecy op Twitter, heeft een uitbreiding voor Scratch gemaakt waarmee je de status van de Raspberry Pi GPIO-pinnen kunt lezen en schrijven. Simon blogt over zijn creatie, ScratchGPIO op Cymplecy en blijft het onderhouden op zijn github repository.


Verzamel de componenten

  • Raspberry Pi - Model B met voeding, SD-kaart, monitor, toetsenbord en muis
  • Rode, gele en groene LED's
  • 3 - 220 Ohm weerstand (rood, rood, bruin)
  • 2 - 1K Ohm weerstand (bruin, zwart, rood)
  • 2 - Tijdelijk op drukknop
  • Broodplank met een volledige of halve lengte
  • 6 - Man-vrouw-jumperdraad

Monteer de breadboard

Het breadboard bevat de LED's en de knoppen waarmee ScratchGPIO samenwerkt. De LED's hebben een stroombegrenzende weerstand van 220 OHM's nodig en de knoppen hebben de 1K OHM-weerstanden nodig om te zorgen dat de pins niet te veel stroom doorgeven.

Gebruik de onderstaande afbeelding om het breadboard en de jumpers in te stellen op de GPIO-pinnen in het diagram. De pincodes die de GPIO-module en de krascode gebruiken, zijn de fysieke pincodes, niet GPIO of logische nummers. Raadpleeg de afbeeldingen op de pagina RPi Low-level randapparatuur om de pincodes te identificeren.

  • Verbind de knoppen van fysieke pins 3 en 5 met de knoppen op het breadboard, zoals hieronder getoond. Deze pinnen worden standaard als invoer in de ScratchGPIO-software aangeduid.
  • Verbind de rode, gele en groene LED's op het breadboard met de fysieke pinnen 11, 12 en 13 van de Pi die door ScratchGPIO zijn aangewezen als uitvoerpinnen.
  • Zorg ervoor dat de juiste weerstanden op het breadboard staan. De 220 ohm-weerstanden zijn voor de LED's en de 1K ohm-weerstanden zijn voor de knoppen.

Gemonteerd breadboard-diagram

Stel de Raspberry Pi in

Er zijn verschillende handleidingen voor het aanschaffen en installeren van een OS op uw Raspberry Pi. Installeer het nieuwste Raspbian-besturingssysteem. Zodra uw Raspberry Pi is geconfigureerd en opgestart tot het grafische bureaublad, gaat u verder met de volgende stap.


Installeer ScratchGPIO

De ScratchGPIO-software verandert of vervangt geen scratch, het voegt een set python-scripts toe die worden geïntegreerd met Scratch en de mogelijkheid toevoegen om de GPIO-pinnen op hardwareniveau te beheren en te lezen. Scratch zal normaal blijven functioneren na de installatie.

Er zal echter een nieuw pictogram op het grafische bureaublad van de Raspberry Pi zijn dat de GPIO-ondersteuningsscripts en Scratch samen zal lanceren. Het installatieprogramma is eenvoudig en gemakkelijk te gebruiken. Volg de onderstaande instructies om het ScratchGPIO-pakket te downloaden en te installeren.

  • Dubbelklik en start LXTerminal
  • Voer de volgende opdrachten uit:
 wget https://raw.github.com/cymplecy/scratch_gpio/master/install_scratchgpio4.sh -O isgh.sh sudo sh isgh.sh
  • Het installatiescript maakt het af en toe compleet Dank je en Afgewerkt. Gezegde Graag gedaan is optioneel, maar zeker het beleefde ding om te doen.
  • Sluit de LXTerm venster en let op het nieuwe pictogram met de titel: Kras GPIO4

Download het Scratch Example-programma

Het onderwerp Scratch-programma's schrijven is diep en breed. Deze tutorial behandelt niet de details van Scratch-programmering, maar de Scratch-website levert uitstekend werk door Scratch te introduceren en te onderwijzen als je meer wilt weten.

In de onderstaande stappen download en voer je een krasspel uit dat gebruikmaakt van de GPIO-extensies en de breadboard-setup die je hebt gebouwd. Het spel stelt de uitgangspennen 11, 12 en 13 hoog in om de LED's te verlichten en toont de gezondheid van de held van het spel, Cat.

Als Cat zijn gezondheid verliest, worden de LED's één voor één uitgeschakeld totdat ze helemaal donker zijn en het spel is afgelopen. Tijdens het spelen controleert het programma de status van de ingangspennen 3 en 5 en wanneer de pinnen laag of geaard zijn, beweegt Cat op en neer om te proberen de aanvallende tegenstander, Rex, te vermijden..

  • Lancering Midori vanaf de desktop van je Raspberry Pi
  • Download het gpiogame.sb Scratch-bestand
  • Sla het gedownloade bestand op / home / pi / scratch / Documenten / Krasprojecten
  • Dichtbij Midori
  • Lancering Kras GPIO4 vanaf de desktop
  • Klik OK in het dialoogvenster dat zegt Externe sensorverbindingen ingeschakeld. Dit bericht geeft aan dat Scratch communiceert met het GPIO-subsysteem.
  • kiezen Bestand> Openen
  • Selecteer het bestand gpiogame om het spel te laden
  • Klik op de Groene vlag in de rechterbovenhoek van het Scratch-venster om het spel te starten
  • Druk op de knoppen op het breadboard om Cat Rex te helpen vermijden. Klik opnieuw op de groene vlag als u de game opnieuw wilt starten.

Terwijl je het spel speelt, zie je hoe de drie LED's op het breadboard het gezondheidsniveau van Cat weerspiegelen en dat de knoppen Cat inderdaad op en neer bewegen. Ik zal wijzen op de stukjes code die interageren met de Pi GPIO-pinnen, hieronder. Ter referentie vindt u de volledige documentatie over het ScratchGPIO-pakket op het blog van de auteur.

De LED's worden van stroom voorzien wanneer de pinnen waarmee ze zijn verbonden hoog of ingeschakeld zijn. De LED zal gloeien en de weerstand zal voorkomen dat te veel stroom door gaat. Klik op de Stadium pictogram in het linkeronderpaneel van het Scratch-venster. Hiermee wordt het script voor het stage-object in de editor in het midden van het venster geplaatst.

Het codefragment hieronder is de LED en de routine voor het omgaan met de gezondheid. Wanneer het codeblok de UpdateHealth uitgezonden bericht, het beoordeelt de gezondheidsvariabele en stelt de pinnen laag in als de gezondheid verloren gaat.


LED Health Handling Routine

De momentele drukknoppen verbinden de pennen 3 en 5 om door de stroombegrenzende weerstand te aarden wanneer ze worden ingedrukt. De Raspberry Pi herkent vervolgens de pen als laag of 0 in Scratch. Klik op de kat pictogram in de rechterbenedenhoek van het venster om de code ervoor in het middelste venster te brengen.

In het bovenste codeblok zet de code na wat instellingsbeheer de status van pinnen 3 en 5 in de gaten. Als een van beide laag of 0 is, wordt het bericht weergegeven omhoog of naar beneden is verzonden. Lager in de kat script zijn codeblokken die de directionele berichten ontvangen en de sprite zelf verplaatsen.


Button Handling Routine

Mijn hoogste score was 34. Kijk of je dat kunt verslaan!


High Score Brag

Samenvatting

Scratch is een zeer toegankelijk en gemakkelijk te leren programmeerraamwerk voor zowel jonge kinderen als volwassenen. De nauwe samenwerking met de Raspberry Pi en de educatieve nadruk ervan was een perfecte match. Het ScratchGPIO-project brengt de controle en detectie van de GPIO-pinnen op een laag niveau van de Pi tot een zeer krachtige manier. De auteur blijft het pakket uitbreiden om LCD-schermen, motoren, kompascomponenten, afstandssensoren en andere elektronische en robotische componenten te ondersteunen.

Het niveau van hardwarecontrole dat wordt aangeboden door het ScratchGPIO-pakket, stelt zelfs beginners-programmeurs in staat om met de fysieke wereld om te gaan met een eenvoudig en vertrouwd programmeerraamwerk.

Door deze tutorial te volgen, heb je geleerd hoe je het ScratchGPIO-pakket moet installeren, waar je op moet letten voor meer informatie en Scratch. Daarnaast hebt u een eenvoudig te gebruiken breadboard-circuit samengesteld waarmee u veilig kunt experimenteren met Scratch en GPIO-controle voor zowel invoer als uitvoer.

Ten slotte heb je een spel geïnstalleerd dat kan worden gebruikt als een voorbeeld en een basis die moet worden aangepast om te leren en te experimenteren. Naarmate het ScratchGPIO-project verder groeit en zich uitbreidt, kun je uitkijken naar een geheel nieuwe generatie Raspberry Pi-robotica die wordt bestuurd door Scratch.