Aller au contenu


Kylzar

Inscrit(e) (le) 28 oct. 2019
Déconnecté Dernière activité juil. 24 2022 11:52
-----

Sujets que j'ai initiés

Comportement Dynamixel AX-12

22 septembre 2020 - 02:19

Bonjour,

J'essaie de faire fonctionner un moteur Dynamixel AX-12. Pour cela j'utilise la librairie <DynamixelSerial.h>. Démarrant par des consignes simples j'essaie simplement de faire aller le moteur d'une position à une autre à une vitesse contrôlée.

 

Voici le code que j'utilise :

 

Au début mon moteur se comporte normalement et fait bien des allers retours, cependant au bout d'un certain temps il se met à se "secouer" sans respecter aucun delay. Le moteur se "secoue" sur quelques degrés autour d'une position fixe ( et qui semble aléatoire car la position change à chaque fois que l'on OFF/ON).

 

Si quelqu'un a une idée à quoi cela peut être dût ? Je soupçonne le  Baudrate qui m'a également posé problèmes lors de mes tests précédents.

 

Merci d'avance !  


Test de 3 HC-12

03 mars 2020 - 12:07

Bonjour à tous, l'objectif du jour est de pouvoir faire communiquer une carte Arduino Uno, Arduino Mega et Arduino Nano ensemble !

Petite contrainte supplémentaire : La carte Uno ne doit écrire qu'a la MEGA, la MEGA n'écrit qu'a la Nano, et enfin la Nano n'écrit qu'a la UNO ! 

Fichier joint  cercle.PNG   193,38 Ko   86 téléchargement(s)

1er étape : Cabler mes différents capteurs

 

Comme indiqué dans la fiche produit du capteur, je peux brancher mes capteurs HC-12 de manière classique pour la UNO et la NANO :

VCC : 3.3V | GND : GND  | RXD : 4 | TXD : 5 | SET : 6

  Fichier joint  montage HC-12.PNG   78,85 Ko   92 téléchargement(s) Fichier joint  IMG_20200303_111841.jpg   113,48 Ko   90 téléchargement(s)

Note : J'utilise un shield sur la Nano qui n'est pas obligatoire

De même comme il est précisé dans le code du HC-12 pour l'Arduino Mega les Pins RXD et TXD sont imposées, on a donc :

VCC : 3.3V  | GND : GND | RXD : 46 | TXD : 48 

Fichier joint  IMG_20200303_111904.jpg   126,45 Ko   90 téléchargement(s)

 

2éme étape : Mise en place du code

 

Grâce aux codes fournis dans la fiche produit, je compile les codes avec la librairie "SoftWareSerial" pour l'Arduino Uno et Nano, et le code avec la librairie 

"AltSoftSerial" pour l'Arduino Mega.

Ainsi mes cartes communiquent entre elles : 

- 1 message envoyé depuis la UNO : reçu par la MEGA et la Nano

- 1 message envoyé depuis la MEGA : reçu par la UNO et la Nano

- 1 message envoyé depuis la Nano : reçu par la MEGA et la UNO

 

3éme étape : Communication deux à deux

 

Afin de s'adresser à un capteur HC-12 précis, il est possible de choisir un channel précis ! Pour ce faire il faut utiliser le mode AT.

Afin d'accéder à ce mode, il faut brancher "SET" sur la masse (GND) de vos Arduino.

Commandes existantes :

Vérification du mode : AT --> Renvoie OK (Permet de s'assurer que l'on se trouve dans le mode).

Afficher le Setup : AT+RX à Renvoie les paramètres

Choix du Baudrate : AT + B.... -->  Renvoie OK+B.... Exemple: Si je veux le BaudRate 9600 je commande : AT+B9600, le moniteur répondra OK+B9600.

Choix du Channel : AT+C... --> Renvoie OK+C... Je peux choisir un channel de 001 à 100.

Choix du Mode : OK+FU. --> Renvoie OK+FU. Je peux choisir le mode de 1 à 4 (Le mode de communication classique est le FU3)

Choix du Niveau de communication : OK+P. --> Renvoie OK+P. Choix du niveau ce qui influence la puissance de transmission Fichier joint  lvlpuissance.PNG   81,46 Ko   86 téléchargement(s)

 

Cas d'application : Si je laisse le channel par défault (1) sur l'Arduino MEGA, et place sur le Channel 2 (AT+C002) l'Arduino Uno et Nano : 

- 1 message envoyé par la MEGA : Reçu par aucune des cartes

- 1 message envoyé par la Nano : Reçu par la UNO uniquement

- 1 message envoué par la UNO : Reçu par la Nano uniquement

 

4éme étape : Atteindre notre objectif !

 

Maintenant que l'on sait communiquer à un channel précis, il reste à automatisé le changement de channel, afin de pouvoir recevoir un message sur un channel et l'envoyer sur un autre channel !

Si on résume les étapes pour changer de channel à partir du mode émission : il faut brancher le SET sur la masse, et envoyé la commande de changement de channel (AT+C...).

Pour ce faire, nous allons brancher le SET sur une Pin Digital que nous feront passer de l'état haut pour l'émission, à l'état bas pour le changement de mode ! Il ne nous restera qu'a écrire dans le Serial la commande souhaité. 

Établissons alors les channels des communications que nous allons utiliser : 

Fichier joint  cercle channel.PNG   197,38 Ko   93 téléchargement(s)

Et maintenant traduisons cela dans le code :

(Pour la Nano et la UNO)

(Pour la MEGA)

 

Fonctionnement du code : Grâce au switch case, je peux choisir de paramétrer ma carte. Pour y accéder je n'ai qu'a rentrer "$", je peux ensuite rentrer ma commande. Exemple : $p --> affiche les paramètres, $3ac --> Rentre 3 dans channel, affichage 3 et rentre dans la channel 3 du HC12.

 

Alors je vous montrerai le résultat mais en testant le programme, nous avons très vite constaté que le HC-12 est plutôt lent, et qu'il est nécessaire d'appliquer des delay (enfin des safe-delay) afin de laisser les trams de réponses arriver sans être perturbées.

Le programme fonctionne bien, mais il y a toujours un moment où il se "dérègle" et où les trams sont reçu de manière déformée (retour à la ligne à chaque caractère, des symboles étrange comme '⸮').

Fichier joint  bug.png   85,01 Ko   91 téléchargement(s)

Je ne suis pas parvenu à résoudre le problème pour le faire fonctionner de manière constante.

 


Attrapeur d'écoCup à ventouse !

12 février 2020 - 04:47

Bonjour à tous !

Notre objectif du jour est de récupérer un écocup pendant 2 secondes puis de le relâcher à l'aide d'une ventouse !

 

Pour cela, nous allons utiliser :

 

- Un capteur de courant et de tension MAX771

- Une batterie Lipo 3S (12V)

- Une mini pompe 4.5V

- Un capteur de pression barométrique

- Un électrovanne

- Une Arduino Uno (bien sur !)

- Et enfin un Driver L9110

(le capteur de courant et de tension n'est pas indispensable)

 

Etape 1 : Adapter son alimentation

 

En effet la batterie Lipo 3S alimente mon circuit en 12V. Ma pompe et mon électrovanne fonctionnant en 5V, il est nécessaire d'adapter la tension. Pour cela, je vais utiliser le convertisseur step down réglable ainsi que le capteur de courant et de tension Max471.

En effet je vais brancher ma batterie sur le convertisseur et régler la tension grâce à la petite vis prévue à cet effet. Grâce au MAX 471 et au code fournit par sa fiche produit, je vais pouvoir suivre l'évolution de la tension jusqu'à atteindre les 5V voulu. 

Fichier joint  Photo 1.PNG   954,82 Ko   84 téléchargement(s) Fichier joint  photo 2.PNG   844,12 Ko   90 téléchargement(s) 

Sur Arduino : Fichier joint  photo3 amélioré.PNG   458,35 Ko   94 téléchargement(s)

C'est bon : j'ai mon alimentation en 5V !

 

Etape 2 : Mise en place de l'électrovanne

La question est simple ? Comment contrôler l'alimentation de ma pompe et de mon électrovanne afin d'atteindre notre objectif ? (c.a.d gripper et relâcher l'écocup à ma guise).

Nous pourrions utiliser les pins de l'Arduino en  mode OUTPUT ? Et bien non, comme l'indique la fiche produit de l'électrovanne le courant est trop important et risquerai de griller notre Pin ( test malheureusement effectué : ça grille bien.)

Je vais donc utiliser un Driver L9110 pour moteur CC avec 2 entrées : 1 pour la pompe et 1 pour l'électrovanne !

Etude du comportement du driver

Dans un premier temps, nous avons effectué les tests à la main en testant le comportement du système grâce à un voltmètre en branchant sur la masse, l'alimentation et débranché chacune des entrées du driver. 

Fichier joint  photo post4.PNG   1,13 Mo   90 téléchargement(s)  Fichier joint  photo4.PNG   1,18 Mo   94 téléchargement(s)

Voici la table de vérité obtenue suite aux tests ! (X correspond à un fil débranché)

Fichier joint  verite.PNG   25,79 Ko   88 téléchargement(s)

Je sais par exemple que pour aspirer il faut que la pompe soit active, et l'électrovanne no-alimentée (fermée)

De la même manière, pour relâcher l'écocup il faut que la pompe soit éteinte et que mon électrovanne soit alimentée (ouverte)

Nous identifions donc les 3 cas qui nous intéresse : OFF(1), l'aspiration(2), (3) Relâcher

Je sais maintenant la procédure d'alimentation à effectuer dans mon programme !

 

Etape 3 : Mise en place du programme

Pour élaborer le programme, je vais partir de celui fournit par le capteur de pression (dans la fiche produit)

Etape préalable : je constate que en branchant le capteur de pression, et que la ventouse agrippe l'écocup, les valeurs montes aux alentours de 8000 avec des pics à 16 000. Je vais donc me servir de ces valeurs pour détecter qu'un écocup est attrapé.

Voici le programme final (le capteur de courant et de tension n'est pas utilisé ici) : 

Je peux finalement tout brancher en raccord avec mon programme ! (ça marche bientôt !)

Note : Lorsque vous effectuez vos montages, pensez toujours à couper toutes les sources de tension, donc ici la batterie et la carte Arduino)

Voici le câblage final !

 Fichier joint  photo 5.PNG   750,42 Ko   89 téléchargement(s) Fichier joint  photo6.PNG   759,8 Ko   87 téléchargement(s)

 

Et voilà !


Test du Sonoff SLAMPHER RF

31 janvier 2020 - 03:37

Bonjour à tous !

Aujourd'hui nous allons connectée nos lumières de la maison grâce à un petit boitier qui se plug sur la prise et sur l'ampoule directement.

 

Première partie !

J'installe l'application EweLink sur l'AppStore (64MO) afin de piloter ma lampe. L'application requière un compte pour se connecter.

 

En suivant les étapes du mode d'emploi (fournit en anglais, chinois et allemand) :

J'installe la lampe simplement en la vissant comme toute ampoule classique. En mettant l'interrupteur de la maison en position "allumée", le bouton sur le boitier me permet d'allumer et atteindre la lumière.

Comme indiqué dans l'étape 5 du mode d'emploi, j’éteins la lampe grâce au bouton (voir photo), et je reste appuyer sur celui ci pendant 7s pour attendre les 3 clignotements (vert et rouge) sur le boitier qui indique que l'appareil est prêt à être connectée.

Fichier joint  1.PNG   521,3 Ko   88 téléchargement(s)

 

Dans l'application EweLink : au préalable, ayez en tête le nom de votre réseau Wifi ainsi que son mot de passe, ce sera utile pour la suite :).

- Ajoutez un nouvelle appareil grâce au "+" centré en bas  de l'écran 

Fichier joint  3.PNG   176,71 Ko   83 téléchargement(s)

- Sélectionnez Quick Pairing

- Connectez vous au réseau wifi que l'appareil va utiliser pour être connectée 

Fichier joint  2.PNG   166,15 Ko   96 téléchargement(s)

Note : J'ai dû activer la localisation de mon téléphone pour pouvoir rentrer mon nom de Wifi.

 

Une fois connecté je rentre le nom du boitier ("Lampe couloir" par exemple) et le tour est joué ! 

Fichier joint  4.PNG   176,45 Ko   89 téléchargement(s)

Répétez les opérations pour ajouter d'autres appareils !

 

En sélectionnant ma lampe : j'obtient différentes options : 

Fichier joint  5.PNG   66,36 Ko   89 téléchargement(s)

1: Partager

2: Timing : Allumer ou éteindre la lampe à une date précis (mois/jours/heure/minute)

3: Compte à rebours : Allumer ou éteindre la lampe dans un certains temps (jours/heure/minute)

4: Temporisateur en boucle : Allumer ou éteindre une lampe de manière cyclique

5: Réglage : Accéder au réglage de l'appareil ou le supprimer

Les régalages permettent de changer le nom, voir la version et d'accéder aux informations de l'appareil.

 

Dans la page "Tous les appareils", il est possible d'accéder à l'onglet "Scénario" (en haut de la page).

 

Mise en place de scénario :

1: Choisir 1 nom au scénario

2: Appliquer une condition : Choix -> Levé/couché du soleil, 1 minuteur, 1 bouton

Dans le même menu : Choisir les appareils sur lesquelles nous appliquons ces conditions.

3: Choisir l'action, allumer ou éteindre.

 

Deuxième partie !!

 

Connecter votre application à un appareil connectée !

Test sur la google Home

Dans la page "Tous les appareils", vous pouvez cliquer sur le "petit bonhomme" en bas à droite, un tuto y est présenté.

Télécharger Google Home si vous n'avez pas l'application.

Sur la page d'accueil, cliquez sur le + en haut à gauche. 

Fichier joint  6.PNG   20,67 Ko   89 téléchargement(s) 

J’accède alors à cette page : 

Fichier joint  7.PNG   47,07 Ko   89 téléchargement(s)

Cliquez sur "Configurer un appareil" :)

Je vais donc faire fonctionner mon appareil avec Google (ayant déjà mon appareil google Home) puis je sélectionne parmi les applications proposées "eWelinkStartHome"

Fichier joint  8.PNG   56,93 Ko   91 téléchargement(s)

Je rentre alors mes informations de mon compte EWeLink, puis après un petit temps mon compte est connecté à l'interface Google Home !

Mon interrupteur est alors ajouté, je peux l'associer à une nouvelle pièce !

Ma lampe de couloir est ajoutée je peux l’éteindre ou l'allumer via Google Home.

Fichier joint  9.PNG   14,68 Ko   92 téléchargement(s)

Je constate un petit délai supplémentaire via Google Home, cela doit être dû à ma connexion internet.

 

Troisième partie !!!

 

Pour les plus curieux, nous nous sommes amusé à ouvrir le Sonoff pour en apprendre plus sur son fonctionnement !

Fichier joint  10.PNG   656,43 Ko   86 téléchargement(s)

Le composant utilisé pour la transmission Wifi est le "ESP8285". Il s'agit d'un processeur 32bit 160Mhz dans un boitier minuscule de 5mm * 5mm et qui dispose du Wifi .

L'ESP8285 peut tout aussi bien être configuré en tans que client que en hôte ! Il possède une large plage de température de fonctionnement mais est sensible à l'humidité. En vue de la non étanchéité du module, privilégié le SONOFF pour l'éclairage intérieur !
Pour ceux qui voudront le bidouiller il sera possible de mettre votre propre firmware dedans, mais attention en faisant cela vous perdrez les firmware d'origine... 


Test du capteur de courant et de tension MAX471

30 janvier 2020 - 02:14

Bonjour à tous !

Aujourd'hui nous allons test le capteur de tension/courant MAX471 sur un moteur CC.

Voici le branchement proposé sur la boutique Fichier joint  Capture branchement Capteur Couranttension.PNG   381,95 Ko   96 téléchargement(s)

 

Je le réalise donc sur mon moteur.

Fichier joint  photo test moteur cc.PNG   1,15 Mo   90 téléchargement(s)

Fichier joint  IMG_20200130_134747.jpg   69,91 Ko   96 téléchargement(s)

 

Paramétrage du capteur

Calcul de la résolution : Tension d'alimentation Arduino/1023)(Les pins analoiques sortent une valeur codée sur 10bits).  Ici ma carte est alimentée en 5V soit 5/1023 = 0.00489

Calcul du facteur de tension :

Fichier joint  calcul facteur courant.PNG   24,63 Ko   90 téléchargement(s)

Calcul du facteur de courant :  VA = Valeur de courant envoyé par le capteur (voir schéma)

Calcul du courant non paramétrée : Résolution * VA

Expérimentalement : En branchant le capteur sur le moteur j'obtiens les résultats suivants:

Fichier joint  calculfacteurcourant.PNG   45,42 Ko   86 téléchargement(s)

Par le rapport : VA/(Courant non paramétrée), on obtient le coefficient souhaité pour le fonctionnement du capteur pour le moteur. (on obtient 200). 

 

On obtient le code "paramétré" suivant  (celui fournit dans la boutique):