Aller au contenu


Contenu de dakota99

Il y a 228 élément(s) pour dakota99 (recherche limitée depuis 01-mai 13)



#120305 UGV à base d'éléments de trottinette ou d'hoverboard

Posté par dakota99 sur 13 février 2024 - 09:48 dans Robots roulants, chars à chenilles et autres machines sur roues

Bonjour Oracid

Moi je suis d'accord avec Madame. Je trouve que c'est très bien. Très clair. Très didactique.

Merci beaucoup et continue stp.




#120283 Communication MODBUS RTU

Posté par dakota99 sur 08 février 2024 - 03:13 dans Domotique

Thank you Tnera for your reply.

I'm still searching and asking questions to the technical support wich is unreachable...

So I'm quite sure it is MODBUS RTU. So it is a serial communication. That's why I can not find any ip adress.

But I do not have any com port created.

From my point of view I need a converter or a software tool to emulate a serial port....

I will try ChatGPT

Thank you :)




#120280 Communication MODBUS RTU

Posté par dakota99 sur 07 février 2024 - 08:33 dans Domotique

Bonjour, je dois réaliser une appli qui récupère les données d’un automate EVCO C-Pro3 via le protocole Modbus RTU. La doc est assez laconique : elle précise les caractéristiques de la communication série. Je me connecte au port BMS connectivity de l'automate via un câble réseau. Je ne connais pas l’adresse IP de l’automate et il n’y a pas de port COM virtuel qui est créé. Lorsque j’installe un serveur DHCP l’automate ne reçoit pas d’adresse IP. Il s’agit donc probablement d’une adresse IP statique. Si je lance un scan des adresses IP aucun résultat.

Quelqu’un a déjà travaillé avec du Modbus RTU ?

Merci

 




#119765 Lidar rotatif

Posté par dakota99 sur 31 octobre 2023 - 09:47 dans Robots roulants, chars à chenilles et autres machines sur roues

Bonjour

J'ai branché le Lidar LD19 sur une Arduino Mega. UART 3

Installé la librairie LD06.h

Le lidar tourne mais rien ne s'affiche dans le moniteur série

Code :

#include "ld06.h"
LD06 ld06(Serial3);  

void setup() {
  Serial.begin(9600);  // Start the Serial you want to display data
  ld06.init();         // Init Serial Lidar to 230400 Bauds and set lidar pwm pin mode if pwm pin is specified
  Serial.println("setup completed"); 
}

void loop() {
  if (ld06.readScan()) {             // Read lidar packets and return true when a new full 360° scan is available
    ld06.printScanTeleplot(Serial);  // Print full scan using teleplot format (check :https://teleplot.fr/)
    ld06.printScanCSV(Serial);  // Print scan in csv format
    if (ld06.isNewScan()) {     // Even if fullScan is disabled you can know when last data chunk have a loop closure
      Serial.println("This is a new scan! ");
    }
    Serial.println(ld06.getSpeed());        // Show the lidar speed in degrees ° / second
    Serial.println(ld06.getAngleStep());    // Show the angle step resolution in degree
    uint16_t n = ld06.getNbPointsInScan();  // Give the number of points in the scan, can be usefull with filtering to tell if there are abstacles around the lidar
    Serial.println(String() + "There are " + ld06.getNbPointsInScan() + " lidar points in the defined range !");
    for (uint16_t i = 0; i < n; i++) {
      Serial.println(String() + ld06.getPoints(i)->angle + "," + ld06.getPoints(i)->distance + ";");  // example to show how to extract data. ->x, ->y and ->intensity are also available.
    }
  }
}

J'en déduis qu'il n'est probablement compatible avec cette librairie.

 

Par contre si je l'utilise avec le code du RPLIDAR SLAMTEC AM08

Des données sont affichées mais pas cohérentes.

#include <RPLidar.h>
RPLidar lidar;               
                        
void setup() {
  Serial.begin(9600);
  lidar.begin(Serial3);
  pinMode(RPLIDAR_MOTOR, OUTPUT);  // set pin modes
  Serial.println("SETUP completed");
}

void loop() {
  if (IS_OK(lidar.waitPoint())) {
    float dis = lidar.getCurrentPoint().distance; //distance in mm 
    float angle = lidar.getCurrentPoint().angle; //angle in degree
    bool  startBit = lidar.getCurrentPoint().startBit; //whether this point is belong to a new scan
    byte  quality  = lidar.getCurrentPoint().quality; //quality of the current measurement

    if (angle > 0 && angle < 10 && dis > 0){
    dis = dis / 10;
    Serial.print(angle);
    Serial.print(" --- ");
    Serial.println(dis);
    }
    
  } else {
    Serial.println("RPlidar not working");
    rplidar_response_device_info_t info;    // try to detect RPLIDAR... 
    if (IS_OK(lidar.getDeviceInfo(info, 100))) {       // detected...
       lidar.startScan();
       delay(1000);
    }
  }
}

Le Lidar est immobile devant une paroi à une distance de 40cm
 

1.64 --- 1241.40
7.80 --- 1025.15
1.81 --- 1094.53
2.58 --- 1280.85
4.00 --- 896.25
8.78 --- 1384.95
1.59 --- 1235.15
1.34 --- 1368.28
8.78 --- 619.20
5.11 --- 288.38
2.20 --- 819.53
4.36 --- 821.90
9.28 --- 632.08
3.25 --- 16.00
3.83 --- 1521.90
9.03 --- 773.08
0.77 --- 825.90
0.11 --- 1025.95
1.00 --- 513.10
8.50 --- 294.60
4.56 --- 917.35
7.00 --- 1230.75
8.00 --- 823.75
6.00 --- 1229.95
0.17 --- 5.10
2.08 --- 1025.15
5.50 --- 1434.55
5.55 --- 896.25
2.75 --- 1491.30
4.58 --- 1241.50
1.50 --- 1030.70
7.05 --- 1025.10
2.56 --- 1587.80
0.06 --- 1104.07
2.58 --- 1026.70
0.56 --- 1440.30
6.78 --- 1027.50
6.05 --- 1024.30
1.02 --- 1299.75
1.00 --- 1024.35
2.00 --- 615.35
5.00 --- 629.10

 

 

 

 

 

 




#119744 Lidar rotatif

Posté par dakota99 sur 29 octobre 2023 - 06:33 dans Robots roulants, chars à chenilles et autres machines sur roues

Merci Mike118.

A regarder de plus près le LIDAR LD06 semble fort proche de celui que j'ai acheté LD19

La Datasheet est fort similaire.

Peut-être que ta librairie fonctionne sur ce modèle aussi.

Ce qui est dommage c'est qu'il est livré avec un seul câble qui va du Lidar vers le convertisseur USB.

Il faut donc le couper pour le connecter à la Mega.

Je vais quand même essayer...




#119740 Lidar rotatif

Posté par dakota99 sur 29 octobre 2023 - 07:58 dans Robots roulants, chars à chenilles et autres machines sur roues

Bonjour,

Je souhaite obtenir 5 distances comme je le fais actuellement avec un Arduino Mega.

Gauche à 90°

Gauche à 45°

Devant

Droite à 45°

Droite à 90°

 

Concernant le format, je m'adapte

Mais avec le Lidar actuel connecté à l'Arduino Mega il envoie l'angle, la distance et la qualité. Et on filtre les données utiles.

Merci




#119734 Lidar rotatif

Posté par dakota99 sur 28 octobre 2023 - 05:22 dans Robots roulants, chars à chenilles et autres machines sur roues

Merci Mike118.

Il ne suffit pas de le connecter en série et de lire les points. Je ne vais pas m'aventurer dans cette voie.

Et pour l'utiliser avec un Arduino Mega, je ne trouve pas d'exemple de code, librairie, ... ni même de câblage.

D'après ce que je comprends il est plutôt prévu pour être utilisé avec ROS.

Mieux vaut que je le retourne à l'expéditeur.

 

Pour info voici le code que j'utilise avec le RPLIDAR Slamtec A1M8:

// =============== RPLIDAR ========================
#include <RPLidar.h>
RPLidar lidar;
#define  RPLIDAR_MOTOR A0  

void setup() {
  lidar.begin(Serial3);
  pinMode(RPLIDAR_MOTOR, OUTPUT);  
  analogWrite(RPLIDAR_MOTOR, 129); 

void mesli()
  { 
     if (IS_OK(lidar.waitPoint())) {
       float dis = lidar.getCurrentPoint().distance; //distance in mm 
       float angle = lidar.getCurrentPoint().angle; //angle in degrees
       bool  startBit = lidar.getCurrentPoint().startBit; //whether this point is belong to a new scan
       byte  quality  = lidar.getCurrentPoint().quality; //quality of the current measurement
       
       if ((angle > 345) or (angle < 15)){
          if (dis > 0){ 
            dadv = dis / 10;// distance devant
          }
       }
       if ((angle >= 40) && (angle <= 50)){
          if (dis > 0) { 
            daog = dis / 10;// distance gauche 45°
          }
       }
       if ((angle > 75) && (angle < 85)){
          if (dis > 0) { 
            dadg = dis / 10; // distance gauche 90°
          }
       }  
       if ((angle > 275) && (angle < 285)){
          if (dis > 0) { 
            dadd= dis / 10; // distance droite 90°
          }
       }
       if ((angle > 310) && (angle < 320)){
          if (dis > 0) { 
            daod= dis / 10; // distance droite 45°
          }
       }
       
  } else {
    Serial.println("RPlidar not working");
    rplidar_response_device_info_t info;    // try to detect RPLIDAR... 
    if (IS_OK(lidar.getDeviceInfo(info, 100))) {       // detected...
       lidar.startScan();
       analogWrite(RPLIDAR_MOTOR, 129);       // start motor rotating at max allowed speed
       delay(1000);
    }
   }
} // end void

Encore merci pour ton aide.
 




#119727 Lidar rotatif

Posté par dakota99 sur 28 octobre 2023 - 09:03 dans Robots roulants, chars à chenilles et autres machines sur roues

Bonjour,

 

Le RPlidar cité plus haut fonctionne toujours correctement.

J'aurais souhaité un appareil plus petit et qui peut être utilisé via un port série d'un pc Windows. (Au départ du projet je n'avais qu'un Arduino Mega, maintenant il y a un mini pc Win10)

J'ai acheté ceci :

 

https://www.amazon.f...00?ie=UTF8&th=1

 

Il est vendu avec un convertisseur série.

Le soft LdsPointCloudViewer-v3.0.6 permet de tester le fonctionnement sous Windows. Et cela fonctionne.

Cependant s'il est connecté directement au pc et lecture du port série avec Putty : on voit que des données transitent mais c'est illisible.

Test avec différentes vitesses, pareil.

Dans la fiche technique : Communication interface UART@230400  ce qui me semble être tout à fait particulier.

Mais même si on met cette vitesse dans Putty on ne reçoit rien d'exploitable.

J'ai envoyé une requête au support mais sans réponse.

 

Quelqu'un a une idée de comment utiliser cet engin sur un pc ?

Ou la référence d'un autre appareil qui donne satisfaction ?

 

Merci




#119653 Contrôler un joystick avec des servos

Posté par dakota99 sur 17 octobre 2023 - 07:37 dans Robots roulants, chars à chenilles et autres machines sur roues

Bonjour Sandro,

Ok pour le voltmètre effectivement il n'affiche pas les potentielles micro chutes de tension.

Il faudrait effectivement que j'apprenne à me servir d'un oscilloscope. :)

 

Merci pour le partage d'expérience : c'est exactement le même phénomène que je remarque. Quand le robot consomme peu, peu de soucis. Mais quand il faut un virage sur place, les servos deviennent fous.

Mais en tenant compte de tes propositions cela devrait fonctionner.

Merci pour ton aide

 

ROBOMINI02.jpg




#119648 Contrôler un joystick avec des servos

Posté par dakota99 sur 16 octobre 2023 - 08:29 dans Robots roulants, chars à chenilles et autres machines sur roues

