Mündəricat:

LifeGuard 2.0: 7 addım (şəkillərlə)
LifeGuard 2.0: 7 addım (şəkillərlə)

Video: LifeGuard 2.0: 7 addım (şəkillərlə)

Video: LifeGuard 2.0: 7 addım (şəkillərlə)
Video: CS50 2015 – 10-я неделя 2024, Iyul
Anonim
LifeGuard 2.0
LifeGuard 2.0

Heç riyaziyyat əməliyyatları aparmaq, sensor oxunuşları etmək, analoq və rəqəmsal girişləri izləmək, əvvəlki elektronika təcrübəsi olmadan analoq və rəqəmsal çıxışları idarə etmək istəmisinizmi? Bəli, bu layihə yalnız sizin üçündür! EF Express SMART RAIL sistemini izləmək və inkişaf etdirmək üçün istifadə edilə bilən bir cihaz yaratmaq üçün bir mikro nəzarətçi və MATLAB istifadə edəcəyik. Bir mikro nəzarətçi ilə giriş və çıxış imkanları (lövhəyə daxil olan siqnal/məlumat və lövhədən çıxan siqnal) sonsuzdur. Girişlərimiz olaraq bir fleks sensoru və potansiyometrdən istifadə edəcəyik. Çıxışları sırasıyla bir səs siqnalı ilə birlikdə LCD ekran və LED işıqlar vasitəsilə bir mesaj olacaq. SMART RAIL sisteminə tətbiq etməyi ümid etdiyimiz təkmilləşdirmələr sistem təhlükəsizliyinin yaxşılaşdırılması ilə əlaqədardır. Laptopunuzu və mikrokontrollerinizi götürün və başlayaq!

Addım 1: Proqram və Materiallar

Proqram və Materiallar
Proqram və Materiallar
Proqram və Materiallar
Proqram və Materiallar
Proqram və Materiallar
Proqram və Materiallar
Proqram və Materiallar
Proqram və Materiallar

Lazım olan proqram təminatı

1.) MATLAB

- Kompüterinizə MATLAB -ın yerli versiyasını yükləməlisiniz. Mathworks.com saytına daxil olun və MATHWORKS hesabı yaradın, faylları yükləyin və lisenziyanızı aktivləşdirin.

-Ən yeni versiya (R2016a və ya R2016b) üçün BÜTÜN alət qutularını yükləməli və quraşdırmalısınız.

-Mac istifadəçiləri: R2015b -ni işə salmaq üçün OSX 10.9.5 və ya daha yeni bir versiyanız olmalıdır, MATLAB -ın əvvəlki bir versiyasını işə salmaq yaxşıdır.

2.) Arduino Avadanlıq Dəstəyi Paketi:

-Arduino Hardware Support Paketini quraşdırın. MATLAB -ı açın. MATLAB Ev sekmesinde, Ətraf mühit menyusunda Əlavələr Avadanlıq Dəstək Paketləri Al'ı seçin "Arduino Donanımı üçün MATLAB Dəstək Paketi" ni seçin. MATHWORKS hesabınıza daxil olmalısınız

- Quraşdırmanız kəsilərsə və hardware paketini quraşdırarkən ardıcıl uğursuz cəhdlər/səhvləriniz varsa - sabit diskinizdə Arduino yüklədiyiniz qovluğu tapın və başdan başlayın.

Lazım olan materiallar

1.) Laptop və ya masaüstü kompüter

2.) SparkFun Arduino lövhəsi

3.) Flex Sensor

4.) Potansiyometr

5.) LCD ekran

6.) LED işığı

7.) SparkFun Inventor's Kit (İnternetdə tap)

8.) USB kabeli və mini USB

9.) Jumper telləri

10.) Piezo səs siqnalı

Addım 2: Arduino -ya qoşulun və COM Portunu təyin edin

(Hər dəfə qoşduğunuzda COM portunuz dəyişə bilər) Arduino USB kabelini kompüterinizə və mini USB -ni Arduino lövhənizə qoşun. Sürücülərin yüklənməsi üçün bir neçə dəqiqə gözləməyiniz lazım ola bilər.

COM portunu təyin etmək üçün:

PC -də

Metod 1: MATLAB -da - fopen (serial ('nada')) əmrindən istifadə edin

-limanınızı təyin etmək. Bənzər bir səhv əldə edə bilərsiniz: Serial/açma istifadə xətası (xətt 72) Açılmadı: Port: NADA mövcud deyil. Mövcud portlar: COM3. Bu səhv portunuzun 3 olduğunu göstərir.

-Kompüterinizdə Metod 1 uğursuz olarsa, Aygıt Yöneticinizi açın və Limanlar (COM və LPT) siyahısını genişləndirin. USB Serial Portundakı nömrəyə diqqət yetirin. məs. 'USB Serial Portu (COM *)' Liman nömrəsi buradadır *.

-Hər hansı bir port göstərilmirsə, MATLAB -ı bağlayın və kompüterinizi yenidən başladın. MATLAB -ı açın və yenidən açmağa çalışın (serial ('nada')).

-Bu uğursuz olarsa, SparkFun sürücülərini CDM_v2.12.00_WHQL_Certified.exe faylından yükləməlisiniz, CDM_v2.12.00_WHQL_Certified.exe faylını açın və işlədin və Çıxar seçin. (Dosyanı kəşfiyyatçıdan açmaq, sağ klikləmək və 'Administrator olaraq Çalıştırmaq' lazım ola bilər).

-MATLAB əmr pəncərəsində bir Arduino obyekti yaradın - a = arduino ('comx', 'uno'); % x, kompüterlər üçün yuxarıdakı port nömrənizdir (əvvəlki sıfır yoxdur!)

Mac -da

Metod 1: MATLAB əmr satırından və ya Mac Terminalında yazın: 'ls /dev/tty.*' dev/tty.usbmodem*və ya dev/tty.usbserial*üçün göstərilən port nömrəsinə diqqət yetirin. Liman nömrəsi buradadır *.

-1 -ci üsul MAC -da uğursuz olarsa, ehtiyacınız ola bilər

-MATLAB -dan çıxın

-Arduino proqramını bağlayın və Arduino USB kabelini ayırın

-Java 6 İşləmə müddətini quraşdırın

-USB sürücü nüvəsi uzantısını quraşdırın

-Kompüterinizi yenidən başladın

-Arduino USB kabelini yenidən qoşun

-MATLAB əmr satırından və ya Mac Terminalından işləyin: ls /dev/tty.*

-Dev/tty.usbmodem* və ya dev/tty.usbserial* üçün göstərilən port nömrəsini qeyd edin. Liman nömrəsi buradadır *.

-MATLAB əmr pəncərəsində bir Arduino obyekti yaradın - a = arduino ('/dev/tty.usbserial*', 'uno'); % *, MAC -lar üçün yuxarıdakı port nömrənizdir və ya '/dev/tty.usbmodem*'

Addım 3: Matlab Kodu

Matlab Kodu
Matlab Kodu
Matlab Kodu
Matlab Kodu

Girişlər:

1.) Flex Sensor

2.) Potansiyometr

Çıxışlar:

1.) "Train Coming" yazan mesajı olan LCD ekran

2.) LED işığı

3.) Piezo səs siqnalı

Bu addımda, Arduino lövhəsindəki girişləri təhlil edəcək və MATLAB analizinin nəticələrinə əsaslanan çıxışlar təmin edəcək bir kod quracağıq. Aşağıdakı kod bir neçə funksiyanı yerinə yetirməyə imkan verəcəkdir: potensiometr işə salındıqda, piezo səs siqnalı alternativ tezliklər yayacaq və qırmızı LED yanıb -sönəcək. Bir qatar aşkar edilmədikdə, yaşıl LED yanacaq. Flex Sensor işə salındıqda, acgöz LED sönəcək, qırmızı LED yanacaq və LCD -də "Train Coming" yazısı olan bir mesaj görünəcək.

MATLAB Kodu:

%remery1, shornsb1, wmurrin

Məqsəd: Train Warning

IInput: potensiometr, əyilmə sensoru

%çıxış: lcd, səs, işıq

Lövhə işə salınmırsa və ya əlaqə problemi yaşayırsa, onu icra edin

şərhlərdə əmrlərin altında %. Onların hər dəfə icra edilməsinə ehtiyac yoxdur

%hamısını sil, hamısını təmizlə

%hamısını bağlayın

%clc

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

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

Bağlandıqdan sonra lövhəni konfiqurasiya edin

configurePin (a, 'D8', 'pullup');%D8 konfiqurasiya edir

configurePin (a, 'D9', 'PWM');%D9 konfiqurasiya edir

vaxt = 50; %50 -ni təyin edin

clearLCD (lcd) %LCD -ni işə salır

Başlanğıc döngəsi

vaxt> 0

Flex sensoru gərginliyi işığın yaşıl olub olmadığını və ya işığın olub olmadığını müəyyən edir

%qırmızıdır və LCD ekranlar "qatar gəlir"

flex_status = readVoltage (a, 'A0'); Flex sensorun oxunan gərginliyi

flex_status> 4 %-dən çoxdursa, gərginlik 4 -dən çox olarsa, tetikleyici döngə

writeDigitalPin (a, 'D12', 0) %yaşıl sönür

writeDigitalPin (a, 'D11', 1) %qırmızı yandırır

printLCD (lcd, 'Train Coming') %-i LCD -də "gələn qatar" ı göstərir

fasilə (5) %5 saniyə gözləyin

clearLCD (lcd) %LCD -dən mesajı sil

writeDigitalPin (a, 'D11', 0) %Qırmızı LED -i söndürün

başqa

bitmək

pe_status = readVoltage (a, 'A2'); Potansiyometr gərginliyini oxuyun

pe_status> 2 %-dən çoxdursa, gərginlik 2 -dən çox olarsa, tətik döngəsi

writeDigitalPin (a, 'D13', 1);%qırmızı LED yandırın

playTone (a, 'D9', 400,.25);% Piezo səs siqnalı ilə 400Hz oynayın,.25 saniyə

writeDigitalPin (a, 'D13', 0)%qırmızı LED -i söndürür

fasilə (.25)%gözləmə.25 saniyə

writeDigitalPin (a, 'D13', 1) %200Hz -də səs siqnalı ilə yuxarıda təkrarlayın.

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

writeDigitalPin (a, 'D13', 0)

fasilə (.25)

writeDigitalPin (a, 'D13', 1);%Yuxarıda təkrarlayın

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

writeDigitalPin (a, 'D13', 0)

fasilə (.25)

writeDigitalPin (a, 'D13', 1)

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

writeDigitalPin (a, 'D13', 0)

fasilə (.25)

writeDigitalPin (a, 'D13', 1) %Yuxarıda təkrarlayın

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

writeDigitalPin (a, 'D13', 0)

fasilə (.25)

writeDigitalPin (a, 'D13', 1)

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

writeDigitalPin (a, 'D13', 0)

fasilə (.25)

writeDigitalPin (a, 'D13', 1) %Yuxarıda təkrarlayın

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

writeDigitalPin (a, 'D13', 0)

fasilə (.25)

writeDigitalPin (a, 'D13', 1)

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

writeDigitalPin (a, 'D13', 0)

fasilə (.25)

başqa

writeDigitalPin (a, 'D12', 1)%gərginlik 2 -dən azdırsa, yaşıl LED yandırın

writeDigitalPin (a, 'D13', 0)%Qırmızı LED

bitmək

bitmək

Addım 4: Flex Sensorunun Kablolanması

Flex Sensorunun naqilləri
Flex Sensorunun naqilləri
Flex Sensorunun naqilləri
Flex Sensorunun naqilləri
Flex Sensorunun naqilləri
Flex Sensorunun naqilləri
Flex Sensorunun naqilləri
Flex Sensorunun naqilləri

Lazım olan materiallar

1.) 1 Flex Sensor

2.) 1 10K Ohm Rezistor

3.) 8 Atlama Teli

*Müvafiq olaraq şəkillərə baxın.

Bu dövrədə əyilməni ölçəcəyik. Bir əyilmə sensoru, dəyişən bir rezistor kimi davranmaq üçün plastik bir zolaqdakı karbondan istifadə edir, ancaq müqaviməti bir düyməni çevirərək dəyişdirmək əvəzinə komponenti bükərək dəyişirsiniz. Müqavimət dəyişikliyini aşkar etmək üçün bir gərginlik bölücü. Bizim vəziyyətimizdə, "Train Coming" deyən bir mesajı oxumaq üçün LCD ekrana (şəkilə bax) əmr edən bir qatarın keçdiyini aşkar etmək üçün flex sensorundan istifadə edəcəyik.

*Flex Sensoru bağlamaq üçün təlimatları göstərən şəkillərdə, yalnız Flex Sensorunun naqillərinə aid olan tellərə baxın. Servo üçün naqillərə məhəl qoymayın.

Tel pinləri aşağıdakı kimi:

Addım 1: POWER bölməsindəki Arduino lövhəsində 1 teli 5V girişinə və 1 teli GND girişinə (torpaq) bağlayın. 5V telin digər ucunu dövrə lövhəsindəki müsbət (+) girişə qoşun. GND telinin digər ucunu dövrə lövhəsindəki mənfi (-) girişə qoşun.

Addım 2: ANALOG IN bölməsindəki Arduino lövhəsində A0 girişinə 1 qoşun. Bu telin ucunu dövrə lövhəsindəki j20 girişinə qoşun.

Addım 3: DIGITAL I / O bölməsindəki Arduino lövhəsində 1 teli 9 girişinə bağlayın. Digər ucunu a3 girişinə qoşun.

Addım 4: Dövrə lövhəsində 1 teli pozitiv (+) girişə qoşun. Digər ucunu h24 girişinə qoşun.

Addım 5: Dövrə lövhəsində 1 teli mənfi (+) girişə qoşun. Digər ucu a2 girişinə bağlayın.

Addım 6: Dövrə lövhəsində 1 teli mənfi (-) girişə qoşun. Digər ucunu b1 girişinə bağlayın.

Addım 7: Dövrə lövhəsində 1 teli mənfi (-) girişə qoşun. Digər ucunu i19 girişinə qoşun.

Addım 8: Devre kartında, rezistoru i20 və i24 girişlərinə qoyun.

*Son şəkil real dünya tətbiqlərinə aiddir.

Addım 5: Arduino -nu LCD -yə qoşun

Arduinonu LCD -yə qoşun
Arduinonu LCD -yə qoşun
Arduinonu LCD -yə qoşun
Arduinonu LCD -yə qoşun
Arduinonu LCD -yə qoşun
Arduinonu LCD -yə qoşun

*Bu linki izləyin (https://ef.engr.utk.edu/ef230-2017-08/projects/ard…) və sonra LCD-ni Arduino-ya bağlamaq üçün aşağıda təqdim etdiyim addımlara baxın:

Addım 1: zip faylını açın

Addım 2: ReadMe faylını açın və təlimatları izləyin

Lazım olan materiallar

1.) SparkFun -dan bu cihaza bənzər 16x2 LCD -

2.) Jumper telləri

*Müvafiq olaraq şəkillərə baxın.

Bu addım, LCD əlavə kitabxanasının necə yaradılacağını və LCD-də "Gələn Qatar" ın necə göstəriləcəyini göstərəcək.

Tel pinləri aşağıdakı kimi:

LCD Pin -> Arduino Pimi

1 (VSS) -> Torpaq

2 (VDD) -> 5V

3 (V0) -> Flex Sensorundakı orta pin

4 (RS) -> D7

5 (R/W) -> Torpaq

6 (E) -> d6

11 (DB4) - D5 (PWM)

12 (DB5) -> D4

13 (DB6) -> D3 (PWM)

14 (DB7) -> D2

15 (LED+) -> 5 V

16 (LED-) -> Torpaq

Addım 6: Yumşaq Potensiometr bağlayın

Yumşaq potensiometr bağlayır
Yumşaq potensiometr bağlayır
Yumşaq potensiometr bağlayır
Yumşaq potensiometr bağlayır
Yumşaq potensiometr bağlayır
Yumşaq potensiometr bağlayır

Lazım olan materiallar

1.) 1 LED

2.) 1 Yumşaq Potansiyometr

3.) Jumper Telləri

4.) 3330 Ohm Rezistor

5.) 10K Ohm Rezistor

*Müvafiq olaraq şəkillərə baxın.

Bu dövrədə başqa bir dəyişən rezistordan, yumşaq potansiometrdən istifadə edəcəyik. Bu, təzyiqin tətbiq olunduğunu aşkar edə bilən nazik və çevik bir zolaqdır. Şeridin müxtəlif hissələrinə basaraq müqaviməti 100 ilə 10 K ohm arasında dəyişə bilərsiniz. Potensialiometrdə və ya düymə olaraq hərəkəti izləmək üçün bu qabiliyyətdən istifadə edə bilərsiniz. Bu dövrədə bir RGB LEDini idarə etmək üçün yumşaq potansiometrini işə salacağıq.

Addım 1: DIGITAL I / O bölməsindəki Arduino lövhəsində 1 pin 10 -cu girişə və 1 pin 11 -ci girişə daxil edin.

Addım 2: Devre kartında, LED'i a4, a5, a6 və a7 girişlərinə qoşun.

Addım 3: Elektrik lövhəsində 3 430 ohm rezistoru e4-g4, e6-g6 və e7-g7 girişlərinə yerləşdirin.

Addım 4: Devre kartında e5 girişinə 1 pin bağlayın. Pinin digər ucunu mənfi (-) girişə qoşun.

Addım 5: Dövrə lövhəsində, 10K ohm rezistoru i19-mənfi (-) girişlərinə yerləşdirin.

Addım 6: Devre kartında, 1 pimi j18'e bağlayın. Pimin digər ucunu müsbət (+) girişə qoşun.

Addım 7: Devre kartında j20 girişinə 1 pin bağlayın. Pinin digər ucunu mənfi (-) girişə qoşun.

Addım 7: Gücləndirmələrinizi Ağıllı Dəmir Sistemində sınayın

Gücləndirmələrinizi Ağıllı Dəmir Sistemində Test Edin
Gücləndirmələrinizi Ağıllı Dəmir Sistemində Test Edin
Gücləndirmələrinizi Ağıllı Dəmir Sistemində Test Edin
Gücləndirmələrinizi Ağıllı Dəmir Sistemində Test Edin

Bu nöqtədə, MATLAB kodunuz işlək olmalı və Arduino lövhəsi bütün əlavə komponentlərlə birlikdə dəqiq bir şəkildə bağlanmalıdır. Sertifikatlaşdırılmış Smart Rail Sistemində sınayın və təkmilləşdirmələrinizin sistemi daha təhlükəsiz etdiyinə baxın.

Tövsiyə: