Obsah:

Prevencia kolízií- Beží na Pi: 6 krokov
Prevencia kolízií- Beží na Pi: 6 krokov

Video: Prevencia kolízií- Beží na Pi: 6 krokov

Video: Prevencia kolízií- Beží na Pi: 6 krokov
Video: Эти простые лабораторные тесты могут спасти вам жизнь 2024, Júl
Anonim
Prevencia kolízií- Beží na Pi
Prevencia kolízií- Beží na Pi

Tento návod vám poskytne podrobný návod na konštrukciu systému prevencie kolízií. Na začiatok je potrebné získať nasledujúci zoznam materiálov:

Raspberry PI 3 (s napájacími a ethernetovými akordmi), 1 rozširujúca doska GPIO a plochý kábel (GPIO), 1 veľký Breadboard s diagramom, 2 malé prepojovacie panely s diagramom, 14 prepojovacích káblov, odpor 3 220 ohmov, 1 RGB LED, 3 prepínače tlačidiel, 1HB-SR04 Ultrazvukový senzor

Krok 1: Rozšírenie GPIO

Rozšírenie GPIO
Rozšírenie GPIO
Rozšírenie GPIO
Rozšírenie GPIO

Pripojte rozširujúcu dosku GPIO k veľkému breadboardu. GPIO by malo byť otočené zvisle, rovnako ako je to na doske. Priraďte ľavú stranu GPIO k portom nepájivého poľa D1-D20 podľa priloženého diagramu. Pravá strana by sa potom pripojila k H1-H20. Pripojte plochý kábel k Raspberry Pi 3 aj k rozširovacej doske GPIO. Celý tento komponent bude teraz označovaný ako doska GPIO (GPIO)

Krok 2: Ultrazvukový senzor

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

Pomocou iného menšieho prepojovacieho panelu prepojte ultrazvukový snímač HR-SR04 s menšími portami A2–5 pomocou dodanej schémy. Pripojte prepojovací kábel k menšej doske (BB) E2, druhý koniec zapojte do portu rozširujúcej dosky GPIO J1. Rovnakým spôsobom prepojte ďalšie tri prepojky nasledujúcim spôsobom. (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 rovnakú malú dosku použitú v predchádzajúcej inštrukcii pripojte tri odpory 220 ohmov nasledujúcim spôsobom. (E10, H10) (E12, H12) (E14, H14) Potom prepojte prepojku z rovnakého nepájivého poľa E13 s uzemňovacou napájacou lištou na doske GPIO. Pripojte štyri hroty diódy LED k menším portom nepájivej dosky (B13) (D14) (D12) (D10). Potom priradeným spôsobom prepojte tri prepojky z menšieho prepojovacieho panelu na dosku GPIO. (BB J10, GPIO J9) (BB J12, GPIO J8) (BB J14, GPIO J6). Tento breadboard je teraz kompletný.

Krok 4: Uzemnite

Zem
Zem

Použite iný prepojovací kábel na pripojenie dosky GPIO J7 k uzemňovacej napájacej lište.

Krok 5: Tlačidlá

Gombíky
Gombíky

Pomocou druhého prepojovacieho panelu umiestnite hornú časť tlačidla na port E1 a D1, ďalší umiestnite na E5 a D5 a tretí na E9 a D9. Pripojte tri prepojky z kladnej napájacej lišty na doske GPIO k nasledujúcim portom (D3) (D7) (D11). Pomocou troch ďalších prepojovacích káblov prepojte prepojovací panel s rozširujúcou doskou GPIO v nasledujúcom poradí: (BB D1, GPIO J16) (BB D5, GPIO J18) (BB D9, GPIO J20). Nakoniec pomocou posledného prepojovacieho kábla pripojte GPIO A1 k kladnej silovej lište. Fyzické nastavenie je teraz dokončené.

Krok 6: Kód

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

Pripojte ethernetový kábel a napájací kábel k pí a do príslušných polôh. Otvorte MATLAB a spustením nasledujúceho skriptu inicializujte mikrokontrolér:

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

Potom skopírujte a prilepte nasledujúce položky do nového skriptu s názvom Ping, aby sa spustil systém prevencie kolízií:

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

disp ("Prebieha meranie vzdialenosti");

zatiaľ čo true writeDigitalPin (rpi, trig, 0); disp ("Nechajte senzor usadiť"); pauza (2);

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

zatiaľ čo readDigitalPin (rpi, echo) == 0 tic end

pri čítaníDigitalPin (rpi, echo) == 1 T = toc; koniec

pulse_duration = T; vzdialenosť = trvanie pulzu * 17150;

otvorený = "Vzdialenosť ="; zavrieť = "cm"; reťazec = [otvorený, vzdialenosť, zatvorený]; disp (reťazec); dist = vzdialenosť; koniec koniec

V novom skripte spustite nasledujúci kód s názvom status:

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

stav = 2; d = 10; %Stavu: 0-červená/zastávka 1-modrá/pomalá 2-zelená/beží = true; počas behu %d = ping (); ak je prečítanéDigitalPin (rpi, 21) == 1 stav = 0; elseif readDigitalPin (rpi, 16) == 1 stav = 1; elseif readDigitalPin (rpi, 12) == 1 stav = 2; inak d

Odporúča: