Char autonome « WalaBeer » : Walabot, Arduino, Raspberry Pi & Alexa
Composants et fournitures
| Composant | Qté |
|---|---|
| Walabot Creator (capteur radar 3D) | 1 |
| Arduino MKR1000 | 1 |
| Raspberry Pi 3 Model B | 1 |
| Amazon Echo (ou echosim.io) | 1 |
| Driver moteur dual TB6612FNG (SparkFun) | 1 |
| Châssis chenillé avec 2 moteurs DC | 1 |
| Servos Tower Pro MG996R | 3 |
| Kit construction métallique (Meccano-type) | 1 |
| Moteur pas-à-pas 28BYJ-48 + driver X113647 | 1 |
| Batterie LiPo 7.4V + chargeur | 1 |
| Potentiomètre rotatif 10kΩ (retour grue) | 1 |
| Segments LED strip (phares + indicateur) | 2 |
| Circuit BEC 5V (régulateur) | 1 |
| Résistances 10k, 22.1k, 2.21kΩ | 1 chacune |
| Transistor Darlington haute puissance | 1 |
| Règles en bois 30 cm (renfort grue) | 2 |
| Voltmètre (optionnel) | 1 |
| Émetteur/récepteur RC (optionnel, pilotage manuel) | 1 |
| Bière (pour le moral !) | 1 |
Outils nécessaires
- Fer à souder, pistolet à colle, scie, perceuse, râpe
Applications et services cloud
- Arduino IDE
- AWS IoT Core, AWS Lambda, Alexa Skills Kit
- Walabot SDK (Python)
À propos du projet
Concept
Un char chenillé piloté par la voix (Alexa) qui vous apporte une bière, avec mode « Follow me » (suivi autonome) grâce au capteur radar Walabot. Le nec plus ultra du laziness engineering !

Châssis
Châssis chenillé acheté sur Banggood. Endommagé au transport → longue réparation à la colle/époxy.


Grue à bière (v1 → v2)
Idée : cacher la bière dans le châssis, l'élever par une grue. Squelette en kit métallique + fil de pêche enroulé sur moteur pas-à-pas 28BYJ-48.

Problème : structure trop souple → flexion. Renfort avec 2 règles en bois 30 cm + perçage/sciage/raspage.

Carrosserie & capot
Walabot monté à l'avant sur support magnétique (aimants intégrés au Walabot). Carrosserie en carton noir + feuilles plastique.


Trappe supérieure motorisée par 2 servos (ouverture + élévation bière).

Retour de position grue (potentiomètre)
Initialement : contacteur fin de course binaire (vis + ressort) – peu fiable.
Solution : potentiomètre 10kΩ collé sur l'axe de la grue → mesure angulaire précise (haut/bas).

Électronique & câblage

Circuit sur PCB percé. Alim : LiPo 7.4V → BEC 5V pour Pi/Arduino/servos. Moteurs DC et pas-à-pas directement sur LiPo.

Phare avant caché : segment LED strip 12V sur servo (porte). Alimenté en 7.4V → LED centrale shuntée pour augmenter luminosité des 2 restantes.

Arduino MKR1000 – Pourquoi ce choix ?
Besoin de 3 interruptions externes (lecture PWM récepteur RC : vitesse, direction, grue) + 5 PWM (3 servos + 2 moteurs). L'Uno n'a que 2 pins d'interruption. Le MKR1000 en a davantage + WiFi (non utilisé ici).

Problème PWM software vs hardware : les pins 2-5 sont hardware PWM (~). Les autres sont software. L'association soft-PWM + lecture PWM par interruption créait des parasites. Solution : utiliser pins hardware pour servos critiques, 1 seul soft-PWM pour trappe LED (lente, bruit négligeable).
Pilotage radio (RC) – 3 canaux PWM
- Canal 1 (vertical) :
motorSpeedBase = (pulse - 1500) / 2→ base -255..+255 - Canal 2 (horizontal) :
motorSpeedChange = (pulse - 1500) / 3→ braquage différentiel - Canal 3 (switch) :
elevated = (pulse < 1500)→ grue haut/bas + trappe
Vitesses finales : right = base + change, left = base - change (bornés ±255).
void handleCrane() {
int craneValue = analogRead(CRANE_FEEDBACK_PIN);
if (elevated) {
if (craneValue < CRANE_ELEVATED_VALUE) elevateCrane();
else disableStepperCoils();
openHatch();
} else {
if (craneValue < CRANE_LOWERED_VALUE) { closeHatch(); disableStepperCoils(); }
else dropCrane();
}
}
Les bobines du pas-à-pas sont désactivées en fin de course (chauffe + décharge batterie).
Communication Arduino ↔ Raspberry Pi (Série USB)
Commandes série (Pi → Arduino) :
s: mode série (désactive RC) → répondOKr: réactive mode RCe: monter grue + ouvrir trapped: baisser gruem X Y: vitesse moteurs (X=base, Y=change)b: renvoie tension batterie ×100l/o: phares on/off
Canal 3 RC reste actif comme « kill switch » sécurité en mode autonome.
Walabot – Capteur radar 3D

Imagerie micro-ondes : traverse murs, détection respiration, vision nocturne. Ici : navigation unique.
Installation SDK Walabot sur Pi. Problème alimentation : Walabot consomme 0.4–0.9A, ports USB Pi limités à 600mA (1.2A avec max_usb_current=1 dans /boot/config.txt). Mais Pi alimente aussi Arduino + servos → brownout au démarrage Walabot (WALABOT_ERR_PROTOCOL).
Solution : Walabot a 2 ports micro-USB. Modifier le jumper interne (retirer capot) pour alimenter par le port central, communiquer par l'autre.

Mode « Follow Me » (suivi autonome)
Utilise getTargets() en mode MTI (Moving Target Identification). Max 4 cibles, portée 1.5m. Coordonnées Y (latéral) + Z (distance).
Algorithme :
- Calibration : utilisateur se place à 80 cm face au Walabot.
- La cible la plus proche devient « l'humain ».
- À chaque frame (≈6 FPS = 166 ms), l'humain = cible la plus proche de la position précédente.
- Si saut de position trop grand → arrêt (perte de trace).
- Objectif : maintenir l'humain dans une « zone cible » (rectangle rouge).





Mouvements séquentiels (tourner PUIS avancer) car 6 FPS insuffisant pour combiner fiablement. Vitesse minimale pour stabilité.
Contrôle vocal – Alexa Skill Kit
Skill nommée « Beer Tank » (Alexa ne reconnaît pas « WalaBeer »). Commandes :
« Alexa, start beer tank »« Alexa, turn on/off the lights »« Alexa, open/close the cargo hold »« Alexa, start/stop following me »« Alexa, stop/cancel »
Architecture cloud : AWS Lambda + AWS IoT (MQTT). Abandon de ngrok (URL changeante) pour solution robuste. Tutoriels recommandés : chaîne YouTube Kurt Braun (AWS Lambda + IoT + Alexa).
Côté Pi : client MQTT Paho (Python) abonné au topic wbt. Plus simple que Node-RED/JS pour moi.
Skill ID : amzn1.ask.skill.a7453502-b1aa-47fa-a552-ed8e2c792b2e
Tachymètres (abandonnés)
Capteurs IR réfléchis sur roues (bandes noir/blanc) → mesure vitesse rotation. Fonctionnaient bien mais pins GPIO nécessaires ailleurs + non indispensables.
Conclusion
Projet abouti, amusant, plateforme extensible. Walabot excellent pour suivi personne. Pistes d'amélioration : vitesse suivi, matériel additionnel. Code source : GitHub abysmalsb/Beer-Tank.

Code source
Dépôt GitHub (Arduino MKR1000 + Raspberry Pi 3B) : abysmalsb/Beer-Tank
Schémas

Fichier Fritzing : beer_tank_YN88vVuS9b.fzz (pièces non trouvées remplacées par équivalents). Walabot relié au Pi par USB.
Processus de fabrication
- Maîtriser la syntaxe des netlists SPICE : nommage, composants passifs/actifs, sources
- Fabrication des bouteilles d'oxygène : des matières premières à l'assurance qualité
- Contrôler votre Chromecast avec Amazon Alexa via un Raspberry Pi et Python
- Construire un char LEGO autonome low-cost avec NVIDIA Jetson Nano & Isaac SDK
- Kit MOSMusic : MOSFET, Arduino et plus pour éclairage musical
- Microélectronique : Science des Composants Électroniques Miniatures
- Réservoirs de réserve : 목적, types et avantages
- Composants Essentiels d'une Perceuse : Vue d'Ensemble Complète
- Composants clés d'un moteur à combustion interne