Installation de RTAI

Suivez précisément les étapes suivantes (au prochain TP, faites seulement les 2 dernières étapes) :

Introduction RTAI

Vous devez lancer les programmes en étant en mode console. Pour passer dans la console 1 il faut taper sous X11 : Control Alt F1.

Le répertoire /root/RTAI contient quelques exemples de programmes temps réel et un Makefile. Ne les modifiez pas sur place s'il vous plait, laissez les pour les suivants.

Pour compiler et lancer un programme (pendant 10 secondes), tapez : make nom_du_programme

En tapant make son vous lancez un programme qui va émettre un sifflement. Si ce n'est pas le cas, il y a un problème, prévenez l'enseignant.

Le moindre bug dans votre programme peut planter la machine et nécessiter de la redémarrer, faites très attention à ce que vous faites. Copiez régulièrement vos fichiers sur votre support de sauvegarde.

Piano électrique

On désire faire un piano électrique. La partie temps réel de l'application génerera le son en fonction de ce qu'elle lira dans une FIFO. Un processus unix normal écrira dans la FIFO.

L'application sera dans un module lançant deux threads périodiques :

Vous aurez aussi besoin d'une ligne de commande shell qui lit le clavier et envoie les caractères dans la FIFO.
(sleep 10 ; fuser -k /dev/rtf0) & stty raw ; cat >/dev/rtf0 ; stty sane
On peut aussi faire : cat /boot/* >/dev/rtf0 mais cela va faire planter la machine si vous n'avez pas limité le nombre de fréquences à jouer simultanément.

Pour vous aidez, vous disposez de :

Les FIFO sont accessible via les périphériques /dev/rtf.... Ils sont créés au vol quand le module FIFO de RTAI est chargé.

Génération du son

Le son est généré par une tâche de période 1/8192 secondes.

Le ``haut-parleur'' interne du PC ne peut être que dans 2 états : 0 ou 1 (il ne peut donc générer que des crénaux et pas de jolies sinusoïdes). Si vous le laissez toujours à 0 ou toujours à 1 vous n'entendrez rien car le son est une vibration. Dans la suite les temps sont exprimés en 1/8192èmes de seconde. Soient :

Pour générer la note de période p, on donne au haut-parleur la valeur (2t)/p & 1. Comme on se limite à des valeurs entières, la fréquence la plus élevée est donc de 4096Hz.

Pour simuler la sortie de plusieurs notes simultanées, on fait un ou exclusif entres les différentes valeurs à donner au haut-parleur : ((2t)/p1 & 1)^((2t)/p2 & 1)^...

Le programme son.c génère une fréquence fixe de 4096Hz.

Compte-rendu

À la fin du TP vous faites une démo et vous devez envoyer par mail (avec la demande d'accusé de réception automatique) le source de votre module.
Thierry EXCOFFIER
Last modified: Thu Apr 7 15:45:27 CEST 2011