Bonjour Sandro,

Un grand merci pour ton temps.

En effet les masses ne sont pas reliées. Je vais dans un premier temps ajouter un fil qui relie les 2 masses.

La tension d'alimentation des servos ne varie pas. Il y a un voltmètre en permanence et elle est de 5.1V

Je vais générer le 5V depuis le 12V.

Puis si cela ne va toujours pas je mettrai les condensateurs.
Encore merci.




#119634 Contrôler un joystick avec des servos

Posté par dakota99 sur 15 octobre 2023 - 12:28 dans Robots roulants, chars à chenilles et autres machines sur roues

Merci Oracid

Le code n'est pas en cause. Tout fonctionne correctement quand j'alimente séparément la puissance et la commande.

Le problème apparaît dès que tous les composants sont alimentés par les batteries 12V.

 

L'erreur est de ne pas mettre de filtre avant / après les convertisseurs.

Le tout est de savoir quoi mettre comme condensateurs.




#119632 Contrôler un joystick avec des servos

Posté par dakota99 sur 14 octobre 2023 - 07:45 dans Robots roulants, chars à chenilles et autres machines sur roues

Bonjour,

 

Sur ce robot il y a 2 alimentations : 2 batteries de 12V mises en série pour actionner les 2 moteurs de 24V 350W

Une seconde batterie de 19V alimente via un convertisseur 24V - 12V : Arduino Mega, mini ordinateur, camera IA, webcam,

Un second convertisseur 24V - 5v alimente les 2 servos qui actionnent le joystick.

Le tout fonctionne normalement.

 

SCHEMA_ELEC.jpg

 

L'idée était de supprimer la seconde partie et d'utiliser les 2 batteries de 12V pour alimenter à la fois les moteurs et tous les périphériques cités ci-dessus.

Une fois que l'ensemble est connecté aux batteries 12V, les joysticks effectuent des mouvements violents aléatoires lorsque le robot se déplace donc lorsque les moteurs consomment.

 

Je suppose que cela provient de parasites et qu'il est nécessaire de mettre des filtres.

 

Pourriez-vous me conseiller les filtres qu'il faut mettre ? valeur des condensateurs ?

Avant les convertisseurs de tension ? ou après ? ou avant et après ?

 

Merci




#119625 Robot suiveur de fil

Posté par dakota99 sur 12 octobre 2023 - 06:47 dans Robots roulants, chars à chenilles et autres machines sur roues

Bonjour

Merci pour le lien

Très intéressant.

Explication du fonctionnement de l'émetteur et récepteur.

 

Et ce fournisseur de matériel

 

J'ai récupéré un émetteur / générateur d'une tondeuse ROBOMOW.

 

GENERATEUR.jpg

 

 




#119596 Robot suiveur de fil

Posté par dakota99 sur 07 octobre 2023 - 08:55 dans Robots roulants, chars à chenilles et autres machines sur roues

Merci Oracid

 

Il y a ceci

 

C'est plutôt du côté générateur que je ne vois pas vers où aller.

Ca peut être pratique quand il faut amener le robot dans un endroit précis sans devoir placer des AruCo.$




#119591 Robot suiveur de fil

Posté par dakota99 sur 07 octobre 2023 - 06:14 dans Robots roulants, chars à chenilles et autres machines sur roues

Bonjour

 

Je réalise un robot bimoteur qui se dirige notamment avec une camera IA et des AruCo.

Je souhaiterais lui ajouter la possibilité de se déplacer en suivant un fil comme un robot tondeuse.

Le principe est, je pense, d'utiliser un capteur à effet hall qui détecte un champ magnétique.

Il y a un paquet de modèles disponibles et cela semble assez facile à utiliser.

Par contre je vois moins bien comment générer un champ magnétique adapté.

Le robot devrait suivre un fil qui va d'un point A à un point B. Ce ne serait donc pas une boucle.

Le plus simple est peut-être d'utiliser le émetteur d'un robot tondeuse ?

 

Quelqu'un a déjà réalisé ce genre de chose ?

 

 

 




