Flipper mit Pinoo
Zweck des Projekts: Erstellen eines Flipperspiels mit Pinoo-Steuerkarte, Servomotor, Bewegungssensor und LCD-Anzeigemodul.
Dauer: 2 Lektionen
Altersgruppe: 7 Jahre und älter
Pinoo-Set: Maker-Set und komplettes Set.
Gewinne:
- Pinoo lernt, die Steuerkarte zu codieren.
- Erlernt den Umgang mit Servomotoren.
- Erlernt den Umgang mit dem LCD-Bildschirm.
- Erlernt den Umgang mit dem Bewegungssensor.
- Die Fähigkeit, Algorithmen zu etablieren, verbessert sich.
- Die Programmierfähigkeiten verbessern sich.
Zu verwendende Materialien: Mblock 3-Programm, Pinoo-Steuerkarte, Servomotor, Bewegungssensor (PIR), LCD-Anzeigemodul, Verbindungskabel.
Für das Design benötigte Materialien: Dekota, Universalmesser, Silikonpistole und Silikon.
Projektaufbau:
Für unser Projekt besorgen wir uns zunächst unsere Holzstäbchen.
Wir fixieren unsere Dekota-Stücke mit Hilfe einer Silikonpistole wie im Bild gezeigt. Dann bohren wir mit Hilfe eines Universalmessers ein Loch, so dass unser Ball und der Servomotor hindurchpassen.
Dann schneiden wir für die Stelle, an der wir den Ball werfen werden, mit Hilfe eines Universalmessers den Bereich aus, an dem unser Ball vorbeigehen wird.
Wir machen mit einem Universalmesser einen Schnitt auf der Vorderseite unserer Spieleschachtel für den LCD-Bildschirm.
Wir befestigen die vorbereitete Frontplatte mit Hilfe einer Silikonpistole an unserer Box.
Wir reparieren unseren LCD-Bildschirm wie auf dem Foto.
Wir kleben die Bürste unseres Servomotors auf das von uns vorbereitete Decota-Stück und kleben unser Servo an die Stelle, die wir für das Servo geöffnet haben.
Wir berechnen die Dekota-Stücke dafür, wohin unser Ball fallen wird.
Wir reparieren unsere Teile mit Hilfe einer Silikonpistole wie auf dem Foto.
Wir reparieren unseren PIR-Sensor.
Dann platzieren wir es in den Löchern unter unserer Flipper-Spielbox und dort, wo sich der PIR-Sensor befindet, wo wir 100 Punkte erhalten.
Wir verbinden unseren Servomotor mit unserer Pinoo-Steuerkarte, unseren Servomotor mit Tor Nummer 1, unseren PIR-Sensor mit Tor Nummer 2 und unser LCD-Anzeigemodul mit Tor Nummer 10. Damit schließen wir die Designphase ab.
Pinoo-Erweiterung hinzufügen:
Auf der Registerkarte „Erweiterungen“ klicken wir auf „Erweiterungen verwalten“.
Im sich öffnenden Fenster geben wir „Pinoo“ in die Suchmaschine ein und klicken beim Ergebnis einfach auf „Herunterladen“.
Es wurde auf unserem Computer installiert.
Anschließen der Pinoo-Steuerkarte an den Computer:
In Mblock 3 klicken wir oben links auf die Registerkarte „Verbinden“.
Wir klicken im sich öffnenden Fenster auf den Abschnitt „Serieller Port“ und wählen auf der sich öffnenden Seite die Option „COM6“ aus.
HINWEISE: Da die Porteinträge jedes Computers unterschiedlich sind, können die Zahlen neben dem COM-Text variieren.
Im sich öffnenden Fenster wählen wir die Kartenoption „Arduino Nano“ aus, die von der Pinoo-Steuerkarte verwendet wird.
Wir klicken auf die Registerkarte Erweiterungen. Im sich öffnenden Fenster wählen wir „Pinoo“ aus, die Erweiterung der von uns verwendeten Steuerkarte.
Wir klicken auf die Registerkarte „Verbinden“. Im sich öffnenden Fenster klicken wir auf „Firmware-Update“.
Codierungsteil:
Zuerst platzieren wir unseren LCD-Bildschirm-Identifikationscode unter dem „Pinoo-Programm“-Code, um zu überprüfen, ob unser LCD-Bildschirmmodul funktioniert. Dann platzieren wir unseren „Pinoo LCD Print“-Code und laden ihn auf Arduino hoch. Nachdem die Installation abgeschlossen ist, erscheint „Hello World!“ auf unserem LCD-Bildschirm. Wir sehen den Text. Auf diese Weise überprüfen wir den Betriebsstatus unseres LCD-Bildschirms.
Wir steuern unseren Bewegungserkennungssensor, indem wir den gelesenen Sensorcode in den Sag-Hallo-Code unter dem Code einfügen, wenn auf die grüne Flagge geklickt wird.
Um zu überprüfen, ob unser Servomotor funktioniert, überprüfen wir seinen Betriebsstatus, indem wir beim Drücken der Taste die Startwinkelcodes 0 und 180 Grad des Servomotors unter den Codes hinzufügen.
Wir erstellen im Abschnitt „Daten & Block“ eine Variable, um unsere Ergebnisse zu behalten, und nennen unsere Variable „Score“.
Wir stellen unser LCD-Anzeigemodul im Rahmen der Pinoo-Programmveranstaltung vor. Dann übergeben wir den Wert 0 an unsere Score-Variable. Wir haben den Winkel des Servomotors kontinuierlich in 3-Sekunden-Intervallen zwischen 0 und 180 Grad bewegt.
Anschließend erhalten wir einen zweiten Pinoo-Programmcode, um Verwirrung in unseren Codes zu vermeiden. Zuerst drucken wir den Text PINBALL auf unserem LCD-Bildschirm. Wenn der von unserem Bewegungserkennungssensor gelesene Wert 1 ist, also eine Bewegung vorliegt, erhöht sich unser Punktestand um 1 und wir fügen den Code hinzu, der unseren LCD-Bildschirm löscht. Ebenso drucken wir unseren Text in Zeile 1 aus. In der 2. Zeile drucken wir den Code, der mit Hilfe des Combine-Codes die Werte unserer Score-Variablen neben unseren „Score“-Text überträgt.
Wir klicken mit der rechten Maustaste auf den Befehl „Pinoo Program“ und wählen im sich öffnenden Fenster die Option „In Arduino installieren“.
Auf der sich öffnenden Seite klicken wir auf die rot hervorgehobene Schaltfläche „Auf Arduino hochladen“.
Unsere Codes werden auf unsere Pinoo-Kontrollkarte hochgeladen.
Nachdem die Meldung „Upload abgeschlossen“ erscheint, klicken wir auf die Schaltfläche „Schließen“. Nach Abschluss der Installation wird der Batteriehalter installiert und das Projekt ausgeführt.
Arbeitsstatus des Projekts:
Wir werfen unseren Ball aus dem Seitenfach und versuchen, ihn durch das mit 100 markierte Loch zu befördern. Unser Punktewert auf dem LCD-Bildschirm erhöht sich mit jedem Mal, das wir ausgeben, um 100 Punkte.
ARDUINO-IDE-CODES:
#include < LiquidCrystal_I2C . h > //Wir haben die LCD-Display-Bibliothek hinzugefügt. #include < Servo . h > // Wir haben die Servo-Bibliothek in das Projekt eingebunden. LiquidCrystal_I2C lcd ( 0x27 , 16 , 2 ) ; //Wir haben angegeben, um welchen Typ es sich bei unserem LCD-Bildschirm handelt und aus wie vielen Zeilen und Spalten er besteht. Servo -Servomotor ; // Wir haben ein Servomotorobjekt erstellt. int pirPin = 3 ; //Wir haben den Pin bestimmt, an dem wir den Bewegungssensor befestigen werden. int- Punktzahl = 0 ; //Wir haben eine Variable vom Typ int namens „score“ mit dem Wert 0 definiert, um unsere Score-Werte zu speichern. int move ; //Wir haben eine Variable vom Typ int mit dem Namen „motion“ definiert, um die Werte zu speichern, die wir von unserem Bewegungssensor erhalten haben. Void -Setup ( ) { LCD . init ( ) ; // Wir haben unser LCD-Anzeigemodul gestartet. LCD . Hintergrundbeleuchtung ( ) ; //Wir haben die LEDs eingeschaltet, die unseren LCD-Bildschirm beleuchten. Servomotor . anbringen ( 2 ) ; //Wir haben angegeben, an welchem Pin unseres Servomotors wir ihn angeschlossen haben. pinMode ( pirPin , INPUT ) ; ///Wir legen den Pin unseres Bewegungssensors als Eingabeeinheit fest } Leere Schleife ( ) { Servomotor . schreibe ( 0 ) ; //Wir haben den Servomotorwinkel auf 0 Grad gebracht. Verzögerung ( 3000 ) ; //Wir haben 3 Sekunden gewartet. Servomotor . schreiben ( 180 ) ; //Wir haben den Winkel des Servomotors auf 180 Grad gebracht. Verzögerung ( 3000 ) ; //Wir haben 3 Sekunden gewartet. if ( movement == HIGH ) //Wenn es Bewegung gibt, haben wir den Bedingungsblock erstellt. { Punktzahl = Punktzahl + 100 ; //Wir haben unsere Score-Variable um 100 erhöht. LCD . klar ( ) ; //Wenn Text auf unserem LCD-Bildschirm war, haben wir ihn gelöscht. LCD . setCursor ( 3 , 0 ) ; //Wir haben angegeben, dass wir unseren Text in die 1. Zeile, 4. Spalte auf unserem LCD-Bildschirm schreiben würden. LCD . print ( "PINBALL" ) ; //Wir haben unseren Text an der angegebenen Stelle auf unserem LCD-Bildschirm gedruckt. LCD . setCursor ( 0 , 1 ) ; //Wir haben angegeben, dass wir unseren Text in die 2. Zeile und 1. Spalte auf unserem LCD-Bildschirm schreiben würden. LCD . print ( "Punktzahl: " + Punktzahl ) ; //Wir haben unsere Partitur an der angegebenen Stelle auf unserem LCD-Bildschirm ausgedruckt. } }