Outils pour utilisateurs

Outils du site


petit_pendule_de_furuta_software

Ceci est une ancienne révision du document !


Petit Pendule de Furuta: Branchements et Software

GPIO d'un Pi3 B+ ou d'un Pi4

Ressources

General Purpose Input/Output sur fr.wikipedia.org Les ports GPIO (anglais : General Purpose Input/Output, littéralement Entrée-sortie à usage général) sont des ports d'entrées-sorties très utilisés dans le monde des microcontrôleurs, en particulier dans le domaine de l'électronique embarquée, qui ont fait leur apparition au début des années 19801. Elles sont placées sur un circuit électronique afin de communiquer avec des composants électroniques et circuits externes. Il peut s'agir de détecteurs ou senseurs pour capter des données, ou encore de contrôler des commandes.

Liste des GPIO

PWM

Matériels

Câblage

PINGPIOFonction Borne du DRI0042
14 GND GND COM
13 27 Sens droite IN1
15  22  Sens gauche IN2
12 18 PWM PWM

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://wiki.dfrobot.com/15A_Single_DC_Motor_Driver_SKU__DRI0042#target_1 pour le détail du fonctionnement. Conseil: faire une pause entre 2 changements de sens, un certain temps en fonction du moteur et des valeurs PWM avant après.

Voir le script de commande du moteur TODO rajouter le lien

Quelle API python choisir ?

compare python gpio api pointe vers https://elinux.org/RPi_GPIO_Code_Samples#Python par l'auteur de pigpio. La Labomedia joue dans la cour des grands: nous utilisons pigpio. RPi.GPIO n'est plus maintenu et a la réputation de raccourcir la vie des moteurs! Le module python est déjà installé sur Raspbian 11.

Lancement du deamon

sudo pigpiod

et n'oublier pas de rajouter votre user au groupe gpio

Run deamon at startup

mkdir ~/.config/autostart
sudo nano ~/.config/autostart/pigpiod

coller

  [Desktop Entry]
  Type=Application
  Exec=sudo pigpiod

US DIGITAL S1 Optical Shaft Encoder

https://www.raspberryme.com/comment-utiliser-un-encodeur-rotatif-avec-le-raspberry-pi/

Les PIN 12 13 14 15 sont déjà utilisés.

Encoder du moteur:

PIN du S1DESCRIPTIONBorne du RASPIGPIO
1 Ground 6 Ground
2 Index = 1 top par tour 33 GPIO13
3 A channel 35 GPIO19
4 +5V DC power 2 5V
5 B channel 36 GPIO16

Encoder du balancier:

PIN du S1DESCRIPTIONBorne du RASPIGPIO
1 Ground 30 Ground
2 Index = 1 top par tour 29 GPIO5
3 A channel 31 GPIO6
4 +5V DC power 4 5V
5 B channel 32 GPIO12

SPI

Les 2 codeurs esclaves sont branchés sur SPI0

Doc probable pour le SPI du capteur à effet hall chinois : page aliexpress Il semblerait que le circuit dans le coder est peut être celui-ci, car le datagramme SPI est très similaire : datasheet

Il faudrait donc voir, car pour lire une données théoriquement il faut envoyer une commande READ qui permet de recevoir simultanément la valeur au moment du READ précédent.

On devrait avoir 16 bits à lire : - 1 bit de parité - 1 bit error flag - 14 bits indiquant l'angle absolue sur 14 bits.

Lorsqu'on lit les données SPI dans les 2 octets, il y a donc les 6 derniers bits du premier octet à concaténé avec les 8 bits du second octet pour reconstituer le mot de 14 bits.

Activation du SPI

Activation du SPI Aller dans Menu, Settings, Enable SPI, puis Vérifier si SPI est activé

Branchement des devices sur la Pi

DESCRIPTIONBorne du RASPIGPIOFils
Ground 20 Ground Noir
+5V 2 5V Rouge
MISO des 2 devices 21 9 Bleu
MOSI des 2 devices 19 10 Blanc
SCLK des 2 devices 23 11 Vert
CE0 24 8 Jaune
CE1 26 7 Jaune
petit_pendule_de_furuta_software.1653461655.txt.gz · Dernière modification : 2022/05/25 06:54 de serge