.
Mise à jour le 29/01/2020 : Rubrique traitant du module à 4 canaux permet de mesurer des tensions analogiques avec une précision de 16 bits. Il est basé sur un ADS1115 et communique avec un microcontrôleur via le bus I2C.
.
Mise à jour le 29/01/2020 : Rubrique traitant du module à 4 canaux permet de mesurer des tensions analogiques avec une précision de 16 bits. Il est basé sur un ADS1115 et communique avec un microcontrôleur via le bus I2C.
Mise à jour le 31/01/2018 – Rubrique traitant du capteur Lidar de chez Seeedstudio permettant de mesurer des distances de 0,3 à 12 mètres. Ce module communique avec un microcontrôleur type Arduino ou compatible via une liaison série TTL.
Description du capteur Lidar de chez Seeedstudio |
La mesure de distance est basée sur la méthode Time-Of-Flight ce qui permet de mesurer précisément les distances grâce à des impulsions infrarouges.
ToF est l’abréviation de la technologie Time of Flight, et son principe de fonctionnement est le suivant: une lumière infrarouge modulée est émise par le capteur et réfléchie par un objet; la distance à l’objet à photographier peut être convertie avec le capteur en calculant la différence de temps ou la différence de phase entre l’émission de lumière et la réflexion de la lumière, de façon à produire l’information de profondeur.
Remarque: ce module doit être raccordé à un port série physique d’une carte Arduino. Les cartes basés sur un ATMega328 (Uno par exemple) ne possèdent qu’un seul port série physique, l’utilisation de ce capteur supprime la possibilité d’un retour sur le moniteur série et nécessite l’utilisation d’un écran LCD par exemple. Pour un retour sur le moniteur série, vous devez utilisez par exemple une carte Arduino Mega ou Seeeduino Lite qui comportent plusieurs ports série physiques.
Informations constructeur sur : http://wiki.seeed.cc/Grove-TF_Mini_LiDAR/
Retour au sommaire . |
Logiciel – information constructeur – |
en cours
Octet | Interprétation de l’encodage des données |
Byte1 | 0x59, en-tête de trame |
Byte2 | 0x59, en-tête de trame |
Byte3 | |
Byte4 | |
Byte5 | |
Byte6 | |
Byte7 | Temps d’intégration. |
Byte8 | Octets réservés |
Byte9 | Parité de somme de contrôle |
Retour au sommaire . |
A savoir sur l’utilisation des informations :
Les informations sur les caractéristiques et spécificités du capteur lidar qui sont fournis sur cette page correspondent aux informations des fiches techniques du constructeur si malgré le soin apporté à la réalisation de cet article une erreur s’est glissée dans ces lignes nous ne pourrions en être tenu responsable.
Les programmes , schémas et autres que ceux donnés par le constructeur font parti des montages utiles à nos applications si malgré le soin apporté à nos montages une erreur s’est glissée dans ces lignes nous ne pourrions en être tenu responsable .
L’ensemble des informations techniques de cet article a été utilisé pour nos applications, elles vous sont fournies comme un exemple de document de travail. Mais nous ne pourrions être tenu responsables d’une mauvaise utilisation de celle-ci.
Retour au sommaire . |
Mise à jour le 20/09/2019 : C’est un support trois axes qui pourrait utiliser pour différentes réalisations. L’ensemble de ce projet a été réalisé pour que certaines pièces comme les cages des servomoteurs soient réutilisé dans d’autres applications.
Sommaire :
Présentation du projet . |
C’est un support trois axes qui pourrait utiliser pour différentes réalisations. L’ensemble de ce projet a été réalisé pour que certaines pièces comme les cages des servomoteurs soient réutilisé dans d’autres applications.
Retour au sommaire.
Nous pouvons aussi utiliser le servomoteur Hitec HS-645 MG en sachant que les 2 servo ne possèdent pas le même couple . Nous avons un couple de 4.7kg.cm pour le HS-422 et de 9.6kg.cm pour le HS-645 MG .
Retour au sommaire |
Retour au sommaire |
Retour au sommaire |
Retour au sommaire |
Retour au sommaire |
Retour au sommaire |
Ensemble des fichiers pour l’impression 3D. |
.
.
Temps d’impression pour un remplissage de 30% ⇒ 1h17mm.
Matière : PLA 16.62g (0.037lb)
Résolution : 0.2mm
.
Temps d’impression pour un remplissage de 30% ⇒ 2h57mm
Matière : PLA 46.54g (0.103lb)
Résolution : 0.2mm
.
Télechargement de : Pieces 003-Bras pour support 3 axes Retour au sommaire
.
.
Temps d’impression pour un remplissage de 30% ⇒ 1h06mm
Matière : PLA 14.43g (0.023lb)
Résolution : 0.2mm
.
Télechargement de : Piece 004-Cage servomoteur partie haute.
Retour au sommaire
.
Temps d’impression pour un remplissage de 30% ⇒ 00h21mm
Matière : PLA 6.64g (0.015lb)
Résolution : 0.2mm
.
Télechargement de : Piece 005-Support supérieure.
Retour au sommaire
Programme pour tester les limites mini et maxi du support 3 axes |
.
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 61 62 63 64 65 66 67 68 69 70 71 |
// // // /* * RedOhm * * * Essai et reglage des servomoteurs a l'aide * d'un potentiometre en vue de determiner les * limites min et max * * Le 27/08/2016 * H.Mazelin */ // Cette librairie permet à une carte Arduino de contrôler des servomoteurs #include <Servo.h> // Crée un objet de type "Servo", nommé -> monservo Servo monservo; // broche sur lequel est branche le potentiometre int brochepotar_de_position=2; // variable contenant la valeur de la potentiometre int valeur_potar_position; /* * Un programme Arduino doit impérativement contenir cette fonction * Elle ne sera exécuter une seule fois au démarrage du microcontroleur * Elle sert à configurer globalement les entrées sorties * */ void setup() { Serial.begin(9600); // associe le servomoteur a la broche 3 monservo.attach(3); } /* *Le programme principal s’exécute par une boucle infinie appelée Loop () * */ void loop() { // lecture de la valeur du potentiomètre (valeur entre 0 et 1023) valeur_potar_position=analogRead( brochepotar_de_position); // mise a l'échelle (valeur entre 5 et 180) // Ré-étalonne un nombre d'une fourchette de valeur vers une autre fourchette. // Ainsi, une valeur basse source sera étalonnée en une valeur basse de destination valeur_potar_position=map(valeur_potar_position,0,1023,5,180); // définit la position d'asservissement du servomoteur // en fonction de la valeur à l'échelle monservo.write(valeur_potar_position); Serial.println(valeur_potar_position); // Réalise une pause dans l'exécution du programme pour une durée // de 20 millisecondes // permettant au servomteur d'atteindre sa position delay(20); } |
.
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 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 |
/* * * * *RedOhm * * *Programme pour piloter separement chaque moteur du support *trois axes * *le 27/08/2016 * H-Mazelin */ // Cette librairie permet à une carte Arduino de contrôler des servomoteurs #include <Servo.h> // Crée un objet de type "Servo" pour la rotation de la base, nommé -> servobase Servo servobase; // Crée un objet de type "Servo" pour l'elevation du bras, nommé -> servobras Servo servobras; // Crée un objet de type "Servo" pour la rotation de la tete, nommé -> servotete Servo servotete; // broche sur lequel est branche le potentiometre servant a piloter le servobase int brochepotar_de_position_servobase=0; // variable contenant la valeur du potentiometre pour le servobase int valeur_potar_position_du_servobase; // broche sur lequel est branche le potentiometre servant a piloter le servobras int brochepotar_de_position_servobras=2; // variable contenant la valeur du potentiometre pour le servobras int valeur_potar_position_du_servobras; // broche sur lequel est branche le potentiometre servant a piloter le servotete int brochepotar_de_position_servotete=4; // variable contenant la valeur du potentiometre pour le servotete int valeur_potar_position_du_servotete; /* * Un programme Arduino doit impérativement contenir cette fonction * Elle ne sera exécuter une seule fois au démarrage du microcontroleur * Elle sert à configurer globalement les entrées sorties * */ void setup() { // initialisation de la connexion série // IMPORTANT : la fenêtre terminal côté PC doit être réglée sur la même valeur Serial.begin(9600); // associe le servomoteur servobase a la broche 3 servobase.attach(3); // associe le servomoteur servobras a la broche 4 servobras.attach(4); // associe le servomoteur servotete a la broche 5 servotete.attach(5); Serial.println("**********************************"); Serial.println("* *"); Serial.println("*support 3 axes *"); Serial.println("* operationnel *"); Serial.println("* *"); Serial.println("**********************************"); Serial.println(" "); //pause presentation delay (5000); } // Le programme principal s’exécute par une boucle infinie appelée Loop () void loop() { /* * * traitement pour la position de la base */ // lecture de la valeur du potentiomètre (valeur entre 0 et 1023) valeur_potar_position_du_servobase=analogRead( brochepotar_de_position_servobase); // mise a l'échelle (valeur entre 5 et 180) // Ré-étalonne un nombre d'une fourchette de valeur vers une autre fourchette. // Ainsi, une valeur basse source sera étalonnée en une valeur basse de destination valeur_potar_position_du_servobase=map(valeur_potar_position_du_servobase,0,1023,5,180); // définit la position d'asservissement du servomoteur // en fonction de la valeur à l'échelle servobase.write(valeur_potar_position_du_servobase); // affiche le texte d'information sans retour a la ligne Serial.print("position actuelle de la base -> "); // affiche la valeur de la position de la base avec retour a la ligne Serial.println(valeur_potar_position_du_servobase); // Réalise une pause dans l'exécution du programme pour une durée // de 20 millisecondes // permettant au servomteur d'atteindre sa position delay(20); /* * * traitement pour la position du bras */ // lecture de la valeur du potentiomètre (valeur entre 0 et 1023) valeur_potar_position_du_servobras=analogRead(brochepotar_de_position_servobras); // mise a l'échelle (valeur entre 5 et 180) // Ré-étalonne un nombre d'une fourchette de valeur vers une autre fourchette. // Ainsi, une valeur basse source sera étalonnée en une valeur basse de destination valeur_potar_position_du_servobras=map(valeur_potar_position_du_servobras,0,1023,54,120); // définit la position d'asservissement du servomoteur // en fonction de la valeur à l'échelle servobras.write(valeur_potar_position_du_servobras); // affiche le texte d'information sans retour a la ligne Serial.print("position actuelle du bras -> "); // affiche la valeur de la position du bras avec retour a la ligne Serial.println(valeur_potar_position_du_servobras); // Réalise une pause dans l'exécution du programme pour une durée // de 20 millisecondes // permettant au servomteur d'atteindre sa position delay(20); /* * * traitement pour la position de la tete */ // lecture de la valeur du potentiomètre (valeur entre 0 et 1023) valeur_potar_position_du_servotete=analogRead(brochepotar_de_position_servotete); // mise a l'échelle (valeur entre 5 et 180) // Ré-étalonne un nombre d'une fourchette de valeur vers une autre fourchette. // Ainsi, une valeur basse source sera étalonnée en une valeur basse de destination valeur_potar_position_du_servotete=map( valeur_potar_position_du_servotete,0,1023,5,180); // définit la position d'asservissement du servomoteur // en fonction de la valeur à l'échelle servotete.write( valeur_potar_position_du_servotete); // affiche le texte d'information sans retour a la ligne Serial.print("position actuelle de la tete -> "); // affiche la valeur de la position de la tete avec retour a la ligne Serial.println( valeur_potar_position_du_servotete); // Réalise une pause dans l'exécution du programme pour une durée // de 20 millisecondes // permettant au servomteur d'atteindre sa position delay(20); } |
Retour au sommaire |