Vous savez sans nul doute que le RaspberryPi n’est pas équipé d’une horloge temps réel pour des raisons de coût. La distribution Raspian a fait le choix de récupérer l’heure sur Internet quand la carte est connecté sinon elle repart avec la dernière heure connu (fake_hwclock). Bien sur ce n’est pas satisfaisant…aussi vous trouverez sur le grand “n’Internet” nombre de site qui décrive comment rajouter une RTC (principalement en I2C). J’ai même fait quelques lignes la-dessus à la fin de l’article sur l’I2C sur Raspberry. Cependant je voudrais faire “encore mieux”, en particulier que la partie “user space” (espace utilisateur) ne gère pas cette RTC mais que le noyau s’en charge de A à Z. Cette article décrit cette mise en oeuvre.
Lire la suite…
Dans la suite de l’article je présente l’activation puis l’utilisation du bus I2C sur la carte RaspberryPI (ou tout autre carte qui supporte un bus I2C : Olimex A13 ou iMX233, Beagle/PandaBoard de TI, TQ6410, etc…). L’interrogation des esclaves connectés au bus I2C peut se faire sans aucune programmation ! Cela permet de valider rapidement l’écriture ou la lecture des registres d’un esclave I2C. On peut alors passer à la programmation en C/C++ avec des valeurs validées. Lire la suite…
De plus en plus de cartes électroniques à bas coût sont disponibles sur le marché de l’embarqué. Dans quasiment tous les cas elles sont équipées d’un coeur ARM. Par exemple, le RaspberryPi (ARM11 : architecture armv6) ou les cartes Olinuxino (ARM9 (armv5) pour la iMX233 et Cortex A8 (armv7) pour la carte A13) utilisent des processeurs ayant un coeur ARM. Suivant le processeur utilisé, celui-ci peut posséder une unité de calcul en virgule flottante. Nous aurons donc à installer une chaîne de cross-compilation qui supporte ou pas l’unité de calcul en virgule flottante. Sur Debian, le projet emdebian propose des cross-compilateurs pour les architectures précédemment cités.
Imprimer cet article
Lire la suite…
Le NI cRIO-9074 (Système avec contrôleur temps réel 400 MHz intégré et FPGA 2 millions de portes) équipe désormais tous les lycées ayant des sections STI2D SIN. De plus il est livré avec trois modules d’acquisition :
- le NI9201 : Module d’entrée analogique 8 voies, ± 10 V, 500 kéch./s, 12 bits
- le NI 9263 : Module de sortie analogique 4 voies, 16 bits, 100 kéch./s, ±10 V
- le NI 9401 : Module d’E/S numériques bidirectionnelles haute vitesse 8 voies, TTL 5 V
- Documentation au format PDF de ces trois modules : docs_modules_9201_9263_9401
Nous allons donc réaliser la mise en œuvre de cet appareil dans les pages suivantes.
Imprimer cet article
Lire la suite…
Pour un projet industriel, nous devons gérer 8 entrées/sorties tout ou rien (TOR). Le noyau Linux, s’il est correctement configuré et compilé permet de gérer ces E/S au travers d’une interface de type fichier. Les notes qui suivent permettent de gérer ces E/S.
Lire la suite…
Dans cet article, vous allez découvrir un “shield” utilisé en section de BTS IRIS pour aborder les fondamentaux de LabVIEW. Pourquoi réaliser un shield “maison” avec un arduino UNO plutôt que du matériel d’acquisition National Instrument ?
- le coût d’une carte Arduino est faible (20€), une documentation abondante existe sur Internet
- il n’y a pas de programmation à faire coté Arduino : le “firmware” est fourni par NI puis programmé dans la mémoire flash du microcontroleur de l’arduino
- le coût d’un “shield” maison reste raisonnable et permet d’avoir exactement ce que l’on souhaite comme capteurs, E/S…
- La programmation de cette carte avec LabVIEW suit les “grands classiques” : ouverture d’un bus de communication, configuration des entrées/sorties, lecture des entrées, traitement numérique, pilotage des sorties, fermeture du bus de communication
- Chaque étudiant travaille sur “sa” carte à son rythme ! Éventuellement il peut acheter le matériel nécessaire pour faire le TP chez lui (bon là je rêve un peu
Un document au format OpenOffice Writer est à télécharger et à compléter en fin d’article. Abordons maintenant la description de la carte arduino UNO et du shield “TP LIFA”…
Lire la suite…
La saga TQ6410 continue…Dernièrement la nappe de fils (4 fils) qui relie la dalle tactile à son contrôleur au dos de l’écran s’est coupée nette ! J’ai bien essayé de la réparer en grattant le plastique mais rien n’y fait et j’abime la nappe plus qu’autre chose. Donc direction e-bay pour l’achat d’une nouvelle dalle tactile (à environ 15€). La carte devait être utilisé pour présenter le travail d’un étudiant sur la commande de régulateur de température sur ModBUS, il faut donc trouver une autre solution pour interagir avec les programmes en Qt. La carte dispose d’un port USB1.1, nous allons donc utiliser ce port pour connecter un hub usb, une souris et un clavier.
Lire la suite…
Dans cette deuxième partie, nous allons tester une manette nunchuck, le SPI avec un montage à dels… Un peu à part et pas directement relié à l’utilisation de LIFA, nous réaliserons une face avant pour commander une del et lire un capteur de température par ethernet grâce à un shield ethernet. Bonne lecture….
Imprimer cet article
LIFA signifie LabVIEW Interface For Arduino. C’est une extension de LabVIEW (compatible à partir de la version 2009) qui permet de piloter une carte compatible Arduino depuis LabVIEW. Dans cet article je vous propose d’installer et de découvrir LIFA car pour l’instant je n’ai pas trouvé beaucoup de ressources sur Internet à ce sujet. Attention cet article n’est pas une présentation de LabVIEW ou d’Arduino (vous avez plein de ressources pour cela sur le web) mais une utilisation conjointe de LabVIEW et Arduino. Cependant les VI (Virtual Instrument) de tests sont très simples et il n’y a PAS de programmation C/C++ du coté Arduino.
Imprimer cet article
Lire la suite…
Pour un projet industriel, les étudiants doivent utiliser QT4 et dialoguer avec différents appareils par le port série. QT4 ne délivrant pas nativement de classe gérant le port série, il faut se tourner vers des développements extérieurs. Pour l’instant j’en connais deux:
Mon environnement de développement sera une debian Squeeze. QTCreator est installé depuis les paquets standards (en version 1.3.1 basé sur les librairies QT 4.6.3). Lire la suite…