j'ai vu ca aussi...
https://www.robotshop.com/eu/fr/lida...te-ce30-c.html
j'ai vu ca aussi...
https://www.robotshop.com/eu/fr/lida...te-ce30-c.html
Vous avez du mal copier coller le code
Il faut partir d’une fenêtre nouvelle, videz tout ce qui a dedans (le setup et la loop) et mettre juste mon code
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 #include <SoftwareSerial.h> SoftwareSerial maxSonar(2, 3); void setup() { Serial.begin(115200); maxSonar.begin(9600); } void loop() { if (maxSonar.available()) Serial.write(maxSonar.read()); delayMicroseconds(10); }
non non ca tourne pas... j'ai beau essayer...
ca compile, et au televersement ca me sort des erreurs...
wow - c'est digne du créneau parisien![]()
En fait je me dis que les vendeurs de ces bateaux ne veulent pas prendre de risque avec des radars de recul qui ne fonctionnerait pas vu les risques de procès si un beep n'a pas marché.. ça doit chiffrer vite si on enfonce un autre bateau!
Bonjour Jay,
bon j'ai bien compris pour la difference "736x et 738x" pour les Maxsonar (bon je vais recevoir 2 modeles le court et celui avec la trompette quipermet une distance de 10M
le code est complexe? ou c'est le meme genre que pour le Lidar?
ensuite comme j'essais de pas mourir "con" j'epluche un peu vos code...
dans celui du lidar j'ai vu ca:
'const unsigned int toneFreq = 500;'
500 c'est une fréquence appliqué au buzzer?
peut on avoir une pin de sortie avec des 1 ou 0 sans modulation comme pour le buzzer?
je me bat toujours avec cette histoire de buzzer et j'ai remarqué a l'osciloscope que mes petit modules fonctionne bien mais quand on module le signal ca nous sort un son degueulasse...
Bonjour
ce sera simple, dans la doc ils disentDonc on écoute une ligne terminée par CR, on regarde si elle commence bien par 'R' et si derrière on a 4 chiffres et on transforme l'ASCII en nombre. rien de bien compliqué - 5 minutes pour modifier ce que l'on a.The output is an ASCII capital “R”, followed by four ASCII character digits representing the range in millimeters, followed by a carriage return (ASCII 13). The maximum range reported is 4999 mm (5-meter models) or 9998 mm (10-meter models). A range value of 5000 or 9999 corresponds to no target being detected in the field of view.
Oui c'est la fréquence de vibration de la pin en effet (500Hz)
Oui, là j'utilise la fonction 'tone()' qui se charge de faire la vibration sur la broche. Si on utilise digitalWrite() on mettra simplement à HIGH ou LOW là pin.
c'est vraiment une alternance 0V/5V, ce n'est pas un beau signal analogique qu'on balance... J'imagine que ça doit jouer.je me bat toujours avec cette histoire de buzzer et j'ai remarqué a l'osciloscope que mes petit modules fonctionnent bien mais quand on module le signal ca nous sort un son degueulasse...
je recois ca Lundi...
Ce module de la série XL-MaxSonar WRC1 en version étanche IP67 permet de mesurer les distances entre un objet mobile et les obstacles rencontrés. Il est équipé d'un système de filtrage des résultats et la portée effective se situe entre 0 et 6,45 m. Le kit de fixation MB7950 est livrable en option.
Le signal de sortie est disponible en tension analogique, en signal PWM ou en sortie série.
Alimentation: 3,0 à 5 Vcc
Consommation: 3,4 mA
Fréquence: 42 kHz
Portée: de 0 à 6,45 m
Résolution: 1 cm
Fréquence de lecture: 10 Hz
Signal de sortie:
- analogique: (Vcc/1024)/cm
- série: 0 à Vcc - 9600 bauds
- PWM: 58µs/cm
Auto-calibration en temps réel
Réjection de bruit en temps réel
Filtrage des résultats
Protection: IP67
Température de service: -40°C à +65°C
Dimensions: Ø35 X 38 mm
Fabricant: MaxBotix
Référence fabricant: MB7068
J’ai pas lu la spec en détail mais je pense que la sortie analogique n’est mise à jour aussi que 10 fois par seconde, quand une mesure a été effectuée
Ensuite l’arduino fait ce que le code lui dit. On peut activer différentes pins en fonction de la distance, oui - ou définir la fréquence des beeps par palier.
Bonjour Jay
ben sur les deux modèle que j'ai, celui avec la trompette longue (portée 10m) ref MB7388 le taux de rafraichissement est de 5 fois
sur l'autre le plus court Ref MB7380 le taux passe a 8 en gros...
autant rester comme on est non?
on peux essayer : 8m-->2hz
7m-->4hz
6m-->6hz
5m-->8hz
4m-->10hz
et 3 m fixe
et une pin pour la transmition...
ah oui je pense partir sur votre idée première concernant la transmission... je pense que c'est plus fiable que mes petit 433mhz...
donc je vais faire le test avec les HC12 et deux arduino nano.
mais par soucis de miniaturisation on peux mettre quoi de plus petit que le nano? micro? speeduino?
ca nous donnerais : unitée central avec le maxsonar et un nano avec un on off par telecommande 433 (ca c'est pris sur le jus du bateau)
et une ou deux petites unitées pour la reception des beeps (je dit une ou deux car c'est selon la configuration du bateau) eux seraient alimenté par batterie dedié (donc il faut que quand il "dorment" on pompe un minimum...! et que ce soit petit...
hummm ca ce corse un peu non?
ah et PS: le module GPS.... super ultra mega top..!!! il est alimenté par une batterie et dort dehors... je m'amuse a le mettre en route a 20 ou 30 ou 50 metres je le laisse tourné 3;4heures et je l’éteint.....
Voilà ce que j'ai de mom côté sur le LCD (avez vous tourné la molette en dessous pour régler le contraste?)
la première ligne donne la configuration future des DIP switches à mettre sur le slave. et Si vous avez un beep, c'est bon signe (il a pu communiquer avec le HC12) et ça affiche "Ready"
et quand je simule la réception d'une distance à 325cm par exemple j'ai cela:
et le buzzer beep comme il faut
---
Je pense à une chose cependant, est-ce que vous vous souvenez si le module communique en cm ou en mm ?
tel que le code est fait il attend Rxxx<CR> en provenance du radar pour obtenir une distance xxx en cm. Si c'était sur 4 digits Rxxxx<CR> il faudrait modifier le code et changer la fonction acquisition() en
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 bool acquisition() { static uint16_t payloadDistance; static uint8_t payloadByteCount; bool acquired = false; int rec = maxSonar.read(); if (rec != -1) { uint16_t byteReceived = rec & 0xFF; switch (parserState) { case STARTMARKER: if (byteReceived == 'R') { payloadByteCount = 0; payloadDistance = 0; parserState = PAYLOAD; } break; case PAYLOAD: if ((byteReceived >= '0') && (byteReceived <= '9')) { payloadDistance = 10 * payloadDistance + (byteReceived - '0'); if (++payloadByteCount >= 4) parserState = ENDMARKER; // <<== METTRE 4 AU LIEU DE 3 SI 4 DIGITS } else if (byteReceived == 'R') { // handle double 'R' payloadByteCount = 0; payloadDistance = 0; } else parserState = STARTMARKER; break; case ENDMARKER: if (byteReceived == '\r') { acquired = true; distance = payloadDistance/10; // <<==== DIVISER PAR 10 POUR OBTENIR DES CM parserState = STARTMARKER; } else if (byteReceived == 'R') { payloadByteCount = 0; payloadDistance = 0; parserState = PAYLOAD; } else parserState = STARTMARKER; break; } } return acquired; }
oui j'ai essayez le potar derriere ... ou tout bleu ou que des digit "plein"....
je crois qu'on etait en mm au depart
c'est cool ces modules LiDAR Infrarouge, en sortie on a un nuage de points, mais il n'y a pas la puissance de calcul ni la mémoire nécessaire pour les piloter dans un arduino
Si le 433 MHz passe bien, on pourrait regarder comment utiliser par exemple un HC-12. On peut essayer d'émettre à 15000 bps (en communiquant en série à 9600 bauds) et le récepteur est à -112 dBm, ça reste décent en qualité.
Cela dit - ça reste des composants de bricolage grand public, à vous de voir si d'un point de vue business vous êtes prêt à prendre le risque... vous pourriez même essayer dans ce cas d'intégrer des produits tout faits comme celui là
![]()
Non on va faire un truc plus serieux.... pour les radar
pour le 433 explique...
Copiez toutes les erreurs et collez les ici
Bonjour Jay
j'ai trouvé un code pour voir ...(https://www.maxbotix.com/documents/A...are_Serial.ino)
ça me fait la aussi une erreur :Arduino : 1.8.9 (Windows 10), Carte : "Arduino Nano, ATmega328P"
Ce rapport pourrait être plus détaillé avectest1111:1:3: error: expected unqualified-id before '/' token
*/
^
test1111:1:3: error: expected constructor, destructor, or type conversion before '/' token
exit status 1
expected unqualified-id before '/' token
l'option "Afficher les résultats détaillés de la compilation"
activée dans Fichier -> Préférences.
PS: j'ai testé l'arduino avec votre code du Lidar et la pas de problème...
alors j'arrive a televerser le code dans un arduino UNO
pin 5 du sonar sur entrée 2 (RX) du UNO et alim en 5v
dans la console serie rien ne ce passe
Le capteur fonctionne par mesure du temps pour recevoir la réflexion de l'onde émise sur la cible.
On réfléchit toujours mieux avec un petit dessin:
si on n'est pas sur l'horizontale (et idéalement au bout du bateau) la zone "éclairée" ne sera pas plane (on aura de l'eau et le quai et éventuellement derrière le quai).
Ici la zone rouge "éclairée" va rebondir dans tous les sens, une partie sera absorbée aussi. Je pense qu'on va lire n'importe quoi (des rebonds qui reviendraient vers le capteur)
faites des tests avec le capteur faisant un angle avec le sol et regardez ce que vous obtenez
Bonjour Jay,
j'ai conscience de ce phenomene de "ricocher"
le probleme c'est qu'on sera jamais pile dans l'axe sur un bateau...
en regle general les quai sont plus bas que le pont principal du bateau et parfois, comme expliqué precedement, les quai sont sur pilotis...
trouver un autre capteur?
combiner deux ou 3 meme capteur?
il ne trouve pas la carte sur le port série sélectionné
Si vous avez bien débranché Rx et Tx (débranchez les 2 pour être sûr) c'est qu'il y a un souci ailleurs.
Mauvais boot loader? peut-être choisir dans Outils / Processeur --> "ATMega 328P Old Bootloader" pour votre Nano
Sinon câble USB, mauvais port série, carte défectueuse?
Partager