Table des matières:
- Fournitures
- Étape 1: Comment ça marche…
- Étape 2: Téléchargement du code
- Étape 3: Bibliothèques requises:
- Étape 4: les connexions
- Étape 5: gifler le tout ensemble
- Étape 6: Autres améliorations:
Vidéo: Un robot qui dit si un fournisseur d'électronique vous trompe ou non : 6 étapes
2024 Auteur: John Day | [email protected]. Dernière modifié: 2024-01-30 09:05
L'année dernière, mon père et moi sommes allés dans un nouveau magasin de robotique/électronique très proche de chez nous. Lorsque j'y suis entré, il était plein d'électronique, de serovs, de capteurs, de Raspberry Pis et d'Arduinos. Le lendemain, nous sommes allés dans le même magasin et avons acheté de nombreux senors et 3 Arduinos d'une valeur d'environ 150 USD. Dès que je suis rentré chez moi, aucun autre produit n'a fonctionné à l'exception de l'Arduino Mega. Nous avons été arnaqués pour environ 130 USD, ce qui est beaucoup.
J'ai donc décidé de créer un robot qui peut tester environ 12 capteurs et 2 moteurs (toujours fonctionnant sur le servo) et peut déterminer si le produit est défectueux.
Allons-y directement !
Fournitures
1. Arduino UNO
2. Écran tactile TFT 2,4"
3. couple de cavaliers
4. capteurs et moteurs pour que vous puissiez les tester (ici j'ai utilisé - Capteur de mouvement, capteur de gaz MQ6, capteur de son, potentiomètre et capteur de niveau d'eau)
Étape 1: Comment ça marche…
J'ai programmé un Arduino pour créer une interface utilisateur interactive avec un écran TFT. Comme nous le savons, l'écran TFT n'a qu'une seule broche libre, c'est-à-dire la broche A5. (si vous utilisez l'ONU). Ainsi, tout capteur qui utilise des broches analogiques pour lire les données est compatible avec cette configuration…
Dans l'interface utilisateur, vous pouvez modifier la couleur de l'arrière-plan du bureau et ouvrir l'application que j'ai développée pour Arduino afin de tester les capteurs.
À l'ouverture de l'application, vous pouvez voir 2 options, INPUT et OUTPUT. donc si vous cliquez sur Entrée, il affiche 4 capteurs (il est compatible avec 12, mais je ne l'ai pas encore programmé car j'ai des examens qui approchent… pas le temps:(. Tout le monde est libre de modifier le code…)
Et il peut également vérifier si le servomoteur fonctionne si vous le connectez dans la fente.
regarde:
Étape 2: Téléchargement du code
Le code est un programme de 600 lignes que j'ai méticuleusement codé en 50 heures environ. Il a quelques bugs alors veuillez le modifier et me l'envoyer dans mon courrier ([email protected]).
Téléchargez le code et connectez le shield TFT à l'Arduino. Je vous recommande de jouer avec l'interface utilisateur afin de mieux la maîtriser.
Le code:
#comprendre
#include #include #include #define LCD_CS A3 #define LCD_CD A2 #define LCD_WR A1 #define LCD_RD A0 #define LCD_RESET A4 #define BLACK 0x0000 #define BLUE 0x001F #define MARINE 0x000F #define RED 0xF800 #define GREEN 0define 0x07E0 #define MAGENTA 0xF81F #define YELLOW 0xFFE0 #define WHITE 0xFFFF #define LIGHTGREY 0xC618 #define VIOLET 0x780F #define OLIVE 0x7BE0 #define Selection #define YP A1 #define XM A2 #define YMTS 7 #define_ 6 #define_MINTS 160 #définir TS_MAXX 160 #définir TS_MAXY 970 Écran tactile ts = Écran tactile(XP, YP, XM, YM, 300); Adafruit_TFTLCD tft (LCD_CS, LCD_CD, LCD_WR, LCD_RD, LCD_RESET); #define BOXSIZE 40 #define PENRADIUS 3 #define MINPRESSURE 10 #define MAXPRESSURE 1000 int sound; état du caractère = 6; touche int = 0; couleur int = NOIR; rédir int = 0; int ota; void setup() { Serial.begin(9600); tft.reset(); tft.setFont(&FreeMonoBoldOblique12pt7b); tft.begin (0x9325); tft.setRotation(45); tft.setTextSize(0.5); tft.fillScreen(BLANC); tft.setCursor(60, 160); tft.setTextColor(NOIR); tft.print("Balayez pour vous connecter"); } void loop() { float sensorVoltage; float sensorValue; TSPoint p = ts.getPoint(); pinMode(XM, SORTIE); pinMode(YP, SORTIE); if (pz > MINPRESSURE && pz 240 && px 130 && py 240 && px 20 && py 240 && px 20 && py 160 && px 12 && py 240 && px 20 && py 240 && px 20 && py 40 && px 15 && py 150 && px 40 && py 150 && px 80 && py 150 && px 120 && py 150 && px 170 && py 90 && px 40 && py 90 && px 80 && py 90 && px 120 && py 150 && px 170 && py 150 && px 170 && py 150 && px 170 && py 150 && px 170 && py 150 && px 170 && py 100 && px 20 && py 200 && px 100 && py 100 && px 20 && py 100 && px 20 && py 100 && px 20 && py < 100) { toucher = 26; } } if (touchez == 1 && state == 6) { tft.setRotation(0); tft.fillScreen(couleur); son = 0; tft.fillRect(200, 180, 80, 140, BLANC); tft.drawRect(201, 181, 81, 141, NOIR); tft.fillRect(80, 30, 100, 100, CYAN); tft.drawRect(81, 31, 101, 101, NOIR); tft.fillRect(10, 30, 50, 100, MARINE); tft.drawRect(11, 31, 51, 101, NOIR); tft.fillRect (10, 180, 30, 120, VIOLET); tft.drawRect(11, 181, 31, 121, NOIR); tft.fillRect(45, 180, 30, 120, BLEU); tft.drawRect(46, 181, 31, 121, NOIR); tft.fillRect(80, 180, 30, 120, CYAN); tft.drawRect(81, 181, 31, 121, NOIR); tft.fillRect(115, 180, 30, 120, VERT); tft.drawRect(116, 181, 31, 121, NOIR); tft.fillRect(150, 180, 30, 120, JAUNE); tft.drawRect(151, 181, 31, 121, NOIR); tft.fillTriangle (210, 30, 210, 50, 220, 40, BLANC); tft.fillRect(200, 35, 12, 12, BLANC); tft.drawTriangle (210, 30, 210, 50, 220, 40, NOIR); tft.drawRect(200, 35, 12, 12, NOIR); tft.drawCircle (210, 40, 14, BLANC); //tft.fillTriange(a1, b1, a2, b2, c1, c2, RED); tft.setRotation(45); tft.setCursor(200, 20); tft.print("Paramètres"); tft.fillRoundRect(45, 75, 75, 75, 4, BLANC); tft.drawRoundRect(45, 75, 75, 75, 4, NOIR); tft.fillRect(75, 75, 15, 30, NOIR); tft.fillRect(75, 120, 15, 30, NOIR); tft.fillRect(90, 105, 30, 15, NOIR); tft.fillRect(45, 105, 30, 15, NOIR); état = 7; toucher = 0; ota = 0; } if (touchez == 2) { tft.fillScreen(WHITE); tft.setRotation(0); tft.fillTriangle (210, 30, 210, 50, 220, 40, BLANC); tft.fillRect(200, 35, 12, 12, BLANC); tft.drawTriangle (210, 30, 210, 50, 220, 40, NOIR); tft.drawRect(200, 35, 12, 12, NOIR); tft.drawCircle (210, 40, 14, NOIR); tft.setRotation(45); tft.fillTriangle (270, 40, 270, 20, 260, 30, NOIR); tft.drawLine(300, 30, 270, 30, NOIR); tft.setCursor(20, 200); tft.print("personnalisation"); tft.setCursor(20, 170); tft.print("déconnexion"); tft.setCursor(20, 140); tft.print("périphériques"); tft.setCursor(20, 110); tft.print("À propos"); toucher = 1; état = 2; } if (touchez == 10 && state == 2){ tft.fillScreen(WHITE); tft.setCursor (10, 160); tft.setTextColor(NOIR); tft.print("Créé et développé"); tft.setCursor(100, 190); tft.print("par:"); tft.setCursor(60, 220); tft.print("Un adolescent d'Inde"); tft.setRotation(0); tft.fillTriangle (210, 30, 210, 50, 220, 40, BLANC); tft.fillRect(200, 35, 12, 12, BLANC); tft.drawTriangle (210, 30, 210, 50, 220, 40, NOIR); tft.drawRect(200, 35, 12, 12, NOIR); tft.drawCircle (210, 40, 14, NOIR); tft.setRotation(45); tft.fillTriangle (270, 40, 270, 20, 260, 30, NOIR); tft.drawLine(300, 30, 270, 30, NOIR); état = 6; } if (touchez == 11 && state == 2){ tft.fillScreen(WHITE); tft.setCursor(60, 40); tft.print("Choisissez un"); tft.setCursor (40, 60); tft.print("couleur de fond"); tft.fillRect(60, 180, 45, 45, ROUGE); tft.fillRect(120, 180, 45, 45, JAUNE); tft.fillRect(180, 180, 45, 45, BLEU); tft.fillRect(240, 180, 45, 45, VERT); tft.fillRect(60, 130, 45, 45, MAGENTA); tft.fillRect(120, 130, 45, 45, MARINE); tft.fillRect(180, 130, 45, 45, GRIS CLAIR); tft.fillRect(240, 130, 45, 45, CYAN); tft.fillRect(60, 80, 45, 45, BLANC); tft.drawRect(60, 80, 45, 45, NOIR); tft.fillRect(120, 80, 45, 45, NOIR); tft.fillRect(180, 80, 45, 45, OLIVE); tft.fillRect(240, 80, 45, 45, VIOLET); tft.setRotation(0); tft.fillTriangle (210, 30, 210, 50, 220, 40, BLANC); tft.fillRect(200, 35, 12, 12, BLANC); tft.drawTriangle (210, 30, 210, 50, 220, 40, NOIR); tft.drawRect(200, 35, 12, 12, NOIR); tft.drawCircle (210, 40, 14, NOIR); tft.setRotation(45); tft.fillTriangle (270, 40, 270, 20, 260, 30, NOIR); tft.drawLine(300, 30, 270, 30, NOIR); état = 6; if (redir == 1){ color = WHITE; } if (redir == 2){ color = BLACK; } if (redir == 3){ color = OLIVE; } if (redir == 4){ couleur = VIOLET; } if (redir == 5){ color = MAGENTA; } if (redir == 6){ color = NAVY; } if (redir == 7){ color = GRIS CLAIR; } if (redir == 8){ color = CYAN; } if (redir == 9){ color = RED; } if (redir == 10){ color = JAUNE; } if (redir == 11){ color = BLUE; } if (redir == 12){ color = GREEN; } } if (touchez == 26){ ota = 1; tft.fillScreen(BLANC); tft.setRotation(0); tft.fillTriangle (210, 30, 210, 50, 220, 40, BLANC); tft.fillRect(200, 35, 12, 12, BLANC); tft.drawTriangle (210, 30, 210, 50, 220, 40, NOIR); tft.drawRect(200, 35, 12, 12, NOIR); tft.drawCircle (210, 40, 14, NOIR); tft.setRotation(45); tft.fillTriangle (270, 40, 270, 20, 260, 30, NOIR); tft.drawLine(300, 30, 270, 30, NOIR); tft.setRotation(1); tft.setCursor(30, 80); tft.print("Entrée"); tft.setCursor(30, 150); tft.print("Sortie"); tft.drawRect (25, 130, 90, 30, NOIR); tft.drawRect (25, 60, 90, 30, NOIR); if (p.x > 190 && p.x 30 && p.y < 90){ tft.setCursor(150, 220); tft.print("Niveau d'eau"); tft.setCursor(150, 170); tft.print("Niveau de gaz"); tft.setCursor(150, 120); tft.print("Distance "); tft.setCursor(150, 70); tft.print("Son"); toucher = 1; état = 2; } } } while (son == 1){ tft.fillScreen(WHITE); sensorValue = analogRead(A5); sensorVoltage = sensorValue; tft.setCursor(60, 160); tft.print(sensorVoltage); Serial.println("Niveau sonore = "); Serial.println(sensorVoltage); retard(1000); if (son == 0){ break; } } } }
Étape 3: Bibliothèques requises:
- Adafruit_GFX.h
- Adafruit_TFTLCD.h
- Écran tactile.h
Liens Github pour le même:
github.com/adafruit/Adafruit-GFX-Library
github.com/adafruit/TFTLCD-Library
github.com/adafruit/Adafruit_TouchScreen
Étape 4: les connexions
Vous avez besoin de 6 cavaliers. 3 mâles et 3 femelles. soudez-les directement à la carte Arduino comme ceci:
Étape 5: gifler le tout ensemble
Rentrez les fils dans l'arduino (voir l'image), utilisez un pistolet à colle si nécessaire…
Fixez ensuite le blindage TFT puis testez vos capteurs.
Merci d'avoir fait défiler jusqu'en bas. Assurez-vous de voter pour moi si vous pensez que ce projet est unique et utile
Bonne fabrication et méfiez-vous des escrocs électroniques ?
Étape 6: Autres améliorations:
- Plus de compatibilité des capteurs
- Le code du servomoteur devait être terminé
- Une autre application qui peut s'interfacer avec des modules Bluetooth afin que nous puissions contrôler un robot alimenté par Bluetooth.
- Corrections de bugs
Conseillé:
ANTIDISTRACTION : le support pour smartphone qui vous aide à vous concentrer : 7 étapes (avec photos)
ANTIDISTRACTION : le support pour smartphone qui vous aide à vous concentrer : notre dispositif ANTIDISTRACTION vise à mettre fin à toutes les formes de distraction cellulaire pendant les périodes de concentration intense. La machine agit comme une station de charge sur laquelle un appareil mobile est monté afin de faciliter un environnement sans distraction
Masque Covid-19 qui vous crie dessus si vous touchez votre visage : 4 étapes
Masque Covid-19 qui vous crie dessus si vous touchez votre visage : vous ne pouvez pas arrêter de vous toucher le visage ? Collez ces appareils électroniques sur un masque que vous avez et on vous rappellera constamment de ne pas le faire
Démontage du signe solaire Ring : je me suis trompé pour que vous n'ayez pas à le faire : 11 étapes
Démontage du signe solaire Ring : je l'ai mal fait pour que vous n'ayez pas à le faire : j'ai une sonnette Ring, ce qui est assez génial. Yay for Ring.Puis j'ai eu une caméra Ring Stick-up quand toutes les ventes en ligne autour de Thanksgiving se déroulaient. 50 $ de rabais, et ils m'ont envoyé ce joli signe solaire Ring GRATUITEMENT (valeur de 49 $ seulement !). Je suis sûr que
Comment obtenir de la musique à partir de PRESQUE N'IMPORTE QUEL (Haha) site Web (tant que vous pouvez l'entendre, vous pouvez l'obtenir Ok très bien s'il est intégré dans Flash, vous ne pourrez peut-être pas) ÉDITÉ !!!!! Informations ajoutées : 4 étapes
Comment obtenir de la musique à partir de PRESQUE N'IMPORTE QUEL (Haha) site Web (tant que vous pouvez l'entendre, vous pouvez l'obtenir… Ok très bien s'il est intégré dans Flash, vous ne pourrez peut-être pas) ÉDITÉ !!!!! Informations supplémentaires : si jamais vous allez sur un site Web et qu'il joue une chanson que vous aimez et que vous voulez, voici l'instructable pour vous pas de ma faute si vous gâchez quelque chose (la seule façon dont cela se produira est si vous commencez à supprimer des éléments sans raison ) J'ai pu obtenir de la musique pour
Comment restaurer les dossiers ouverts lorsque vous vous reconnectez après vous être déconnecté : 5 étapes
Comment restaurer les dossiers ouverts lorsque vous vous reconnectez après vous être déconnecté : Bon, voici la situation, vous utilisez l'ordinateur avec beaucoup, beaucoup de vos dossiers ouverts… Ensuite, votre mère est rentrée à la maison plus tôt que prévu ! Vous savez parfaitement que si elle vous surprend en train d'utiliser l'ordinateur, alors que vous devriez être au lit car