Mundarija:

Tomas poezdiga tunda haydash qobiliyatini berish: 5 qadam
Tomas poezdiga tunda haydash qobiliyatini berish: 5 qadam

Video: Tomas poezdiga tunda haydash qobiliyatini berish: 5 qadam

Video: Tomas poezdiga tunda haydash qobiliyatini berish: 5 qadam
Video: Titanik jumboq: qanday qilib ular aysbergni e'tiborsiz qoldirishlari mumkin?! Eng batafsil hikoya! 2024, Iyul
Anonim
Tomas poezdiga tunda haydash qobiliyatini berish
Tomas poezdiga tunda haydash qobiliyatini berish

Bu ko'rsatma sizga poezd yaqinlashganda kutayotgan yo'lovchilarni ogohlantirish uchun chiroqlar tizimini yaratishni o'rgatadi, shuningdek vokzalda poezdda noutbukda xabar paydo bo'lishini o'rgatadi. Poyezd vokzaldan o'tib ketganda, bir qator miltillovchi LED chiroqlari eshitiladi. Bularning barchasi Raspberry Pi yordamida amalga oshirilishi mumkin.

1 -qadam: materiallar

Ta'minotlar
Ta'minotlar

Bitta kompyuter

MatLab 2016 yoki undan yangisi

Raspberry Pi paketini yuklab oling

3D printer

Malinali pi uchun 3D bosilgan poezd stantsiyasi

Raspberry Pi quyidagi komponentlardan iborat:

2 infraqizil sensorlar

Siz tanlagan rangdagi 5 ta LED chiroq

11 simlar

2 rezistorlar

200-300 Ohm qarshilik

USB chord kompyuterni malina pi ga ulash uchun

2 -qadam: Chiqish va kirishlar uchun sxemani loyihalash

Istalgan chiqish va kirishlar uchun sxemani loyihalash
Istalgan chiqish va kirishlar uchun sxemani loyihalash

Asosiy sxemalardan foydalanib, chiroqlar va infraqizil emitent va qabul qilgichni Raspberry Pi ga ulash lozim. Qizil LED chiroqlari erga ulanadi, so'ngra GPIO pinlari 4, 5, 6 va 7 ga ulanadi. Infraqizil qabul qilgich GPIO PIN 21 ga va infraqizil emitent 5V piniga ulanadi.

3 -qadam: Istalgan natijani qondirish uchun kodlashni ishlab chiqish

Istalgan natijani qondirish uchun kodlashni ishlab chiqish
Istalgan natijani qondirish uchun kodlashni ishlab chiqish

Kodning eng muhim satrlari 12 va 16 -qatorlar bo'lib, ular dialog oynalarini ishga tushiradi. 18 -satr, if iborasi, agar infraqizil datchiklar oralarida to'siq bo'lsa va o'qqa tutilgan bo'lsa, demak, bu poezd o'tayotganini bildiradi, shox eshitiladi va chiroqlar yonadi. Agar bu yolg'on bo'lsa, hech narsa bo'lmaydi, chunki poezd yaqinlashmaydi.

Kod: %% sarlavha

%Mikrokontroller loyihasi-tungi poezd

%Jon Braun, Trent Payne, Karsten Parker; 9 -bo'lim

%2017 yil 3 oktyabr

%Loyiha tavsifi: Ikkita kirishni oladigan mikrokontrollerni loyihalash

%model poezdini sozlash jihatlarini yaxshilashga yordam beradigan ikkita natija beradi

%Yechim usuli: har xil manbalar va Matlab -dan foydalanib aspektlarni yaxshilash

%model poezd sozlamalari.

%% O'rnatish-Birinchi kirish/chiqish

rost bo'lsa ham

a = 0;%a ni ishga tushiradi

readDigitalPin (rpi, 21) == 1

a = 1;%yorug'lik kodining savol dialog oynasidan oldin ishlashini to'xtatadi

question = ('Poyezd bekatda to'xtab qoldi. Shox ovozini eshitishni xohlaysizmi?');

question_title = ('Poezd shoxi');

resp = questdlg (savol, savol_title, "ha", "yo'q", "yo'q");%ikkita variantli va standart javobli savol dialog oynasini ochadi

tf = strcmp (resp, 'ha');%belgi qatorining uzunligini "ha" qatoriga solishtiradi.

agar tf == 1%agar resp = "ha" bo'lsa

[Y, FS] = audio o'qish ('train_horn.m4a');%audio faylni oladi va uni namunaviy ma'lumotlarga, y va namuna olish tezligiga, FS ga o'zgartiradi.

tovush (Y, FS)%ovozli buyruqlar namunali ma'lumotlarni va namuna olish tezligini oladi va ovoz chiqaradi

msgbox ("Poyezd shoxi eshitilmoqda!")

pauza (2)

tanaffus

else%if resp = 'no', tf mantiqiy 0 bo'ladi, chunki yo'q va ha char massivlari har xil uzunliklarda

msgbox ('Poyezd shoxi eshitilmadi!')

pauza (2)

tanaffus

oxiri

oxiri

readDigitalPin (rpi, 21) == 1 && a == 1 %o'chirish tugmasi bosilganda va savollar dialog oynasi ishga tushganda boshlanadi.

%Bu birinchi kod segmenti chiroqlarni navbat bilan yoqadi.

writeDigitalPin (rpi, 4, 0)

pauza (0,25)

writeDigitalPin (rpi, 5, 0)

pauza (0,25)

writeDigitalPin (rpi, 6, 0)

pauza (0,25)

writeDigitalPin (rpi, 7, 0)

pauza (0,25)

%Bu ikkinchi kod segmenti chiroqlarni tartib bilan o'chiradi.

writeDigitalPin (rpi, 4, 1)

pauza (0,25)

writeDigitalPin (rpi, 5, 1)

pauza (0,25)

writeDigitalPin (rpi, 6, 1)

pauza (0,25)

writeDigitalPin (rpi, 7, 1)

pauza (0,25)

end%end while loop

oxiri

4 -qadam: Poyezdning burchak atrofida aylanishini tinglang va yorug'lik sizni orqaga chekinishingiz haqida ogohlantirayotganini ko'ring

Poyezdning burchak atrofida aylanishini tinglang va yorug'lik sizni orqaga chekinishingiz haqida ogohlantirayotganini ko'ring
Poyezdning burchak atrofida aylanishini tinglang va yorug'lik sizni orqaga chekinishingiz haqida ogohlantirayotganini ko'ring

Poezd infraqizil datchiklardan o'tib, yaqinlashganda, chiroqlar o'chadi, yo'lovchilar chetidan uzoqlashishi uchun poezd shoxini qo'yadi; shu bilan birga, "poezd stantsiyaga yaqinlashyapti, poezd to'xtayaptimi?", keyin "poezd shoxi yangraydi" degan yozuv o'qiladi va agar shox bo'lmasa, poezd konduktoridan so'raladigan dialog oynasi bo'ladi. Uchinchi dialog oynasida "shox eshitilmadi" deb aytiladi.

5 -qadam: Yakuniy sozlash

Yakuniy sozlash
Yakuniy sozlash

Loyihani yakunlash uchun butun tizim estetika uchun 3D bosib chiqarilgan ko'k vokzalga birlashtirilishi kerak. Vokzal vokzal poezd kelganda yo'lovchilar qaerda bo'lishini anglatadi. Endi ular tungi poezd ogohlantirish tizimi tufayli xavfsiz bo'lishadi.

Tavsiya: