Inhoudsopgave:

LifeGuard 2.0: 7 stappen (met afbeeldingen)
LifeGuard 2.0: 7 stappen (met afbeeldingen)

Video: LifeGuard 2.0: 7 stappen (met afbeeldingen)

Video: LifeGuard 2.0: 7 stappen (met afbeeldingen)
Video: Dit ging niet zoals ik had verwacht..😳 2024, November
Anonim
LifeGuard 2.0
LifeGuard 2.0

Heb je ooit wiskundige bewerkingen willen uitvoeren, sensormetingen willen doen, analoge en digitale ingangen willen bewaken en analoge en digitale uitgangen willen besturen zonder eerdere ervaring met elektronica? Zo ja, dan is dit project iets voor jou! We zullen een microcontroller en MATLAB gebruiken om een apparaat te maken dat kan worden gebruikt om het EF Express SMART RAIL-systeem te bewaken en te verbeteren. Met een microcontroller zijn de mogelijkheden voor inputs en outputs (signaal/informatie die het bord ingaat en een signaal dat het bord verlaat) eindeloos. We zullen een flex-sensor en potentiometer gebruiken als onze ingangen. Hun uitgangen zullen respectievelijk een bericht zijn via een LCD-scherm en LED-lampjes, samen met een zoemer. De verbeteringen die we hopen te implementeren in het SMART RAIL-systeem hebben betrekking op het verbeteren van de systeemveiligheid. Pak je laptop en microcontroller, en laten we beginnen!

Stap 1: Software en materialen

Software en materialen
Software en materialen
Software en materialen
Software en materialen
Software en materialen
Software en materialen
Software en materialen
Software en materialen

Software nodig

1.) MATLAB

- U moet een lokale versie van MATLAB op uw computer downloaden. Ga naar mathworks.com en maak een MATHWORKS-account aan, download bestanden en activeer uw licentie.

-Je moet ALLE beschikbare toolboxen downloaden en installeren voor de nieuwste release (R2016a of R2016b).

-Mac-gebruikers: u moet OSX 10.9.5 of hoger hebben om R2015b te kunnen gebruiken, het is OK om een eerdere versie van MATLAB te gebruiken.

2.) Arduino hardware-ondersteuningspakket:

-Installeer het Arduino Hardware Support Package. MATLAB openen. Selecteer op het tabblad MATLAB Home in het menu Omgeving de optie Add-ons Hardware-ondersteuningspakketten ophalen Selecteer het "MATLAB-ondersteuningspakket voor Arduino-hardware". U moet inloggen op uw MATHWORKS-account

-Als uw installatie wordt onderbroken en u heeft opeenvolgende mislukte pogingen/fouten bij het installeren van het hardwarepakket - zoek en verwijder de map Arduino-download op uw harde schijf en begin vanaf het begin.

Benodigde materialen

1.)Laptop of desktopcomputer

2.) SparkFun Arduino-bord

3.) Flex-sensor

4.) Potentiometer

5.) LCD-scherm

6.) LED-licht:

7.) SparkFun Uitvinderskit (Online zoeken)

8.) USB-kabel en mini-USB

9.) Doorverbindingsdraden

10.) Piëzo-zoemer

Stap 2: Maak verbinding met uw Arduino en bepaal de COM-poort

(Uw COM-poort kan elke keer dat u inplugt veranderen) Sluit de Arduino USB-kabel aan op uw computer en de mini-USB op uw Arduino-bord. Het kan zijn dat u enkele minuten moet wachten voordat de stuurprogramma's zijn gedownload.

Om de COM-poort te bepalen:

Op pc

Methode 1: Gebruik in MATLAB het commando - fopen(serial('nada'))

-om uw com-poort te bepalen. U kunt de volgende foutmelding krijgen: Fout bij gebruik van serial/fopen (regel 72) Openen mislukt: Poort: NADA is niet beschikbaar. Beschikbare poorten: COM3. Deze fout geeft aan dat uw poort 3 is.

-Als methode 1 niet werkt op uw pc, opent u Apparaatbeheer en vouwt u de lijst met poorten (COM en LPT) uit. Noteer het nummer op de USB Seriële Poort. bijv. 'USB Serial Port(COM*)' Het poortnummer is hier de *.

-Als er geen poort wordt weergegeven, sluit u MATLAB en start u uw computer opnieuw op. Open MATLAB en probeer fopen(serial('nada')) opnieuw.

-Als dit niet lukt, moet u mogelijk de stuurprogramma's van SparkFun downloaden uit het bestand CDM_v2.12.00_WHQL_Certified.exe, het bestand CDM_v2.12.00_WHQL_Certified.exe openen en uitvoeren en Extract selecteren. (Mogelijk moet u het bestand vanuit de verkenner openen, met de rechtermuisknop klikken en 'Als administrator uitvoeren').

-Maak in het MATLAB-opdrachtvenster een Arduino-object - a=arduino('comx', 'uno'); % x is uw poortnummer van bovenaf voor pc's (geen voorafgaande nullen!)

Op een Mac

Methode 1: Vanaf de MATLAB-opdrachtregel of in een Mac Terminal en typ: 'ls /dev/tty.*' Noteer het poortnummer dat wordt vermeld voor dev/tty.usbmodem* of dev/tty.usbserial*. Het poortnummer is de * hier.

-Als methode 1 faalt op uw MAC, moet u mogelijk:

-Matlab afsluiten

-Sluit de Arduino-software en ontkoppel de Arduino USB-kabel

-installeer Java 6 Runtime

-installeer de kernelextensie van het USB-stuurprogramma

-Start je computer opnieuw op

- Sluit de Arduino USB-kabel opnieuw aan

-Uitvoeren vanaf de MATLAB-opdrachtregel of Mac Terminal: ls /dev/tty.*

- Noteer het poortnummer dat wordt vermeld voor dev/tty.usbmodem* of dev/tty.usbserial*. Het poortnummer is de * hier.

-Maak in het MATLAB-opdrachtvenster een Arduino-object - a=arduino('/dev/tty.usbserial*', 'uno'); % * is uw poortnummer van hierboven voor MAC's, of '/dev/tty.usbmodem*'

Stap 3: Matlab-code

Matlab-code
Matlab-code
Matlab-code
Matlab-code

Ingangen:

1.) Flex-sensor

2.) Potentiometer

Uitgangen:

1.) LCD-scherm met de tekst "Train Coming"

2.) LED-licht

3.) Piëzo-zoemer

In deze stap zullen we de code construeren die de invoer van het Arduino-bord zal analyseren en uitvoer zal leveren op basis van de resultaten van MATLAB's analyse. Met de volgende code kunt u verschillende functies uitvoeren: wanneer de potentiometer wordt geactiveerd, zendt de piëzo-zoemer afwisselende frequenties uit en knippert de rode LED. Als er geen trein wordt gedetecteerd, gaat de groene LED branden. Wanneer de Flex-sensor wordt geactiveerd, gaat de greed-LED uit, de rode LED gaat branden en op het LCD-scherm wordt een bericht weergegeven met de tekst "Train coming".

MATLAB-code:

%remery1, shornsb1, wmurrin

%Doel: treinwaarschuwing

%IInput:potentiometer, flex-sensor

%output:lcd, geluid, licht

%Als het bord niet is geïnitialiseerd of verbindingsproblemen heeft, voer dan de

% hieronder commando's in opmerkingen. Ze hoeven niet elke keer te worden uitgevoerd

%wis alles

%sluit alles

%clc

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

%lcd = add-on(a, 'VoorbeeldLCD/LCDAddon', {'D7', 'D6', 'D5', 'D4', 'D3', 'D2'});

%Configureer bord zodra het is aangesloten

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

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

tijd=50; %zet de tijd op 50

clearLCD(lcd) %initialiseer LCD

%Start lus

terwijl tijd> 0

%Flex sensorspanning bepaalt of licht groen is, of licht

% is rood en LCD geeft "trein komt eraan" weer

flex_status = leesVoltage (a, 'A0'); %lees spanning van flex-sensor

als flex_status>4% als de spanning groter is dan 4, triggerlus

writeDigitalPin(a, 'D12', 0) %schakel groen uit

writeDigitalPin(a, 'D11', 1) %zet rood aan

printLCD(lcd, 'Train coming') %display "trein komt" op LCD

pauze(5) %Wacht 5 seconden

clearLCD(lcd) %Clear bericht van LCD

writeDigitalPin (a, 'D11', 0) % Schakel rode LED uit

anders

einde

pe_status = leesspanning (a, 'A2'); %Lees potentiometerspanning

als pe_status>2% als de spanning groter is dan 2, triggerlus

writeDigitalPin (a, 'D13', 1);% zet rode LED aan

playTone(a, 'D9', 400,.25);% Speel 400Hz af op piëzo-zoemer,.25 sec

writeDigitalPin (a, 'D13', 0)% rode LED uitschakelen

pauze(.25)%wacht 0,25 seconden

writeDigitalPin(a, 'D13', 1) %Herhaal hierboven, met zoemer op 200Hz

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

schrijfDigitalPin(a, 'D13', 0)

pauze(.25)

writeDigitalPin(a, 'D13', 1);%Herhaal hierboven

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

schrijfDigitalPin(a, 'D13', 0)

pauze(.25)

schrijfDigitalPin(a, 'D13', 1)

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

schrijfDigitalPin(a, 'D13', 0)

pauze(.25)

writeDigitalPin(a, 'D13', 1) %Herhaal hierboven

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

schrijfDigitalPin(a, 'D13', 0)

pauze(.25)

schrijfDigitalPin(a, 'D13', 1)

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

schrijfDigitalPin(a, 'D13', 0)

pauze(.25)

writeDigitalPin(a, 'D13', 1) %Herhaal hierboven

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

schrijfDigitalPin(a, 'D13', 0)

pauze(.25)

schrijfDigitalPin(a, 'D13', 1)

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

schrijfDigitalPin(a, 'D13', 0)

pauze(.25)

anders

writeDigitalPin (a, 'D12', 1)% als de spanning minder is dan 2, zet de groene LED aan

writeDigitalPin (a, 'D13', 0)% draai van rode LED

einde

einde

Stap 4: Bedrading van de Flex-sensor

Bedrading van de Flex-sensor
Bedrading van de Flex-sensor
Bedrading van de Flex-sensor
Bedrading van de Flex-sensor
Bedrading van de Flex-sensor
Bedrading van de Flex-sensor
Bedrading van de Flex-sensor
Bedrading van de Flex-sensor

Benodigde materialen

1.) 1 Flex-sensor

2.) 1 10K Ohm-weerstand:

3.) 8 jumperdraden

*Zie respectievelijk afbeeldingen.

In dit circuit gaan we flex meten. Een flexsensor gebruikt koolstof op een strook plastic om als een variabele weerstand te werken, maar in plaats van de weerstand te veranderen door aan een knop te draaien, verander je door het onderdeel te buigen. Een spanningsdeler om verandering in weerstand te detecteren. In ons geval zal de flexsensor worden gebruikt om een passerende trein te detecteren om een LCD-scherm (zie afbeelding) te bedienen om een bericht te lezen met de tekst "Train Coming".

*In de afbeeldingen die de instructies voor het bedraden van een Flex-sensor tonen, verwijzen we alleen naar de draden met betrekking tot het bedraden van de Flex-sensor. Negeer de bedrading voor de servo.

Draadpinnen als volgt:

Stap 1: Sluit op het Arduino-bord in het gedeelte POWER 1 draad aan op ingang 5V en 1 draad op ingang GND (aarde). Steek het andere uiteinde van de 5V-draad in een positieve (+) ingang op de printplaat. Steek het andere uiteinde van de GND-draad in een negatieve (-) ingang op de printplaat.

Stap 2: Sluit op het Arduino-bord in het gedeelte ANALOG IN 1 aan op de A0-ingang. Steek het uiteinde van die draad in de j20-ingang op de printplaat.

Stap 3: Steek op het Arduino-bord in het gedeelte DIGITAL I\O 1 draad in ingang 9. Steek het andere uiteinde in ingang a3.

Stap 4: Steek op de printplaat 1 draad in een positieve (+) ingang. Steek het andere uiteinde in ingang h24.

Stap 5: Steek op de printplaat 1 draad in een negatieve (+) ingang. Steek het andere uiteinde in ingang a2.

Stap 6: Sluit op de printplaat 1 draad aan op een negatieve (-) ingang. Steek het andere uiteinde in ingang b1.

Stap 7: Sluit op de printplaat 1 draad aan op een negatieve (-) ingang. Steek het andere uiteinde in ingang i19.

Stap 8: Plaats op de printplaat de weerstand in de i20 en i24 ingangen.

*De laatste afbeelding verwijst naar toepassingen in de echte wereld.

Stap 5: Verbind Arduino met LCD

Verbind Arduino met LCD
Verbind Arduino met LCD
Verbind Arduino met LCD
Verbind Arduino met LCD
Verbind Arduino met LCD
Verbind Arduino met LCD

*Volg deze link (https://ef.engr.utk.edu/ef230-2017-08/projects/ard…) en raadpleeg vervolgens de stappen die ik hieronder heb gegeven om een LCD op een Arduino aan te sluiten:

Stap 1: Open zip-bestand

Stap 2: open het ReadMe-bestand en volg de instructies

Benodigde materialen

1.) 16x2 LCD vergelijkbaar met dit apparaat van SparkFun -

2.) Doorverbindingsdraden

*Zie respectievelijk afbeeldingen.

Deze stap laat zien hoe u een LCD-uitbreidingsbibliotheek maakt en "Train Coming" op een LCD-scherm weergeeft.

Draadpinnen als volgt:

LCD-pin -> Arduino-pin

1 (VSS) -> Grond

2 (VDD) -> 5V

3 (V0) -> Middelste pin op Flex-sensor

4 (RS) -> D7

5(R/W) -> Grond

6 (E) -> d6

11 (DB4) - D5 (PWM)

12 (DB5) -> D4

13 (DB6) -> D3 (PWM)

14 (DB7) -> D2

15 (LED+) -> 5 V

16 (LED-) -> Aarde

Stap 6: Soft Potentiometer aansluiten

Zachte potentiometer aansluiten
Zachte potentiometer aansluiten
Zachte potentiometer aansluiten
Zachte potentiometer aansluiten
Zachte potentiometer aansluiten
Zachte potentiometer aansluiten

Benodigde materialen

1.) 1 LED

2.) 1 zachte potentiometer

3.) Doorverbindingsdraden

4.) 3 330 Ohm Weerstand:

5.) 10K Ohm Weerstand:

*Zie respectievelijk afbeeldingen.

In dit circuit gaan we een ander soort variabele weerstand gebruiken, een zachte potentiometer. Dit is een dunne en flexibele strip die kan detecteren waar druk wordt uitgeoefend. Door op verschillende delen van de strip te drukken, kun je de weerstand variëren van 100 tot 10 K ohm. U kunt deze mogelijkheid gebruiken om beweging te volgen op de potentiometer of als een knop. In dit circuit zullen we de zachte potentiometer aan de gang krijgen om een RGB-led aan te sturen.

Stap 1: Steek op het Arduino-bord in het DIGITAL I\O-gedeelte 1 pin in ingang 10 en 1 pin in ingang 11. Steek respectievelijk het andere uiteinde van die pinnen in ingang h6 en h7.

Stap 2: Steek op de printplaat de LED in de ingangen a4, a5, a6 en a7.

Stap 3: Plaats op de printplaat de weerstanden van 3 330 ohm in de ingangen e4-g4, e6-g6 en e7-g7.

Stap 4: Steek op de printplaat 1 pin in ingang e5. Steek het andere uiteinde van die pin in een negatieve (-) ingang.

Stap 5: Plaats op de printplaat de weerstand van 10K ohm in de ingangen i19-negative(-).

Stap 6: Steek op de printplaat 1 pin in j18. Steek het andere uiteinde van die pin in een positieve (+) ingang.

Stap 7: Steek op de printplaat 1 pin in ingang j20. Steek het andere uiteinde van die pin in een negatieve (-) ingang.

Stap 7: Test uw verbeteringen op een Smart Rail-systeem

Test uw verbeteringen op een slim railsysteem
Test uw verbeteringen op een slim railsysteem
Test uw verbeteringen op een slim railsysteem
Test uw verbeteringen op een slim railsysteem

Op dit punt moet uw MATLAB-code functioneel zijn en moet het Arduino-bord nauwkeurig worden aangesloten, samen met alle toegevoegde componenten. Probeer het uit op een gecertificeerd Smart Rail-systeem en kijk of uw verbeteringen het systeem veiliger maken.

Aanbevolen: