Stein-Papier-Schere mit Pinoo
Zweck des Projekts: Erstellen eines Stein-Schere-Papier-Spiels mit Servomotormodul, Joystickmodul, LCD-Modul und Abstandssensor unter Verwendung der Pinoo-Steuerkarte.
Dauer: 2 Lektionen
Altersgruppe: 7 Jahre und älter
Pinoo-Set: Maker-Set, komplettes Set.
Gewinne:
- Pinoo lernt, die Steuerkarte zu codieren.
- Lernt, den Abstandssensor zu codieren.
- Erlernt das Codieren des Servomotormoduls.
- Erlernt das Codieren des Joystick-Moduls.
- Erlernt das Codieren des LCD-Moduls.
- Die Fähigkeit, Algorithmen zu etablieren, verbessert sich.
- Die Programmierfähigkeiten verbessern sich.
- Designfähigkeiten verbessern sich.
- Er entwirft und spielt sein eigenes Spiel.
Benötigte Materialien: Mblock 3-Programm, Pinoo-Steuerkarte, Abstandssensor, 3 Servomotormodule, Verbindungskabel, Joystick-Modul, LCD-Modul
Für das Design benötigte Materialien: Dekota, farbiger Karton, verschiedenfarbiger Karton, EVA, Silikonpistole und Silikon, Bleistift, Schraubendreher, Schere, Messerwerkzeug, Lineal.
Projektaufbau:
- Wir zeichnen die Handformen des Stein-Papier-Schere-Spiels auf farbigen Karton und schneiden sie mit Hilfe einer Schere aus.
- Mit Lineal und Bleistift zeichnen wir zwei Rechtecke von 36 x 30 cm auf die Deko. Wir schneiden mit Hilfe eines Cutters Rechtecke aus.
- Mit einem Lineal und einem Bleistift zeichnen wir zwei 10 x 36 cm große Rechtecke auf die Decota und schneiden sie mit Hilfe eines Cutters aus.
- Wieder mit Lineal und Bleistift zeichnen wir zwei 10 x 30 cm große Rechtecke auf die Decota und schneiden sie mit Hilfe eines Cutters aus.
- Mit Hilfe einer Silikonpistole kleben wir die Stücke, die wir aus der Decota geschnitten haben, wie in der Abbildung gezeigt, zusammen und formen eine Schachtel.
Hinweis: Wir fügen den oberen Teil des Felds nicht ein, sondern erst, nachdem unsere Codes fertig sind.
- Wir bohren ein rechteckiges Loch in die Rückseite des von uns erstellten Kastens, das groß genug ist, damit die Pinoo-Steuerkarte hindurchpasst.
- Wir nehmen das Stück, das wir geschnitten haben, für die Oberseite der Schachtel. Wir bestimmen ihre Position, indem wir die Sensoren und Module, die wir verwenden werden, darauf platzieren.
Hinweis: Wir stellen die Zeiger so ein, dass sie nicht aneinander und an die Sensoren stoßen.
- Wir zeichnen ein Rechteck, das dem äußersten rechten Teil der Hände entspricht, so weit, dass die Servomotormodule hindurchpassen, und schneiden es mit Hilfe eines Cutters aus.
- Wir zeichnen die Augen des Sensors in den Bereich, in dem wir den Abstandssensor platzieren möchten, und schneiden sie mit Hilfe eines Messers aus.
- Um das LCD (I2C)-Modul zu platzieren, zeichnen wir ein Rechteck, das so groß ist, dass das Modul in den von uns eingerichteten Abschnitt passt, und schneiden es mit Hilfe eines Cutters aus.
- In dem Abschnitt, der für die Platzierung des Joystick-Moduls reserviert ist, zeichnen wir ein Quadrat, das groß genug ist, damit das Modul hindurchpasst, und schneiden es mit Hilfe eines Cuttermessers aus.
- Mit Hilfe einer Silikonpistole montieren wir die Servomotormodule und den Abstandssensor in die von uns geöffneten Löcher, wie in der Abbildung gezeigt.
- Wir befestigen die Propeller der Servomotoren horizontal am Modul, wobei ihre Enden nach links und rechts zeigen. Um die Stabilität zu gewährleisten, fixieren wir die Schrauben mit einem Schraubendreher.
HINWEIS: Wir kodieren die Propeller der Servomotoren immer und drehen sie vor der Befestigung um 180 Grad!
- Wir montieren die Stein-, Papier- und Scherenzeichnungen, die wir zu Beginn des Entwurfs erstellt haben, mit Hilfe einer Silikonpistole an den Propellern der Servomotormodule, wie in der Abbildung gezeigt.
- Wir montieren das Joystick-Modul mit Hilfe einer Silikonpistole in das quadratische Loch, das wir geöffnet haben.
- Wir verbinden das LCD-Modul (I2C) so mit seinem Konverter, dass seine GND-Teile zueinander passen. Dann montieren wir es mit Hilfe einer Silikonpistole in das rechteckige Loch, das wir geöffnet haben.
Wir verbinden das Joystick-Modul mit dem rot/gelben Eingang Nummer 9.
Wir verbinden den Abstandssensor mit dem lila/grünen Eingang Nummer 5.
Wenn wir die Dekodierung umkehren, verbinden wir die Servomotormodule von links beginnend mit den violetten Eingängen mit den Nummern 2,3,4. (Schere – 2. Eintrag, Papier – 3. Eintrag, Stein – 4. Eintrag)
- Wir zeichnen die Handformen des Stein-Papier-Schere-Spiels noch einmal auf farbigen Karton und schneiden sie mit Hilfe einer Schere aus.
- Wir montieren den oberen Teil unserer Box mit Hilfe einer Silikonpistole, wie in der Abbildung gezeigt. Dann dekorieren wir es nach Belieben mit den von uns gezeichneten Evas und Handformen.
HINWEIS: Es wäre besser, den oberen Teil der Box zu montieren, nachdem die Codierung abgeschlossen ist.
- Wir haben die Anschlüsse und das Design abgeschlossen und gehen nun zum Codierungsteil über. Wir werden hierfür die mblock-3-Anwendung verwenden.
- Wir verbinden unsere Pinoo Control Card über das Verbindungskabel mit dem Computer und melden uns bei der Mblock3-Anwendung an. Dann führen wir unsere Pinoo-Steuerkarte in den Computer ein. Hierzu zunächst einmal Verbinden aus der Registerkarte serielle Schnittstelle Wir klicken auf die Option. Später Wir wählen COM3 . (Die Anzahl kann je nach Computer und Port variieren.)
- Nach dem Anschließen der seriellen Schnittstelle Karten Auf der Registerkarte wählen wir die Karte aus, die wir verwenden möchten. Wir arbeiten mit dem Nano-Modell von Arduino.
- Um die Pinoo-Erweiterung zu unserem Computer hinzuzufügen Erweiterungen aus der Registerkarte Erweiterungen verwalten Wir klicken auf die Option. Im sich öffnenden Fenster geben wir „ Pinoo “ in die Suchmaschine ein und klicken beim Ergebnis einfach auf „Herunterladen“. Es wurde auf unserem Computer installiert.
- Wieder Erweiterungen Gehen Sie zur Registerkarte Pinoo Wir klicken auf die Option. Wir werden unsere Codes mit der Pinoo-Erweiterung schreiben.
- Wieder Verbinden Gehen Sie zur Registerkarte Firmware-Update Wir klicken auf die Option. Nachdem die Installation abgeschlossen ist, klicken wir auf die Schaltfläche „Schließen“.
- Im Codierungsteil; Wir erhalten den Code, wenn wir im Menü „Ereignisse“ auf die grüne Flagge klicken, damit die Anwendung startet.
- Wir erhalten den Code für die Servomotormodule aus dem Menü „Roboter“ und stellen sie alle auf 180 Grad ein, indem wir die Pin-Einträge nacheinander ändern.
- Wenn im Ereignismenü erneut auf die grüne Flagge geklickt wird, erhalten wir den Befehl. Mithilfe des Dummys lernen wir den vom Abstandssensor erfassten Wert. Dazu erhalten wir den Befehl „Hallo sagen“ aus der Registerkarte „Darstellung“. Anstelle der Hallo-Anweisung erhalten wir den Codeblock für den Abstandssensor aus der Registerkarte „Roboter“. Wir ändern den Pin-Eingang auf Pinoo5, mit dem wir uns verbinden.
Da wir möchten, dass es kontinuierlich und nicht einmal gelesen wird, fügen wir alle unsere Codes auf der Registerkarte „Steuerung“ in den Block „Kontinuierliche Wiederholung“ ein.
- Wir klicken auf die grüne Flagge und bewegen unsere Hand näher und weiter vom Abstandssensor weg. Hier verwenden wir als Referenz, dass der Wert weniger als 10 beträgt, wenn wir unsere Hand näher bringen.
- Wir müssen eine Variable definieren, um die Werte des Joystick-Moduls an den x- und y-Positionen anzuzeigen. Dazu gehen wir zum Menü „Daten & Block“ und klicken auf „Variable erstellen“.
- Wir schreiben den Variablennamen auf den erscheinenden Bildschirm.
- Wir definieren separate Variablen für X- und Y-Positionen.
- Wir erhalten den Befehl, wenn die Leertaste aus den Ereignissen gedrückt wird. Da wir die Werte kontinuierlich ablesen, wählen wir den Befehl „Kontinuierliche Wiederholung“ aus dem Steuerungsmenü. Wir nehmen die „x sei 0, y sei 0“-Codes aus dem Daten&Block-Menü und fügen sie in den Wiederholungsbefehl ein.
- Wir machen die Positionen des Joystick-Moduls gleich den von uns definierten Positionen.
- Wir drücken die Leertaste und beobachten die Werte des Joystick-Moduls. Wenn das Joystick-Modul nicht bewegt wird, liegt der Wert bei etwa 500. Wenn wir nach oben ziehen, nähert sich die y-Position 0, und wenn wir nach unten ziehen, nähert sie sich 1022. Wenn wir es nach rechts ziehen, nähert sich die x-Position 1022, und wenn wir es nach links ziehen, nähert sie sich 0.
- Wir benötigen eine Bibliothek, um das LCD(I2C)-Modul nutzen zu können. (Sie können über den folgenden Link über den Laufwerksordner auf die Bibliothek zugreifen.) Sie können die Bibliothek des LCD-Moduls von unserem Computer herunterladen. Programmdateien – mblock – Arduino-Bibliotheken Wir verschieben es in Bibliotheken, indem wir die Schritte befolgen.
https://drive.google.com/drive/folders/1oDHzYkPM2Ixq27_7zqERTvYsVpfqCRw2?usp=sharing
- Wir prüfen, ob das LCD-Modul funktioniert oder nicht. Wir können das LCD-Modul nicht mit den Codes in den Ereignissen verwenden. Um es verwenden zu können, müssen wir es auf das Arduino-Board hochladen.
Klicken Sie dazu auf die Registerkarte Roboter. Pinoo-Programm Wir bekommen den Code. Dann definieren wir das Modell unseres LCD-Moduls. (Im Allgemeinen werden 0x27 und 0x3F verwendet. Sie müssen Ihr eigenes Modell auswählen.) Unser LCD-Modul besteht aus 2 Zeilen und 16 Spalten. Wir wählen aus, aus welcher Zeile und Spalte wir mit dem Drucken unseres Textes beginnen möchten. Dann schreiben wir „Willkommen im Spiel“.
- Wir klicken mit der rechten Maustaste auf den Code und klicken auf Auf Arduino hochladen. (Wir arbeiten mit Arduino als Board.)
- Im sich öffnenden Fenster klicken wir erneut auf die Schaltfläche „Auf Arduino hochladen“.
- Wir warten, während unsere Codes auf die Karte hochgeladen werden. Nachdem die Installation abgeschlossen ist, klicken wir auf die Schaltfläche „Schließen“. Und wir prüfen, ob der von uns geschriebene Text auf dem Bildschirm erscheint.
- Unsere Verbindung wird unterbrochen, weil wir auf die Karte laden. Um Code zu schreiben, wählen wir erneut Connect-Serial Port-Com und aktualisieren die Firmware.
- Um den Überblick über die Spielergebnisse zu behalten, definieren wir zwei Variablen: Roboter und Gegner. Und direkt unter der grünen Flagge, wo wir die Servomotoren um 180 Grad drehen, sagen wir, dass die Punktzahl 0 sein sollte, wenn das Spiel zum ersten Mal beginnt (d. h. wenn die grüne Flagge angeklickt wird).
- Wir möchten, dass das Spiel beginnt, wenn wir das Joystick-Modul nach oben ziehen und der Abstandssensor weniger als 10 beträgt (wenn wir unsere Hand näher bringen). Dazu verwenden wir die if-Bedingungsbefehle. Wir sagen, dass die Y-Achse kleiner als 300 ist, denn als wir sie hochzogen, näherte sich der Wert 0.
- Wenn wir das Joystick-Modul nach oben ziehen und der Abstand weniger als 10 beträgt, sagen wir, dass sich die Servomotormodule dreimal in Winkeln von 135 und 180 Grad auf und ab bewegen.
- Wenn das Joystick-Modul nicht nach oben gezogen wird und der Abstand größer als 10 Grad ist, sagen wir, dass die Servomotormodule in der 180-Grad-Position bleiben sollten.
- Wenn das Joystick-Modul oben liegt und der Abstand weniger als 10 beträgt, ergänzen wir die Codes. Wenn die Bedingungen erfüllt sind, nennen wir es eine Zahl zwischen 1 und 3. (Es gibt 3 Möglichkeiten für Stein, Papier, Schere) Und wenn die darin enthaltene Zahl gleich 1 ist, sagen wir, den LCD-Bildschirm zu reinigen. (Wenn nicht deaktiviert, überlappen sich die Texte.)
Dann sagen wir, dass das Servomotormodul (also der Stein) am 2. Eingang um 90 Grad angehoben werden soll. Und wir sagen, dass die anderen in der 180-Grad-Position bleiben sollen. Dann drucken wir den vom Roboter ausgewählten Stein auf das LCD-Modul.
-
Mit der gleichen Logik kodieren wir auch die Fälle, in denen die darin enthaltene Zahl gleich 2 oder 3 ist.
- Wenn das vom Roboter gewählte Zeichen und das von uns erstellte Zeichen identisch sind, möchten wir, dass keine Seite Punkte erhält. Hier definieren wir es als „Draw“, wenn wir das Joystick-Modul herunterziehen. Wenn das Joystick-Modul nach unten gezogen wird, wird der Bildschirm des LCD-Moduls gelöscht. Wir schreiben die Punktzahl des Roboters in die 1. Zeile und die Punktzahl des Gegners in die 2. Zeile. Und wir bringen die Hände wieder in ihre ursprüngliche Position.
- Wenn das von uns gemachte Zeichen das vom Roboter gemachte Zeichen übertrifft, möchten wir, dass der Gegner 1 Punkt erhält. Dazu stellen wir fest, dass der Gegner gewinnt, wenn wir das Joystick-Modul nach rechts ziehen. Und wenn die Punktzahl des Gegners 3 beträgt, sagen wir, dass der Gegner den Sieg auf den Bildschirm schreiben soll. Und wir beenden das Spiel, indem wir die Spielstände zurücksetzen.
- Mit der gleichen Logik schreiben wir Codes, die den Roboter gewinnen lassen, wenn wir das Joystick-Modul nach links ziehen.
- Wir klicken auf die Schaltfläche „Grüne Flagge“ und prüfen unser Projekt. (LCD-Module funktionieren, nachdem sie in die Karte geladen wurden.) Wenn beim Betrieb unseres Projekts kein Problem auftritt, müssen wir die Codes, die wir geschrieben haben, in unsere Karte laden, um unser Projekt mit einer davon unabhängigen Stromquelle zu betreiben Computer.
Dazu löschen wir den Code, wenn die grüne Flagge, die wir zu Beginn verwendet haben, angeklickt wird. Und wir kombinieren es mit den Codes, mit denen wir das LCD-Modul steuern.
- Anschließend wiederholen wir den Ladevorgang in die Karte.
- Wenn es kein Problem gibt, ziehen wir unser Netzkabel vom Computer ab. Wir versorgen unsere Pinoo-Steuerkarte mit Hilfe einer 9-V-Batterie und eines Batteriedeckels. Außerdem stellen wir den Ein-/Ausschalter, der sich direkt neben dem Batterieeingang befindet, auf die Ein-Position.
- Arbeitsstatus des Projekts:
Wenn das Joystick-Modul nicht hochgezogen ist und der vom Abstandssensor gemessene Wert nicht weniger als 10 beträgt, bewegen sich die Servomotormodule nicht und bleiben in der 180-Grad-Position stehen.
Wenn das Joystick-Modul nach oben gezogen wird und wir unsere Hand vor den Abstandssensor legen, bewegen sich die Servomotormodule dreimal auf und ab und führen dann eine zufällige Bewegung aus.