#119590 Piloter 2 moteurs avec contrôleur Sabertooth 2X32

Posté par dakota99 sur 07 octobre 2023 - 05:59 dans Robots roulants, chars à chenilles et autres machines sur roues

Bonjour

J'ai poursuivi et le Sabertooth fonctionne très bien. L'étape suivante sera de l'essayer avec des plus gros moteurs.

Communication en série avec un Arduino Mega.




#119386 Piloter 2 moteurs avec contrôleur Sabertooth 2X32

Posté par dakota99 sur 12 septembre 2023 - 08:38 dans Robots roulants, chars à chenilles et autres machines sur roues

Bonjour. Merci pour vos réponses.

Effectivement cette carte semble valoir la peine qu'on s'y intéresse.

J'étais parti pour la commande en mode R/C. Mais le mode série semble bien intéressant.

Voici le code très simple :

void setup() {
  Serial.begin(9600);
  Serial1.begin(9600); 
  Serial1.println("M1:2000"); // marche avant
  Serial1.println("M2:2000"); 
  delay(8000);
  Serial.println("-M1 -M2");
  Serial1.println("M1:-2000"); // marche arrière
  Serial1.println("M2:-2000"); 
  delay(8000);
  Serial.println("stop");
  Serial1.println("MD:0");  // stop
  Serial1.println("MT:0");  
}

void loop() 
{
   
}

Il est possible de :

programmer une accélération, décélération ce qui n'est pas négligeable.

récupérer la tension de la batterie.

actionner un frein

...

Bref cela semble valoir la peine de poursuivre.

 

 




#119371 Piloter 2 moteurs avec contrôleur Sabertooth 2X32

Posté par dakota99 sur 10 septembre 2023 - 11:15 dans Robots roulants, chars à chenilles et autres machines sur roues

Bonjour,

 

Je souhaiterais contrôler 2 moteurs DC 12V avec un contrôleur Sabertooth 2x32 et un Arduino Mega

 

Je suis un peu rôdé à cet exercice avec des contrôleurs plus basiques.

Celui-ci offre de nombreuses possibilités et peut gérer des "grosses" puissances. Mais il semble nettement plus compliqué à utiliser.

Et le code à utiliser est différent :

#include <Servo.h>
Servo myservo1; // contrôle moteur 1
Servo myservo2; // contrôle moteur 2

void setup () {
  myservo1.attach(11); 
  myservo2.attach(10); 
}

void loop() {  
  myservo1.write(30); // vitesse moteur 1
  myservo2.write(30); // vitesse moteur 2
  delay(5000);
  myservo1.write(50);// stop motor
  myservo2.write(90);// stop motor
  delay(2000);  
}

La configuration du dip switch sur le contrôleur est : 1 OFF - 2 ON - 3 ON - 4 OFF - 5 ON - 6 ON

Connexion Arduino contrôleur : D10 ARDUINO > S2 Sabertooth et D11 Arduino > S1 Sabertooth

Les 2 moteurs tournent pendant 5 secondes puis s'arrêtent pendant 2 secondes.

Ce qui est curieux c'est que pour arrêter le premier moteur il faut envoyer myservo1.write(50) tandis que pour arrêter le second il faut envoyer myservo1.write(90). Alors que les moteurs sont identiques.

Cette carte peut fonctionner selon différents modes. Peut-être que celui que j'utilise n'est pas le bon.

Elle peut en outre être programmée via une interface usb.

Le code utilisé pour d'autres cartes (celle-cipar exemple) me paraît plus simple :

pinMode(M1, OUTPUT);  // sens de rotation
pinMode(E1, OUTPUT);  // vitesse
digitalWrite(M1,LOW); // définit le sens de rotation
analogWrite(E1,spd1g); // définit la vitesse de rotation

Avez-vous déjà utilisé ce matériel pour une application robotique ?

 

Merci

 

 

 




#119037 Gps RTK sur smartphone

Posté par dakota99 sur 22 juillet 2023 - 09:00 dans Robots roulants, chars à chenilles et autres machines sur roues

Bonjour

Le GPS RTK Ardusimple fonctionne sur un pc Windows. (Apparemment c'est plus simple à mettre en oeuvre sur un smartphone)

La précision semble centimétrique mais je n'ai pas encore pu l'évaluer plus précisément car je suis occupé à revoir le châssis du robot.

J'étais parti d'un siège PMR mais il s'avère que le châssis arrive trop près du sol ce qui est problématique quand le terrain est un pu accidenté.

De plus l'empattement est trop faible donc roulis trop important.

Un nouveau châssis en acier est en cours de réalisation... ce qui est assez chronophage.

Dès que ça roule je reviens avec plus d'infos.

Merci pour la vidéo.




#118910 Arduino : réception données en série

Posté par dakota99 sur 28 juin 2023 - 07:03 dans Robots roulants, chars à chenilles et autres machines sur roues

Merci Oracid

Je l'ai vu et commandé chez Gotronic.

 

 




#118908 Arduino : réception données en série

Posté par dakota99 sur 28 juin 2023 - 06:09 dans Robots roulants, chars à chenilles et autres machines sur roues

Parce ce que le smartphone :

 

- est compact

- a un écran tactile

- consomme peu et bonne autonomie

- a des capteurs intégrés : boussole, accéléromètre, ...

- a un gps

 

et fonctionnait très bien pour cette application mais manifestement pas suffisamment bien pour la communication en bluetooth avec l'Arduino.




#118906 Arduino : réception données en série

Posté par dakota99 sur 28 juin 2023 - 04:20 dans Robots roulants, chars à chenilles et autres machines sur roues

Bonjour

Je n'ai pas trouvé de solution à ce problème.

J'ai remplacé le smartphone Android par un pc sous Windows.

La vitesse est passée à 38400 baud et là plus aucun problème la réception et l'émission sont quasi immédiates.




#118733 Gps RTK sur smartphone

Posté par dakota99 sur 08 juin 2023 - 08:35 dans Robots roulants, chars à chenilles et autres machines sur roues

Ceci pourrait se faire sans problème s'il fallait se connecter aux bornes UART d'un Arduino. (RX TX VC Ground)

Mais dans le cas du gps il est fourni avec un câble usb.

Donc je ne vois pas comment dupliquer pour avoir 2 ports série sous Windows.

 

GNSS.jpg

 

Par contre j'ai testé Virtual Serial Port driver : en quelques minutes le tour est joué.

Le port COM21 est connecté à VSP et il crée 2 ports virtuels COM1 COM2. COM1 en lecture / écriture et COM2 en lecture.

Dommage que la solution soit si chère 200$. Il offre de nombreuses options qui dans mon cas ne sont pas nécessaires.

 

Je vais tester ceci qui est gratuit : https://freeserialportsplitter.com/

 

 




#118729 Gps RTK sur smartphone

Posté par dakota99 sur 08 juin 2023 - 07:06 dans Robots roulants, chars à chenilles et autres machines sur roues

Merci !
Je vais commander les 2 convertisseurs et tester



#118724 Gps RTK sur smartphone

Posté par dakota99 sur 07 juin 2023 - 08:14 dans Robots roulants, chars à chenilles et autres machines sur roues

Bonjour,

 

Le dispositif fonctionne maintenant bien avec un smartphone Android.

J'utilise Lefebure NTRIP pour obtenir les corrections du serveur.

Au lieu de se connecter au gps interne, le smartphone se connecte au gps externe qui a une position corrigée.

 

L'évolution du projet fait que je dois laisser tomber la piste du smartphone pour le guidage du robot.

J'ai donc migré le programme en Windows. Et évidemment ce n'est plus aussi simple.

J'ai installé le logiciel u-center qui est connecté au gps et reçoit les corrections du serveur.

Le problème c'est que U-center est connecté au gps via un port série. Et donc puisque le port est connecté, mon appli ne peut pas l'utiliser.

Il faut apparemment mettre en place un partage de port. Une appli qui diffuse les données arrivant sur le port série vers d'autres applications.

Une solution hardware est aussi possible.

 

Avez-vous déjà utilisé ces techniques ?

 

Merci