On va construire une imprimante traceur de dessin qui est un dispositif simple et efficace pour reproduire des dessins ou du texte sur une feuille de papier en utilisant un stylo fixé sur un système de déplacement contrôlé.
L’ensemble du système repose sur une carte Arduino UNO, deux moteurs pas à pas, une carte CNC et un module Bluetooth pour une communication sans fil.
- Mouvement contrôlé sur deux axes (X et Y) : Les moteurs pas à pas permettent au stylo de dessiner avec précision sur une feuille de papier.
- Communication Bluetooth : Grâce au module HC-06, l'imprimante peut être commandée à distance via un smartphone ou un ordinateur, rendant son utilisation flexible et pratique.
- Application personnalisée : Une application intuitive créée avec MIT App Inventor permet à l'utilisateur d'envoyer des commandes ou du contenu à l'imprimante.
Dans ce projet on va construire une imprimante recevant les données à imprimer par Bluetooth.
- Cette imprimante est commandée par la carte Arduino UNO par l’intermédiaire de la carte CNC Shield.
- Elle contient aussi deux moteurs pas à pas responsable de déplacer le stylo suivant les deux axes (x) et (y) et un servomoteur qui fait monter ou baisser le stylo.
- En plus, cette imprimante utilise le module Bluetooth HC-06 pour recevoir le texte à imprimer par le Smartphone.
Carte Arduino UNO :
Le microcontrôleur principal qui exécute le programme de contrôle des moteurs pas à pas et interprète les commandes reçues via Bluetooth.
Deux moteurs pas à pas (17HS4401) :
Ces moteurs contrôlent les mouvements des axes X et Y avec précision. Ils sont utilisés pour déplacer le stylo sur la feuille.
Carte CNC Shield V3 :
Une carte d’extension pour Arduino qui facilite le contrôle des moteurs pas à pas via des drivers (A4988 ou DRV8825). Elle simplifie également les connexions électriques.
Drivers de moteurs pas à pas (A4988 ou DRV8825) :
Ces modules pilotent les moteurs pas à pas en ajustant le courant et en générant des signaux précis pour leur fonctionnement.
Module Bluetooth HC-06 :
Ce module permet une communication sans fil entre l'imprimante et un appareil externe (smartphone, ordinateur). Il reçoit les commandes et les transmet à l'Arduino.
Stylo :
Fixé sur le système de déplacement, il est utilisé pour dessiner ou écrire sur une feuille de papier.
Rails linéaires et courroies :
Permettent de guider les mouvements des axes X et Y, assurant un déplacement fluide et précis du stylo.
Servomoteur:
Le servomoteur est utilisé pour lever et abaisser le stylo automatiquement.
Structure mécanique :
Une structure en bois qui sert à supporter les moteurs pas à pas, les rails linéaires, et le plateau de dessin.
Module d’alimentation 3.3V/5V
Un module d’alimentation 3.3V/5V est un module de conversion de tension qui permet de fournir une tension de 3,3V ou de 5V à un circuit électronique. Il est utilisé pour alimenter le module Bluetooth HC-06.
1- Pour le servomoteur on connecte:
le fil rouge à la broche 5v de la carte CNC
le file noir à GND de la carte CNC
le file jaune à la broche A4 de la carte CNC
2- Pour le module bluetooth HC-06 on connecte:
la broche VCC à 5V du module de l’alimentation
la broche GND à GND de la carte CNC
la broche TXD à la broche RX de carte CNC
la broche RXD à la broche TX de la carte CNC
Montage mécanique :
Construire une structure robuste pour supporter les rails linéaires, les moteurs pas à pas, et le stylo.
Installer les moteurs pas à pas sur les axes X et Y avec les courroies pour assurer le mouvement.
Fixer un support pour le stylo qui puisse le maintenir fermement tout en permettant son déplacement.
Voici le programme qui permet de connecter la carte Arduino au smartphone et de recevoir des messages par Bluetooth afin de l’imprimer sur papiers.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 |
#include "printer.h" #include <SoftwareSerial.h> SoftwareSerial hc06(0,1); Servo myservo; // create servo object to control a servo String mot=""; void setup() { //Serial.begin(9600); hc06.begin(9600); myservo.attach(A4); pinMode(enPin, OUTPUT); digitalWrite(enPin, LOW); pinMode(stepPin, OUTPUT); pinMode(dirPin, OUTPUT); pinMode(stepPinx, OUTPUT); pinMode(dirPinx, OUTPUT); //Serial.println(F("CNC Shield Initialized")); //draw_9(myservo); myservo.write(120); delay(1000); // translationX(LOW,HIGH,5000); } void loop() { while (hc06.available()>0){ //Serial.write(hc06.read()); mot+=(char)hc06.read(); // recevoir des donnees du module bluettoth hc-06 //draw_espace(myservo); } if (mot!=""){ // Serial.println(strcmp(mot[0],'a')); for(int i =0; i < mot.length(); i++ ) { // Serial.println(mot[i]); if (mot[i]=='a') {draw_a(myservo); }// imprimer la lettre a if (mot[i]=='b') draw_b(myservo); // imprimer la lettre b if (mot[i]=='c') draw_c(myservo); if (mot[i]=='d') draw_d(myservo); if (mot[i]=='e') draw_e(myservo); if (mot[i]=='f') draw_f(myservo); if (mot[i]=='g') draw_g(myservo); if (mot[i]=='h') draw_h(myservo); if (mot[i]=='i') draw_i(myservo); if (mot[i]=='j') draw_j(myservo); if (mot[i]=='k') draw_k(myservo); if (mot[i]=='l') draw_l(myservo); if (mot[i]=='m') draw_m(myservo); if (mot[i]=='n') draw_n(myservo); if (mot[i]=='o') draw_o(myservo); if (mot[i]=='p') draw_p(myservo); if (mot[i]=='q') draw_q(myservo); if (mot[i]=='r') draw_r(myservo); if (mot[i]=='s') draw_s(myservo); if (mot[i]=='t') draw_t(myservo); if (mot[i]=='u') draw_u(myservo); if (mot[i]=='v') draw_v(myservo); if (mot[i]=='w') draw_w(myservo); if (mot[i]=='x') draw_x(myservo); if (mot[i]=='y') draw_y(myservo); if (mot[i]=='z') draw_z(myservo); if (mot[i]=='0') draw_0(myservo); if (mot[i]=='1') draw_1(myservo); if (mot[i]=='2') draw_2(myservo); if (mot[i]=='3') draw_3(myservo); if (mot[i]=='4') draw_4(myservo); if (mot[i]=='5') draw_6(myservo); if (mot[i]=='6') draw_6(myservo); if (mot[i]=='7') draw_7(myservo); if (mot[i]=='8') draw_8(myservo); if (mot[i]=='9') draw_9(myservo); if (mot[i]==' ') draw_espace(myservo); } mot=""; } delay(100); } |
a- Dans la partie Design de l'App Inventor :
On utiliser MIT App Inventor pour créer une application qui dispose d'une interface utilisateur simple (exemple : zones de saisie pour le texte, boutons pour envoyer des données, etc.).
b- Dans la partie bloc (programme) de l'App Inventor :
1- - À partir d'Android 12, les autorisations Bluetooth ont été renforcées pour améliorer la sécurité et la protection des données des utilisateurs. C'est pour cela on doit déclarer les autorisations dont votre application a besoin dans le fichier AndroidManifest.xml. Pour Bluetooth, vous devrez inclure les autorisations ACCESS_FINE_LOCATION, BLUETOOTH_SCAN, et éventuellement BLUETOOTH_CONNECT, en fonction des fonctionnalités que vous utilisez.
- Dans les blocs de l'application, utilisez ces blocs de programmation pour connecter le Smartphone à la carte Arduino via le module Bluetooth HC-06.
2- Utilisez ces blocs de programmation pour Envoyer du texte ou des instructions via Bluetooth.
Télécharger le projetTélécharger le fichier apk
La robotique éducative joue un rôle important dans l'éducation des enfants et des jeunes en les aidant à acquérir des compétences en science et technologie.
Dans ce cadre notre site web représente une excellente ressource pour les parents, les enseignants et les enfants qui souhaitent découvrir la robotique.
Zaouiet Kontech-Jemmel-Monastir-Tunisie
+216 92 886 231
medaliprof@gmail.com
Site robotique réalisé par Mohamed Ali-Prof Info