Makers de Père en Fils

Matthias

matthias
matthias

Matthias

en 3ème (à la rentrée)

🎮 👨🏻‍💻 🎵

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

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 : Dé timer pour DevQuest

2026 : Clonsole

2026 : Talkie WiFi

Et bien d’autres idées

Ekodia

ekodia
ekodia

Là où les idées bouillonnent

Merci

riviera
riviera
calm
calm
programmez
programmez

Des feedbacks ?