Sadržaj:

Sigurnije: Učinite željezničke stanice sigurnijima: 7 koraka
Sigurnije: Učinite željezničke stanice sigurnijima: 7 koraka

Video: Sigurnije: Učinite željezničke stanice sigurnijima: 7 koraka

Video: Sigurnije: Učinite željezničke stanice sigurnijima: 7 koraka
Video: SCP-093 Красное море Объект (Все тесты и вторичного сырья Журналы) 2024, Juli
Anonim
Sigurnije bolje: Učinite željezničke stanice sigurnijim
Sigurnije bolje: Učinite željezničke stanice sigurnijim

Mnoge današnje željezničke stanice nisu sigurne zbog nedostatka sigurnosti, barijera i upozorenja na dolazak vlaka. Vidjeli smo potrebu da se to popravi. Kako bismo riješili ovaj problem, stvorili smo Sigurnije bolje. Koristili smo senzore vibracija, senzore pokreta i alarmni sistem za hitne slučajeve na Arduino Uno kako bismo dodali sigurnost željezničkoj stanici.

Potrebne zalihe:

  • Arduino Uno
  • Džemper žice
  • PIR senzor pokreta
  • Piezo senzor vibracija
  • LCD ekran
  • Piezo zvučnik
  • Fizički prekidač
  • Meki potenciometar
  • Otpornik od 330 ohma

Napisali: Jacob Wimmer, Olivia Crawley, Jin Kim

Korak 1: Ožičite ploču

Ožičite ploču
Ožičite ploču

Ožičili smo naš Arduino kao gornji dijagram.

Korak 2: LCD stalak za 3D štampanje

LCD stalak za 3D štampanje
LCD stalak za 3D štampanje

3D štampali smo postolje za naš LCD ekran radi bolje vidljivosti.

Korak 3: Povežite se s Arduinom u Matlabu

Prvi korak u pisanju našeg koda bio je povezivanje naše Arduino ploče s Matlabom. To se postiže stvaranjem Arduino objekta. Koristili smo sljedeći kod:

a = arduino ('/dev/tty.usbmodem14201', 'Uno', 'biblioteke', 'ExampleLCD/LCDAddon');

Korak 4: Napišite kôd u Matlabu

Napravili smo program u Matlabu za pokretanje našeg Arduina. Nakon inicijalizacije našeg LCD ekrana, napisali smo kod za kontrolu naše željezničke stanice. Koristili smo ulaze kao što su senzor vibracija, senzor pokreta i fizički prekidač za proizvodnju različitih izlaza. Ovi ulazi, izlazi i odgovarajući kod bit će objašnjeni u koracima u nastavku.

Korak 5: Senzor vibracija

Senzor vibracija
Senzor vibracija

Senzor vibracije je analogni senzor i stoga koristi Matlab funkciju readVoltage.

val_vibro = readVoltage (a, 'A0'); T

Funkcija readVoltage vratila je raspon vrijednosti, ali smo utvrdili da je vrijednost iznad 0,5 pristojna vibracija pa smo je koristili kao osnovnu vrijednost. Ako je napon bio iznad 0,5, to znači da voz ulazi u stanicu. Kada se otkrije ova vrijednost, poruka se šalje na LCD ekran. Poruka na LCD ekranu je način komuniciranja ljudima na stanici da dolazi vlak.

Na LCD ekranu smo pisali sljedećim kodom:

ako je val_vibro <= 0,5;

elseif val_vibro> 0,5;

printLCD (lcd, "Vlak za 3 minute");

kraj

Korak 6: PIR senzor pokreta

PIR senzor pokreta
PIR senzor pokreta
PIR senzor pokreta
PIR senzor pokreta
PIR senzor pokreta
PIR senzor pokreta

PIR senzor pokreta koristi se kako bi osigurao da rukovatelj zna o preprekama duž pruga. Senzor snima slike i uspoređuje najnoviju sliku sa posljednjom snimljenom i ako se bilo što pomaklo, Matlab će vratiti vrijednost 1. Kad se nešto otkrije na prugama, pojavit će se grafičko korisničko sučelje (GUI) koje obavještava vozača da nešto je na tračnicama. Operater tada ima mogućnost zaustaviti vlak ili nastaviti. Nakon odabira željene opcije, prikazuje se poruka s potvrdom.

Za senzor pokreta korišten je sljedeći kôd:

ako je val_opt == 1;

d1 = 'Objekat je otkriven na stazama u stanici';

op_input = questdlg (d1, 'Poruka operatera', 'Zaustavi voz', 'Nastavi se kretati', 'Nastavi se kretati');

b1 = strcmp (op_input, 'Zaustavi voz');

b2 = strcmp (op_input, 'Nastavi se kretati');

ako je b1 == 1

msgbox ('Stajanje vlaka')

pauza (3)

elseif b2 == 1

msgbox ('Vlak se nastavlja')

pauza (3)

kraj

elseif val_opt == 0;

kraj

Korak 7: Fizički prekidač

Također mislimo da željezničke stanice moraju imati više sigurnosnih funkcija. Odlučili smo da imamo prekidač koji bi oglašavao alarm na stanici. To smo učinili fizičkim prekidačem. Kada je ovaj prekidač uključen, kroz zvučnik se oglašava alarm.

To smo učinili sa sljedećim kodom:

ako je s_val == 1 za i = 1:10

playTone (a, 'D10', 1800, 1)

pauza (.1)

playTone (a, 'D10', 2000, 1)

pauza (.1)

kraj

kraj

Preporučuje se: