-
Notifications
You must be signed in to change notification settings - Fork 0
Description
Un peu de context

https://www.linkedin.com/posts/eloistree_havin-fun-activity-7262705248828375040-65-w?utm_source=share&utm_medium=member_desktop
Direction de l'atelier
-
"Après l'achat de World of Warcraft par Microsoft, celui-ci offre des financements pour la recherche et le développement afin de faire tourner le jeu en écran partagé sur la Xbox.
- Trouver un mapping de touches permettant à une manette Xbox de jouer à World of Warcraft."
-
"Grâce à un partenariat avec Meta, le jeu pourrait devenir jouable depuis la Quest3 familly. Il vous est demandé d'explorer la possibilité de jouer à World of Warcraft sur PC et Xbox depuis le Quest 3.
- Explorer la possibilité de jouer à World of Warcraft via le Quest."
-
"Vous êtes contacté par un ancien fan de World of Warcraft qui a eu un accident de voiture. Ayant un bras plâtré, il souhaite continuer à jouer de manière compétitive.
- Conceptualiser des inputs qui s'adapteraient à sa situation."
Voir plus:
Le brouillon:
Planning
-
Day 1 : C'est quoi un Raspberry Pi Pico W ?
- Pratiquer et comprendre ce qu'est un microcontrôleur.
-
Day 2 : C'est quoi un message UDP ?
- Utiliser la fonction Wi-Fi du Pico W.
-
Day 3 : C'est quoi un HC-06 ?
- Pratiquer le contrôle à distance via Bluetooth.
-
Day 4 : Atelier choisi par les étudiants
- Twitch Play ?
- Massivement multijoueur
- Continuer à jouer avec des câbles
-
Day 5 : Du Quest 3 à World of Warcraft (HC-06/UDP/Websocket)
- Utiliser le Quest 3 pour créer un environnement de QA testing pour un jeu.
Groupe
Nous avons 4 boîtes de matériel, nous allons donc former des groupes de deux personnes.
Pour le bien de l'atelier :
- Je ne vous connais pas,
- Je ne connais pas votre niveau,
- Je ne connais pas les lieux,
- Je ne connais pas les habitudes de l'HEAJ.
Nous allons donc prendre notre temps.
J'ai 4 ans de découvertes sur le sujet des périphériques que j'aimerais vous transmettre 🧙♂️...
Mais c'est un atelier découverte pour game designers 😉.
Je vais donc calmer mes ardeurs et y aller gentiment 😁
Je ne connais pas la politique de l'école sur le sujet des AI.
Cependant, dans le domaine des microcontrôleurs 🤖, ChatGPT suivi d'un RTFM 📕 reste toujours une bonne manière d'apprendre.
Dans tous les cas, vous aurez des erreurs et finirez sur un forum, tel un vieux magicien essayant de comprendre : Pourquoi !

Lofi pour étudier 🎵
Comme Arduino nécessite des installations spécifiques, nous allons nous concentrer sur le Python avec le Raspberry Pi Pico W.
Cela dit, si vous maîtrisez Arduino et souhaitez pratiquer durant l'exercice,
vous avez à votre disposition un Leonardo et un ESP32 pour le plaisir d'apprendre.
Amazon Link
Notez qu'il y a de nombreux liens Amazon dans le cours.
Mon but n'est pas d'augmenter mon salaire ^^.
Mais si le sujet que j'enseigne vous passionne et que vous utilisez ces liens,
cela me permettra de manger une pizza 🍕 et de boire une bière 🍺 en votre honneur.
Ou, tout simplement, de racheter plus de matériel pour les cours et ateliers à venir.
Planning de la journée
- Je propose de commencer la journée par un Hello World littéral avec le Pico W.
- De manipuler votre premier bouton digital, encore une fois, littéralement.
- De tourner un potentiomètre dans tous les sens.
- Et de terminer avec un bâton de joie (joystick) ^^.
Une fois que je vous sentirai prêts, nous copierons un code tout chaud, tout frais.
Celui-ci vous permettra de simuler de nombreux inputs, ainsi que d'envoyer des messages UDP via le Wi-Fi.
Nous pourrons alors jouer ensemble à World of Warcraft sur le même écran.
Si nous sommes trop proches de 15h30, nous reporterons cette dernière étape à demain 😉.
Rien ne presse.
Step by Step
Chercher quelques composants
Les microcontrôleurs
Chaque outil a sa qualité et sa fonction.
Si vous essayez de clouer un clou avec un autre clou 🚀, vous pouvez y arriver... mais cela vous prendra juste un peu plus de temps.
Ça fait vite beaucoup de matériel à devoir utiliser.
C'est pourquoi je vous conseille :
-
Le Pico W pour commencer.
-
Le ESP32 si vous voulez créer des manettes pour mobiles.
-
L'Arduino Leonardo si le Wi-Fi et le Bluetooth ne sont pas votre truc.
-
Raspberry Pi Pico W
- Celui que nous allons utiliser.
- Permet de faire beaucoup de choses, comme nous allons le voir.
- Keyword: Rasperry Pi Pico #41
- Showcase: https://youtu.be/U_WYgaRLTsI
-
Arduino Leonardo
- Permet de simuler des claviers, souris, manettes... via USB.
- Keyword: Arduino Leonardo #38
- Showcase: https://youtu.be/ho4FeXY-Zgc
-
ESP32
- Permet de simuler des claviers, souris et manettes Bluetooth.
- Hardware: ESP32 fnk0090 #288
- https://github.com/EloiStree/HelloInput/issues/281
- Showcase: https://www.youtube.com/watch?v=di142qIjvZA
-
Contrôleur USB générique pour Arcade
- Peut suffire largement dans certains projets.
- Hardware: USB Generic Arcade Joystick #102
Les inputs
Digitaux (0 à 1)
-
Capteur de proximité
- Permet de sentir un object proche grace à son reflet de la lumière
- Hardware: IR Obstacle Avoidance Sensor #273
-
Capteur tactile
- Permet de sensir si il est toucher par un changement de capacité électrice
- En gros, vous devenez un batterie
- Hardware: TTP223B TTP223 Hailege Capacitive Touch Switch Button (HW139 , HW763) #148
- Permet de sensir si il est toucher par un changement de capacité électrice
Analogic (0 à 65535)
-
Potentiomètre
- Une résistance électique qui est la base d'un grand partie des manuetttes du monde
-Keyword: Potentiometer #59
- Une résistance électique qui est la base d'un grand partie des manuetttes du monde
-
Joysticks 2D
- Car où serait le fun de faire une manette sans joysticks
- [Info](Keyword: Hardware Joystick 2D #63
Ecriture
- Relay Module
- Permet d'ouvrir et fermer un circuit extérieur
- Keyword: Relay Module #56
Celle vidéo pour débuter
Étapes pour commencer
- Prenez un Raspberry Pi Pico.
- Appuyez sur le bouton Boot de la carte (il n’y en a qu’un).
- Branchez le Pico tout en maintenant le bouton appuyé.
- Une clé USB va apparaître :
- Téléchargez le firmware
.UF2depuis circuitpython.org. - 📹 Vidéo explicative
- Téléchargez le firmware
- Déposez le fichier téléchargé sur la clé USB.
- La clé redémarrera automatiquement.
- Une clé nommée CIRCUITPY devrait maintenant être visible sur votre ordinateur.
- Si votre clé contient de vieux fichiers, ignorez-les.
- Écrivez
print("Hello World")dans un fichier texte et sauvegardez-le sous le nom code.py sur la clé. - Constatez que rien ne se passe 😅 :
- Il vous faut des outils pour voir le texte affiché, mais le code s’exécute bien.
- 📹 Vidéo explicative
- Allez sur code.circuitpython.org via Chrome.
- Une vidéo sur ce sujet est disponible ici : 📹
- Assurez-vous que le Pico est branché.
- Cliquez sur Connect via USB et connectez-vous à l’appareil.
- Choisissez de stocker le code sur la clé.
- Copiez le code Hello World fourni ici ou plus bas :
- Utilisez le bouton Save and Run pour sauvegarder sur code.py.
- Normalement, un Hello World devrait s’afficher à l’écran.
Relay Code
print("Hello Relay")
import time
import board
import digitalio
pin20 = digitalio.DigitalInOut(board.GP20)
pin20.direction = digitalio.Direction.OUTPUT
pin22 = digitalio.DigitalInOut(board.GP22)
pin22.direction = digitalio.Direction.OUTPUT
pin22.value = True
while True:
delay = 1.5
# Turn both pins on
pin20.value = True
time.sleep(delay)
pin20.value = False
time.sleep(delay)Le code que vous avez copié affiche effectivement un Hello World, mais il fait aussi autre chose :
- Il configure la pin n°20 de votre Pico, qui alternera entre True et False avec un délai de N secondes.
Ajout d’un relais
Essayons de connecter un relais pour le plaisir :
- Trouvez un relais bleu dans votre boîte :
- Trouvez 3 câbles femelles :
- De préférence un noir, un blanc (ou rouge) et une autre couleur au choix.
- Branchez :
- Le câble noir sur le port GND du Pico.
- Le câble blanc sur le port 3V3 du Pico.
- Le troisième câble sur la pin nommée GP20.
- Si tout s’est bien déroulé, vous devriez entendre un "Tick, Tick, Tick" régulier,
ainsi que voir une LED rouge s’allumer et s’éteindre.
Magnifique 🧙♂️ !
Ajout d’un capteur tactile
Essayons d’ajouter un capteur tactile (tactile switch) pour rendre cela plus interactif :
- Trouvez un petit carré rouge nommé HW763 :
- Trouvez 3 nouveaux câbles :
- Un câble foncé, un clair et un coloré.
- Branchez :
- Le câble foncé sur GND.
- Le câble clair sur VCC.
- Le câble coloré sur I/O ou S (signal).
- Connectez cela à votre Pico :
- Le foncé sur GND.
- Le clair sur 3V3.
- Le coloré sur la pin GP21.
- Parfait, il ne se passe rien. Pourquoi ?
- Il faut mettre à jour le code précédent.
- Comme pour l’exercice précédent :
- Allez sur code.circuitpython.org.
- Copiez le code ci-dessous et sauvegardez-le.
print("Hello Touch and Relay")
import board
import digitalio
import time
pin20 = digitalio.DigitalInOut(board.GP20)
pin20.direction = digitalio.Direction.OUTPUT
pin22 = digitalio.DigitalInOut(board.GP22)
pin22.direction = digitalio.Direction.OUTPUT
pin22.value = True
pin21 = digitalio.DigitalInOut(board.GP21)
pin21.direction = digitalio.Direction.INPUT
pin21.pull = digitalio.Pull.DOWN
bool_previous_state = False
bool_current_state = False
while True:
bool_previous_state = bool_current_state
bool_current_state = pin21.value
if bool_previous_state != bool_current_state:
if bool_current_state:
print("Press Space")
pin20.value = True
else:
print("Release Space")
pin20.value = False
time.sleep(0.01)- Si le code affiche Hello Touch and Relay, vous êtes bons 😉.
- Touchez le capteur tactile HW763 pour activer le relais.
Pour encore plus de fun, pourquoi ne pas :
- Allumer une machine à café ☕ ? 📹 Vidéo
- Faire tourner une roue 🛞 ? 📹 Vidéo
- Allumer une LED 🚨 ? 📹 Vidéo
🐿️ En fonction du déroulement du cours, nous pourrons effectuer cet exercice ou le passer.
Notre objectif principal reste la simulation de périphériques.
Allons plutôt jouer avec notre joystick et notre potentiomètre ! 🎮
Avant de continuer, nous allons rapidement manquer de pins si, pour chaque bouton, nous utilisons une pin dédiée pour alimenter en 3V3 volts.
Pour éviter cela, il est préférable d'investir dans une carte dédiée.
Par exemple, regardez les solutions disponibles pour les MicroBits :
Le problème :
Cependant, ces cartes spécialisées posent quelques inconvénients :
- Le prix : elles peuvent être coûteuses.
- La compatibilité : chaque carte est conçue pour un microprocesseur spécifique, ce qui complique leur utilisation pour un débutant.
Solution : Fabriquer ses propres canaux
Matériel nécessaire :
- Deux connecteur ("sucre") – référence
- 5 câbles foncés (type mâle-femelle).
- 5 câbles clairs (type mâle-femelle).
Comme nous n'avons pas les moyens d'acheter un terminal pour chaque carte,
nous allons utiliser des solutions simples avec des connecteurs ("sucre") et des soudures rapides.
Instructions :
-
Préparer les connecteurs :
- Trouvez un connecteur ("sucre") transparent et orange.
- Prenez 5 câbles sombres (mâle vers femelle).
- Branchez les 5 câbles côté mâle dans le connecteur.
- Répétez l’opération avec 5 câbles clairs sur un nouveau connecteur.
-
Connecter au Pico :
- Prenez un câble sombre et connectez-le à la pin GND (ground) du Pico.
- Prenez un câble clair et connectez-le à la pin 3V3 du Pico.
Vous avez maintenant 4 nouvelles sorties :
- 4 pins 3V3 volts (pour l'alimentation).
- 4 pins reliées au ground.
Limitations :
Bien que cela permette d'étendre les connexions, cette méthode est peu adaptée pour une carte Pico avec plus de 16+ pins disponibles.
De plus :
- L’utilisation de connecteurs ("sucre") peut plier et endommager les broches mâles, qui risquent ensuite de rester coincées dans des connecteurs femelles.
- Cette solution n’est pas idéale pour les montages pérennes.
Une meilleure alternative :
Créez des lignes de connexion longues similaires aux rails d’alimentation sur une breadboard (voir les lignes rouges et bleues).
Vous pourriez utiliser une breadboard, et vous devriez, mais :
- Cela rend le projet plus volumineux et moins transportable.
- Si vous commencez un nouveau projet, vous devrez démonter toute la configuration.
Vidéo explicative :
Regardez cette vidéo pour plus d’explications (à partir de 18:20).
Alternative minimaliste :
Dans la boîte, cherchez un petit rectangle composé de pins empilées. Ce n’est pas très élégant, mais pour du prototypage, c’est suffisant.
-
Brancher les câbles principaux :
- Branchez le câble sombre (GND) sur une ligne de pins.
- Branchez le câble clair (3V3) sur une autre ligne de pins.
-
Attention !
- Les deux lignes ne doivent pas se toucher, sinon :
- Le courant circulera sans résistance, ce qui fera chauffer les câbles.
- Avec seulement 3.3V et peu d’ampérage, le danger est limité, mais cela pourrait endommager des composants sur la carte.
- Les deux lignes ne doivent pas se toucher, sinon :
Le Raspberry Pi Pico W présente un inconvénient majeur : il ne dispose que de 3 pins analogiques, contre 6 à 12 sur certaines alternatives.
Cela suffit tout juste pour gérer un joystick et demi.
Commençons par expérimenter avec un potentiomètre, puis un joystick classique.
1. Préparer un potentiomètre
Matériel :
- Un potentiomètre – référence Keyword: Potentiometer #59.
- 3 câbles : un sombre, un clair, et un coloré.
Étapes :
-
Branchements du potentiomètre :
- Connectez le câble sombre sur une borne latérale du potentiomètre (peu importe laquelle).
- Connectez le câble clair sur l'autre borne latérale.
- Connectez le câble coloré sur la borne centrale (sortie du potentiomètre).
-
Connexion au Pico :
- Branchez le câble sombre sur une pin GND du Pico.
- Branchez le câble clair sur une pin 3.3V.
- Branchez le câble coloré sur la pin GP28 du Pico.
2. Préparer un joystick 2D
Matériel :
- Un joystick 2D.
- 5 câbles : un sombre, un clair, et trois colorés.
Étapes :
-
Branchements du joystick :
- Connectez le câble sombre à la pin GND du joystick.
- Connectez le câble clair à la pin VCC du joystick.
- Connectez les trois câbles colorés aux pins restantes du joystick :
- X (voltage) : Connectez à la pin GP27 (analogique).
- Y (voltage) : Connectez à la pin GP28 (analogique).
- Bouton : Connectez à la pin GP22 (entrée numérique).
-
Connexion au Pico :
- Le câble sombre va à une pin GND.
- Le câble clair va à la pin 3.3V.
- Les câbles colorés sont reliés comme suit :
- X → GP27
- Y → GP28
- Bouton → GP22 (en mode lecture).
Étape suivante : le code
Maintenant que tout est branché, passons à l’écriture du code ! 😊
Vous pouvez vous inspirer du code proposé dans cet exercice :
Exemple de code pour Pico W.
## You need to copy first:
# https://github.com/EloiStree/2024_11_16_WowIntWorkshopPicoW/tree/main
# Then to hard reboot the Pico W to get the gamepad working
# Then to override the code.py with the code below
import sys
print("Hello World")
print(f"sys.implementation: {sys.implementation}")
print(f"sys.version: {sys.version}")
print(f"sys.platform: {sys.platform}")
import time
import board
import busio
import pulseio
import analogio
import random
import struct
import digitalio
import usb_hid
import usb_midi
import adafruit_midi
import time
import ssl
import socketpool
import wifi
import adafruit_requests
import os
import ipaddress
# IMPORT FROM NEAR FILE
from hid_gamepad import Gamepad
from wow_int import WowInt
from hc_ttl import HCTTL
from bluetooth_electronics_builder import BluetoothElectronicsBuilder
# IMPORT FROM LIB ADAFRUIT
from adafruit_midi.note_on import NoteOn
from adafruit_midi.note_off import NoteOff
from adafruit_hid.keyboard import Keyboard
from adafruit_hid.keycode import Keycode
#from keyboard_layout_fr import KeyboardLayoutFR # Import the French layout
from adafruit_hid.mouse import Mouse
from adafruit_hid.consumer_control import ConsumerControl
from adafruit_hid.consumer_control_code import ConsumerControlCode
# 🐿️ If gamepad is not found in usb_hid.devices
# Just reboot the device in boot mode and comeback.
gamepad= Gamepad(usb_hid.devices) # Start behaving as gamepad
mouse = Mouse(usb_hid.devices) # Start behaving as mouse
consumer = ConsumerControl(usb_hid.devices) # Start behaving as media control
keyboard = Keyboard(usb_hid.devices)
midi = adafruit_midi.MIDI(midi_in=usb_midi.ports[0], midi_out=usb_midi.ports[1], in_channel=0, out_channel=0)
# 🐿️ If you want to use a button
pin8 = digitalio.DigitalInOut(board.GP8)
pin8.direction = digitalio.Direction.INPUT
pin8.pull = digitalio.Pull.UP
# 🐿️ If you want to use the laser
pin7_laser = digitalio.DigitalInOut(board.GP7)
pin7_laser.direction = digitalio.Direction.OUTPUT
pin7_laser.value=True
# 🐿️ If you want to use the joystick and a potentiometer
pin_A27_XJoystick = analogio.AnalogIn(board.GP27)
pin_A26_YJoystick = analogio.AnalogIn(board.GP26)
pin_A28_ZJoystick = analogio.AnalogIn(board.GP28)
# 🐿️ If you want to use the joystick button
pin_D22_Button = digitalio.DigitalInOut(board.GP22)
pin_D22_Button.direction = digitalio.Direction.INPUT
pin_D22_Button.pull = digitalio.Pull.UP
## 🐿️ Let's code it together
use_learning_loop = True
if use_learning_loop:
# Store the current and previous value to detect change
# Joystick
bool_is_joystick_left = False
bool_is_joystick_right = False
bool_is_joystick_up = False
bool_is_joystick_down = False
bool_is_joystick_left_previous = False
bool_is_joystick_right_previous = False
bool_is_joystick_up_previous = False
bool_is_joystick_down_previous = False
# Trigger
bool_is_trigger_down = False
bool_is_trigger_up = False
bool_is_trigger_down_previous = False
bool_is_trigger_up_previous = False
# Button
bool_is_button_down_previous = False
bool_is_button_down= False
# Joystick death zoner to detect left, right up, down are active
float_joystick_death_zone = 0.8
float_trigger_death_zone_start = 0.2
float_trigger_death_zone_stop = 0.8
while True:
# read and convert the value from the analog pin.
bool_print_joystick=False
joystick_x = pin_A27_XJoystick.value
joystick_y = pin_A26_YJoystick.value
joystick_x_127 = max(-127, min(127, int((joystick_x / 65535) * 254 - 127)))
joystick_y_127 = max(-127, min(127, int((joystick_y / 65535) * 254 - 127)))
joystick_y_percent = joystick_y_127 / 127.0
joystick_x_percent = joystick_x_127 / 127.0
trigger = pin_A28_ZJoystick.value
trigger_min=0
trigger_max=65535
trigger_255 = max(0, min(255, int((trigger - trigger_min) / (trigger_max - trigger_min) * 255)))
trigger_percent = trigger_255 / 255.0
# Set the value of the joystick and trigger for debugging purpose
gamepad.set_joystick_left_x_127(joystick_x_127)
gamepad.set_joystick_left_y_127(joystick_y_127)
gamepad.set_trigger_left_255(trigger_255)
# Check from the analog value if the zone are reached
bool_is_button_down = not pin_D22_Button.value
if joystick_x_percent < -float_joystick_death_zone:
bool_is_joystick_left = True
bool_is_joystick_right = False
elif joystick_x_percent > float_joystick_death_zone:
bool_is_joystick_left = False
bool_is_joystick_right = True
else:
bool_is_joystick_left = False
bool_is_joystick_right = False
if joystick_y_percent < -float_joystick_death_zone:
bool_is_joystick_up = True
bool_is_joystick_down = False
elif joystick_y_percent > float_joystick_death_zone:
bool_is_joystick_up = False
bool_is_joystick_down = True
else:
bool_is_joystick_up = False
bool_is_joystick_down = False
if trigger_percent > float_trigger_death_zone_stop:
bool_is_trigger_up = True
else:
bool_is_trigger_up = False
if trigger_percent <float_trigger_death_zone_start:
bool_is_trigger_down = True
else:
bool_is_trigger_down = False
# Check for any changed of zone
if bool_is_button_down != bool_is_button_down_previous:
bool_is_button_down_previous = bool_is_button_down
if bool_is_button_down:
print("Button Down Start")
gamepad.press_buttons(3)
# wow.push(1032)
else:
print("Button Down End")
gamepad.release_buttons(3)
# wow.push(2032)
bool_print_joystick=True
if bool_is_joystick_left != bool_is_joystick_left_previous:
bool_is_joystick_left_previous = bool_is_joystick_left
if bool_is_joystick_left:
print("Joystick Left Start")
gamepad.press_buttons(4)
# wow.push(1037)
else:
print("Joystick Left End")
gamepad.release_buttons(4)
# wow.push(2037)
bool_print_joystick=True
if bool_is_joystick_right != bool_is_joystick_right_previous:
bool_is_joystick_right_previous = bool_is_joystick_right
if bool_is_joystick_right:
print("Joystick Right Start")
gamepad.press_buttons(5)
# wow.push(1039)
else:
print("Joystick Right End")
gamepad.release_buttons(5)
# wow.push(2039)
bool_print_joystick=True
if bool_is_joystick_up != bool_is_joystick_up_previous:
bool_is_joystick_up_previous = bool_is_joystick_up
if bool_is_joystick_up:
print("Joystick Up Start")
gamepad.press_buttons(6)
# wow.push(1038)
else:
print("Joystick Up End")
gamepad.release_buttons(6)
# wow.push(2038)
bool_print_joystick=True
if bool_is_joystick_down != bool_is_joystick_down_previous:
bool_is_joystick_down_previous = bool_is_joystick_down
if bool_is_joystick_down:
print("Joystick Down Start")
gamepad.press_buttons(7)
# wow.push(1040)
else:
print("Joystick Down End")
gamepad.release_buttons(7)
# wow.push(2040)
bool_print_joystick=True
if bool_is_trigger_down != bool_is_trigger_down_previous:
bool_is_trigger_down_previous = bool_is_trigger_down
if bool_is_trigger_down:
print("Trigger Down Start")
gamepad.press_buttons(1)
# wow.push(1009)
else:
print("Trigger Down End")
gamepad.release_buttons(1)
# wow.push(2009)
bool_print_joystick=True
if bool_is_trigger_up != bool_is_trigger_up_previous:
bool_is_trigger_up_previous = bool_is_trigger_up
if bool_is_trigger_up:
print("Trigger Up Start")
gamepad.press_buttons(2)
# wow.push(1032)
else:
print("Trigger Up End")
gamepad.release_buttons(2)
# wow.push(2032)
bool_print_joystick=True
if bool_print_joystick:
print(f"Joystick x{joystick_x_127} y{joystick_y_127} / x{joystick_x} y{joystick_y}")
print(f"Trigger {trigger_255} / {trigger}")
# Avoid excessive looping
time.sleep(0.00001)
Commençons à voir votre niveau de débrouillardise 😆
Maintenant que vous savez lire des boutons et des valeurs analogiques,
vous avez tout ce qu'il vous faut pour commencer à passer à l'action.
Je vous invite à copier le code suivant sur votre ordinateur :
https://github.com/EloiStree/2024_11_16_WowIntWorkshopPicoW
(L'exercice varie en fonction de la configuration de la pièce et selon que vous êtes connectés via un câble ou en Wi-Fi.)
Ensuite, copiez :
- les scripts Python (.py),
- le fichier
settings.toml, - et le dossier
libsur votre Pico W.
Étapes suivantes :
-
Rendez-vous sur https://circuitpython.org.
-
Connectez-vous à votre Pico W.
-
Save and Run.
-
Comme vous venez de modifier une configuration importante dans
boot.py:- Débranchez votre Pico.
- Rebootez avec le bouton blanc.
- Débranchez à nouveau le Pico.
- Rebranchez sans maintenir le bouton de boot.
Cela permet à Windows d’oublier les configurations précédentes.
Pour lui, c’est désormais un nouvel appareil USB.
Félicitations 🎉
Vous êtes maintenant l’heureux propriétaire d’un Pico W capable de devenir :
- un clavier,
- une souris,
- une télécommande,
- une manette de jeu,
- un clavier MIDI,
- et, en option, un client Wi-Fi UDP.
N’est-ce pas magique et magnifique ? 👏
Nous explorerons toutes ces possibilités ensemble. Ce sera, à mon avis, le cours de demain. 😊
Piste de réflexion
Vous pouvez mettre deux joysticks sur un Raspberry Pi Pico.
Ajouter un joystick d'arcade: 4 buttons avec un batons:

https://www.youtube.com/watch?v=FTEIiU45Mq8


