Cuprins:

LifeGuard 2.0: 7 pași (cu imagini)
LifeGuard 2.0: 7 pași (cu imagini)

Video: LifeGuard 2.0: 7 pași (cu imagini)

Video: LifeGuard 2.0: 7 pași (cu imagini)
Video: Man Gets Stuck While Riding Water Slide In Penang 2024, Noiembrie
Anonim
LifeGuard 2.0
LifeGuard 2.0

Ați dorit vreodată să efectuați operații matematice, să faceți citiri ale senzorilor, să monitorizați intrările analogice și digitale și să controlați ieșirile analogice și digitale fără experiență electronică anterioară? Dacă da, acest proiect este doar pentru tine! Vom folosi un microcontroler și MATLAB pentru a crea un dispozitiv care poate fi utilizat pentru a monitoriza și îmbunătăți sistemul EF Express SMART RAIL. Cu un microcontroler, posibilitățile de intrări și ieșiri (semnal / informații care intră pe placă și un semnal care iese din placă) sunt nelimitate. Vom folosi un senzor flex și un potențiometru ca intrări. Ieșirile lor vor fi un mesaj prin ecran LCD și lumini LED, împreună cu un buzzer, respectiv. Îmbunătățirile pe care sperăm să le implementăm în sistemul SMART RAIL sunt relative la îmbunătățirea siguranței sistemului. Luați laptopul și microcontrolerul și permiteți-ne să începem!

Pasul 1: Software și materiale

Software și materiale
Software și materiale
Software și materiale
Software și materiale
Software și materiale
Software și materiale
Software și materiale
Software și materiale

Este nevoie de software

1.) MATLAB

- Va trebui să descărcați o versiune locală a MATLAB pe computer. Accesați mathworks.com și configurați un cont MATHWORKS, descărcați fișiere și activați licența.

-Ar trebui să descărcați și să instalați TOATE cutiile de instrumente disponibile pentru cea mai nouă versiune (R2016a sau R2016b).

-Utilizatori Mac: trebuie să aveți OSX 10.9.5 sau o versiune ulterioară pentru a rula R2015b, este OK să rulați o versiune anterioară a MATLAB.

2.) Pachetul de asistență hardware Arduino:

-Instalați pachetul de asistență hardware Arduino. Deschideți MATLAB. În fila Acasă MATLAB, în meniul de mediu, selectați Suplimente Obțineți pachete de asistență hardware Selectați „Pachetul de asistență MATLAB pentru hardware Arduino”. Va trebui să vă conectați la contul dvs. MATHWORKS

-Dacă instalarea dvs. este întreruptă și aveți încercări / erori succesive nereușite la instalarea pachetului hardware - găsiți și ștergeți folderul descărcat Arduino de pe hard disk și începeți de la început.

Materiale necesare

1.) Laptop sau computer desktop

2.) Placa SparkFun Arduino

3.) Senzor flexibil

4.) Potențiometru

5.) Ecran LCD

6.) Lumina LED

7.) Trusa de inventator SparkFun (Găsiți online)

8.) Cablu USB și mini USB

9.) Firele jumperului

10.) Buzzer piezo

Pasul 2: Conectați-vă la Arduino și determinați portul COM

(Portul COM se poate schimba de fiecare dată când conectați) Conectați cablul USB Arduino la computer și mini USB la placa Arduino. Este posibil să trebuiască să așteptați câteva minute pentru descărcarea driverelor.

Pentru a determina portul COM:

Pe computer

Metoda 1: În MATLAB utilizați comanda - fopen (serial ('nada'))

-pentru a determina portul de com. Este posibil să primiți o astfel de eroare: Eroare la utilizarea serial / fopen (linia 72) Deschidere eșuată: Port: NADA nu este disponibil. Porturi disponibile: COM3. Această eroare indică faptul că portul dvs. este 3.

-Dacă metoda 1 eșuează pe computerul dvs., deschideți Device Manager și extindeți lista Porturi (COM și LPT). Rețineți numărul de pe portul serial USB. de exemplu. „Port serial USB (COM *)” Numărul portului este * aici.

-Dacă nu este afișat niciun port, închideți MATLAB și reporniți computerul. Deschideți MATLAB și încercați din nou fopen (serial ('nada')).

-Dacă acest lucru nu reușește, poate fi necesar să descărcați driverele SparkFun din fișierul CDM_v2.12.00_WHQL_Certified.exe, deschideți și rulați fișierul CDM_v2.12.00_WHQL_Certified.exe și selectați Extract. (Poate fi necesar să deschideți fișierul din Explorer, faceți clic dreapta și „Rulați ca administrator”).

-În fereastra de comandă MATLAB creați un obiect Arduino - a = arduino ('comx', 'uno'); % x este numărul portului dvs. de sus pentru PC-uri (fără zerouri precedente!)

Pe un Mac

Metoda 1: Din linia de comandă MATLAB sau într-un terminal Mac și tastați: 'ls /dev/tty.*' Notați numărul de port listat pentru dev / tty.usbmodem * sau dev / tty.usbserial *. Numărul portului este * aici.

-Dacă metoda 1 eșuează pe MAC-ul dvs., poate fi necesar

-Exit MATLAB

-Închideți software-ul Arduino și deconectați cablul USB Arduino

-instalați Java 6 Runtime

-instalați extensia kernelului driverului USB

-Reporniți computerul

-Reconectați cablul USB Arduino

-Run de la linia de comandă MATLAB sau Terminal Mac: ls /dev/tty.*

-Notați numărul de port listat pentru dev / tty.usbmodem * sau dev / tty.usbserial *. Numărul portului este * aici.

-În fereastra de comandă MATLAB creați un obiect Arduino - a = arduino ('/ dev / tty.usbserial *', 'uno'); % * este numărul portului dvs. de mai sus pentru MAC-uri sau „/dev/tty.usbmodem*”

Pasul 3: Cod Matlab

Codul Matlab
Codul Matlab
Codul Matlab
Codul Matlab

Intrări:

1.) Senzor flexibil

2.) Potențiometru

Ieșiri:

1.) Ecran LCD cu mesaj pe care scrie „Train Coming”

2.) Lumina LED

3.) Buzzer piezo

În acest pas, vom construi codul care va analiza intrările de pe placa Arduino și va oferi ieșiri pe baza rezultatelor analizei MATLAB. Următorul cod vă va permite să efectuați mai multe funcții: atunci când este declanșat potențiometrul, buzzerul piezo emite frecvențe alternative și LED-ul roșu va clipi. Când un tren nu este detectat, LED-ul verde se va aprinde. Când senzorul Flex este declanșat, LED-ul lăcomiei se va stinge, LED-ul roșu se va aprinde, iar ecranul LCD va afișa un mesaj pe care scrie „Train Coming”.

Cod MATLAB:

% remery1, shornsb1, wmurrin

% Scop: Avertizare tren

% IInput: potențiometru, senzor flex

% ieșire: lcd, sunet, lumină

% Dacă placa nu este inițializată sau are probleme de conexiune, executați

% sub comenzi în comentarii. Nu trebuie să fie executate de fiecare dată

%curata tot

%inchide tot

% clc

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

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

% Configurați placa după conectare

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

configurePin (a, 'D9', 'PWM');% configure D9

timp = 50; % setează timpul la 50

clearLCD (lcd)% inițializează LCD

% Începeți bucla

timp timp> 0

% Tensiunea senzorului flexibil determină dacă lumina este verde sau dacă lumina

% este roșu și afișajele LCD „tren care vine”

flex_status = readVoltage (a, 'A0'); % tensiune de citire a senzorului flex

dacă flex_status> 4% dacă tensiunea este mai mare de 4, bucla de declanșare

writeDigitalPin (a, 'D12', 0)% dezactivează verde

writeDigitalPin (a, 'D11', 1)% activează roșu

printLCD (lcd, „Tren care vine”)% afișează „tren care vine” pe ecranul LCD

pauză (5)% Așteptați 5 secunde

clearLCD (lcd)% Mesaj clar de pe LCD

writeDigitalPin (a, 'D11', 0)% Opriți LED-ul roșu

altceva

Sfârșit

pe_status = readVoltage (a, 'A2'); % Citiți tensiunea potențiometrului

dacă pe_status> 2% dacă tensiunea este mai mare de 2, bucla de declanșare

writeDigitalPin (a, 'D13', 1);% pornește LED-ul roșu

playTone (a, 'D9', 400,.25);% Redare 400Hz pe buzzer Piezo,.25 sec

writeDigitalPin (a, 'D13', 0)% oprește LED-ul roșu

pauză (.25)% așteptați.25 secunde

writeDigitalPin (a, 'D13', 1)% Repetați mai sus, cu buzzer la 200Hz

playTone (a, „D9”, 200,.25);

writeDigitalPin (a, „D13”, 0)

pauză (.25)

writeDigitalPin (a, 'D13', 1);% Repetați mai sus

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

writeDigitalPin (a, „D13”, 0)

pauză (.25)

writeDigitalPin (a, 'D13', 1)

playTone (a, „D9”, 200,.25);

writeDigitalPin (a, „D13”, 0)

pauză (.25)

writeDigitalPin (a, 'D13', 1)% Repetați mai sus

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

writeDigitalPin (a, „D13”, 0)

pauză (.25)

writeDigitalPin (a, 'D13', 1)

playTone (a, „D9”, 200,.25);

writeDigitalPin (a, „D13”, 0)

pauză (.25)

writeDigitalPin (a, 'D13', 1)% Repetați mai sus

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

writeDigitalPin (a, „D13”, 0)

pauză (.25)

writeDigitalPin (a, 'D13', 1)

playTone (a, „D9”, 200,.25);

writeDigitalPin (a, „D13”, 0)

pauză (.25)

altceva

writeDigitalPin (a, 'D12', 1)% dacă tensiunea este mai mică de 2, porniți LED-ul verde

writeDigitalPin (a, 'D13', 0)% rândul său de LED roșu

Sfârșit

Sfârșit

Pasul 4: Cablarea senzorului flexibil

Cablarea senzorului flexibil
Cablarea senzorului flexibil
Cablarea senzorului flexibil
Cablarea senzorului flexibil
Cablarea senzorului flexibil
Cablarea senzorului flexibil
Cablarea senzorului flexibil
Cablarea senzorului flexibil

Materiale necesare

1.) 1 senzor flexibil

2.) 1 rezistor de 10K Ohm

3.) 8 fire jumper

* Consultați imagini, respectiv.

În acest circuit, vom măsura flex. Un senzor flex folosește carbon pe o bandă de plastic pentru a acționa ca un rezistor variabil, dar în loc să schimbi rezistența prin rotirea unui buton, te schimbi prin flexarea componentei. Un divizor de tensiune pentru a detecta schimbarea rezistenței. În cazul nostru, vom folosi senzorul flex pentru a detecta trecerea unui tren pentru a comanda un ecran LCD (vezi imaginea) pentru a citi un mesaj care spune „Trenul vine”.

* În imaginile care arată instrucțiunile pentru conectarea unui senzor flexibil, consultați numai firele referitoare la cablarea senzorului flexibil. Nu luați în considerare cablajul pentru Servo.

Știfturi de sârmă după cum urmează:

Pasul 1: Pe placa Arduino din secțiunea POWER, conectați 1 fir la intrarea 5V și 1 fir la intrarea GND (masă). Conectați celălalt capăt al firului de 5V la o intrare pozitivă (+) de pe placa de circuit. Conectați celălalt capăt al firului GND la o intrare negativă (-) de pe placa de circuit.

Pasul 2: Pe placa Arduino din secțiunea ANALOG IN, conectați 1 la intrarea A0. Conectați capătul acelui fir la intrarea j20 de pe placa de circuit.

Pasul 3: Pe placa Arduino din secțiunea DIGITAL I / O, conectați 1 fir la intrarea 9. Conectați celălalt capăt la intrarea a3.

Pasul 4: Pe placa de circuit, conectați 1 fir la o intrare pozitivă (+). Conectați celălalt capăt la intrarea h24.

Pasul 5: Pe placa de circuit, conectați 1 fir la o intrare negativă (+). Conectați celălalt capăt la intrarea a2.

Pasul 6: Pe placa de circuit, conectați 1 fir la o intrare negativă (-). Conectați celălalt capăt la intrarea b1.

Pasul 7: Pe placa de circuit, conectați 1 fir la o intrare negativă (-). Conectați celălalt capăt la intrarea i19.

Pasul 8: Pe placa de circuit, așezați rezistorul în intrările i20 și i24.

* Ultima imagine se referă la aplicațiile din lumea reală.

Pasul 5: Conectați Arduino la ecranul LCD

Conectați Arduino la ecranul LCD
Conectați Arduino la ecranul LCD
Conectați Arduino la ecranul LCD
Conectați Arduino la ecranul LCD
Conectați Arduino la ecranul LCD
Conectați Arduino la ecranul LCD

* Urmați acest link (https://ef.engr.utk.edu/ef230-2017-08/projects/ard…) și apoi consultați pașii pe care i-am furnizat mai jos pentru a conecta un LCD la un Arduino:

Pasul 1: Deschideți fișierul zip

Pasul 2: deschideți fișierul ReadMe și urmați instrucțiunile

Materiale necesare

1.) LCD 16x2 similar cu acest dispozitiv de la SparkFun -

2.) Firele jumperului

* Consultați imagini, respectiv.

Acest pas va arăta cum să creați o bibliotecă suplimentară LCD și să afișați „Train Coming” pe un LCD.

Știfturi de sârmă după cum urmează:

Pin LCD -> Pin Arduino

1 (VSS) -> Masă

2 (VDD) -> 5V

3 (V0) -> Pin mediu pe senzorul Flex

4 (RS) -> D7

5 (R / W) -> Masă

6 (E) -> d6

11 (DB4) - D5 (PWM)

12 (DB5) -> D4

13 (DB6) -> D3 (PWM)

14 (DB7) -> D2

15 (LED +) -> 5 V

16 (LED-) -> Masă

Pasul 6: Conectarea potențiometrului moale

Conectarea potențiometrului moale
Conectarea potențiometrului moale
Conectarea potențiometrului moale
Conectarea potențiometrului moale
Conectarea potențiometrului moale
Conectarea potențiometrului moale

Materiale necesare

1.) 1 LED

2.) 1 Potențiometru moale

3.) Sârme jumper

4.) 3 330 Ohm rezistor

5.) Rezistor 10K Ohm

* Consultați imagini, respectiv.

În acest circuit, vom folosi un alt tip de rezistență variabilă, un potențiometru moale. Aceasta este o bandă subțire și flexibilă care poate detecta unde se aplică presiune. Prin apăsarea în jos a diferitelor părți ale benzii, puteți varia rezistența de la 100 la 10 K ohmi. Puteți utiliza această abilitate pentru a urmări mișcarea pe potențiometru sau ca buton. În acest circuit, vom pune în funcțiune potențiometrul moale pentru a controla un LED RGB.

Pasul 1: Pe placa Arduino din secțiunea DIGITAL I / O, conectați 1 pin la intrarea 10 și 1 pin la intrarea 11. Respectiv, conectați celălalt capăt al acelor pin la intrarea h6 și h7.

Pasul 2: Pe placa de circuit, conectați LED-ul la intrările a4, a5, a6 și a7.

Pasul 3: pe placa de circuit, amplasați cele 3 330 de rezistențe de ohm în intrările e4-g4, e6-g6 și e7-g7.

Pasul 4: Pe placa de circuit, conectați 1 pin la intrarea e5. Conectați celălalt capăt al acelui pin la o intrare negativă (-).

Pasul 5: Pe placa de circuit, amplasați rezistorul de 10K ohm în intrările i19-negative (-).

Pasul 6: Pe placa de circuit, conectați 1 pin la j18. Conectați celălalt capăt al acelui pin la o intrare pozitivă (+).

Pasul 7: Pe placa de circuit, conectați 1 pin la intrarea j20. Conectați celălalt capăt al acelui pin la o intrare negativă (-).

Pasul 7: Testați-vă îmbunătățirile pe un sistem feroviar inteligent

Testați-vă îmbunătățirile pe un sistem feroviar inteligent
Testați-vă îmbunătățirile pe un sistem feroviar inteligent
Testați-vă îmbunătățirile pe un sistem feroviar inteligent
Testați-vă îmbunătățirile pe un sistem feroviar inteligent

În acest moment, codul MATLAB ar trebui să fie funcțional și placa Arduino ar trebui să fie conectată cu precizie împreună cu toate componentele adăugate. Încercați-l pe un sistem Smart Rail certificat și vedeți dacă îmbunătățirile dvs. fac sistemul mai sigur.

Recomandat: