Introduction

Semaine d'ouverture 3A GCC 2018 "Make Your Pulse!"

Cette semaine est dédiée à l'apprentissage du prototypage à l'aide de la fabrication numérique et de l'électronique programmable. Sur la base d'un projet d'instrument de musique électronique, vous réaliserez par groupes de cinq un synthétiseur et son boitier. Vous devrez vous organiser au sein du groupe pour concevoir, fabriquer, programmer et documenter vos projets.

Vous utiliserez Rhino - Grasshopper (ou un modeleur 3D de votre choix) pour concevoir la géométrie et générer les plans pour la découpe laser. Le développement électronique sera basé sur le micro-contrôleur Bela mini à basse latence (se programme en C/C++ et Pure Data). A partir d'une définition Grasshopper et d'un code C++ préalable, vous développerez de nouvelles fonctionnalités pour cet instrument (en modifiant la géométrie, les capteurs, le codage du son), et développerez une pratique du prototypage rapide par le projet.

Pensez à amener des écouteurs et ordinateurs !

Intervenants : Adrien Rigobello, Sacha Sakharov

Programme :

  • Lundi

    • Introduction de la semaine

    • Présentation des projets de Muriel Colagrande et Sacha Sakharov

    • Formation d'entrée dans le Makerspace (sécurité, documentation,..)

    • Formation à Grasshopper pour la découpe laser (Grasshopper basics + Ivy)

    • Formation Bela (électronique et codage)

  • Mardi

    • Design des projets par groupes (debrief commun de la journée à 17h)

  • Mercredi & Jeudi

    • Fabrication / prototypage (debrief commun de la journée à 17h)

  • Vendredi

    • Assemblage final et documentation

    • Présentation des projets

Composition des kits

Un kit électronique par groupe vous sera distribué.

Ce kit comprend :

  • 1* Micro-contrôleur Bela mini

  • 1* mini Carte SD 16Go

  • 1* Puce LM386

  • 1* Puce NE555P

  • 1* 24 LEDs ring

  • 10* Piezos

  • 1* Haut parleur

  • 1* Joystick

  • 2* Potentiomètres

  • 2* Capuchons de potentiometre

  • 1* Capteur de vibration

  • 1* Capteur de pression

  • 1* Interrupteur

  • 1* Jack femelle 3.5mm

  • 1* Batterie externe USB

  • 1* Breadboard

  • 1* Platine d’essai

  • 2* Adaptateurs jack 3.5mm

  • 2* Cordons USB

Bela

Le cerveau du projet que vous allez développer se situe dans le micro-contrôleur. Bela est une Programmable Realtime Unit (PRU), une couche électronique et logicielle qui utilise un microprocesseur PocketBeagle tout en ayant sa propre gestion de la mémoire et son Integrated Development Environment (IDE, i.e. interface de développement).

Bela mini est un projet qui a vu le jour suite à une campagne de crowdfunding réussie début 2018. Vous pouvez découvrir le type de projets réalisés avec Bela et Bela mini dans les liens en référence à la fin de ce document.

La particularité de Bela, c’est le fait que son temps de traitement d’un signal d’entrée est inférieur à 1ms. Pour des applications musicales, c’est inférieur au temps qu’il faut à l’oreille humaine pour détecter un décalage entre l’action et le son.

Synthèse musicale

Bela fonctionne par “frame”, divisant les I/O à des fréquences définies par défaut.

https://github.com/BelaPlatform/Bela/wiki/Timing-and-IO-in-Bela

Les frames sont échantillonnés dans un buffer, qu’ils soient utilisés dans le code ou non. L’argument “frame” dans le code permet d’appeler un échantillon (de donnée quelconque) dans ce buffer. Dans le code qui vous est fourni on utilise le frame dans lequel on se trouve ; par exemple on échantillonne un capteur au frame n, on traite le signal, puis on génère une sortie sonore au même frame n.

Pour générer du son il y a plusieurs possibilité, par exemple on peut charger un fichier en format wav, l’échantillonner, le transformer, et l’envoyer en sortie audio. Cette méthode n’est pas utilisée dans le code qui vous est fourni ici, mais vous pouvez la retrouver parmi les exemples dans l’IDE.

La méthode que l’on utilise ici est de générer des ondes sinusoïdales à une fréquence que l’on défini - voir les variables “gFrequencies(...)”. En appliquant un coefficient à ces variables on change la hauteur de la note jouée, il s’agit d’un pitch (implémenté dans le code qui vous est fourni). Voici un index des fréquences des notes : https://fr.wikipedia.org/wiki/Note_de_musique#Fr%C3%A9quenc

Modélisation et découpe laser

Vous allez utiliser la découpe laser pour monter vos synthétiseurs. Ce procédé à la particularité de pouvoir réaliser des découpe précises et complexes rapidement dans une grande variété de matériaux. Vous trouverez ici un document détaillé pour effectuer une découpe. L’utilisation de la découpe laser est soumise à formation et doit être encadrée en permanence.

Une définition Grasshopper permettant de dérouler une mesh et d’ajouter des languettes d’assemblage au patron de découpe vous est fournie. Il n’est pas obligatoire d’utiliser Grasshopper au cours de la semaine, vous pouvez utiliser n’importe quel modeleur ou CAD que vous maitrisez.

Plusieurs logiciels peuvent être utilisés pour préparer son fichier : Rhino 3D, Adobe Illustrator, Inkscape, AutoCAD, ou simplement d’enregistrer son fichier en PDF pour l’ouvrir sur l’ordinateur de l’équipement.

Le logiciel de la découpe laser (Job Control) interprète des lignes comme des parcours d’outil. L’épaisseur maximale de ligne doit être de 0,01mm, ou de 0mm si possible. Pensez à organiser vos fichiers de découpe par calque en fonction du code couleur suivant :

  • Gravure par balayage (remplissage) : Noir (RVB : 0, 0, 0)

  • Gravure vectorielle (lignes) : Rouge (RVB : 255, 0, 0)

  • Découpe intérieure : Bleu (RVB : 0, 0, 255)

  • Découpe extérieure : Vert (RVB : 0, 255, 0)

Références

IDE Bela (accessible uniquement avec un micro-contrôleur connecté) :

http://192.168.7.2/

Documentation Bela :

https://github.com/BelaPlatform/Bela/wiki/Getting-started-with-Bela

https://github.com/BelaPlatform/Bela/wiki/Bela-command-line-arguments

https://github.com/BelaPlatform/Bela/wiki/Bela-IDE

https://github.com/ajaxorg/ace/wiki/Default-Keyboard-Shortcuts

https://github.com/BelaPlatform/Bela/wiki/Timing-and-IO-in-Bela

Guide pour le hardware Bela (attention, ce n’est pas le mini !) :

https://github.com/BelaPlatform/Bela/wiki/Hardware-explained

Projets de référence :

https://www.ovaom.com/

https://lechantdessoudures.fr/site/

https://lechantdessoudures.fr/site/codes-arduino-de-base/

https://www.youtube.com/watch?v=ivjHWiHN1UM&

https://www.youtube.com/channel/UCgWd1Q2dcWdqCGNl5BijFsA/videos

https://blog.bela.io/category/projects/

http://blog.bela.io/2016/11/28/dbox

/https://vimeo.com/220043436 (Ivy)