Мазмуну:

LifeGuard 2.0: 7 кадам (Сүрөттөр менен)
LifeGuard 2.0: 7 кадам (Сүрөттөр менен)

Video: LifeGuard 2.0: 7 кадам (Сүрөттөр менен)

Video: LifeGuard 2.0: 7 кадам (Сүрөттөр менен)
Video: И всё-таки она вертится! ► 1 Прохождение Dying Light 2: Stay Human 2024, Июль
Anonim
LifeGuard 2.0
LifeGuard 2.0

Сиз математикалык операцияларды аткарууну, сенсордук көрсөткүчтөрдү алууну, аналогдук жана санариптик кирүүлөрдү көзөмөлдөөнү, аналогдук жана санариптик чыгууларды көзөмөлдөөнү мурунку электроника тажрыйбасы менен каалабадыңыз беле? Ооба болсо, бул долбоор сиз үчүн гана! Биз микроконтроллерди жана MATLABты колдонуп, EF Express SMART RAIL тутумун көзөмөлдөө жана жакшыртуу үчүн колдонула турган түзүлүштү түзөбүз. Микроконтроллердин жардамы менен киргизүү жана чыгаруу мүмкүнчүлүктөрү (сигнал/маалымат тактага кирип, тактадан чыккан сигнал) чексиз. Биз киргизүү катары ийкемдүү сенсор менен потенциометрди колдонобуз. Алардын жыйынтыктары LCD экраны жана LED чырактары менен бирге сигнал болот. SMART RAIL системасына киргизүүнү үмүттөнгөн жакшыртуулар системанын коопсуздугун жакшыртууга байланыштуу. Ноутбугуңузду жана микроконтроллерди алыңыз, анан баштайлы!

1 -кадам: Программалык камсыздоо жана материалдар

Программалык камсыздоо жана материалдар
Программалык камсыздоо жана материалдар
Программалык камсыздоо жана материалдар
Программалык камсыздоо жана материалдар
Программалык камсыздоо жана материалдар
Программалык камсыздоо жана материалдар
Программалык камсыздоо жана материалдар
Программалык камсыздоо жана материалдар

Программалык камсыздоо керек

1.) MATLAB

- Сиз компьютериңизге MATLABтын жергиликтүү версиясын жүктөп алышыңыз керек болот. Mathworks.com сайтына өтүңүз жана MATHWORKS эсебин орнотуңуз, файлдарды жүктөп алыңыз жана лицензияңызды жандырыңыз.

-Сиз эң акыркы чыгарылыш үчүн БАРЛЫК куралдар кутучаларын жүктөп алып, орнотушуңуз керек (R2016a же R2016b).

-Mac колдонуучулары: R2015b иштетүү үчүн сизде OSX 10.9.5 же андан кийинки версия болушу керек, MATLABдын мурунку версиясын иштетүү туура.

2.) Arduino аппараттык колдоо пакети:

-Arduino аппараттык колдоо пакетин орнотуңуз. MATLAB ачуу. MATLAB Home өтмөгүндө, Курчап турган чөйрө менюсунда, Кошумча жабдууларды алууну тандаңыз "Arduino жабдыктары үчүн MATLAB колдоо пакетин" тандаңыз. Сиз MATHWORKS эсебиңизге киришиңиз керек

- Эгерде сиздин орнотууңуз үзгүлтүккө учураса жана сизде аппараттык пакетти орнотууда ийгиликсиз аракеттер/каталар пайда болсо - Arduino жүктөлгөн папканы катуу дискиңизден таап, башынан баштаңыз.

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

1.) Ноутбук же рабочий компьютер

2.) SparkFun Arduino тактасы

3.) Flex сенсор

4.) потенциометр

5.) ЖК экран

6.) LED жарык

7.) SparkFun Inventor's Kit (Интернеттен табуу)

8.) USB кабели жана мини USB

9.) Өтмө зымдар

10.) Пьезо сигнал

2 -кадам: Ардуиного туташыңыз жана COM портун аныктаңыз

(Сиздин COM портуңуз плагин сайын өзгөрүшү мүмкүн) Arduino USB кабелин компьютериңизге жана мини USBди Arduino тактаңызга туташтырыңыз. Сиз драйверлердин жүктөлүшү үчүн бир нече мүнөт күтүүңүз керек болот.

COM портун аныктоо үчүн:

ЖКда

Метод 1: MATLABда - fopen (serial ('nada')) командасын колдонуңуз

-ком портуңузду аныктоо үчүн. Сиз мындай ката алышыңыз мүмкүн: Сериялык/ачуу катасы (72 -сап) Ачуу ишке ашкан жок: Порт: NADA жеткиликтүү эмес. Жеткиликтүү порттор: COM3. Бул ката сиздин порт 3 экенин көрсөтүп турат.

-Эгер 1 -ыкма компьютериңизде иштебей калса, Түзмөк менеджериңизди ачыңыз жана Порттор (COM жана LPT) тизмесин кеңейтиңиз. USB сериялык порттогу номерге көңүл буруңуз. мис. 'USB Сериялык Порт (COM *)' Порт номери * бул жерде.

-Эгер порт көрсөтүлбөсө, MATLABты жаап, компьютериңизди өчүрүп күйгүзүңүз. MATLABты ачыңыз жана fopen (serial ('nada')) кайра аракет кылыңыз.

-Эгер бул ишке ашпай калса, SparkFun драйверлерин CDM_v2.12.00_WHQL_Certified.exe файлынан жүктөп алышыңыз керек болот, CDM_v2.12.00_WHQL_Certified.exe файлын ачыңыз жана иштетиңиз жана Чыгарууну тандаңыз. (Файлды изилдөөчүдөн ачуу керек болушу мүмкүн, оң баскыч менен жана "Администратор катары иштетүү").

-MATLAB буйрук терезесинде Arduino объектисин түзүңүз - a = arduino ('comx', 'uno'); % x - бул сиздин PC үчүн жогорудагы порт номериңиз (мурунку нөлдөрү жок!)

Macта

1 -ыкма: MATLAB буйрук сабынан же Mac Терминалында жана териңиз: 'ls /dev/tty.*' dev/tty.usbmodem*же dev/tty.usbserial*үчүн жазылган порт номерин эске алыңыз. Порттун номери * бул жерде.

-Эгер 1 -ыкма сиздин MACта иштебей калса, сизге керек болушу мүмкүн

-MATLABтан чыгуу

-Arduino программасын жаап, Arduino USB кабелин ажыратыңыз

Java 6 Runtime орнотуу

-USB драйверинин ядро кеңейтүүсүн орнотуу

-Компьютериңизди өчүрүп күйгүзүңүз

-Arduino USB кабелин кайра туташтырыңыз

-MATLAB буйрук сабынан же Mac Терминалынан чуркаңыз: ls /dev/tty.*

-Dev/tty.usbmodem* же dev/tty.usbserial* үчүн жазылган порт номерин жазыңыз. Порттун номери * бул жерде.

-MATLAB буйрук терезесинде Arduino объектисин түзүңүз - a = arduino ('/dev/tty.usbserial*', 'uno'); % * - бул MAC үчүн порт номериңиз, же '/dev/tty.usbmodem*'

3 -кадам: Matlab Code

Matlab Code
Matlab Code
Matlab Code
Matlab Code

Киргизүүлөр:

1.) Flex сенсор

2.) потенциометр

Чыгуулар:

1.) "Поезд келе жатат" деген жазуусу бар LCD экран

2.) LED жарык

3.) Пьезо сигнал

Бул кадамда биз Arduino тактасынан кирүүлөрдү талдай турган жана MATLAB анализинин жыйынтыгына негизделген жыйынтыктарды бере турган кодду курабыз. Төмөнкү код сизге бир нече функцияларды аткарууга мүмкүндүк берет: потенциометр иштетилгенде, пьезо -зумер алмашуучу жыштыктарды чыгарат жана кызыл LED жаркырайт. Поезд табылбаса, жашыл LED жарык болот. Flex Sensor иштетилгенде, ачкөздүк LED өчөт, кызыл LED күйөт жана ЖКда "Поезд келе жатат" деген жазуу пайда болот.

MATLAB коду:

%remery1, shornsb1, wmurrin

%Максаты: Поезд эскертүүсү

%IInput: потенциометр, ийкемдүү сенсор

%чыгаруу: LCD, үн, жарык

%Эгерде такта инициализацияланбаса же туташуу көйгөйлөрү болсо, аны аткарыңыз

Комментарийлерде %төмөн. Алар ар бир жолу аткарылышы керек эмес

%баары ачык

%баарын жап

%clc

%a = arduino ('/dev/tty.usbserial-DN01DXOM', 'uno');

%lcd = addon (a, 'ExampleLCD/LCDAddon', {'D7', 'D6', 'D5', 'D4', 'D3', 'D2'});

Такта туташкандан кийин аны конфигурациялаңыз

configurePin (a, 'D8', 'pullup');%configure D8

configurePin (a, 'D9', 'PWM');%D9 конфигурациялоо

убакыт = 50; %50 убакытты койду

clearLCD (lcd) %ЖКны баштапкы абалга келтирет

%Loopту баштоо

убакыт> 0

%Flex сенсорунун чыңалуусу жашыл же жарык экенин аныктайт

%кызыл жана ЖК дисплейлери "поезд келе жатат"

flex_status = readVoltage (a, 'A0'); %ийилүү сенсорунун чыңалуусу

эгер flex_status> 4 %, эгер чыңалуу 4төн жогору болсо, триггер цикли

writeDigitalPin (a, 'D12', 0) %жашыл өчөт

writeDigitalPin (a, 'D11', 1) %кызыл күйгүзөт

printLCD (lcd, 'Train Coming') %дисплейи "поезд келе жатат" ЖКда

пауза (5) %5 секунд күтө туруңуз

clearLCD (lcd) %ЖКдан кабарды тазалоо

writeDigitalPin (a, 'D11', 0) %Кызыл диодду өчүрүү

башка

аяктоо

pe_status = readVoltage (a, 'A2'); %Потенциометрдин чыңалуусун окуу

Эгерде pe_status> 2 %, эгер чыңалуу 2ден жогору болсо, триггер цикли

writeDigitalPin (a, 'D13', 1);%кызыл LED күйгүзүү

playTone (a, 'D9', 400,.25);% Piezo сигналында 400 Гц ойнотуу,.25 сек

writeDigitalPin (a, 'D13', 0)%кызыл диодду өчүрөт

пауза (.25)%күтүү.25 секунд

writeDigitalPin (a, 'D13', 1) %Жогоруда кайталаңыз, 200 Гцдеги сигнал менен

playTone (a, 'D9', 200,.25);

writeDigitalPin (a, 'D13', 0)

тыныгуу (.25)

writeDigitalPin (a, 'D13', 1);%Жогоруда кайталаңыз

playTone (a, 'D9', 400,.25);

writeDigitalPin (a, 'D13', 0)

тыныгуу (.25)

writeDigitalPin (a, 'D13', 1)

playTone (a, 'D9', 200,.25);

writeDigitalPin (a, 'D13', 0)

тыныгуу (.25)

writeDigitalPin (a, 'D13', 1) %Жогоруда кайталаңыз

playTone (a, 'D9', 400,.25);

writeDigitalPin (a, 'D13', 0)

тыныгуу (.25)

writeDigitalPin (a, 'D13', 1)

playTone (a, 'D9', 200,.25);

writeDigitalPin (a, 'D13', 0)

тыныгуу (.25)

writeDigitalPin (a, 'D13', 1) %Жогоруда кайталаңыз

playTone (a, 'D9', 400,.25);

writeDigitalPin (a, 'D13', 0)

тыныгуу (.25)

writeDigitalPin (a, 'D13', 1)

playTone (a, 'D9', 200,.25);

writeDigitalPin (a, 'D13', 0)

тыныгуу (.25)

башка

writeDigitalPin (a, 'D12', 1)%чыңалуу 2ден аз болсо, жашыл LEDди күйгүзүңүз

writeDigitalPin (a, 'D13', 0)%Кызыл LED

аяктоо

аяктоо

4 -кадам: Flex сенсорунун зымдары

Flex сенсорунун зымдары
Flex сенсорунун зымдары
Flex сенсорунун зымдары
Flex сенсорунун зымдары
Flex сенсорунун зымдары
Flex сенсорунун зымдары
Flex сенсорунун зымдары
Flex сенсорунун зымдары

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

1.) 1 Flex сенсор

2.) 1 10K Ом резистору

3.) 8 Jumper Wires

*Тиешелүү түрдө сүрөттөрдү караңыз.

Бул схемада биз ийкемдүүлүктү өлчөйбүз. Ийкемдүү сенсор пластмасса тилкесиндеги көмүрдү өзгөрмөлүү резистор сыяктуу иштөө үчүн колдонот, бирок каршылыкты баскычты буруп алмаштыруунун ордуна, сиз компонентти ийкемдөө менен өзгөрөсүз. Каршылыктын өзгөрүшүн аныктоо үчүн чыңалуу бөлүүчү. Биздин учурда, "Поезд келе жатат" деген билдирүүнү окуу үчүн ЖК экранга буйрук берүү үчүн поездди аныктоо үчүн ийкемдүү сенсорду колдонот (сүрөттү караңыз).

*Сүрөттөрдө Flex сенсорун зымдоо боюнча көрсөтмөлөр көрсөтүлгөн, Flex сенсорунун зымдарына тиешелүү зымдарга гана кайрылыңыз. Серво үчүн зымдарды этибарга албаңыз.

Зым казыктары төмөнкүдөй:

1 -кадам: POWER бөлүмүндөгү Arduino тактасында 1 зымды 5V киришине жана 1 зымды GND (жерге) киргизиңиз. 5V зымдын экинчи учун электр плитасындагы оң (+) кирүүгө сайыңыз. GND зымынын экинчи учун электр платасындагы терс (-) киришине сайыңыз.

2 -кадам: ANALOG IN бөлүмүндөгү Arduino тактасында A0 киришине 1 сайыңыз. Ошол зымдын учун электр платасындагы j20 киришине сайыңыз.

3 -кадам: DIGITAL I / O бөлүмүндөгү Arduino тактасында 9 зымга 9 зымды туташтырыңыз. Башка учун а3 киргизиңиз.

4 -кадам: Электр тактасында 1 зымды оң (+) киришке сайыңыз. Башка учун h24 киришине сайыңыз.

5 -кадам: Электр тактасында 1 зымды терс (+) кирүүгө сайыңыз. Башка учун a2 киришине сайыңыз.

6-кадам: Электр тактасында 1 зымды терс (-) киришине сайыңыз. Башка учун b1 киришине сайыңыз.

7-кадам: Электр тактасында 1 зымды терс (-) киришке сайыңыз. Башка учту i19 киришине сайыңыз.

8 -кадам: Райондук тактага резисторду i20 жана i24 киришине коюңуз.

*Акыркы сүрөт чыныгы тиркемелерди билдирет.

5 -кадам: Ардуинону ЖКга туташтырыңыз

Ардуинону ЖКга туташтырыңыз
Ардуинону ЖКга туташтырыңыз
Ардуинону ЖКга туташтырыңыз
Ардуинону ЖКга туташтырыңыз
Ардуинону ЖКга туташтырыңыз
Ардуинону ЖКга туташтырыңыз

*Бул шилтемени басыңыз (https://ef.engr.utk.edu/ef230-2017-08/projects/ard…), андан кийин LCDди Arduino менен туташтыруу үчүн мен берген кадамдарга кайрылыңыз:

1 -кадам: zip файлын ачыңыз

2 -кадам: ReadMe файлын ачыңыз жана көрсөтмөлөрдү аткарыңыз

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

1.) 16x2 ЖК бул түзмөккө окшош SparkFun -

2.) Өтмө зымдар

*Тиешелүү түрдө сүрөттөрдү караңыз.

Бул кадам ЖК кошумча китепканасын кантип түзүүнү жана ЖКда "Поезд келе жатат" көрсөтүүнү көрсөтөт.

Зым казыктары төмөнкүдөй:

LCD пин -> Arduino пин

1 (VSS) -> Жер

2 (VDD) -> 5V

3 (V0) -> Flex сенсорундагы орто пин

4 (RS) -> D7

5 (R/W) -> Жер

6 (E) -> d6

11 (DB4) - D5 (PWM)

12 (DB5) -> D4

13 (DB6) -> D3 (PWM)

14 (DB7) -> D2

15 (LED+) -> 5 В.

16 (LED-) -> Жер

6 -кадам: Soft потенциометрди туташтыруу

Жумшак потенциометрди туташтыруу
Жумшак потенциометрди туташтыруу
Жумшак потенциометрди туташтыруу
Жумшак потенциометрди туташтыруу
Жумшак потенциометрди туташтыруу
Жумшак потенциометрди туташтыруу

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

1.) 1 LED

2.) 1 жумшак потенциометр

3.) Jumper Wires

4.) 3 330 Ом резистору

5.) 10K Ом резистору

*Тиешелүү түрдө сүрөттөрдү караңыз.

Бул схемада биз башка өзгөрмө резисторду, жумшак потенциометрди колдонобуз. Бул жука жана ийкемдүү тилке, ал кысымдын кайда колдонулганын аныктай алат. Тилкенин ар кайсы жерлерин басуу менен, каршылыкты 100дөн 10 К Омго чейин өзгөртө аласыз. Бул мүмкүнчүлүктү потенциометрдеги же кнопкадагы кыймылды көзөмөлдөө үчүн колдонсоңуз болот. Бул схемада биз RGB LEDди башкаруу үчүн жумшак потенциометрди иштетебиз.

1 -кадам: DIGITAL I / O бөлүмүндөгү Arduino тактасында 1 пинди 10го жана 1 пинге 11ге киргизиңиз.

2 -кадам: Электр схемасында LEDди a4, a5, a6 жана a7 киришине туташтырыңыз.

3-кадам: Электрондук тактага 3 430 ом резисторлорун e4-g4, e6-g6 жана e7-g7 киришине коюңуз.

4 -кадам: Электрондук тактада e5 киришине 1 пин туташтырыңыз. Ошол пиндин экинчи учун терс (-) киришке сайыңыз.

5-кадам: Электрондук тактада i19-терс (-) киришине 10K ом каршылыгын коюңуз.

6 -кадам: Электрондук тактада 1 пинди j18ге сайыңыз. Ошол пиндин экинчи учун оң (+) киргизиңиз.

7 -кадам: Электрондук тактада j20 киришине 1 төөнөгүчтү сайыңыз. Ошол пиндин экинчи учун терс (-) киришке сайыңыз.

7 -кадам: Акылдуу темир жол системасында жакшыртууларыңызды сынап көрүңүз

Сиздин жакшыртууларды Smart Rail системасында сынап көрүңүз
Сиздин жакшыртууларды Smart Rail системасында сынап көрүңүз
Сиздин жакшыртууларды Smart Rail системасында сынап көрүңүз
Сиздин жакшыртууларды Smart Rail системасында сынап көрүңүз

Бул жерде сиздин MATLAB коду функционалдуу болушу керек жана Arduino тактасы бардык кошулган компоненттер менен так туташтырылышы керек. Аны сертификатталган Smart Rail системасында сынап көрүңүз жана сиздин жакшыртууларыңыз системаны коопсуз кылаарын текшериңиз.

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