Maqueen Lab // Broches

Référence · Maqueen Lite v4
🤖 App Robot 🗂️ Catalog 🧪 Labs 🏠 Hub

Maqueen Lite v4 — Référence des broches

Source de vérité pour chaque broche utilisée par le firmware Maqueen Lab et l'extension pxt-maqueen sous-jacente.

Références

À propos de la bibliothèque pxt-maqueen

pxt-maqueen est l'extension MakeCode officielle de DFRobot pour la famille de robots éducatifs Maqueen (y compris la Maqueen Lite v4). Ajoute-la dans MakeCode via Extensions → recherche « maqueen » ou colle son URL GitHub. Elle expose un namespace maqueen qui enveloppe les opérations bas-niveau (broches, I2C) derrière des blocs adaptés aux enfants :

Le firmware v1 de Maqueen Lab (firmware/v1-maqueen-lib.ts) utilise ces appels maqueen.* directement. Le futur firmware v2 les remplacera par des appels bruts pins.* et I2C — même protocole filaire, même app web, code bas-niveau affiché côte à côte dans chaque Component Explorer pour une progression pédagogique.

Utilisée par le matériel Maqueen Conflit avec port Gravity Libre pour ajouts utilisateur

Utilisation des broches micro:bit

BrocheUtilisée parDirectionNotes
P0BuzzerSortie (PWM)Broche music par défaut ; aussi port Gravity — conflit en cas de réassignation
P1Ultrason TRIGSortieAussi port Gravity — conflit avec capteur externe
P2Ultrason ECHOEntréeAussi port Gravity — conflit avec capteur externe
P3librePartagée avec col1 de la matrice LED (éviter en sortie numérique)
P4libreMatrice LED col2
P5Bouton AEntréeIntégré micro:bit
P6libreMatrice LED col9
P7libreMatrice LED col8
P8LED gauche (simple)SortieNumérique ON/OFF
P9libreMatrice LED col7
P10libreMatrice LED col3
P11Bouton BEntréeIntégré micro:bit
P12LED droite (simple)SortieNumérique ON/OFF
P13Capteur de ligne gaucheEntréeNumérique 0/1
P14Capteur de ligne droitEntréeNumérique 0/1
P15libre
P16libre
P19I2C SCLPilote moteur + 4× RGB + servos S1/S2 (adresse 0x10)
P20I2C SDAMême bus I2C

Carte des composants

ComposantBroche / AdresseNotes
Pilote moteurI2C 0x10Reg 0x00 = M1, 0x02 = M2 (direction + vitesse)
4× RGB d'ambianceI2C 0x10, reg 0x32Ce n'est pas du NeoPixel standard — piloté par le chip via le contrôleur moteur
LED gauche (simple)P8 numériqueON/OFF
LED droite (simple)P12 numériqueON/OFF
Capteur de ligne gaucheP13 numérique0 / 1
Capteur de ligne droitP14 numérique0 / 1
Ultrason TRIGP1SR04 / SR04P
Ultrason ECHOP2SR04 / SR04P
BuzzerP0Sortie de la lib music par défaut du micro:bit
Servos S1 / S2I2C 0x10 (via extension)Utiliser maqueen.servoRun(S1|S2, angle)
Récepteur IRP16 (par défaut Maqueen Lite v4)maqueenIR.initIR(Pins.P16) + onPressEvent(...) par bouton

Carte des registres I2C 0x10 (chip pilote moteur)

RegistreFonction
0x00Moteur M1 (gauche) : direction + vitesse
0x02Moteur M2 (droite) : direction + vitesse
0x14Angle du servo S1
0x15Angle du servo S2
0x32Données des 4× LED RGB (16M de couleurs chacune)

Libres pour ajouts

P3, P4, P6, P7, P9, P10, P15, P16

P3/P4/P6/P7/P9/P10 partagent la matrice d'affichage LED — désactiver l'affichage avant utilisation comme sortie numérique :

led.enable(false)

Avertissements de conflit

P0 = buzzer. Brancher quoi que ce soit d'autre sur le port Gravity P0 coupe le buzzer (et inversement).

P1 / P2 = ultrason. Brancher un capteur Gravity sur P1 ou P2 désactive l'ultrason. L'app prévient quand les deux sont utilisés.

Bus I2C (P19/P20) est partagé. Des add-ons à des adresses autres que 0x10 sont OK ; une collision d'adresses est fatale.

Comment nous le savons — assignations tracées à la source

Chaque assignation de broche ci-dessous est extraite du code source de l'extension pxt-maqueen. Les numéros de ligne se réfèrent à maqueen.ts au moment de la rédaction.

