Slave I/O |
Le Raspberry Pi Pico peut être utilisé comme esclave WIOpi I2C pour les tâches communes:
Le moteur du protocole NeoPixel nécessite toutes les interruptions sur le Pico. C'est la raison pour laquelle il n'est pas possible de combiner les servomoteurs et le neopixel simultanément sur le même Pico.
Le firmware binaire peut être téléchargé ici:
https://wiki.rocrail.net/rocrail-snapshot/SIOpico.ino.rpipico.uf2
Configuration | |
---|---|
Servo | GP0 (broche 1) connecté au GND |
NeoPixel | GP0 (broche 1) ouverte et connecté au ruban de LED: Nécessite une résistance de tirage de 10k. |
Adresse esclave I2C | GP1 et GP2 |
Adresse I2C Esclave | ||
---|---|---|
GP1 (SW1-1) | GP2 (SW1-2) | Adresse |
off | off | 124 0x7C |
on | off | 125 0x7D |
off | on | 126 0x7E |
on | on | 127 0x7F |
Banques E/S | ||||
---|---|---|---|---|
Valeur GP28 | Configuration | Banque 1 | Banque 2 | SW1 |
< 200 | 0 | Entrée | Sortie | 1=0 2=0 3=0 4=0 |
> 4000 | 1 | Entrée | Entrée | 1=1 2=0 3=0 4=0 |
< 3000 | 2 | Sortie | Sortie | 1=0 2=1 3=0 4=0 |
< 2000 | 3 | Sortie | Entrée | 1=0 2=0 3=1 4=0 |
< 1500 | 5 | Multiplexage | Entrée | 1=0 2=0 3=1 4=1 |
< 1000 | 4 | Moteur pas à pas | Entrée | 1=0 2=0 3=0 4=1 |
3V3 *------*--[10k]--*--[10k]--*--[10k]--*--[10k]---* GND | | | | SW1 / / / / 1 2 3 4 GP28 *------*---------*---------*---------*--[100k]--* GND
La valeur GP28 peut être vérifiée dans le Moniteur.
I2C | |
---|---|
SDA | GP4 (broche 6) |
SCL | GP5 (broche 7) |
Vitesse Max. I2C: 100kHz → Par défaut.
NeoPixel | |
---|---|
Donnnée | GP0 (broche 1) |
Servo | |
---|---|
PWM | GP6 (broche 9) |
PWM | GP7 (broche 10) |
PWM | GP8 (broche 11) |
PWM | GP9 (broche 12) |
Via les paramètres dans le signal et la valeur dans les commutateurs d'objets, le saut en arrière des barrières et les signaux de forme peuvent être simulés.
Le réglage est fait en utilisant les valeurs hexadécimals. L'entrée est faite comme un nombre décimal.
Exemple:
Numéro = 4
Step = 1
Hex 0x14 = Décimal 20
Moteur pas à pas | ||
---|---|---|
IN1 | GP10 | GP14 |
IN2 | GP11 | GP15 |
IN3 | GP12 | GP16 |
IN4 | GP13 | GP17 |
E/S | |
---|---|
Banque 1 | GP10…GP17: nécessite une résistance de tirage de 10k. (8 E/S parce que 23/24/25 n.a.) - Adresse: 1-8 |
Banque 2 | GP18…GP27 et GP3: nécessite une résistance de tirage de 10k. (8 E/S) - Adresse:9-16 |
Identifiant du nœud | Identifiant du nœud WIOpi |
Adresse | Numéro du pixel |
Port | Esclave I2C: 124…127 |
Un signal Rocrail avec le contrôle des aspects et un type de port multiplexé, utilise 4 broches avec le décalage de port.
Le taux de rafraîchissement est d'environ 250µs.
Les valeurs de l'aspect sont utilisés à partir de l'onglet détails. 24 bits sont utilisés, les 12 bits supérieurs servent pour le clignotement.
Exemple: LED 1 et 2 allumées et LED 2 clignotante: 0x002003 → valeur d'aspect = 8195
Un second signal peut être défini dans Rocrail avec l'adresse + 100 pour le combiner avec le signal principal.
Tapez ?<enter> dans le moniteur pour vérifier la configuration du Pico:
SIOpico (c)Rocrail Oct 20 2021 10:47:03 I2C:126 (pixel=0 servo=20003F70 IO=FF 00 servo=00 GP28=4083 CNF=0 IO1=input IO2=output)
L'ADC GP28 nécessite une résistance de tirage de 100k qui n'est pas sur le circuit imprimé.
Le moyen le plus simple est de monter la résistance directement sur la carte du Pico entre la broche 34 et 38:
De cette façon l'ADC est également stable si le Pico n'est pas monté sur le circuit imprimé; La configuration reste 0 par défaut.