Мазмуну:

Коопсузураак: Поезд станцияларын коопсуз кылуу: 7 кадам
Коопсузураак: Поезд станцияларын коопсуз кылуу: 7 кадам

Video: Коопсузураак: Поезд станцияларын коопсуз кылуу: 7 кадам

Video: Коопсузураак: Поезд станцияларын коопсуз кылуу: 7 кадам
Video: Загадка Титаника : Как они могли не заметить айсберг?! Самая подробная история! 2024, Ноябрь
Anonim
Коопсузураак: Поезд станцияларын коопсуз кылуу
Коопсузураак: Поезд станцияларын коопсуз кылуу

Бүгүнкү күндө көптөгөн вокзалдар коопсуздуктун жоктугунан, тоскоолдуктардан жана поезд кирип баратканынан эскертүү берүүдөн улам кооптуу. Биз муну оңдоо керек экенин көрдүк. Бул маселени чечүү үчүн биз Safer Better программасын түздүк. Биз темир жол станциясына коопсуздукту кошуу үчүн Arduino Unoдо титирөө сенсорлорун, кыймыл сенсорлорун жана авариялык сигнализация системасын колдондук.

Керектелүүчү материалдар:

  • Arduino Uno
  • Jumper Wires
  • PIR Motion Sensor
  • Piezo Vibration Sensor
  • ЖК экран
  • Пьезо спикери
  • Физикалык которуу
  • Жумшак потенциометр
  • 330 Ом каршылыгы

Автору: Джейкоб Виммер, Оливия Кроули, Джин Ким

1 -кадам: Башкарманы өткөрүңүз

Башкарманы зым менен жабыңыз
Башкарманы зым менен жабыңыз

Биз жогоруда көрсөтүлгөн диаграммага окшоп Arduino кабелибизди өткөрдүк.

2 -кадам: 3D Print LCD стенди

3D басма LCD стенд
3D басма LCD стенд

Биз 3D көрүнөө үчүн LCD экраныбыз үчүн стендди басып чыгардык.

3 -кадам: Matlabтагы Arduino менен туташыңыз

Биздин кодду жазуунун биринчи кадамы Arduino тактабызды Matlabке туташтыруу болду. Бул Arduino объектисин түзүү аркылуу жасалат. Биз төмөнкү кодду колдондук:

a = arduino ('/dev/tty.usbmodem14201', 'Uno', 'китепканалар', 'ExampleLCD/LCDAddon');

4 -кадам: Matlabке код жазыңыз

Биз Matlabта Arduino иштетүү үчүн программа түздүк. ЖК экраныбызды инициализациялагандан кийин, биз вокзалды көзөмөлдөө үчүн код жаздык. Биз ар кандай жыйынтыктарды чыгаруу үчүн дирилдөө сенсору, кыймыл сенсору жана физикалык которгуч сыяктуу материалдарды колдондук. Бул киргизүү, чыгаруу жана тиешелүү код төмөнкү кадамдарда түшүндүрүлөт.

5 -кадам: Vibration Sensor

Vibration Sensor
Vibration Sensor

Вибрация сенсору аналогдук сенсор, ошондуктан Matlab функциясын readVoltage колдонгон.

val_vibro = readVoltage (a, 'A0'); Т.

ал readVoltage функциясы бир катар баалуулуктарды кайтарып берди, бирок биз 0,5тен жогору маани татыктуу дирилдөө экенин аныктадык жана биз муну базалык маанибиз катары колдондук. Эгерде чыңалуу 0,5тен жогору болсо, бул поезд станцияга келе жатканын билдирет. Бул маани аныкталганда, ЖК экранга билдирүү жөнөтүлөт. ЖК экрандагы билдирүү станциядагы адамдарга поезд келе жатканын билдирүүнүн бир жолу.

Биз LCD кодубузга төмөнкү кодду колдонуп жаздык:

if val_vibro <= 0.5;

elseif val_vibro> 0.5;

printLCD (lcd, 'Train in 3 Min');

аяктоо

6 -кадам: PIR Motion Sensor

PIR Motion Sensor
PIR Motion Sensor
PIR Motion Sensor
PIR Motion Sensor
PIR Motion Sensor
PIR Motion Sensor

PIR кыймыл сенсору оператордун поезд жолдорундагы тоскоолдуктарды билишин камсыз кылуу үчүн колдонулат. Сенсор сүрөт тартып, эң жаңы сүрөттү акыркы сүрөткө салыштырат жана эгерде бир нерсе жылып кеткен болсо, Matlab 1 маанисин кайтарат. Тректерде бир нерсе табылганда, колдонуучу графикалык интерфейси (GUI) пайда болот тректерде турат. Андан кийин оператор поездди токтотуу же улантуу мүмкүнчүлүгүнө ээ. Керектүү параметр тандалгандан кийин ырастоо билдирүүсү көрсөтүлөт.

Төмөнкү код кыймыл сенсору үчүн колдонулган:

if val_opt == 1;

d1 = 'Станциядагы жолдордо объект табылды';

op_input = questdlg (d1, 'Оператордун билдирүүсү', 'Поездди токтот', 'Кыймылдабаңыз', 'Кыймылдаңыз');

b1 = strcmp (op_input, 'Stop Train');

b2 = strcmp (op_input, 'Move to Move');

эгер b1 == 1

msgbox ('Поезддин токтошу')

пауза (3)

elseif b2 == 1

msgbox ('Поезд уланууда')

пауза (3)

аяктоо

elseif val_opt == 0;

аяктоо

7 -кадам: Физикалык которуу

Биз ошондой эле темир жол бекеттеринин дагы коопсуздук функциялары болушу керек деп ойлойбуз. Биз станцияда сигнализация бере турган өчүргүчкө ээ болууну чечтик. Биз муну физикалык которгучту колдонуу менен жасадык. Бул которгуч күйгүзүлгөндө, сигнал динамик аркылуу ойготулат.

Биз муну төмөнкү код менен жасадык:

i = 1:10 үчүн s_val == 1 болсо

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

тындыруу (.1)

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

тындыруу (.1)

аяктоо

аяктоо

Сунушталууда: