Makers de Père en Fils

Matthias

matthias
matthias

Matthias

en 4ème

🎮 👨🏻‍💻 🎵

gouz

gouz

Dev, Maker, Papa

🎮 👨🏻‍💻 🎵

gouz
gouz

Une affaire de famille

gmn
gmn
orchestre
orchestre
matt
matt
clem
clem

MixTeen

mixteen
mixteen

💡 : 1 à 2 projets par an

2024

split
split

Article Programmez 267 (Janv. 2025)

couv
couv
article
article

Début 2025

split
split

2025 : Kord

kord
kord

Nabaztag

kord
kord

Gestion de projet : MoSCoW

Must haveMétéo (leds), Moteurs
Should haveEcran, GreenIT
Could haveMicro, HP, Carte SD
Won't haveBourse, Traffic

Choix de la carte

ESP32 ? Raspberry Pico ?

Langage

Arduino ? TinyGo ? MicroPython ?

Go Go Go !

micropython
micropython
pico
pico

Premier mur : 😱

Apprendre à dire les choses

Step By Step © @aurelievache

photo par Volcamp
photo par Volcamp

(Et si on apprenait à) Apprendre et partager autrement

Keynote Volcamp 2022

PoC

Pour valider la faisabilité et facilité

Ecran

screen
screen
class SCREEN:
    def __init__(self, sda, scl):
        # initialiser un écran avec les 2 pins nécessaires
    def text(self, message, x = 0, y = 0):
        # préparer l'affichage d'un texte à une position
    def disp(self):
        # envoyer l'affichage sur l'écran
    def cls(self):
        # vider l'écran
    def log(self, str):
        # afficher directement un texte en haut à gauche
    def img(self, imagebuffer, left, top):
        # afficher une image à une position

ecran = SCREEN(sda=16, scl=17)
ecran.text(message="hello world", x=5, y=5)
ecran.disp()

NeoPixel

neopixel
neopixel
class NEOPIX:
    def __init__(self, pin, nbPixel, lightPower):
        # initialiser une bande de nbPixel à une intensité sur une pin
    def setColor(self, num, r, g, b, disp = True):
        # definir une couleur pour une led donnée et l'affiche
    def write(self):
        # envoyer les couleurs à afficher
    def setWeather(self, weather_type):
        # afficher une animation en fonction du type de météo
    def stopAnimation(self):
        # arrêter l'animation des led

pixels = NEOPIX(pin=20, nbPixel=3, lightPower=64)
pixels.setColor(0, 255, 0, 0)

Moteurs

motor
motor
class SERVO:
    def __init__(self, pin):
        # définir un moteur sur une pin donnée
    def stop(self):
        # arrêter un moteur
    def forward(self, speed=1.0):
        # tourner en avant
    def backward(self, speed=1.0):
        # tourner en arrière

motor1 = SERVO(pin=18)
motor1.forward(0.1)
motor1.stop()

Bouton

button
button
class BUTTON:
    def __init__(self, pin):
        # définir un bouton sur une pin donnée
    def isPressed(self):
        # obtenir le statut du bouton

bouton = BUTTON(pin=14)

SD

microsd
microsd
class MICROSD:
    def __init__(self, spi, sck, mosi, miso, cs):
        # initialiser un lecteur
    def getConfig(self):
        # récupérer la configuration
        # {
        #   "WIFI_SSID": "xxx",
        #   ...
        # }

sd = MICROSD(spi=1, sck=10, miso=11, mosi=12, cs=13)
config = sd.getConfig()
wifi = WIFI(config["WIFI_SSID"], config["WIFI_PASSWORD"])

Démo

De PoC à MVP

Conception 3D : TinkerCad

tinkercad
tinkercad

TinkerCad

 

3D : Ecran

3D : LED

3D : Bouton

3D : Assemblage

KiCad

kicad
kicad

pcb
pcb

Démo Produit fini

Bilan

Points Négatifs

Points Positifs

Next ?

2026 : Clonsole

2026 : Talkie WiFi

Et bien d’autres idées

Merci

volcamp
volcamp
calm
calm
programmez
programmez

Des feedbacks ?