Obsah:

Prevence kolize- Poháněno Pi: 6 kroků
Prevence kolize- Poháněno Pi: 6 kroků

Video: Prevence kolize- Poháněno Pi: 6 kroků

Video: Prevence kolize- Poháněno Pi: 6 kroků
Video: 121 Jiří Fuchs FILOSOFIE - VIII.3) Feminismus - 11 4 2012 2024, Červenec
Anonim
Prevence kolizí- běží na Pi
Prevence kolizí- běží na Pi

Tento Instructable vám poskytne podrobného průvodce konstrukcí systému prevence kolizí. Chcete -li začít, musíte získat následující seznam materiálů:

Raspberry PI 3 (s napájecími a ethernetovými akordy), 1 rozšiřující deska GPIO a plochý kabel (GPIO), 1 velká Breadboard se schématem, 2 malé nepájivé desky se schématem, 14 propojovacích kabelů, odpor 3 220 ohmů, 1 RGB LED, 3 tlačítkové spínače, 1HB-SR04 Ultrazvukový senzor

Krok 1: Rozšíření GPIO

Rozšíření GPIO
Rozšíření GPIO
Rozšíření GPIO
Rozšíření GPIO

Připojte rozšiřující desku GPIO k velké desce. GPIO by mělo být svislé stejně jako prkénko. Pomocí přiloženého schématu přiřaďte levou stranu GPIO k portům D3-D20. Pravá strana by se pak připojila k H1-H20. Připojte plochý kabel jak k Raspberry Pi 3, tak k rozšiřující desce GPIO. Celá tato součást bude nyní označována jako deska GPIO (GPIO)

Krok 2: Ultrazvukový senzor

Ultrazvukový senzor
Ultrazvukový senzor
Ultrazvukový senzor
Ultrazvukový senzor

Pomocí jiného menšího prkénka propojte ultrazvukový senzor HR-SR04 s menšími porty A2–5 pomocí dodaného schématu. Připojte propojovací kabel k menší propojovací desce (BB) E2, druhý konec zasuňte do portu rozšiřující desky GPIO J1. Stejným způsobem připojte další tři propojky následujícím způsobem. (BB E3, GPIO B17) (BB E4, GPIO B18) (BB E5, GPIO B20)

Krok 3: LED a rezistory

LED a rezistory
LED a rezistory
LED a rezistory
LED a rezistory
LED a rezistory
LED a rezistory

Na stejné malé prkénko použité v předchozí instrukci připojte tři odpory 220 ohmů následujícím způsobem. (E10, H10) (E12, H12) (E14, H14) Poté připojte propojku ze stejné propojovací desky E13 k napájecí kolejnici na desce GPIO. Připojte čtyři hroty LED k menším portům na desce (B13) (D14) (D12) (D10). Poté přiřazeným způsobem připojte tři propojky z menšího prkénka k desce GPIO. (BB J10, GPIO J9) (BB J12, GPIO J8) (BB J14, GPIO J6). Toto prkénko je nyní kompletní.

Krok 4: Uzemněte

Přízemní
Přízemní

Pomocí jiného můstku připojte desku GPIO J7 k napájecí liště země.

Krok 5: Tlačítka

Tlačítka
Tlačítka

Pomocí druhého prkénka umístěte horní část tlačítkového spínače na port E1 a D1, další umístěte na E5 a D5 a třetí na E9 a D9. Připojte tři propojky z kladné napájecí lišty na desce GPIO k následujícím portům na desce (D3) (D7) (D11). Pomocí tří dalších propojovacích kabelů připojte propojovací pole k rozšiřující desce GPIO v následujícím provedení: (BB D1, GPIO J16) (BB D5, GPIO J18) (BB D9, GPIO J20). Nakonec pomocí posledního propojovacího kabelu připojte GPIO A1 k kladné napájecí liště. Fyzické nastavení je nyní dokončeno.

Krok 6: Kód

Kód
Kód
Kód
Kód

Připojte ethernetový kabel a napájecí kabel k Pi a do příslušných pozic. Otevřete MATLAB a spusťte následující skript pro inicializaci mikrořadiče:

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

Potom zkopírujte a vložte následující do nového skriptu s názvem Ping, abyste spustili systém prevence kolizí:

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

disp ("Probíhá měření vzdálenosti");

zatímco true writeDigitalPin (rpi, trig, 0); disp ("Nechat senzor usadit"); pauza (2);

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

při čteníDigitalPin (rpi, echo) == 0 tic end

při čteníDigitalPin (rpi, echo) == 1 T = toc; konec

pulse_duration = T; vzdálenost = doba trvání pulsu * 17150;

open = "Vzdálenost ="; zavřít = "cm"; řetězec = [otevřeno, vzdálenost, zavřeno]; disp (řetězec); dist = vzdálenost; konec konec

V novém skriptu spusťte následující kód s názvem status:

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

stav = 2; d = 10; %Stav: 0-červená/stop 1-modrá/pomalá 2-zelená/běžet = true; při spuštění %d = ping (); if readDigitalPin (rpi, 21) == 1 status = 0; elseif readDigitalPin (rpi, 16) == 1 stav = 1; elseif readDigitalPin (rpi, 12) == 1 stav = 2; jinak d

Doporučuje: