poivron-robotique
Débuté par kmikaz, nov. 23 2021 09:11
566 réponses à ce sujet
#504
Posté 01 novembre 2025 - 18:59
J'étais parti sur ça : https://www.mouser.f...1206FRF470R005Z
5 mOhm, 1W, en 1206
@Pat92fr[MarsAttacks]
Si vous être en 2 mOhm, 1W, ça fait 22A max, si en plus vous être sur du 2 ou 5 W, ça monte à 50A. plus que ce que j'envisage de faire passer dans mes moteurs...
5 mOhm, 1W, en 1206
@Pat92fr[MarsAttacks]
Si vous être en 2 mOhm, 1W, ça fait 22A max, si en plus vous être sur du 2 ou 5 W, ça monte à 50A. plus que ce que j'envisage de faire passer dans mes moteurs...
#506
Posté 01 novembre 2025 - 22:58
@Gabriel Zerbib
Le potentiomètre est overkill, je le reconnais. Il va peut-être sauter...
Je pense que la résistance de grille pour les MOSFETs n'est pas nécessaire, avec l'utilisation du A89505 (j'ai l'extrait de la datasheet, là).
Pour les diodes TSV, tu les mettrais où ? Je pensais que les MOFSET pourraient évacuer les surtensions dues aux moteurs...
Pour les capas, je crois que ce sont des céramiques, faut que je vérifie.
Je viens de regarder les modules Pololu, on est autour de 40$ hors taxes, hors frais de port, hors frais de douane. Alors la question coût se pose... Normalement je ne paierais pas le circuit imprimé, grâce au partenariat avec Aisler. Et puis y'a l'ego d'avoir fait son propre pont en H avec des Mosfet...
Le potentiomètre est overkill, je le reconnais. Il va peut-être sauter...
Je pense que la résistance de grille pour les MOSFETs n'est pas nécessaire, avec l'utilisation du A89505 (j'ai l'extrait de la datasheet, là).
Pour les diodes TSV, tu les mettrais où ? Je pensais que les MOFSET pourraient évacuer les surtensions dues aux moteurs...
Pour les capas, je crois que ce sont des céramiques, faut que je vérifie.
Je viens de regarder les modules Pololu, on est autour de 40$ hors taxes, hors frais de port, hors frais de douane. Alors la question coût se pose... Normalement je ne paierais pas le circuit imprimé, grâce au partenariat avec Aisler. Et puis y'a l'ego d'avoir fait son propre pont en H avec des Mosfet...
#508
Posté 09 novembre 2025 - 17:00
J'ai fini - ou presque - de souder la carte...
Je vous dis pas le soulagement quand j'ai eu ça:
```
keuronde@Poivron:~$ lsusb
Bus 004 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 012: ID 2e8a:0003 Raspberry Pi RP2 Boot
Bus 001 Device 011: ID 04b4:0003 Cypress Semiconductor Corp. USB-UART LP
```
Le Rasperry Pi Pico est reconnu (normal) mais aussi la puce USB-UART, et vu les soudures pour le connecteur micro-USB et la puce, c'était pas gagné que ça marche du premier coup !
Je vous dis pas le soulagement quand j'ai eu ça:
```
keuronde@Poivron:~$ lsusb
Bus 004 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 012: ID 2e8a:0003 Raspberry Pi RP2 Boot
Bus 001 Device 011: ID 04b4:0003 Cypress Semiconductor Corp. USB-UART LP
```
Le Rasperry Pi Pico est reconnu (normal) mais aussi la puce USB-UART, et vu les soudures pour le connecteur micro-USB et la puce, c'était pas gagné que ça marche du premier coup !
#513
Posté 21 novembre 2025 - 21:23
J'ai passé du temps à faire un superbe code propre, 250 lignes, pour gérer les LEDs en utilisant 2 c[U+0153]urs, je teste et reteste, je peux facilement faire clignoter les led à differentes vitesse, de la couleur de mon choix.
J'intègre, je teste, et rien qui marche, la carte SD et les LED semblent rentrer en conflit...
J'aime le code !
J'intègre, je teste, et rien qui marche, la carte SD et les LED semblent rentrer en conflit...
J'aime le code !
#514
Posté 22 novembre 2025 - 13:36
Je pense que les deux se battent pour le module PIO (mais je sais qu'il y en a au moins 2), mais j'ai pas regardé plus que ça...
J'avais codé le bout pour les led, puis un bout pour la gestion d'une manette.
J'étais en train de me dire :
1) tu pilotes les led avec la manette
2) tu transformes tes pami en voitures téléguidées, ça va être trop classe.
Quand j'ai vu que les led marchaient pas avec le reste du code, j'ai tout rangé :-/. Mais je vais faire marcher tout ça, en évitant une nuit blanche de préférence
J'avais codé le bout pour les led, puis un bout pour la gestion d'une manette.
J'étais en train de me dire :
1) tu pilotes les led avec la manette
2) tu transformes tes pami en voitures téléguidées, ça va être trop classe.
Quand j'ai vu que les led marchaient pas avec le reste du code, j'ai tout rangé :-/. Mais je vais faire marcher tout ça, en évitant une nuit blanche de préférence
#515
Posté 25 novembre 2025 - 21:18
Quand tu en es là, tu sais que tu va prendre du retard sur tes projets... Y'a trop de trucs cools à faire avec un robot et une manette !
Évidemment, j'ai commencé par piloter les PWM moteurs avec les joystick (1 par moteur), mais on peut faire mieux...
Utiliser les joysticks en entrée de l'asservissement en vitesse ? Utiliser un seul joystick pour avancer et tourner ? Utiliser le capteur pour l'anti collision en conduite manuelle ?
Utiliser les boutons pour changer de mode de pilotage ?
Évidemment, j'ai commencé par piloter les PWM moteurs avec les joystick (1 par moteur), mais on peut faire mieux...
Utiliser les joysticks en entrée de l'asservissement en vitesse ? Utiliser un seul joystick pour avancer et tourner ? Utiliser le capteur pour l'anti collision en conduite manuelle ?
Utiliser les boutons pour changer de mode de pilotage ?
#518
Posté 02 décembre 2025 - 22:45
Sur le site Poivron Robotique, je rattrape notre retard de publication avec un nouvel article sur le Framing et nos avancées. Cet article est loin de ratrapper ce qui a été publié ici jusqu'à présent...
https://poivron-robo...ation-USB .html
https://poivron-robo...ation-USB .html
#519
Posté 04 décembre 2025 - 21:45
Sur le site Poivron Robotique, je rattrape notre retard de publication avec un nouvel article sur le Framing et nos avancées. Cet article est loin de ratrapper ce qui a été publié ici jusqu'à présent...
https://poivron-robo...ation-USB .html
https://poivron-robo...ation-USB .html
#520
Posté 21 décembre 2025 - 21:20
Ça ne m'amusait pas tellement, mais après une discussion dans #code, je me suis motivé à reprendre mon code de communication.
Je restructure donc les messages et je teste. Et ça ne marche pas.
J'envoie des données en binaire, un tableau de _char_. Je les envoie en utilisant la fonction _putchar()_. Ça devrait être simple, regardez:
```C
#include "pico/stdlib.h"
#include <stdio.h>
void main(void)
{
stdio_init_all();
while(1){
for(int i='A'; i<='Z'; i++){
putchar(i);
for(int j=0; j<6; j++){
putchar(0);
}
putchar('\r');
}
sleep_ms(1000);
}
}
```
Donne :
```
00000000 41 00 00 00 00 00 00 0a 42 00 00 00 00 00 00 0a |A.......B.......|
00000010 43 00 00 00 00 00 00 0a 44 00 00 00 00 00 00 0a |C.......D.......|
00000020 45 00 00 00 00 00 00 0a 46 00 00 00 00 00 00 0a |E.......F.......|
00000030 47 00 00 00 00 00 00 0a 48 00 00 00 00 00 00 0a |G.......H.......|
00000040 49 00 00 00 00 00 00 0a 4a 00 00 00 00 00 00 0a |I.......J.......|
00000050 4b 00 00 00 00 00 00 0a 4c 00 00 00 00 00 00 0a |K.......L.......|
00000060 4d 00 00 00 00 00 00 0a 4e 00 00 00 00 00 00 0a |M.......N.......|
00000070 4f 00 00 00 00 00 00 0a 50 00 00 00 00 00 00 0a |O.......P.......|
00000080 51 00 00 00 00 00 00 0a 52 00 00 00 00 00 00 0a |Q.......R.......|
00000090 53 00 00 00 00 00 00 0a 54 00 00 00 00 00 00 0a |S.......T.......|
000000a0 55 00 00 00 00 00 00 0a 56 00 00 00 00 00 00 0a |U.......V.......|
000000b0 57 00 00 00 00 00 00 0a 58 00 00 00 00 00 00 0a |W.......X.......|
000000c0 59 00 00 00 00 00 00 0a 5a 00 00 00 00 00 00 0a |Y.......Z.......|
```
J'envoie les caractères de 'A' à 'Z', suivi de 6 zéros (pour que ce soit joli) et un "\n" (0x0a) pour que le PC reçoive les données
Wahooo, ça parait bon, non ?
Maintenant, au lien d'envoyer de 'A' à 'Z', j'envoie de 10 à 20.
Avant
```C
for(int i='A'; i<='Z'; i++){
```
Après
```C
for(int i=10; i<=20; i++){
```
Et ça donne :
```
00000000 0a 00 00 00 00 00 00 0a 0b 00 00 00 00 00 00 0a |................|
00000010 0c 00 00 00 00 00 00 0a 0a 00 00 00 00 00 00 0a |................|
00000020 0e 00 00 00 00 00 00 0a 0f 00 00 00 00 00 00 0a |................|
00000030 10 00 00 00 00 00 00 0a 00 00 00 00 00 00 0a 00 |................|
00000040 00 00 00 00 00 0a 00 00 00 00 00 00 0a 14 00 00 |................|
```
On remarque que les caractères 0x11, 0x12 et 0x13 n'apparaissent pas !
Ce qui fait que le 0x14 semble arriver 3 caractères trop tôt.
J'obtiens cette sortie avec `$ cat /dev/ttyACM0 | hexdump -C`
Alors, est-ce la fonction putchar qui "filtre" ? ou mon terminal ? ou la fonction hexdump ?
Je restructure donc les messages et je teste. Et ça ne marche pas.
J'envoie des données en binaire, un tableau de _char_. Je les envoie en utilisant la fonction _putchar()_. Ça devrait être simple, regardez:
```C
#include "pico/stdlib.h"
#include <stdio.h>
void main(void)
{
stdio_init_all();
while(1){
for(int i='A'; i<='Z'; i++){
putchar(i);
for(int j=0; j<6; j++){
putchar(0);
}
putchar('\r');
}
sleep_ms(1000);
}
}
```
Donne :
```
00000000 41 00 00 00 00 00 00 0a 42 00 00 00 00 00 00 0a |A.......B.......|
00000010 43 00 00 00 00 00 00 0a 44 00 00 00 00 00 00 0a |C.......D.......|
00000020 45 00 00 00 00 00 00 0a 46 00 00 00 00 00 00 0a |E.......F.......|
00000030 47 00 00 00 00 00 00 0a 48 00 00 00 00 00 00 0a |G.......H.......|
00000040 49 00 00 00 00 00 00 0a 4a 00 00 00 00 00 00 0a |I.......J.......|
00000050 4b 00 00 00 00 00 00 0a 4c 00 00 00 00 00 00 0a |K.......L.......|
00000060 4d 00 00 00 00 00 00 0a 4e 00 00 00 00 00 00 0a |M.......N.......|
00000070 4f 00 00 00 00 00 00 0a 50 00 00 00 00 00 00 0a |O.......P.......|
00000080 51 00 00 00 00 00 00 0a 52 00 00 00 00 00 00 0a |Q.......R.......|
00000090 53 00 00 00 00 00 00 0a 54 00 00 00 00 00 00 0a |S.......T.......|
000000a0 55 00 00 00 00 00 00 0a 56 00 00 00 00 00 00 0a |U.......V.......|
000000b0 57 00 00 00 00 00 00 0a 58 00 00 00 00 00 00 0a |W.......X.......|
000000c0 59 00 00 00 00 00 00 0a 5a 00 00 00 00 00 00 0a |Y.......Z.......|
```
J'envoie les caractères de 'A' à 'Z', suivi de 6 zéros (pour que ce soit joli) et un "\n" (0x0a) pour que le PC reçoive les données
Wahooo, ça parait bon, non ?
Maintenant, au lien d'envoyer de 'A' à 'Z', j'envoie de 10 à 20.
Avant
```C
for(int i='A'; i<='Z'; i++){
```
Après
```C
for(int i=10; i<=20; i++){
```
Et ça donne :
```
00000000 0a 00 00 00 00 00 00 0a 0b 00 00 00 00 00 00 0a |................|
00000010 0c 00 00 00 00 00 00 0a 0a 00 00 00 00 00 00 0a |................|
00000020 0e 00 00 00 00 00 00 0a 0f 00 00 00 00 00 00 0a |................|
00000030 10 00 00 00 00 00 00 0a 00 00 00 00 00 00 0a 00 |................|
00000040 00 00 00 00 00 0a 00 00 00 00 00 00 0a 14 00 00 |................|
```
On remarque que les caractères 0x11, 0x12 et 0x13 n'apparaissent pas !
Ce qui fait que le 0x14 semble arriver 3 caractères trop tôt.
J'obtiens cette sortie avec `$ cat /dev/ttyACM0 | hexdump -C`
Alors, est-ce la fonction putchar qui "filtre" ? ou mon terminal ? ou la fonction hexdump ?
Répondre à ce sujet
1 utilisateur(s) li(sen)t ce sujet
0 members, 1 guests, 0 anonymous users














