Inhaltsverzeichnis:
- Schritt 1: GPIO-Erweiterung
- Schritt 2: Ultraschallsensor
- Schritt 3: LED und Widerstände
- Schritt 4: Masse
- Schritt 5: Tasten
- Schritt 6: Code
Video: Kollisionsschutz - Powered by Pi - Gunook
2024 Autor: John Day | [email protected]. Zuletzt bearbeitet: 2024-01-30 07:19
Dieses Instructable gibt Ihnen eine Schritt-für-Schritt-Anleitung zum Bau des Kollisionsschutzsystems. Um zu beginnen, muss man sich die folgende Materialliste besorgen:
Raspberry PI 3 (mit Strom- und Ethernetkabeln), 1 GPIO-Erweiterungsboard und Flachbandkabel (GPIO), 1 großes Steckbrett mit Diagramm, 2 kleine Steckbretter mit Diagramm, 14 Überbrückungskabel, 3 220 Ohm Widerstand, 1 RGB-LED, 3 Taster, 1HB-SR04 Ultraschallsensor
Schritt 1: GPIO-Erweiterung
Verbinden Sie das GPIO-Erweiterungsboard mit dem großen Steckbrett. Der GPIO sollte genauso wie das Steckbrett vertikal ausgerichtet sein. Weisen Sie die linke Seite des GPIO den Breadboard-Ports D1-D20 anhand des bereitgestellten Diagramms zu. Die rechte Seite würde dann mit H1-H20 verbunden. Verbinden Sie das Flachbandkabel sowohl mit dem Raspberry Pi 3 als auch mit dem GPIO-Erweiterungsboard. Diese ganze Komponente wird nun als GPIO-Board (GPIO) bezeichnet.
Schritt 2: Ultraschallsensor
Verbinden Sie den Ultraschallsensor HR-SR04 mit einem anderen kleineren Steckbrett mit den kleineren Steckbrettanschlüssen A2-5 gemäß dem mitgelieferten Diagramm. Schließen Sie ein Überbrückungskabel an das kleinere Steckbrett (BB) E2 an, stecken Sie das andere Ende in den GPIO-Erweiterungsplatinenanschluss J1. Schließen Sie auf die gleiche Weise drei weitere Jumper wie folgt an. (BB E3, GPIO B17) (BB E4, GPIO B18) (BB E5, GPIO B20)
Schritt 3: LED und Widerstände
Verbinden Sie auf demselben kleinen Steckbrett, das in der vorherigen Anweisung verwendet wurde, drei 220-Ohm-Widerstände auf die folgende Weise. (E10, H10)(E12, H12)(E14, H14) Verbinden Sie dann einen Jumper vom gleichen Steckbrett E13 mit der Massestromschiene auf der GPIO-Platine. Verbinden Sie die vier Zinken der LED mit den kleineren Steckbrettanschlüssen (B13) (D14) (D12) (D10). Verbinden Sie dann drei Jumper vom kleineren Steckbrett mit dem GPIO-Board in der zugewiesenen Weise. (BB J10, GPIO J9) (BB J12, GPIO J8) (BB J14, GPIO J6). Dieses Steckbrett ist jetzt fertig.
Schritt 4: Masse
Verwenden Sie einen anderen Jumper, um die GPIO-Platine J7 mit der Erdungsstromschiene zu verbinden.
Schritt 5: Tasten
Platzieren Sie mit dem zweiten Steckbrett die Oberseite eines Knopfschalters an den Ports E1 und D1, platzieren Sie einen weiteren an E5 und D5 und einen dritten an E9 und D9. Verbinden Sie drei Jumper von der positiven Stromschiene auf der GPIO-Platine mit den folgenden Steckbrettanschlüssen (D3) (D7) (D11). Verbinden Sie das Steckbrett mit drei weiteren Überbrückungskabeln wie folgt mit der GPIO-Erweiterungsplatine: (BB D1, GPIO J16) (BB D5, GPIO J18) (BB D9, GPIO J20). Schließen Sie schließlich mit dem letzten Überbrückungskabel GPIO A1 an die positive Stromschiene an. Die physische Einrichtung ist nun abgeschlossen.
Schritt 6: Code
Verbinden Sie das Ethernet-Kabel und das Stromkabel mit dem Pi und in die entsprechenden Positionen. Öffnen Sie MATLAB und führen Sie das folgende Skript aus, um den Mikrocontroller zu initialisieren:
rpi = raspi('169.254.0.2', 'pi', 'Himbeere');
Kopieren Sie dann Folgendes und fügen Sie es in ein neues Skript namens Ping ein, um das Kollisionsschutzsystem auszuführen:
Funktion dist = ping() trig = 19; Echo = 13; Test = 21; configurePin (rpi, trig, 'DigitalOutput'); configurePin (rpi, echo, 'DigitalInput'); configurePin (rpi, test, 'DigitalInput');
disp("Entfernungsmessung läuft");
während true writeDigitalPin (rpi, trig, 0); disp("Sensor einschwingen lassen"); Pause(2);
writeDigitalPin(rpi, trig, 1); Pause(0,002); writeDigitalPin (rpi, trig, 0);
while readDigitalPin(rpi, echo) == 0 tic end
while readDigitalPin(rpi, echo) == 1 T = toc; Ende
Puls_Dauer = T; Distanz = Puls_Dauer * 17150;
open = "Distanz= "; schließen = "cm"; string = [öffnen, Abstand, schließen]; disp(Zeichenfolge); dist = Entfernung; Ende Ende
Führen Sie in einem neuen Skript den folgenden Code mit dem Namen status aus:
configurePin(rpi, 21, 'DigitalInput');configurePin(rpi, 16, 'DigitalInput'); configurePin(rpi, 12, 'DigitalInput');
Status = 2; d = 10; %Status: 0-Rot/Stopp 1-Blau/Langsam 2-Grün/Los läuft = wahr; beim Ausführen von %d = ping(); if readDigitalPin(rpi, 21) == 1 Status = 0; elseif readDigitalPin(rpi, 16) == 1 Status = 1; elseif readDigitalPin(rpi, 12) == 1 Status = 2; sonst