Table des matières:
- Étape 1: Logiciel et matériel
- Étape 2: Connectez-vous à votre Arduino et déterminez le port COM
- Étape 3: Code Matlab
- Étape 4: Câblage du capteur Flex
- Étape 5: connectez Arduino à l'écran LCD
- Étape 6: connexion du potentiomètre souple
- Étape 7: Testez vos améliorations sur un système de rail intelligent
Vidéo: LifeGuard 2.0 : 7 étapes (avec photos)
2024 Auteur: John Day | [email protected]. Dernière modifié: 2024-01-30 09:09
Avez-vous déjà voulu effectuer des opérations mathématiques, effectuer des relevés de capteurs, surveiller des entrées analogiques et numériques et contrôler des sorties analogiques et numériques sans aucune expérience en électronique ? Si oui, ce projet est fait pour vous ! Nous utiliserons un microcontrôleur et MATLAB pour créer un appareil pouvant être utilisé pour surveiller et améliorer le système EF Express SMART RAIL. Avec un microcontrôleur, les possibilités d'entrées et de sorties (signal/information entrant dans la carte et signal sortant de la carte) sont infinies. Nous utiliserons un capteur flexible et un potentiomètre comme entrées. Leurs sorties seront un message via un écran LCD et des lumières LED avec un buzzer, respectivement. Les améliorations que nous espérons mettre en œuvre dans le système SMART RAIL concernent l'amélioration de la sécurité du système. Prenez votre ordinateur portable et votre microcontrôleur, et commençons !
Étape 1: Logiciel et matériel
Logiciel requis
1.) MATLAB
- Vous devrez télécharger une version locale de MATLAB sur votre ordinateur. Allez sur mathworks.com et créez un compte MATHWORKS, téléchargez des fichiers et activez votre licence.
-Vous devez télécharger et installer TOUTES les boîtes à outils disponibles pour la dernière version (R2016a ou R2016b).
-Utilisateurs Mac: vous devez avoir OSX 10.9.5 ou une version ultérieure pour exécuter R2015b, il est possible d'exécuter une version antérieure de MATLAB.
2.) Paquet de support matériel Arduino:
-Installez le package de support matériel Arduino. Ouvrez MATLAB. Dans l'onglet Accueil de MATLAB, dans le menu Environnement, sélectionnez Add-Ons Get Hardware Support Packages Sélectionnez le "MATLAB Support Package for Arduino Hardware". Vous devrez vous connecter à votre compte MATHWORKS
-Si votre installation est interrompue et que vous rencontrez des échecs/erreurs successifs lors de l'installation du package matériel, recherchez et supprimez le dossier de téléchargement Arduino sur votre disque dur et recommencez depuis le début.
Les matériaux nécessaires
1.) Ordinateur portable ou de bureau
2.) Carte Arduino SparkFun
3.) Capteur Flex
4.) Potentiomètre
5.) Écran LCD
6.)Lumière LED
7.) Kit de l'inventeur SparkFun (Trouvez en ligne)
8.) Câble USB et mini USB
9.) Cavaliers
10.) Buzzer piézo
Étape 2: Connectez-vous à votre Arduino et déterminez le port COM
(Votre port COM peut changer à chaque connexion) Connectez le câble USB Arduino à votre ordinateur et le mini USB à votre carte Arduino. Vous devrez peut-être attendre quelques minutes pour que les pilotes se téléchargent.
Pour déterminer le port COM:
Sur PC
Méthode 1: Dans MATLAB, utilisez la commande - fopen(serial('nada'))
-pour déterminer votre port com. Vous pouvez obtenir une erreur comme celle-ci: Erreur lors de l'utilisation de serial/fopen (ligne 72) Échec de l'ouverture: Port: NADA n'est pas disponible. Ports disponibles: COM3. Cette erreur indique que votre port est 3.
-Si la méthode 1 échoue sur votre PC, ouvrez votre gestionnaire de périphériques et développez la liste des ports (COM et LPT). Notez le numéro sur le port série USB. par exemple. 'USB Serial Port(COM*)' Le numéro de port est le * ici.
-Si aucun port n'est affiché, fermez MATLAB et redémarrez votre ordinateur. Ouvrez MATLAB et réessayez fopen(serial('nada')).
-Si cela échoue, vous devrez peut-être télécharger les pilotes de SparkFun à partir du fichier CDM_v2.12.00_WHQL_Certified.exe, ouvrir et exécuter le fichier CDM_v2.12.00_WHQL_Certified.exe, puis sélectionner Extraire. (Vous devrez peut-être ouvrir le fichier à partir de l'explorateur, faire un clic droit et « Exécuter en tant qu'administrateur »).
-Dans la fenêtre de commande MATLAB, créez un objet Arduino - a=arduino('comx', 'uno'); % x est votre numéro de port ci-dessus pour les PC (pas de zéros précédents !)
Sur un Mac
Méthode 1: À partir de la ligne de commande MATLAB ou dans un terminal Mac et tapez: 'ls /dev/tty.*' Notez le numéro de port indiqué pour dev/tty.usbmodem* ou dev/tty.usbserial*. Le numéro de port est le * ici.
-Si la méthode 1 échoue sur votre MAC, vous devrez peut-être
-Quitter MATLAB
-Fermez le logiciel Arduino et débranchez le câble USB Arduino
-installer Java 6 Runtime
-installer l'extension du noyau du pilote USB
-Redémarrez votre ordinateur
-Reconnectez le câble USB Arduino
-Exécuté à partir de la ligne de commande MATLAB ou du terminal Mac: ls /dev/tty.*
-Notez le numéro de port indiqué pour dev/tty.usbmodem* ou dev/tty.usbserial*. Le numéro de port est le * ici.
-Dans la fenêtre de commande MATLAB, créez un objet Arduino - a=arduino('/dev/tty.usbserial*', 'uno'); % * est votre numéro de port ci-dessus pour les MAC, ou '/dev/tty.usbmodem*'
Étape 3: Code Matlab
Contributions:
1.) Capteur Flex
2.) Potentiomètre
Les sorties:
1.) Écran LCD avec message indiquant « Train Coming »
2.) Lumière LED
3.) Buzzer piézo
Dans cette étape, nous allons construire le code qui analysera les entrées de la carte Arduino et fournira des sorties basées sur les résultats de l'analyse de MATLAB. Le code suivant vous permettra d'effectuer plusieurs fonctions: au déclenchement du potentiomètre, le buzzer piézo émettra des fréquences alternées et la LED rouge clignotera. Lorsqu'un train n'est pas détecté, la LED verte s'allume. Lorsque le capteur Flex est déclenché, la LED de cupidité s'éteint, la LED rouge s'allume et l'écran LCD affiche un message indiquant « Train à venir ».
Code MATLAB:
%remery1, shornsb1, wmurrin
% Objectif: avertissement de train
%IEntrée: potentiomètre, capteur flexible
% sortie: lcd, son, lumière
%Si la carte n'est pas initialisée ou a des problèmes de connexion, exécutez le
% sous les commandes dans les commentaires. Ils n'ont pas besoin d'être exécutés à chaque fois
%tout effacer
%ferme tout
%clc
%a=arduino('/dev/tty.usbserial-DN01DXOM', 'uno');
%lcd = addon(a, 'ExampleLCD/LCDAddon', {'D7', 'D6', 'D5', 'D4', 'D3', 'D2'});
%Configurez la carte une fois qu'elle est connectée
configurePin(a, 'D8', 'pullup');%configure D8
configurePin(a, 'D9', 'PWM'); %configure D9
temps=50; %réglez l'heure à 50
clearLCD(lcd) %initialiser l'écran LCD
%Démarrer la boucle
pendant que le temps>0
La tension du capteur %Flex détermine si la lumière est verte ou si la lumière
%est rouge et l'écran LCD affiche "train à venir"
flex_status = readVoltage(a, 'A0'); % tension de lecture du capteur flexible
si flex_status>4 %si la tension est supérieure à 4, déclencher la boucle
writeDigitalPin(a, 'D12', 0) % éteint vert
writeDigitalPin(a, 'D11', 1) % allumer rouge
printLCD(lcd, 'Train Coming') % afficher "train coming" sur l'écran LCD
pause(5) %Attendez 5 secondes
clearLCD(lcd) %Effacer le message de l'écran LCD
writeDigitalPin(a, 'D11', 0) % Éteignez la LED rouge
autre
finir
pe_status = readVoltage(a, 'A2'); %Lire la tension du potentiomètre
si pe_status>2 %si la tension est supérieure à 2, déclencher la boucle
writeDigitalPin (a, 'D13', 1); % allumer la LED rouge
playTone(a, 'D9', 400,.25); % Lecture 400 Hz sur buzzer piézo,.25 sec
writeDigitalPin (a, 'D13', 0)% éteindre la LED rouge
pause(.25)% attendre.25 secondes
writeDigitalPin(a, 'D13', 1) %Repeat ci-dessus, avec buzzer à 200Hz
playTone(a, 'D9', 200,.25);
writeDigitalPin(a, 'D13', 0)
pause(.25)
writeDigitalPin(a, 'D13', 1);%Répéter ci-dessus
playTone(a, 'D9', 400,.25);
writeDigitalPin(a, 'D13', 0)
pause(.25)
writeDigitalPin(a, 'D13', 1)
playTone(a, 'D9', 200,.25);
writeDigitalPin(a, 'D13', 0)
pause(.25)
writeDigitalPin(a, 'D13', 1) %Répéter ci-dessus
playTone(a, 'D9', 400,.25);
writeDigitalPin(a, 'D13', 0)
pause(.25)
writeDigitalPin(a, 'D13', 1)
playTone(a, 'D9', 200,.25);
writeDigitalPin(a, 'D13', 0)
pause(.25)
writeDigitalPin(a, 'D13', 1) %Répéter ci-dessus
playTone(a, 'D9', 400,.25);
writeDigitalPin(a, 'D13', 0)
pause(.25)
writeDigitalPin(a, 'D13', 1)
playTone(a, 'D9', 200,.25);
writeDigitalPin(a, 'D13', 0)
pause(.25)
autre
writeDigitalPin (a, 'D12', 1)% si la tension est inférieure à 2, allumez la LED verte
writeDigitalPin (a, 'D13', 0) % de tour de la LED rouge
finir
finir
Étape 4: Câblage du capteur Flex
Les matériaux nécessaires
1.) 1 capteur Flex
2.) 1 résistance 10K Ohm
3.) 8 fils de cavalier
*Reportez-vous aux images, respectivement.
Dans ce circuit, nous allons mesurer le flex. Un capteur flexible utilise du carbone sur une bande de plastique pour agir comme une résistance variable, mais au lieu de changer la résistance en tournant un bouton, vous changez en fléchissant le composant. Un diviseur de tension pour détecter les changements de résistance. Dans notre cas, nous utiliserons le capteur flex pour détecter un train qui passe pour commander un écran LCD (voir photo) pour lire un message disant "Train Coming".
*Dans les images montrant les instructions pour le câblage d'un capteur Flex, reportez-vous uniquement aux fils relatifs au câblage du capteur Flex. Ne tenez pas compte du câblage du servo.
Câblez les broches comme suit:
Étape 1: Sur la carte Arduino dans la section POWER, branchez 1 fil dans l'entrée 5V et 1 fil dans l'entrée GND (masse). Branchez l'autre extrémité du fil 5V dans une entrée positive (+) sur le circuit imprimé. Branchez l'autre extrémité du fil GND dans une entrée négative (-) sur le circuit imprimé.
Étape 2: Sur la carte Arduino dans la section ANALOG IN, branchez 1 dans l'entrée A0. Branchez l'extrémité de ce fil dans l'entrée j20 sur le circuit imprimé.
Étape 3: Sur la carte Arduino dans la section DIGITAL I\O, branchez 1 fil dans l'entrée 9. Branchez l'autre extrémité dans l'entrée a3.
Étape 4: Sur le circuit imprimé, branchez 1 fil dans une entrée positive (+). Branchez l'autre extrémité sur l'entrée h24.
Étape 5: Sur le circuit imprimé, branchez 1 fil dans une entrée négative (+). Branchez l'autre extrémité dans l'entrée a2.
Étape 6: Sur le circuit imprimé, branchez 1 fil dans une entrée négative (-). Branchez l'autre extrémité dans l'entrée b1.
Étape 7: Sur le circuit imprimé, branchez 1 fil dans une entrée négative (-). Branchez l'autre extrémité dans l'entrée i19.
Étape 8: Sur le circuit imprimé, placez la résistance dans les entrées i20 et i24.
*La dernière image fait référence à des applications du monde réel.
Étape 5: connectez Arduino à l'écran LCD
* Suivez ce lien (https://ef.engr.utk.edu/ef230-2017-08/projects/ard…), puis reportez-vous aux étapes que j'ai fournies ci-dessous pour connecter un écran LCD à un Arduino:
Étape 1: Ouvrir le fichier zip
Étape 2: ouvrez le fichier LisezMoi et suivez les instructions
Les matériaux nécessaires
1.) Écran LCD 16x2 similaire à cet appareil de SparkFun -
2.) Cavaliers
*Reportez-vous aux images, respectivement.
Cette étape montrera comment créer une bibliothèque d'extensions LCD et afficher "Train Coming" sur un écran LCD.
Câblez les broches comme suit:
Broche LCD -> Broche Arduino
1 (VSS) -> Terre
2 (VDD) -> 5V
3 (V0) -> Broche médiane sur le capteur Flex
4 (RS) -> D7
5(R/W) -> Terre
6 (E) -> d6
11 (DB4) - D5 (PWM)
12 (DB5) -> D4
13 (DB6) -> D3 (PWM)
14 (DB7) -> D2
15 (LED+) -> 5 V
16 (LED-) -> Terre
Étape 6: connexion du potentiomètre souple
Les matériaux nécessaires
1.) 1 DEL
2.) 1 potentiomètre souple
3.) Fils de cavalier
4.) 3 330 Ohm Résistance
5.) Résistance 10K Ohm
*Reportez-vous aux images, respectivement.
Dans ce circuit, nous allons utiliser un autre type de résistance variable, un potentiomètre souple. Il s'agit d'une bande mince et flexible qui peut détecter où la pression est appliquée. En appuyant sur différentes parties de la bande, vous pouvez faire varier la résistance de 100 à 10 K ohms. Vous pouvez utiliser cette capacité pour suivre le mouvement sur le potentiomètre ou comme un bouton. Dans ce circuit, nous allons mettre en service le potentiomètre logiciel pour contrôler une LED RVB.
Étape 1: Sur la carte Arduino dans la section DIGITAL I\O, branchez 1 broche dans l'entrée 10 et 1 broche dans l'entrée 11. Respectivement, branchez l'autre extrémité de ces broches dans les entrées h6 et h7.
Étape 2: Sur le circuit imprimé, branchez la LED sur les entrées a4, a5, a6 et a7.
Étape 3: Sur le circuit imprimé, placez les résistances de 3 330 ohms dans les entrées e4-g4, e6-g6 et e7-g7.
Étape 4: Sur le circuit imprimé, branchez 1 broche dans l'entrée e5. Branchez l'autre extrémité de cette broche dans une entrée négative (-).
Étape 5: Sur le circuit imprimé, placez la résistance de 10K ohms dans les entrées i19-négatives (-).
Étape 6: Sur le circuit imprimé, branchez 1 broche dans j18. Branchez l'autre extrémité de cette broche dans une entrée positive (+).
Étape 7: Sur le circuit imprimé, branchez 1 broche dans l'entrée j20. Branchez l'autre extrémité de cette broche dans une entrée négative (-).
Étape 7: Testez vos améliorations sur un système de rail intelligent
À ce stade, votre code MATLAB doit être fonctionnel et la carte Arduino doit être connectée avec précision avec tous les composants ajoutés. Essayez-le sur un système Smart Rail certifié et voyez si vos améliorations rendent le système plus sûr.
Conseillé:
Prenez de superbes photos avec un iPhone : 9 étapes (avec photos)
Prenez de superbes photos avec un iPhone : la plupart d'entre nous ont un smartphone partout avec nous ces jours-ci, il est donc important de savoir comment utiliser l'appareil photo de votre smartphone pour prendre de superbes photos ! Je n'ai un smartphone que depuis quelques années et j'aime avoir un appareil photo décent pour documenter les choses que je
Plateforme avec des niveaux infinis sur GameGo avec Makecode Arcade : 5 étapes (avec photos)
Plateforme avec des niveaux infinis sur GameGo avec Makecode Arcade : GameGo est une console portable de jeu rétro compatible Microsoft Makecode développée par TinkerGen STEM education. Il est basé sur la puce STM32F401RET6 ARM Cortex M4 et est destiné aux éducateurs STEM ou simplement aux personnes qui aiment s'amuser à créer un jeu vidéo rétro
Balance intelligente bricolage avec réveil (avec Wi-Fi, ESP8266, Arduino IDE et Adafruit.io): 10 étapes (avec photos)
Balance intelligente bricolage avec réveil (avec Wi-Fi, ESP8266, Arduino IDE et Adafruit.io): Dans mon projet précédent, j'ai développé une balance de salle de bain intelligente avec Wi-Fi. Il peut mesurer le poids de l'utilisateur, l'afficher localement et l'envoyer vers le cloud. Vous pouvez obtenir plus de détails à ce sujet sur le lien ci-dessous : https://www.instructables.com/id/Wi-Fi-Smart-Scale-wi
Tapis avec capteurs/communication RF avec Arduino Micro : 4 étapes (avec photos)
Tapis avec capteurs/communication RF avec Arduino Micro : J'ai récemment terminé l'installation Tout aussi diversifiée, qui est composée d'une série de lampes qui réagissent aux capteurs placés dans un tapis sous les lampes. Voici comment j'ai fait le tapis avec des capteurs de pression. J'espère que vous trouverez ça utile.:)
Lancez votre diaporama de photos de vacances avec une touche de magie ! : 9 étapes (avec photos)
Lancez votre diaporama de photos de vacances avec une touche de magie ! : Au fil des ans, j'ai pris l'habitude d'emporter une petite figurine avec moi en voyage : j'achète souvent un petit artoy vierge (comme celui sur la photo) et je peins il correspond au drapeau et au thème du pays que je visite (dans ce cas, la Sicile). T