Мазмуну:

Томаска поездге түнкүсүн айдоо мүмкүнчүлүгүн берүү: 5 кадам
Томаска поездге түнкүсүн айдоо мүмкүнчүлүгүн берүү: 5 кадам

Video: Томаска поездге түнкүсүн айдоо мүмкүнчүлүгүн берүү: 5 кадам

Video: Томаска поездге түнкүсүн айдоо мүмкүнчүлүгүн берүү: 5 кадам
Video: Ужасы Паровозика Томаса #5: Поезд Призрак Тимоти 2024, Июль
Anonim
Поезд Томаска түнкүсүн айдоо мүмкүнчүлүгүн берүү
Поезд Томаска түнкүсүн айдоо мүмкүнчүлүгүн берүү

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

1 -кадам: Берилиштер

Жабдуулар
Жабдуулар

Бир компьютер

MatLab 2016 же андан жаңыраак

Raspberry Pi топтомун жүктөп алыңыз

3D принтер

3D басылган темир жол бекети малина пи үчүн

Raspberry Pi төмөнкү компоненттер менен:

2 инфракызыл сенсорлор

Сиз тандаган түстөгү 5 LED жарык

11 Wires

2 резистор

200-300 Ом резисторлор

USB Chord компьютерди малина pi менен туташтыруу үчүн

2 -кадам: Керектүү Чыгыштар жана Кириштер үчүн схеманы долбоорлоо

Керектүү Чыгыштар жана Кириштер үчүн схеманы долбоорлоо
Керектүү Чыгыштар жана Кириштер үчүн схеманы долбоорлоо

Негизги схемаларды колдонуу менен, жарыктар жана инфракызыл эмитент жана кабыл алгыч Raspberry Pi менен байланыштырылышы керек. Кызыл LED чырактары жерге илинип, анан GPIO Pins 4, 5, 6 жана 7. менен туташат. Инфракызыл алуучу GPIO Pin 21ге жана Infrared Emitter 5V пинге туташкан.

3 -кадам: Каалаган жыйынтыкты канааттандыруу үчүн коддоону иштеп чыгуу

Каалаган жыйынтыкты канааттандыруу үчүн коддоону иштеп чыгуу
Каалаган жыйынтыкты канааттандыруу үчүн коддоону иштеп чыгуу

Коддун эң маанилүү саптары диалог кутучаларын ишке киргизүүчү 12 жана 16 -саптар. 18 -сап, if билдирүүсү, инфракызыл сенсорлордун ортосунда тоскоолдук болсо, окуйт жана эгерде алар тоскоолдукка учураса, бул поезд өтүп баратат, мүйүз угулат жана жарык күйөт. Эгерде билдирүү жалган болсо, эч нерсе болбойт, анткени поезд жакындабайт.

Код: %% Баш аты

%Микроконтроллер долбоору-түнкү поезд

%Джон Браун, Трент Пейн, Карстен Паркер; 9 -бөлүм

%2017 -жылдын 3 -октябры

%Долбоордун сыпаттамасы: Эки киргизүү жана алуучу микроконтроллерди иштеп чыгуу

%үлгүдөгү поездди орнотуунун аспектилерин жакшыртууга жардам берүү үчүн эки жыйынтык чыгарат

%Чечүү ыкмасы: аспектилерин жакшыртуу үчүн ар кандай ресурстарды жана Matlabти колдонуңуз

%моделдин поезд орнотуусу.

%% Орнотуу-Биринчи киргизүү/чыгаруу

чын болсо

a = 0;%баштайт a

readDigitalPin жатканда (rpi, 21) == 1

a = 1;%жарык диалог кодунун алдында жарык кодунун иштешин токтотот

question = ('Поезд станцияда токтоп турат. Сигналдын үнүн чыгаргыңыз келеби?');

question_title = ('Train Horn');

resp = questdlg (суроо, question_title, 'ооба', 'жок', 'жок');%эки вариант жана демейки жооп менен суроо диалог кутучасын ачат

tf = strcmp (resp, 'yes');%символдордун массивинин узундугун ооба тамгалар массивине салыштырат.

if tf == 1%if resp = 'yes'

[Y, FS] = audioread ('train_horn.m4a');%аудио файлды алат жана аны үлгү маалыматына, y жана тандоо ылдамдыгына, FS айлантат.

үн (Y, FS)%үн буйругу үлгүлүү маалыматтарды жана ылдамдык ылдамдыгын алат жана үн чыгарат

msgbox ('Поезд мүйүзү угулуп жатат!')

пауза (2)

тыныгуу

else%if resp = 'no', tf логикалык 0 болот, анткени жок жана ооба char массивдери ар кандай узундукта

msgbox ('Поезд мүйүзү угулган жок!')

пауза (2)

тыныгуу

аяктоо

аяктоо

readDigitalPin (rpi, 21) == 1 && a == 1 %которгуч которулганда жана суроо диалог кутусу иштеп жатканда цикл башталат

%Бул биринчи код сегмент жарыктарды ирети менен күйгүзөт.

writeDigitalPin (rpi, 4, 0)

тындыруу (0.25)

writeDigitalPin (rpi, 5, 0)

тындыруу (0.25)

writeDigitalPin (rpi, 6, 0)

тындыруу (0.25)

writeDigitalPin (rpi, 7, 0)

тындыруу (0.25)

%Бул экинчи код сегмент жарыкты ирети менен өчүрөт.

writeDigitalPin (rpi, 4, 1)

тындыруу (0.25)

writeDigitalPin (rpi, 5, 1)

тындыруу (0.25)

writeDigitalPin (rpi, 6, 1)

тындыруу (0.25)

writeDigitalPin (rpi, 7, 1)

тындыруу (0.25)

end%end while loop

аяктоо

4 -кадам: Поезддин бурчтан айланып өтүшүн угуңуз жана жарыктар артка кетүүңүздү эскертет

Поездди бурчтан айланып өтүүнү угуңуз жана жарыктар артка кетүүңүздү эскертет
Поездди бурчтан айланып өтүүнү угуңуз жана жарыктар артка кетүүңүздү эскертет

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

5 -кадам: Акыркы орнотуу

Акыркы орнотуу
Акыркы орнотуу

Долбоорду бүтүрүү үчүн, бүт система эстетика үчүн 3D Printed болгон көк темир жол станциясына бириктирилиши керек. Поезд бекети поезд келгенде жүргүнчүлөрдүн кайда болорун билдирет. Эми алар Night Train эскертүү системасынын жардамы менен коопсуз болушат.

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