La technologie Fraise repose sur l’interconnexion de cartes programmables nommées fruits par l’intermédiaire d’un bus, et le pilotage de ces cartes par le biais d’avatars les représentant sous forme de patchs Pure Data dans l’ordinateur, lui-même connecté au bus par un pied USB.
Le bus Fraise
Deux niveau du bus sont définis, un niveau de courte distance utilisant du câble « nappe », et un niveau longue distance qui utilise du câble téléphonique associé aux connecteurs RJ11 (dits aussi 6P4C).
Une carte spéciale appelée Fraiseiver autorise le passage d’un niveau à l’autre. Un ensemble local de fruits et éventuellement d’un Fraiseiver, tous reliés par une « nappe », est surnommé une grappe ; les grappes sont reliées les unes aux autres par des câbles téléphoniques.
Le bus conduit les informations à la vitesse de 250 kbit/s (pour le MIDI c’est 31,25 kbit/s).
La communication est de type half-duplex, c’est à dire dans les deux sens mais pas en même temps. Elle alterne donc entre des communications ordinateur->pied->fruit et fruit->pied->ordinateur.
La limite fixée par le protocole est de 126 fruits sur un même pied, tandis que les circuits électroniques utilisés par les Fraiseivers limitent théoriquement le nombre de grappes à 32. Il est cependant tout à fait possible de brancher plusieurs pieds indépendants sur l’ordinateur (les pieds sont dotés d’un identifiant permettant de les distinguer).
La longueur maximum cumulée du bus longue distance est d’environ 400 mètres. La nappe utilisée dans une grappe ne peut quant à elle dépasser quelques mètres.
Il est à noter que l’architecture de Fraise autorise une grande souplesse en ce qui concerne les alimentations électriques, permettant de s’adapter à tous les types de besoins en consommation de courant tout en privilégiant la sécurité et la fiabilité de l’installation (possibilité d’isoler galvaniquement les différentes parties).
Le bus longue distance (câble téléphone) doit disposer de son alimentation 12V dédiée ; les grappes peu gourmandes en puissance peuvent choisir de s’alimenter par le bus (il est éventuellement nécessaire de réalimenter le bus en 12V par endroit si sa longueur et la consommation électrique des cartes sont trop importantes), tandis que celles nécessitant une alimentation séparée seront elles isolées du bus par sécurité.
Des fruits programmables
Les fruits peuvent être déclinés en plusieurs variétés, caractérisées par certaines fonctions spécialisées. Par exemple telle variété sera capable de commander certains types de moteurs; telle autre pourra être équipée d’un certain nombre de commandes et d’indicateurs (boutons poussoirs, potentiomètres, voyants à LED, écran LCD) faisant d’elle une interface de contrôle.
Un fruit, pour pouvoir fonctionner (et être dégusté…), doit être assaisonné, c’est à dire être garni d’un programme, aussi appelé firmware. Ce programme doit être adapté à la variété du fruit, mais peut l’amener à réaliser des fonctions très diverses, que ce soit un asservissement de moteur avec gestion de contacts de fin de course, ou un contrôleur de gradateur lumière commandé en DMX512.
Ce programme est écrit en langage C. La modification du code source se fait dans un éditeur texte, au choix de l’utilisateur.
Le programme doit ensuite être compilé, ce qui le transforme en programme dit « binaire ». Le binaire peut alors être transféré dans la mémoire du fruit, afin de reprogrammer le micro-contrôleur. Ces opérations sont réalisées dans le patch Pure Data (voir plus bas).
L’écriture du firmware est facilitée par la mise à disposition de modules (ou bibliothèques du firmware), implémentant la communication avec l’ordinateur, et le pilotage de périphériques :
- mesure, filtrage, auto-calibration de signaux analogiques;
- surveillance de capteurs tout-ou-rien ;
- capteurs capacitifs ;
- asservissement de moteurs à courant continu, avec gestion de la vitesse, de l’accélération et de la position ;
- pilotage de servomoteurs ;
- gradateur sur courant alternatif ;
- communication DMX512, I2C, SPI,…
Les modules sont documentés en ligne :
Documentation de l’API firmware Fraise.
Pure Data all-in-one
Pd est le langage de prédilection chez metalu.net ; il intervient dans pratiquement tous les projets, il en est bien souvent le centre vital.
Pure Data (Pd) est un logiciel de programmation graphique open source fonctionnant sur de multiples plateformes (ordinateur, smartphones, tablettes, Raspberry Pi…). Pd permet aux musiciens, vidéastes, performers, chercheurs ou encore aux développeurs de créer un logiciel sans taper de ligne de code. Pd est capable de traiter et générer du son, de la vidéo ou des graphiques 2D/3D directement depuis son interface ou à l’aide de contrôleurs externes: des capteurs ou autres surfaces MIDI.
https://puredata.info/
Dans l’ordinateur, Pd exécute le patch de l’application (celui que l’utilisateur écrit pour réaliser son projet) ainsi que les patchs du pied et des fruits. Le patch du fruit (avec l’aide de celui du pied) prend en charge la compilation du programme et son transfert vers le fruit. Pure Data intègre ainsi dans un même environnement :
- le pilotage du bus Fraise
- le développement du firmware
- le développement de l’application (le patch de l’utilisateur)
- l’exécution de l’application (… le patch encore)
- le pilotage du firmware (le patch toujours !)
Sans avoir besoin de sortir de l’environnement (sauf pour éditer le code source du firmware) ni devoir arrêter puis relancer l’application, on peut agir sur la façon dont les informations sont envoyées et traitées par les deux parties : les fruits et l’ordinateur.
Enfin, étant donné que les processus de compilation et de transfert du firmware ainsi que le pilotage du réseau sont pratiquement entièrement écrits en Pure Data, le portage du système vers les différents systèmes d’exploitation (Linux, Mac, Windows…) est grandement facilité, car aucune autre dépendance que Pd n’est requise.
L’installation de Fraise est documentée sur la page hébergeant le projet :
https://github.com/MetaluNet/Fraise