Ultraschallsensoren senden Schallwellen mit einer Frequenz aus, die unser Ohr nicht wahrnehmen kann, und erzeugen Entfernungsinformationen, indem sie die Rückkehrzeit der reflektierten Schallwellen berechnen. Wir, die Programmierer, entwickeln Projekte, indem wir die gemessene Entfernung und die Entfernungsänderungen verstehen. Parksensoren an der Vorder- und Rückseite von Autos sind die Orte, an denen Ultraschallsensoren im täglichen Leben am häufigsten vorkommen. Kennen Sie das Lebewesen, das mit dieser Methode seinen Weg in die Natur findet? Da Fledermäuse blind sind, finden sie ihren Weg durch die Reflexionen der von ihnen erzeugten Geräusche.
Viele von uns sparen gerne Geld. Es ist ein sehr schönes Gefühl, dass das Geld, das wir nach und nach sparen, bei Bedarf nützlich ist. In diesem Projekt basteln Sie sich ein sehr lustiges und süßes Sparschwein. Bei der Herstellung des Sparschweins verwenden Sie den Servomotor und den Ultraschall-Abstandssensor.
Details und Algorithmus
In diesem Projekt werden der Ultraschall-Abstandssensor HC-SR04 und der Servomotor SG90 verwendet. Wenn der Benutzer Geld in den Trichter des Sparschweins legt, erkennt der Abstandssensor die Nähe und signalisiert PicoBricks. PicoBricks betätigt den Servomotor und hebt den Arm an, wirft das Geld in das Sparschwein und dann fährt der Arm wieder nach unten.
Komponenten
1X PicoBricks
1X HC-SR04 Ultraschallsensor
1X Servomotor
Überbrückungskabel
Einfache Verbindungskabel
Schaltplan
Sie können die Module von Picobricks ohne Verkabelung programmieren und betreiben. Wenn Sie die Module getrennt von der Platine verwenden möchten, sollten Sie die Modulverbindungen mit Grove-Kabeln herstellen.
Bauphasen des Projekts
Durch Anklicken gelangen Sie zu den Originaldateien und Bauphasen des Projekts Hier. Im Gegensatz zum Projekt in diesem Link werden wir den Ultraschall-Abstandssensor HC-SR04 verwenden. Sie können die aktualisierten 3D-Zeichnungsdateien für den Ultraschall-Abstandssensor HC-SR04 unter herunterladen dieser Link und erhalten Sie den 3D-Druck.
1: Befestigen Sie den Kunststoffapparat des Servomotors mit 2 Schrauben am Sparschweinarm.
2: Befestigen Sie den zweiten Teil des Sparschweinarms mit der M3-Schraube und der Mutter am ersten Teil, wo sich der Trichter befindet.
3: Führen Sie das Servomotorkabel durch und platzieren Sie es in seinem Schlitz.
4: Platzieren Sie den Servomotor und sein Gehäuse auf dem Gehäuse des Sparschweins. Hier können Sie Heißkleber verwenden.
5: Platzieren Sie den Ultraschall-Abstandssensor im Sparschweingehäuse und befestigen Sie ihn mit Heißkleber.
6: Befestigen Sie den Sparschweinarm am Servomotor und befestigen Sie ihn mit M3-Schrauben an der oberen Abdeckung.
7: Befestigen Sie den Sparschweinarm mit einer M2-Schraube am Gehäuse.
8: Stecken Sie die Kabel des Servomotors und des Ultraschall-Abstandssensors ein und schließen Sie die Stromkabel an.
9: Gemäß Schaltplan die Kabel des Servomotors und des Ultraschall-Abstandssensors an den Pico anschließen.
10: Stecken Sie das USB-Kabel von Pico ein, bauen Sie die Kabel wieder zusammen und bringen Sie die untere Abdeckung an. Das ist alles.
MicroBlocks-Codes der PicoBricks
Sie können auf die Microblocks-Codes des Projekts zugreifen, indem Sie das Bild auf die Registerkarte „Microblocks Run“ ziehen oder auf klicken Taste.
Registerkarte „Mikroblöcke ausführen“.
MicroPython-Codes der PicoBricks
vom Maschinenimport Pin, PWM
Zeit importieren
#define die Bibliotheken
Servo = PWM (Pin(21, Pin.OUT))
Trigger = Pin(15, Pin.OUT)
echo = Pin(14, Pin.IN)
#Definieren Sie die Eingangs- und Ausgangspins
servo.freq(50)
servo.duty_u16(6750)
def getDistance():
trigger.low()
utime.sleep_us(2)
trigger.high()
utime.sleep_us(5)
trigger.low()
while echo.value() == 0:
signaloff = utime.ticks_us()
while echo.value() == 1:
signalon = utime.ticks_us()
timepassed = signalon – signaloff
Distanz = (verstrichene Zeit * 0,0343) / 2
print("Der Abstand vom Objekt beträgt ", distance, "cm")
Rückweg
#Entfernung berechnen
während True:
utime.sleep(0.01)
if int(getDistance()) <= 5: # wenn die Distanzvariable kleiner als 5 ist
servo.duty_u16(4010)
utime.sleep(0.3) # warten
servo.duty_u16(6750)
Arduino C-Codes der PicoBricks
#include
#trigPin 15 definieren
#echoPin 14 definieren
//Definiere die Bibliotheken
Servo-Servo;
void setup() {
Serial.begin(9600);
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
// Definiere die Eingangs- und Ausgangspins
servo.attach(21); //Definiere den Servo-Pin
}
void loop() {
lange Dauer, Entfernung;
digitalWrite(trigPin, LOW);
VerzögerungMikrosekunden(2);
digitalWrite(trigPin, HIGH);
VerzögerungMikrosekunden(10);
digitalWrite(trigPin, LOW);
Dauer = PulseIn(echoPin, HIGH);
Distanz = (Dauer / 2) / 29,1;
//Entfernung berechnen
if (distance < 5) { //wenn die Distanzvariable kleiner als 5 ist
Serial.print(distanz);
Serial.println(" cm");
servo.write(179);
}
else if (distance > 5) { // wenn die Distanzvariable größer als 5 ist
Serial.print(distanz);
Serial.println(" cm");
servo.write(100);
}
}
GitHub-Projektseite