petit_pendule_de_furuta_software
Différences
Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
| petit_pendule_de_furuta_software [2022/06/11 10:07] – [SPI] serge | petit_pendule_de_furuta_software [2024/12/10 16:06] (Version actuelle) – Benjamin Labomedia | ||
|---|---|---|---|
| Ligne 1: | Ligne 1: | ||
| - | ====== Petit Pendule de Furuta: Branchements | + | ====== Petit Pendule de Furuta: |
| <WRAP center round box 60% centeralign> | <WRAP center round box 60% centeralign> | ||
| **{{tagpage> | **{{tagpage> | ||
| Ligne 11: | Ligne 11: | ||
| **{{tagpage> | **{{tagpage> | ||
| </ | </ | ||
| + | ====== Mode d' | ||
| + | Phallocratie n°2 - le pendule de Furuta est presque plug and play, pour l' | ||
| + | Ensuite, une fois l'ordi démarré, on accède à des écrans interactifs : | ||
| + | |||
| + | {{ :: | ||
| + | |||
| + | {{ :: | ||
| + | Il existe 2 modes de fonctionnement : le mode Training qui rejoue l’entraînement du pendule et le mode Testing où le modèle déjà entrainé est utilisé pour maintenir la tige à la verticale | ||
| + | |||
| + | Via ce menu, il est aussi possible d' | ||
| + | |||
| + | {{ :: | ||
| + | Pour ce mode, on peut démarrer ou arrêter l' | ||
| + | |||
| + | {{ :: | ||
| + | Pour ce mode, on peut démarrer ou arrêter le test du modèle | ||
| + | |||
| + | ====== Cartel ====== | ||
| + | Phallocratie même n°2 est un pendule de Furuta réalisé par Serge Pierre dans le cadre des activités de la Labomedia. | ||
| + | |||
| + | Le pendule de Furuta, ou pendule rotationnel inversé, se compose d'un bras entraîné qui tourne dans le plan horizontal et d'un pendule attaché à ce bras qui est libre de tourner dans le plan vertical. Il a été inventé en 1992 au Tokyo Institute of Technology par Katsuhisa Furuta et ses collègues. | ||
| + | |||
| + | Ce robot illustre particulièrement bien ce que l'on appelle " | ||
| + | |||
| + | Ce mode d' | ||
| + | |||
| + | Phallocratie même n°2, pour maintenir sa tige à la verticale, a ainsi appris pendant plusieurs jours, plusieurs sessions d' | ||
| + | |||
| + | Ce dispositif permet soit de démontrer le fonctionnement du pendule avec l'' | ||
| + | |||
| + | Réalisation : Serge Pierre avec l'aide d' | ||
| + | Documentation : https:// | ||
| + | |||
| + | {{ :: | ||
| + | |||
| + | =====Les sources du projet===== | ||
| + | * **[[https:// | ||
| + | {{ : | ||
| ===== GPIO d'un Pi3 B+ ou d'un Pi4===== | ===== GPIO d'un Pi3 B+ ou d'un Pi4===== | ||
| {{ : | {{ : | ||
| Ligne 42: | Ligne 80: | ||
| Exec=sudo pigpiod | Exec=sudo pigpiod | ||
| </ | </ | ||
| + | |||
| + | ====Câblage sur la Pi==== | ||
| + | {{ : | ||
| + | |||
| + | ====Tension d' | ||
| + | Les PINS GPIO sont à 1 si la tension d' | ||
| + | Les entrées A B et Index de chaque codeurs sont baissées à 3V avec une puce [[https:// | ||
| + | {{: | ||
| + | {{: | ||
| =====PWM===== | =====PWM===== | ||
| - | {{: | + | {{: |
| ==== Matériels ==== | ==== Matériels ==== | ||
| Ligne 52: | Ligne 99: | ||
| ==== Câblage ==== | ==== Câblage ==== | ||
| - | ^PIN^GPIO^Fonction^ Borne du DRI0042^ | + | {{: |
| - | | 14 | GND| GND | COM | | + | {{: |
| - | | 13 | 27 | Sens droite | IN1 | | + | |
| - | | 15 | 22 | Sens gauche | IN2 | | + | |
| - | | 12 | 18 | PWM | PWM | | + | |
| * https:// | * https:// | ||
| - | + | La puissance envoyée au moteur est contrôlée sur le PWM. PWM est toujours positif, il ne défini pas le sens de rotation: le sens est défini par IN1 et IN2. Voir [[https:// | |
| - | La puissance envoyée au moteur est contrôlée sur le PWM. PWM est toujours positif, il ne défini pas le sens de rotation: le sens est défini par IN1 et IN2. Voir [[https:// | + | |
| Il est conseillé de faire une pause entre 2 changements de sens, **un certain temps** en fonction du moteur et des valeurs PWM avant après. En pratique, le moteur est utilisé au tiers de sa puissance, il a supporté des dizaines de millions de steps, ne chauffe pas du tout.\\ | Il est conseillé de faire une pause entre 2 changements de sens, **un certain temps** en fonction du moteur et des valeurs PWM avant après. En pratique, le moteur est utilisé au tiers de sa puissance, il a supporté des dizaines de millions de steps, ne chauffe pas du tout.\\ | ||
| - | La fréquence des impulsions a été testée entre 14 Hz et 28 Hz. La durée de l' | + | La fréquence des impulsions a été testée entre 14 Hz et 28 Hz. La durée de l' |
| **Voir le script de commande du moteur** TODO rajouter le lien | **Voir le script de commande du moteur** TODO rajouter le lien | ||
| =====US DIGITAL S1 Optical Shaft Encoder===== | =====US DIGITAL S1 Optical Shaft Encoder===== | ||
| - | ====Branchement direct sur la Pi: Solution abandonnée à cause de la latence==== | + | ====Branchement direct sur la Pi==== |
| - | https://www.raspberryme.com/ | + | {{:media_16: |
| - | Encoder du **moteur**: | + | |
| - | ^PIN du S1^DESCRIPTION^Borne du RASPI^GPIO^ | + | |
| - | |1 | Ground | + | |
| - | |2 | Index = 1 top par tour | 33 | GPIO13 | | + | |
| - | |3 | A channel | + | |
| - | |4 | +5V DC power | 2 | 5V | | + | |
| - | |5 | B channel | + | |
| - | Encoder du **balancier**: | + | |
| - | ^PIN du S1^DESCRIPTION^Borne du RASPI^GPIO^ | + | |
| - | |1 | Ground | + | |
| - | |2 | Index = 1 top par tour | 29 | GPIO5 | | + | |
| - | |3 | A channel | + | |
| - | |4 | +5V DC power | 4 | 5V | | + | |
| - | |5 | B channel | + | |
| + | https:// | ||
| - | ===Latence des callbacks=== | + | ====Latence des callbacks==== |
| - | Dans certains transitoires avec des rotations sur les codeurs rapides, les callbacks | + | Une Raspberry Pi peut gérer |
| - | + | Un codeur | |
| - | ====Branchement sur un ESP32==== | + | Un codeur |
| - | + | ||
| - | + | ||
| - | + | ||
| - | =====SPI===== | + | |
| - | Les 2 codeurs esclaves sont branchés sur SPI0\\ | + | |
| - | {{: | + | |
| - | + | ||
| - | * **[[https:// | + | |
| - | * https:// | + | |
| - | + | ||
| - | ====Codeurs | + | |
| - | Doc probable pour le SPI du capteur | + | |
| - | Il semblerait que le circuit dans le coder est peut être celui-ci, car le datagramme SPI est très similaire : [[ https:// | + | |
| - | + | ||
| - | Il faudrait donc voir, car pour lire une données théoriquement il faut envoyer une commande READ qui permet | + | |
| - | On devrait avoir 16 bits à lire : | + | Soit 20 kHz pour les 2 codeurs |
| - | - 1 bit de parité | + | |
| - | - 1 bit error flag | + | |
| - | - 14 bits indiquant l' | + | |
| - | Lorsqu' | + | ===Solution=== |
| + | **Le codeur de 4000 points | ||
| + | La fréquence a 1 tour par seconde devient | ||
| - | Ces codeurs ont fonctionné rarement, en python en direct sur la Pi ou sur Arduino UNO, et le plus souvent rien, nada. | + | La précision est tout à fait suffisante: le point zéro est défini à -/+ 1 ou 2 ou 3 points, c'est très sensible. |
| - | ====Activation du SPI==== | + | |
| - | [[https:// | + | |
| - | =====Câblage du petit furuta===== | + | =====Recherche sur ESP32===== |
| - | {{: | + | ====Branchement sur ESP32 et Com en SPI avec Raspi==== |
| - | {{: | + | {{: |
| - | {{: | + | |
| - | {{: | + | |
| - | {{: | + | |
| - | {{: | + | |
| + | ===Ressources=== | ||
| + | * **[[https:// | ||
| + | * Voir la page dédiée: **[[rotary_encoder_controller]]** | ||
| - | {{tag> bestiaire_ia petit_pendule_furuta raspberry_pi raspbian sb }} | + | {{tag> bestiaire_ia petit_pendule_furuta raspberry_pi raspbian sb ia }} |
petit_pendule_de_furuta_software.1654942049.txt.gz · Dernière modification : de serge
