Aufzugssystem mit Pinoo
Zweck des Projekts: Erstellen eines Aufzugssystems mit Abstandssensor und Gleichstrommotor mithilfe der Pinoo-Steuerkarte.
Dauer: 2 Lektionen
Altersgruppe: 7 Jahre und älter
Pinoo Set: Werkzeugsatz und komplettes Set.
Gewinne:
- Pinoo lernt, die Steuerplatine zu codieren
- Lernt, den Abstandssensor zu codieren.
- Lernt, Gleichstrommotoren zu codieren.
- Die Fähigkeit, Algorithmen zu etablieren, verbessert sich.
- Die Programmierfähigkeiten verbessern sich.
Erforderliche Materialien: Mblock 3-Programm, Pinoo-Steuerkarte, Abstandssensor, Gleichstrommotor – 2 Riemenscheiben, Verbindungskabel.
Für das Design benötigte Materialien: 2 Handtuchpapierrollen, Zungenstab, Seil, Pappe, farbiger Karton, Schere, Silikonpistole, mittelgroße Schachtel.
Projektaufbau:
Indem wir zwei Handtuchpapierrollen zusammenkleben, erhalten wir eine lange Rolle. Wenn es zu lang ist, können Sie es kürzen.
Wir befestigen den Motor an einem Ende der Walze. Wir befestigen die Radwalze.
Wir befestigen die Radrolle an einem Ende der Zungenstange. Wir befestigen die Radrolle an der Rolle, indem wir das freie Ende der Zungenstange durch die Rolle führen.
Wir werden ein Seil verwenden, um eine Verbindung zwischen zwei Radrollen herzustellen. Diese Verbindung wird die Hauptkomponente des Aufzugssystems sein.
Wir führen zwei separate Seile gleicher Länge über die Rollen. Wichtig hierbei ist, dass wir die Seile auf den Rollen straff spannen müssen.
Wir entwerfen eine Aufzugstür aus farbigem Karton und befestigen sie in der Mitte der Seile.
Wir schneiden den oberen Deckel der Schachtel ab und schneiden genau in der Mitte des Bodens ein Fenster.
Wir befestigen die Rolle innerhalb des Fensters, das wir in den Kasten geschnitten haben. Wichtig hierbei ist, dass ein Teil der Radrolle im Kasten bleibt.
*** Wenn Sie Probleme mit dem Reparaturvorgang haben, können Sie über die Sprachleiste Hilfe erhalten.
Wir befestigen den Abstandssensor am Boden, sodass er die Eingangstür des Aufzugs sehen kann. Wir befestigen das Anschlusskabel und hängen es vom Fenster der Box ins Innere der Box.
Sie können das Design nach Ihren Wünschen verschönern.
Stellen wir unsere Verbindungen her. Wir verbinden unsere Pinoo-Karte mit der Erde, das Motorkabel mit dem A1/A2-Eingang, einem der entsprechenden Eingänge für den Motor, und unseren Abstandssensor mit dem Verbindungskabel mit dem lila/grünen Eingang Nummer 5.
Verbindung und Codierung:
Kommen wir nun zum Codierungsteil. Wir werden hierfür die mblock-3-Anwendung verwenden.
Verbinden wir unsere Pinoo-Steuerkarte über das Verbindungskabel mit dem Computer und melden uns bei der Mblock3-Anwendung an. Als nächstes stellen wir unsere Pinoo-Steuerkarte dem Computer vor. Dazu klicken wir zunächst auf der Registerkarte „Verbinden“ auf die Option „Serieller Anschluss“. Anschließend wählen wir „COM3“ aus. (Die Anzahl kann je nach Computer und Anschluss variieren.)
Nachdem wir die Verbindung zur seriellen Schnittstelle hergestellt haben, wählen wir auf der Registerkarte „Karten“ 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, klicken wir auf der Registerkarte „Erweiterungen“ auf die Option „Erweiterungen verwalten“. Im sich öffnenden Fenster geben wir „Pinoo“ in die Suchmaschine ein und klicken im Ergebnis einfach auf „Herunterladen“. unser Computer.
Nachdem wir unsere Karte ausgewählt haben, klicken wir auf der Registerkarte „Erweiterungen“ auf die Option „Pinoo“. Wir werden unsere Codes mit der Pinoo-Erweiterung schreiben.
Im Codierungsteil erhalten wir den Code, wenn wir im Menü „Ereignisse“ auf die grüne Flagge klicken, um die Anwendung zu starten.
Mithilfe des Dummys lernen wir den vom Abstandssensor erfassten Wert. Dazu erhalten wir den Befehl „Sag Hallo“ aus der Registerkarte „Ansicht“. Anstelle der Hello-Anweisung erhalten wir den Codeblock für den Abstandssensor im Roboter-Tab. Wir ändern die Pin-Eingabe in Pinoo5, mit dem wir eine Verbindung hergestellt haben.
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.
Klicken wir auf die grüne Flagge und beobachten wir die Änderung der Werte, indem wir unsere Hand näher und weiter vom Sensor entfernen. Bewegen wir unsere Hand näher an den Aufzugseingang (Sensor) und notieren den vom Sensor angezeigten Wert. Hier nehmen wir als Referenz einen Wert um 4.
Liegt der vom Abstandssensor erfasste Wert unter 4, bedeutet dies, dass sich die Person vor der Aufzugstür befindet.
- Lassen Sie den Motor 0,8 Sekunden lang rückwärts laufen.
- Lassen Sie den Motor 3 Sekunden lang stoppen
- Lassen Sie den Motor 0,8 Sekunden lang vorwärts laufen
- Lassen Sie den Motor schließlich nicht mehr laufen.
Wenn der Wert größer als 4 ist und sich niemand vor dem Aufzug befindet, funktioniert der Motor nicht mehr. Lassen Sie uns nun das, was wir geschrieben haben, in Code umwandeln.
Hier verwenden wir den if-Block auf der Registerkarte „Steuerung“ und die kleinen und großen Vergleichsoperatoren auf der Registerkarte „Operationen“.
Lassen Sie uns die Start-Stopp-Codes für den Aufzugsmotor entsprechend der zu erfüllenden Bedingung vervollständigen. Wir erhalten den Codeblock „PinooBot Direction:Forward Speed:0“ von der Registerkarte „Robots“.
Basierend auf dem Algorithmus, den wir im vorherigen Schritt geschrieben haben, ändern wir die Richtung in vorwärts oder rückwärts, die Geschwindigkeit auf 0, um den Motor zu stoppen, und auf 255, um ihn zu starten.
Wir übernehmen auch den Befehl „Warten Sie 1 Sekunde“ aus der Registerkarte „Steuerung“ und platzieren ihn entsprechend dem Algorithmus an den entsprechenden Stellen.
Da wir möchten, dass dieser Prozess ständig kontrolliert wird, platzieren wir alle Blöcke im kontinuierlich wiederholenden Block.
Wir wollten, dass der Motor stoppt, wenn sich niemand vor dem Aufzug befindet. Dazu erhalten wir den PinooBot-Codeblock „Richtung: Vorwärtsgeschwindigkeit: 0“ aus der Registerkarte „Roboter“.
Nachdem wir unsere Codes ausgefüllt haben, überprüfen wir den Betrieb unseres Projekts, indem wir auf die grüne Flagge klicken. Wenn wir zur Aufzugstür kommen, also zum Sensor, fährt der Aufzug nach oben, hält dort für 3 Sekunden an und bewegt sich dann wieder nach unten. Wenn wir weit vom Aufzug entfernt sind, stoppt der Aufzug.
Wenn beim Betrieb unseres Projekts kein Problem auftritt, müssen wir die Codes, die wir auf unsere Karte geschrieben haben, hochladen, um unser Projekt mit einer vom Computer unabhängigen Stromquelle ausführen zu können.
Dazu verwerfen wir den Klick auf den grünen Flaggencode, den wir zu Beginn verwendet haben, und den Code, mit dem wir die Puppe dazu gebracht haben, den Sensorwert mitzuteilen, und holen uns den Pinoo-Programmcode aus dem Menü „Roboter“.
Wir klicken mit der rechten Maustaste auf den Code und klicken auf „Auf Arduino hochladen“. (Wir arbeiten mit Arduino als Karte.)
Wir warten darauf, dass die Codes auf die Karte hochgeladen werden. Nachdem die Installation abgeschlossen ist, schließen wir das Fenster.
Wenn es kein Problem gibt, trennen wir unser Stromkabel vom Computer. 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.
ARDUINO-IDE-CODES:
// Wir haben die Motortreiber-Pins den Pins 5 und 6 zugewiesen int motora1 = 5 ; int motora2 = 6 ; // Wir haben den Pins 9 und 8 Trigger- und Echo-Pins zugewiesen int echoPin = 8 ; int trigPin = 9 ; lange Dauer , Entfernung ; //Variable für Dauer- und Distanzmessung zugewiesen void setup ( ) { // ist der Ausgangspin des Motors. pinMode ( motora1 , OUTPUT ) ; pinMode ( motora2 , OUTPUT ) ; // Wir setzen die Eingangs- und Ausgangspins der Trigger- und Echo-Pins pinMode ( echoPin , INPUT ) ; pinMode ( trigPin , OUTPUT ) ; } Leere Schleife ( ) { //wir haben den Abstandssensor aktiviert digitalWrite ( trigPin , LOW ) ; VerzögerungMikrosekunden ( 5 ) ; digitalWrite ( trigPin , HIGH ) ; VerzögerungMikrosekunden ( 10 ) ; digitalWrite ( trigPin , LOW ) ; Dauer = PulseIn ( echoPin , HIGH ) ; Abstand = Sure / 29,1 / 2 ; //die Entfernung gemessen if ( distance < 4 ) { // wenn der Abstand kleiner als 4 ist zurück ( ) ; Verzögerung ( 800 ) ; stoppen ( ) ; Verzögerung ( 3000 ) ; nach vorne ( ) ; Verzögerung ( 800 ) ; stoppen ( ) ; } else { // andernfalls die Motoren stoppen lassen stoppen ( ) ; } } void forward ( ) { // Vorwärtsfunktion digitalWrite ( motora1 , HIGH ) ; digitalWrite ( motora2 , LOW ) ; } void back ( ) { // Gehe zurück Funktion digitalWrite ( motora1 , LOW ) ; digitalWrite ( motora2 , HIGH ) ; } void stop ( ) { // Funktion stoppen digitalWrite ( motora1 , LOW ) ; digitalWrite ( motora2 , LOW ) ; }