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.
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.
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.
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.
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.
wget https://raw.github.com/cymplecy/scratch_gpio/master/install_scratchgpio4.sh -O isgh.sh sudo sh isgh.sh
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..
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.
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.
Mijn hoogste score was 34. Kijk of je dat kunt verslaan!
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.