Broche / AdresseComposantPreuve
P1Ultrason TRIGmaqueen.ts:164pins.digitalWritePin(DigitalPin.P1, 1) dans Ultrasonic()
P2Ultrason ECHOmaqueen.ts:172d = pins.pulseIn(DigitalPin.P2, PulseValue.High, 500 * 58)
P8LED gauche (simple)maqueen.ts:287pins.digitalWritePin(DigitalPin.P8, ledswitch) dans writeLED(LEDLeft, ...)
P12LED droite (simple)maqueen.ts:289pins.digitalWritePin(DigitalPin.P12, ledswitch) dans writeLED(LEDRight, ...)
P13Capteur de ligne gauchemaqueen.ts:267return pins.digitalReadPin(DigitalPin.P13) dans readPatrol(PatrolLeft)
P14Capteur de ligne droitmaqueen.ts:269return pins.digitalReadPin(DigitalPin.P14) dans readPatrol(PatrolRight)
I2C 0x10Chip moteur + RGB + servosmaqueen.ts:19const MOTER_ADDRESSS = 0x10, utilisé par pins.i2cWriteBuffer(0x10, buf) partout
I2C 0x10 reg 0x14Angle servo S1maqueen.ts:308buf[0] = 0x14 puis pins.i2cWriteBuffer(0x10, buf) dans servoRun(S1, angle)
I2C 0x10 reg 0x15Angle servo S2maqueen.ts:311buf[0] = 0x15 pour S2
I2C 0x10 reg 0x00Moteur M1maqueen.ts:202–205buf[0] = 0x00; ...; pins.i2cWriteBuffer(0x10, buf) dans motorRun(M1, ...)
I2C 0x10 reg 0x02Moteur M2maqueen.ts:208–211buf[0] = 0x02 pour M2
I2C 0x10 reg 0x324× LED RGB d'ambiancemaqueen.ts:659pins.i2cWriteNumber(I2CADDR, 0x32, NumberFormat.Int8LE) dans le bloc d'écriture RGB
Récepteur IR (P16)NEC IRmaqueenIR.cpp définit l'API mais ne code pas en dur de broche — l'utilisateur doit appeler maqueenIR.initIR(maqueenIR.Pins.P16). P16 est la convention pour la Maqueen Lite v4.
P0BuzzerPas dans pxt-maqueen. La Maqueen Lite v4 câble le buzzer embarqué sur P0, sortie par défaut de la lib music du micro:bit. Confirmé par les exemples DFRobot sur le wiki, conforme au haut-parleur intégré du micro:bit V2.
P19 / P20I2C SCL / SDAPas dans pxt-maqueen. Broches I2C standard du connecteur de bord micro:bit selon tech.microbit.org/hardware/edgeconnector ; les appels pins.i2c* dans pxt-maqueen les utilisent par défaut.
P5 / P11Bouton A / BPas dans pxt-maqueen. Intégrés à la carte micro:bit elle-même, pas au support Maqueen.
P3, P4, P6, P7, P9, P10Colonnes matrice LEDPas dans pxt-maqueen. Appartiennent à l'afficheur LED 5×5 intégré du micro:bit ; utilisables comme E/S numériques uniquement après led.enable(false).

Pour re-vérifier : cloner le dépôt et grep pour DigitalPin.P et 0x10 :

git clone https://github.com/DFRobot/pxt-maqueen
grep -nE "DigitalPin\.|0x10|0x14|0x15|0x32" pxt-maqueen/maqueen.ts

Comment le firmware Maqueen Lab les utilise

Verbe (par BLE)Code micro:bit
M:L,Rmaqueen.motorRun(M1, dir, |L|) + idem pour M2
STOPmaqueen.motorStop(All)
LED:i,smaqueen.writeLED(i, s)
SRV:i,amaqueen.servoRun(Si, a)
BUZZ:f,msmusic.playTone(f, ms)
LINE?maqueen.readPatrol(L/R)LINE:l,r
DIST?maqueen.Ultrasonic(cm)DIST:cm
IR?maqueen.IR_read()IR:code
RGB:i,r,g,bÉcriture I2C sur 0x10 reg 0x32
(auto)input.acceleration(X/Y/Z)ACC:x,y,z

Voir firmware/v1-maqueen-lib.ts pour l'implémentation complète.

Futur : firmware brut (v2)

La phase 2 du firmware (firmware/v2-raw-pins.ts) remplacera les appels maqueen.* par des opérations directes pins.* et pins.i2cWriteBuffer(...) — même protocole filaire, code bas-niveau pour apprenants avancés. Les Component Explorers afficheront les deux versions côte à côte dans le panneau de code.

← Retour à l'App Robot