Innehållsförteckning:

Kollisionsförebyggande- Drivs av Pi: 6 steg
Kollisionsförebyggande- Drivs av Pi: 6 steg

Video: Kollisionsförebyggande- Drivs av Pi: 6 steg

Video: Kollisionsförebyggande- Drivs av Pi: 6 steg
Video: A case that shocked Canada in 2012😳 #shorts 2024, Juli
Anonim
Kollisionsförebyggande- Drivs av Pi
Kollisionsförebyggande- Drivs av Pi

Den här instruktionsboken ger dig en steg-för-steg-guide till konstruktionen av The Collision Prevention System. För att börja måste man få följande materiallista:

Raspberry PI 3 (med ström- och Ethernet -ackord), 1 GPIO -förlängningskort och bandkabel (GPIO), 1 stort brödbräda med diagram, 2 små brödbrädor med diagram, 14 bygelkablar, 3 220 Ohms motstånd, 1 RGB LED, 3 knappar, 1HB-SR04 Ultraljudssensor

Steg 1: GPIO -tillägg

GPIO -tillägg
GPIO -tillägg
GPIO -tillägg
GPIO -tillägg

Anslut GPIO -förlängningskortet till den stora brödbrädan. GPIO ska vara vänd lodrätt precis som brödbrädan. Tilldela vänstra sidan av GPIO till brödbrädportarna D1-D20 med hjälp av det medföljande diagrammet. Höger sida skulle då ansluta till H1-H20. Anslut bandkabeln till både Raspberry Pi 3 och GPIO -förlängningskortet. Hela denna komponent kommer nu att kallas GPIO -kortet (GPIO)

Steg 2: Ultraljudssensor

Ultraljudssensor
Ultraljudssensor
Ultraljudssensor
Ultraljudssensor

Använd en annan mindre brödbräda, anslut HR-SR04 ultraljudssensorn till de mindre brödbräda portarna A2-5 med hjälp av det medföljande diagrammet. Anslut en bygelkabel till den mindre brödbrädan (BB) E2, sätt in den andra änden i GPIO -förlängningskortets port J1. På samma sätt kan du ansluta ytterligare tre hoppare på följande sätt. (BB E3, GPIO B17) (BB E4, GPIO B18) (BB E5, GPIO B20)

Steg 3: LED och motstånd

LED och motstånd
LED och motstånd
LED och motstånd
LED och motstånd
LED och motstånd
LED och motstånd

Anslut tre 220 ohm motstånd på samma lilla brödbräda som användes i föregående instruktion på följande sätt. (E10, H10) (E12, H12) (E14, H14) Anslut sedan en bygel från samma brödbräda E13 till markströmsskenan på GPIO -kortet. Anslut lysdiodens fyra stift till de mindre brödbräda -portarna (B13) (D14) (D12) (D10). Anslut sedan tre hoppare från den mindre brödbrädan till GPIO -kortet på tilldelat sätt. (BB J10, GPIO J9) (BB J12, GPIO J8) (BB J14, GPIO J6). Denna brödbräda är nu klar.

Steg 4: Mark

Jord
Jord

Använd en annan bygel för att ansluta GPIO -kortet J7 till markenergilisten.

Steg 5: Knappar

Knappar
Knappar

Med den andra brödbrädan placerar du toppen av en knappomkopplare på port E1 och D1, placerar en annan vid E5 och D5 och en tredje vid E9 och D9. Anslut tre hoppare från den positiva kraftskenan på GPIO -kortet till följande brödbräda -portar (D3) (D7) (D11). Använd ytterligare tre bygelkablar och anslut brödbrädan till GPIO -förlängningskortet i följande herrgård: (BB D1, GPIO J16) (BB D5, GPIO J18) (BB D9, GPIO J20). Slutligen, med den sista bygelkabeln, ansluter du GPIO A1 till den positiva kraftskenan. Den fysiska installationen är nu klar.

Steg 6: Kod

Koda
Koda
Koda
Koda

Anslut Ethernet -kabeln och strömkabeln till Pi och till respektive position. Öppna MATLAB och kör följande skript för att initiera mikrokontrollern:

rpi = raspi ('169.254.0.2', 'pi', 'hallon');

Kopiera sedan och klistra in följande i ett nytt skript, kallat Ping, för att köra kollisionsförebyggande system:

funktion dist = ping () trig = 19; eko = 13; test = 21; configurePin (rpi, trig, 'DigitalOutput'); configurePin (rpi, echo, 'DigitalInput'); configurePin (rpi, test, 'DigitalInput');

disp ("Avståndsmätning pågår");

medan true writeDigitalPin (rpi, trig, 0); disp ("Låt sensorn sätta sig"); paus (2);

writeDigitalPin (rpi, trig, 1); paus (0,002); writeDigitalPin (rpi, trig, 0);

medan readDigitalPin (rpi, echo) == 0 tic end

medan readDigitalPin (rpi, echo) == 1 T = toc; slutet

pulse_duration = T; avstånd = puls_längd * 17150;

öppen = "Avstånd ="; stäng = "cm"; string = [öppen, avstånd, stäng]; disp (sträng); dist = distans; slutet slut

I ett nytt skript kör du följande kod med namnet status:

configurePin (rpi, 21, 'DigitalInput'); configurePin (rpi, 16, 'DigitalInput'); configurePin (rpi, 12, 'DigitalInput');

status = 2; d = 10; %Status: 0-röd/stopp 1-blå/långsam 2-grön/kör igång = true; medan %d = ping () körs; if readDigitalPin (rpi, 21) == 1 status = 0; elseif readDigitalPin (rpi, 16) == 1 status = 1; elseif readDigitalPin (rpi, 12) == 1 status = 2; annarsif d

Rekommenderad: