Mundarija:

LifeGuard 2.0: 7 qadam (rasmlar bilan)
LifeGuard 2.0: 7 qadam (rasmlar bilan)

Video: LifeGuard 2.0: 7 qadam (rasmlar bilan)

Video: LifeGuard 2.0: 7 qadam (rasmlar bilan)
Video: Как проверить генератор. За 3 минуты, БЕЗ ПРИБОРОВ и умений. 2024, Noyabr
Anonim
LifeGuard 2.0
LifeGuard 2.0

Siz hech qachon matematik operatsiyalarni bajarishni, sensorlar o'qilishini, analog va raqamli kirishni kuzatishni, elektronika tajribasi bo'lmagan analog va raqamli chiqishni boshqarishni xohlaganmisiz? Ha bo'lsa, bu loyiha aynan siz uchun! Biz EF Express SMART RAIL tizimini kuzatish va takomillashtirish uchun ishlatilishi mumkin bo'lgan qurilmani yaratish uchun mikrokontroller va MATLABdan foydalanamiz. Mikrokontroller yordamida kirish va chiqish imkoniyatlari (signal/ma'lumot taxtaga va taxtadan chiquvchi signal) cheksizdir. Kirish sifatida biz moslashuvchan sensor va potansiyometrdan foydalanamiz. Ularning chiqishlari LCD displey va LED yoritgichlar orqali signal bo'ladi. SMART RAIL tizimiga kiritmoqchi bo'lgan yaxshilanishlar tizim xavfsizligini yaxshilash bilan bog'liq. Noutbukni va mikrokontroldorni oling, boshlaylik!

1 -qadam: dasturiy ta'minot va materiallar

Dasturiy ta'minot va materiallar
Dasturiy ta'minot va materiallar
Dasturiy ta'minot va materiallar
Dasturiy ta'minot va materiallar
Dasturiy ta'minot va materiallar
Dasturiy ta'minot va materiallar
Dasturiy ta'minot va materiallar
Dasturiy ta'minot va materiallar

Kerakli dasturiy ta'minot

1.) MATLAB

- Kompyuteringizga MATLAB -ning mahalliy versiyasini yuklab olishingiz kerak bo'ladi. Mathworks.com saytiga o'ting va MATHWORKS hisob qaydnomasini o'rnating, fayllarni yuklab oling va litsenziyangizni faollashtiring.

-Siz eng yangi versiya uchun barcha mavjud asboblar qutilarini (R2016a yoki R2016b) yuklab olishingiz va o'rnatishingiz kerak.

-Mac foydalanuvchilari: R2015b -ni ishga tushirish uchun sizda OSX 10.9.5 yoki undan keyingi versiyasi bo'lishi kerak, MATLAB -ning oldingi versiyasini ishlatish yaxshi.

2.) Arduino uskunalarini qo'llab -quvvatlash to'plami:

-Arduino uskunalarini qo'llab -quvvatlash paketini o'rnating. MATLAB -ni oching. "MATLAB Home" yorlig'idagi "Atrof-muhit" menyusida "Qo'shimchalarni oling" "Uskunani qo'llab-quvvatlash paketlarini olish" -ni tanlang. "Arduino uchun MATLAB-ni qo'llab-quvvatlash paketi" -ni tanlang. MATHWORKS hisobingizga kirishingiz kerak bo'ladi

- Agar sizning o'rnatishingiz uzilib qolsa va sizda apparat paketini o'rnatishda ketma -ket muvaffaqiyatsiz urinishlar/xatolar bo'lsa - qattiq diskda Arduino yuklangan papkani toping va o'chirib tashlang va boshidan boshlang.

Kerakli materiallar

1.) Laptop yoki ish stoli kompyuter

2.) SparkFun Arduino kengashi

3.) Flex sensori

4.) Potansiyometr

5.) LCD displey

6.) LED chiroq

7.) SparkFun ixtirochilar to'plami (Internetda toping)

8.) USB kabeli va mini USB

9.) o'tish simlari

10.) Piezo ovozli signal

2 -qadam: Arduino -ga ulaning va COM portini aniqlang

(Har safar plagin o'rnatilganda sizning MAQOMOTI portingiz o'zgarishi mumkin) Arduino USB kabelini kompyuterga va mini USB -ni Arduino kartasiga ulang. Haydovchilarni yuklab olish uchun bir necha daqiqa kutish kerak bo'lishi mumkin.

COM portini aniqlash uchun:

Kompyuterda

1 -usul: MATLAB -da - fopen (ketma -ket ('nada')) buyrug'idan foydalaning.

-aloqa portini aniqlash. Siz shunday xatoga yo'l qo'yishingiz mumkin: ketma -ket ishlatishda xato (72 -qator) Ochilmadi: Port: NADA mavjud emas. Mavjud portlar: COM3. Bu xato sizning portingiz 3 ekanligini ko'rsatadi.

-Agar kompyuteringizda 1 -usul ishlamasa, qurilma menejerini oching va portlar (COM va LPT) ro'yxatini kengaytiring. USB seriyali portidagi raqamga e'tibor bering. masalan 'USB Serial Port (COM *)' Port raqami bu erda *.

-Agar port ko'rsatilmasa, MATLAB -ni yoping va kompyuterni qayta ishga tushiring. MATLAB -ni oching va fopen (serial ('nada')) ni qayta urinib ko'ring.

-Agar bu bajarilmasa, siz SparkFun drayverlarini CDM_v2.12.00_WHQL_Certified.exe faylidan yuklab olishingiz kerak bo'ladi, CDM_v2.12.00_WHQL_Certified.exe faylini oching va ishga tushiring va O'chirish -ni tanlang. (Faylni Explorer -dan ochishingiz kerak bo'lishi mumkin, sichqonchaning o'ng tugmachasini bosing va "Administrator sifatida ishga tushirish").

-MATLAB buyruqlar oynasida Arduino obyektini yarating - a = arduino ('comx', 'uno'); % x - shaxsiy kompyuterlar uchun yuqoridan sizning port raqamingiz (oldingi nolsiz!)

Mac -da

1 -usul: MATLAB buyruq satridan yoki Mac terminalida yozing: 'ls /dev/tty.*' dev/tty.usbmodem*yoki dev/tty.usbserial*uchun ko'rsatilgan port raqamiga e'tibor bering. Bu erda port raqami *.

-Agar 1 -usul sizning MAC -da ishlamasa, sizga kerak bo'lishi mumkin

-MATLAB -dan chiqish

-Arduino dasturini yoping va Arduino USB kabelini ajratib oling

-Java 6 ish vaqtini o'rnating

-USB drayverining yadro kengaytmasini o'rnating

-Kompyuteringizni qayta ishga tushiring

-Arduino USB kabelini qayta ulang

-MATLAB buyruq satridan yoki Mac terminalidan ishga tushirish: ls /dev/tty.*

-Dev/tty.usbmodem* yoki dev/tty.usbserial* uchun ko'rsatilgan port raqamini ko'rsating. Bu erda port raqami *.

-MATLAB buyruqlar oynasida Arduino obyektini yarating - a = arduino ('/dev/tty.usbserial*', 'uno'); % * - bu sizning MAC -lar uchun port raqamingiz yoki '/dev/tty.usbmodem*'

3 -qadam: Matlab kodi

Matlab kodi
Matlab kodi
Matlab kodi
Matlab kodi

Kirishlar:

1.) Flex sensori

2.) Potansiyometr

Chiqish:

1.) "Poezd kelmoqda" yozuvi yozilgan LCD displey

2.) LED chiroq

3.) Piezo ovozli signal

Bu bosqichda biz Arduino platasidagi kirishni tahlil qiladigan va MATLAB tahlilining natijalari asosida chiqadigan kodni tuzamiz. Quyidagi kod sizga bir nechta funktsiyalarni bajarishga imkon beradi: potansiyometr ishga tushirilganda, piezo -signal, o'zgaruvchan chastotalarni chiqaradi va qizil LED yonadi. Agar poezd aniqlanmasa, yashil LED yonadi. Flex Sensor ishga tushirilganda, ochko'zlik LED o'chadi, qizil LED yonadi va LCD displeyda "Poezd kelmoqda" yozuvi paydo bo'ladi.

MATLAB kodi:

%remery1, shornsb1, wmurrin

%Maqsad: poezd haqida ogohlantirish

%IInput: potentsiometr, egiluvchan sensor

%chiqish: LCD, tovush, yorug'lik

%Agar taxta boshlanmagan bo'lsa yoki ulanish bilan bog'liq muammolar mavjud bo'lsa, uni bajaring

izohlarda %buyruqlar ostida. Ular har safar bajarilishi shart emas

%hammasini tozalamoq

%hamma yopiladi

%clc

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

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

%Ulangach, taxtani sozlang

configurePin (a, 'D8', 'tortish');%D8 ni sozlaydi

configurePin (a, 'D9', 'PWM');%D9 ni sozlaydi

vaqt = 50; %vaqtni 50 ga o'rnatdi

clearLCD (lcd) %LCD -ni ishga tushiradi

%Loopni ishga tushirish

vaqt> 0

%Flex sensori kuchlanishi yorug'lik yashil yoki yorug'lik ekanligini aniqlaydi

%qizil va LCD displey "poezd keladi"

flex_status = readVoltage (a, 'A0'); %moslashuvchan sensorning o'qish kuchlanishi

agar flex_status> 4 %, agar kuchlanish 4 dan katta bo'lsa, tetikli pastadir

writeDigitalPin (a, 'D12', 0) %yashil o'chadi

writeDigitalPin (a, 'D11', 1) %qizil rangni yoqadi

printLCD (LCD, "Kelayotgan poezd") %displeyi "kelayotgan poezd" ni LCD displeyda aks ettiradi

pauza (5) %5 soniya kuting

clearLCD (LCD) %LCD -dan xabarni tozalash

writeDigitalPin (a, 'D11', 0) %Qizil LEDni o'chiring

boshqa

oxiri

pe_status = readVoltage (a, 'A2'); %Potentsiometr kuchlanishini o'qing

agar pe_status> 2 %, agar kuchlanish 2 dan katta bo'lsa, tetikli pastadir

writeDigitalPin (a, 'D13', 1);%qizil LEDni yoqadi

playTone (a, 'D9', 400,.25);% 400 gigagertsli signal piezo signalida,.25 sek.

writeDigitalPin (a, 'D13', 0)%qizil LEDni o'chiradi

pauza (.25)%kutish.25 soniya

writeDigitalPin (a, 'D13', 1) %Yuqorida takrorlang, 200 gigagertsli signal bilan

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

writeDigitalPin (a, 'D13', 0)

pauza (.25)

writeDigitalPin (a, 'D13', 1);%Yuqorida takrorlang

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

writeDigitalPin (a, 'D13', 0)

pauza (.25)

writeDigitalPin (a, 'D13', 1)

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

writeDigitalPin (a, 'D13', 0)

pauza (.25)

writeDigitalPin (a, 'D13', 1) %Yuqorida takrorlang

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

writeDigitalPin (a, 'D13', 0)

pauza (.25)

writeDigitalPin (a, 'D13', 1)

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

writeDigitalPin (a, 'D13', 0)

pauza (.25)

writeDigitalPin (a, 'D13', 1) %Yuqorida takrorlang

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

writeDigitalPin (a, 'D13', 0)

pauza (.25)

writeDigitalPin (a, 'D13', 1)

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

writeDigitalPin (a, 'D13', 0)

pauza (.25)

boshqa

writeDigitalPin (a, 'D12', 1)%, agar kuchlanish 2dan past bo'lsa, yashil LEDni yoqing.

writeDigitalPin (a, 'D13', 0)%qizil LEDning burilishi

oxiri

oxiri

4 -qadam: Flex sensorini ulash

Moslashuvchan sensorni ulash
Moslashuvchan sensorni ulash
Flex sensorini ulash
Flex sensorini ulash
Flex sensorini ulash
Flex sensorini ulash
Moslashuvchan sensorni ulash
Moslashuvchan sensorni ulash

Kerakli materiallar

1.) 1 ta moslashuvchan sensor

2.) 1 10K Ohmli rezistor

3.) 8 ta o'tish simlari

*O'z navbatida rasmlarga qarang.

Ushbu sxemada biz egiluvchanlikni o'lchaymiz. Moslashuvchan sensor o'zgaruvchan rezistor kabi harakat qilish uchun plastmassa tasmasidagi ugleroddan foydalanadi, lekin qarshilikni tugmachani burish orqali o'zgartirish o'rniga, siz komponentni egish orqali o'zgarasiz. Qarshilik o'zgarishini aniqlash uchun kuchlanish bo'luvchi. Bizning holatimizda, "poezd kelmoqda" degan xabarni o'qish uchun LCD displeyga (rasmga qarang) o'tayotgan poezdni aniqlash uchun egiluvchan sensor ishlatiladi.

*Flex Sensorni ulash bo'yicha ko'rsatmalarni ko'rsatadigan rasmlarda faqat Flex Sensorni ulashga tegishli simlarga qarang. Servo simlariga e'tibor bermang.

Simli pinlar quyidagicha:

1 -qadam: POWER bo'limidagi Arduino kartasida 1 simni 5V kirishiga va 1 simni GND (erga) kiriting. 5V simining ikkinchi uchini elektron kartadagi musbat (+) kirishga ulang. GND simining ikkinchi uchini elektron kartadagi manfiy (-) kirishga ulang.

2 -qadam: ANALOG IN bo'limidagi Arduino taxtasida A0 kirishini 1 ga ulang. Ushbu simning uchini elektron kartadagi j20 kirishiga ulang.

3 -qadam: DIGITAL I / U bo'limidagi Arduino platasida 1 simni 9 -kirishga ulang. Boshqa uchini a3 kirishiga ulang.

4 -qadam: O'chirish kartasida 1 simni musbat (+) kirishga ulang. Boshqa uchini h24 kirishiga ulang.

5 -qadam: elektron platada 1 ta simni manfiy (+) kirishga ulang. Boshqa uchini a2 kirishiga ulang.

6-qadam: elektron platada 1 ta simni manfiy (-) kirishga ulang. Boshqa uchini b1 kirishiga ulang.

7-qadam: elektron platada 1 ta simni manfiy (-) kirishga ulang. Boshqa uchini i19 kirishiga ulang.

8 -qadam: Elektron platada rezistorni i20 va i24 kirishiga joylashtiring.

*Oxirgi rasm haqiqiy dunyodagi ilovalarga tegishli.

5 -qadam: Arduino -ni LCD -ga ulang

Arduino -ni LCD -ga ulang
Arduino -ni LCD -ga ulang
Arduino -ni LCD -ga ulang
Arduino -ni LCD -ga ulang
Arduino -ni LCD -ga ulang
Arduino -ni LCD -ga ulang

*Bu havolaga o'ting (https://ef.engr.utk.edu/ef230-2017-08/projects/ard…) va LCDni Arduino-ga ulash uchun men quyida ko'rsatgan qadamlarga qarang:

1 -qadam: zip faylini oching

2 -qadam: ReadMe faylini oching va ko'rsatmalarga amal qiling

Kerakli materiallar

1.) SparkFun -dan ushbu qurilmaga o'xshash 16x2 LCD -

2.) o'tish simlari

*O'z navbatida rasmlarga qarang.

Bu qadamda LCD qo'shimcha kutubxonasini yaratish va LCD displeyda "Kelayotgan poezd" ko'rsatilishi ko'rsatiladi.

Simli pinlar quyidagicha:

LCD pin -> Arduino pin

1 (VSS) -> Er

2 (VDD) -> 5V

3 (V0) -> Flex sensoridagi o'rta pin

4 (RS) -> D7

5 (R/V) -> Er

6 (E) -> d6

11 (DB4) - D5 (PWM)

12 (DB5) -> D4

13 (DB6) -> D3 (PWM)

14 (DB7) -> D2

15 (LED+) -> 5 V

16 (LED-) -> Tuproq

6 -qadam: Yumshoq potansiyometrni ulash

Yumshoq potansiyometrni ulash
Yumshoq potansiyometrni ulash
Yumshoq potansiyometrni ulash
Yumshoq potansiyometrni ulash
Yumshoq potansiyometrni ulash
Yumshoq potansiyometrni ulash

Kerakli materiallar

1.) 1 ta LED

2.) 1 yumshoq potentsiometr

3.) Jumper simlari

4.) 3 330 Ohm qarshilik

5.) 10K Ohmli rezistor

*O'z navbatida rasmlarga qarang.

Ushbu sxemada biz boshqa turdagi o'zgaruvchan qarshilik, yumshoq potansiometrdan foydalanamiz. Bu ingichka va egiluvchan chiziq bo'lib, u bosim o'tkaziladigan joyni aniqlay oladi. Ipning turli qismlarini bosib, qarshilikni 100 dan 10 K ohmgacha o'zgartirish mumkin. Siz potentsiometrda yoki tugma sifatida harakatni kuzatish uchun bu qobiliyatdan foydalanishingiz mumkin. Ushbu sxemada biz RGB LEDni boshqarish uchun yumshoq potansiometrni ishga tushiramiz.

1 -qadam: DIGITAL I / U bo'limidagi Arduino platasida 1 pinni 10 -kirishga va 1 -pinni 11 -kirishga ulang. Mos ravishda, bu pinlarning ikkinchi uchini h6 va h7 kirishiga ulang.

2 -qadam: elektron platada LEDni a4, a5, a6 va a7 kirishiga ulang.

3-qadam: Elektron platada 3 430 ohmli rezistorlarni e4-g4, e6-g6 va e7-g7 kirishiga joylashtiring.

4 -qadam: elektron platada 1 pinni e5 kirishiga ulang. Pinning ikkinchi uchini manfiy (-) kirishga ulang.

5-qadam: O'chirish platasida 10K ohmli rezistorni i19-salbiy (-) kirishiga joylashtiring.

6 -qadam: elektron platada 1 pinni j18 ga ulang. Ipning ikkinchi uchini musbat (+) kirishga ulang.

7 -qadam: elektron platada 1 pinni j20 kirishiga ulang. Bu pinning ikkinchi uchini manfiy (-) kirishga ulang.

7 -qadam: O'zingizning yaxshilanishlaringizni aqlli temir yo'l tizimida sinab ko'ring

O'zingizning yaxshilanishlaringizni aqlli temir yo'l tizimida sinab ko'ring
O'zingizning yaxshilanishlaringizni aqlli temir yo'l tizimida sinab ko'ring
O'zingizning yaxshilanishlaringizni aqlli temir yo'l tizimida sinab ko'ring
O'zingizning yaxshilanishlaringizni aqlli temir yo'l tizimida sinab ko'ring

Bu erda sizning MATLAB kodingiz funktsional bo'lishi kerak va Arduino kartasi barcha qo'shilgan komponentlar bilan to'g'ri ulangan bo'lishi kerak. Buni sertifikatlangan Smart Rail tizimida sinab ko'ring va yaxshilanishlaringiz tizimni xavfsizroq qilishini tekshiring.

Tavsiya: