API pour cube à LEDs. Sujet de projet de spécialité 2A Ensimag 2015-2016. Encadrant : Charles Eynard Contact : pierre.schefler@oxbern.

Documents pareils
Ateliers Python+Qt : Premiers pas : S'installer pour PyQt... en quelques minutes sous Windows!

Prototypage électronique

Guide d'utilisateur. Câble adaptateur USB2.0 vers IDE et SATA. Modèle : DA-70202

Auteur LARDOUX Guillaume Contact Année 2014 DEVELOPPEMENT MOBILE AVEC CORDOVA

Boîtier NAS à deux baies

Base de l'informatique. Généralité et Architecture Le système d'exploitation Les logiciels Le réseau et l'extérieur (WEB)

Tester Windows 8 sans l'installer avec Virtualbox

Sommaire. Leap motion Technologie Fonctionnement Langages utilisés Possibilités d utilisation... 4

Nb. De pages : 24 MANGO. Manuel d'utilisation. Version 1.2. décembre 2010

Linux embarqué: une alternative à Windows CE?

Android comme périphérique annexe.

Création de site Internet avec Jimdo

Matériel informatique (hardware)

CARPE. Documentation Informatique S E T R A. Version Août CARPE (Documentation Informatique) 1

l'utilisation de l'image, de tableaux, d'outils de traitement informatique des données, donnant un sens concret aux tic ".

Conservation des documents numériques

LE MICRO ORDINATEUR. Introduction Architecture Les supports amovibles Les composants Le système d exploitation Les portables

Travail personnel sur ordinateur

DI GALLO Frédéric ADSL. L essentiel qu il faut savoir. PPPOE PPPT Netissi

Guide de l informatique Fichiers et dossiers

Éléments d'architecture des ordinateurs

PRESENTATION RESSOURCES. Christian Dupaty BTS Systèmes Numériques Lycée Fourcade Gardanne Académie d Aix Marseille

Quel PC pour quels usages? 1) PC de Bureau ou Portable? Les différents types de portables. - Les ultra-portables. - Les portables généralistes

Tutorial Ophcrack. I) Ophcrack en API. (ou comment utiliser Ophcrack pour recouvrir un mot de passe sous Windows XP et Windows Vista)

DELEGATION ACADEMIQUE AU NUMERIQUE FORMATION ADMINISTRATEUR SCRIBE 2.3 ET CARTABLE EN LIGNE (CEL)

B2i. LE B2i Brevet Informatique et Internet. Niveau : tous. 1 S'approprier un environnement informatique de travail. b2ico1.odt.

La sauvegarde (backup) de votre comptabilité a pour but de vous permettre de retrouver vos données si un incident est survenu.

CONNAITRE VOTRE APPAREIL PHOTO DESCRIPTIF DE L APPAREIL. 1 Bouton MARCHE/ARRET 5 Flash 2 Obturateur 6 Retardateur LED

GUIDE DE L UTILISATEUR


MB Led. Benjamin Bonny Cédric Le Ninivin Guillaume Normand

Preliminary Spec Sheet

Découverte des tablettes tactiles (ipad d'apple et Galaxy Tab de Samsung

AÉteignez l'appareil photo numérique ou le. BRetirez du port USB du projecteur (Type A).

COLLEGE ADRIEN CERNEAU

NOTIONS DE RESEAUX INFORMATIQUES

AJAX. (Administrateur) (Dernière édition) Programme de formation. France, Belgique, Suisse, Roumanie - Canada

TABLE DES MATIERES...

PROCÉDURE D'INSTALLATION WINDOWS 7 (32 ou 64 bit)

Clé Flash USB2.0 Acer

ultisites S.A. module «services»

TRANSFERER UNE PHOTO SUR CLE USB

Installer Windows 8 depuis une clé USB

1. Étape: Activer le contrôle du compte utilisateur

Cyber-base du Pays Martégal. Atelier «Découverte de l ordinateur»

Partager son lecteur optique

Introduction à NetCDF

Installation et prise en main

Microsoft Windows NT Server

TABLETTE MPMAN MP724 : EMPORTEZ LE MONDE AVEC VOUS

Solutions de Virtualisation du poste de travail. ViewSonic vous présente le poste de travail virtuel du futur

FACILITER LES COMMUNICATIONS. Le gestionnaire de réseau VPN global de Saima Sistemas

HP Color LaserJet Pro MFP M476dn

FRANÇAIS. Adaptateur POLAR IrDA USB 2.0 et logiciel Bridge Driver Manuel d Utilisation

Protocoles réseaux. Abréviation de Binary Digit. C'est la plus petite unité d'information (0, 1).

DA MOTA Anthony - Comparaison de technologies : PhoneGap VS Cordova

MySQL. (Administrateur) (Dernière édition) Programme de formation. France, Belgique, Suisse, Roumanie - Canada

Applicable sur le site à compter du 1 Février 2015

Utilisation du visualiseur Avermedia

l'ordinateur les bases

Tablette. Quelques applications à installer sur sa

Ateliers Python+Qt : Premiers pas : Comment développez ses propres interfaces graphiques sur le RaspberryPi?

Notice succincte pour ordinateurs Windows - IPC-10 AC

Programmation C. Apprendre à développer des programmes simples dans le langage C

Présentation du logiciel Cobian Backup

CONFIGURER UNE CONNEXION RTC SOUS WINDOWS XP/VISTA/SEVEN OU MAC OS

Rootkit pour Windows Mobile 6

ETI/Domo. Français. ETI-Domo Config FR

Mode d emploi pour lire des livres numériques

PIC EVAL Dev Board PIC18F97J60

PPE BTS SIO Jourson - Attard Ascenzi Mancini GEP Marseille - 06/11/2014

Traitement numérique de l'image. Raphaël Isdant

Dongle WiFi de QUMI Manuel de l utilisateur

INTERNET est un RESEAU D ORDINATEURS RELIES ENTRE EUX A L ECHELLE PLANETAIRE. Internet : interconnexion de réseaux (anglais : net = réseau)

CPLN 20/08/2009 MBO Service ICT et Pédagogie

Permis de conduire info

Classer et partager ses photographies numériques

Dossier 03 Périphériques d acquisition

ENDPOINT SECURITY FOR MAC BY BITDEFENDER

HelpAndManual_unregistered_evaluation_copy GESTIONNAIRE D'ALARMES CENTRALISE OPTIM'ALARM. Manuel d'utilisation

TAI049 Utiliser la virtualisation en assistance et en dépannage informatique TABLE DES MATIERES

Les tablettes. Présentation tablettes Descriptif Fournisseurs Caractéristiques Comparatifs Conseils Perspectives Démonstration

Diagrammes de Package, de déploiement et de composants UML

Ceci est un Chromebook, ton ordinateur!

GUIDE DE L UTILISATEUR Recoveo Récupérateur de données

PGS TABLETTE PRINCIPES DE BASE Manuel Utilisateur

Sommaire. Systèmes d Exploitation Intégration Sage 100 Sage CRM Disponibilité Client Bases de données... 3

Un ordinateur, c est quoi?

HERCULES DJ AUDIO PROCEDURES MISE A JOUR FIRMWARE

Logiciel EV3 LEGO MINDSTORMS Education

GUIDE D INSTALLATION ET D UTILISATION PI AUTHENTICATOR

Le serveur web Windows Home Server 2011

LANGAGUE JAVA. Public Développeurs souhaitant étendre leur panel de langages de programmation

Généralités sur les systèmes d Exploitation

UEO11 COURS/TD 1. nombres entiers et réels codés en mémoire centrale. Caractères alphabétiques et caractères spéciaux.

INTRODUCTION... 1 PARTICULARITES... 2 MISE EN MARCHE ET UTILISATION :... 3 RESOLUTION DE PROBLEMES... 5 CONTACTS...

HMI target Visu / PLC HMI. Pour réaliser une interface homme machine avec PLC control

Transcription:

API pour cube à LEDs Sujet de projet de spécialité 2A Ensimag 2015-2016 Encadrant : Charles Eynard Contact : pierre.schefler@oxbern.com

Préambule Le projet Oxbern vise à concevoir un afficheur 3D pour représenter des motifs cristallographiques (voir ci-dessous). Il s'agit d'un réseau cubique tridimensionnel de 9 * 9 * 9 = 729 LEDs allumables individuellement. Un écran tactile 7 pouces (qui remplace le panneau avant visible sur la photo) permet de manipuler l'afficheur. A l'arrière, un slot SD permet d'insérer une carte SD qui contient les motifs à afficher. On trouve aussi un port USB afin de connecter l'afficheur à un ordinateur. L'ensemble est contrôlé par un STM32 qui embarque FreeRTOS et les divers modules pour accéder à l'usb, à la carte SD, à l'écran, au LEDs, etc. Page 2 sur 6

Objectif Votre rôle est d'ajouter la possibilité au cube d'être contrôlé depuis un ordinateur. Il faut pour cela implémenter une API, à la fois du côté du PC via une librairie partagée, mais aussi du côté du firmware via une machine à états pour interpréter les paquets reçus par USB (le travail sera cependant largement prémâché sur le firmware). Fonctionnalités Communication avec le cube La librairie doit tout d'abord s'occuper de la liaison série : l'initialiser et la rompre. Elle doit également gérer la transmission des paquets. Tout cela est une couche en dessous de l'api, mais est fondamental. L'utilisateur ne devrait pas avoir à vérifier par lui-même si de nouveaux paquets arrivent. La librairie devrait d'ellemême créer un thread qui s'occuperait de faire ça, et qui appellerait un callback réimplémenté par l'utilisateur (si et seulement si l'utilisateur a effectivement besoin de recevoir des données du cube). En ce sens, les fonctions suivantes sont suggérées : Fonction available() ; connect(); disconnect() ; Description Retourne true si un cube est disponible Établir la liaison série Rompre la liaison série Contrôle des LEDs Le plus important est bien entendu de pouvoir contrôler les LEDs. Au niveau du cube, des fonctions internes vous permettront de facilement implémenter les diverses commandes. Au niveau de l'api, voici les fonctions suggérées : Fonction on(x, y, z) ; off() ; off(x, y, z) ; toggle(x, y, z) ; Description Allumer la LED (x,y,z) Tout éteindre Éteindre la LED (x,y,z) Changer d'état la LED (x,y,z) Pour éviter de surcharger l'usb (par exemple si l'utilisateur allume les LEDs une à une), ces fonctions modifieront un buffer interne (à vous de mettre en place une structure de données correspondante) qui sera alors transmis au cube via la Page 3 sur 6

fonction display(). Cette fonction transmettra vraisemblablement une série de 0 et de 1 correspondant aux 729 LEDs du cube, informant sur l'état de chaque LED. La taille de données devrait être de 729 bits, soit 92 octets. Il vous est conseillé de réduire encore cela en compressant les données avant envoi. Le problème est plutôt au niveau de la décompression du côté du firmware, mais voici une page pour vous aider : http://demin.ws/blog/english/2012/09/18/miniz-minilzo/. Mise à jour du firmware La mémoire flash du STM32 est séparée en trois parties : le bootloader, le firmware 1 et le firmware 2. Après le démarrage, le micro-contrôleur passe soit sur le firmware 1, soit sur le 2. La mise à jour se fait donc en écrasant le firmware qui est inutilisé, puis en indiquant au STM32 qu'il faut utiliser le nouveau firmware. L'API contiendra une fonction capable de passer en bloc tout un nouveau firmware. Bien entendu, il faudra s'assurer que l'intégralité du binaire est transférée, et que l'image n'a pas été réordonnée. Vous aurez donc à charge de trouver une méthode pour contrôler le bon déroulement du transfert. Contraintes Langage Vous avez le choix entre du C et du C++(03 ou 11). A vous de voir ce qui semble le plus pratique. (Notez qu'un format classique des librairies qui communiquent avec des objets par USB est de proposer une classe «Listener» dont on hérite et qui contient le callback de lecture et toutes les fonctions utiles (voir l'api Leap Motion par exemple) ; le langage serait donc plutôt du C++). Compatibilité La librairie doit pouvoir être utilisée sur Windows, Mac OS et Linux. Il vous est suggéré d'utiliser cmake, mais vous pouvez aussi créer des projets spécifiques pour chaque OS avec Visual Studio sur Windows par exemple, etc. Vous pourriez même créer une libraire avec Qt (d'autant plus que qextserialport permet de facilement mettre en place une liaison série). Ressources Le projet doit bien évidemment être accompagné d'une documentation (suggestion : Doxygen) et de nombreux exemples. Le suivi du projet se fera via un dépôt github auquel vous serez invité au lancement du projet. Page 4 sur 6

Bonus Bindings Si le temps le permet, il peut être intéressant de créer des wrappers ou des bindings de l'api vers d'autres langages (notamment vers du Python). Outil de mise à jour du firmware En marge des exemples de l'api, vous pourriez mettre au point un petit logiciel en ligne de commande permettant de mettre à jour le firmware du cube. Ce serait une bonne démonstration de la fonctionnalité, en plus d'être pratique pour la suite du projet. Contrôle des périphériques Il pourrait être intéressant de pouvoir contrôler l'écran tactile et la carte SD depuis l'ordinateur. Il faut en revanche réfléchir à l'utilisation de telles fonctionnalités à leur intégration dans la spécification de l'api. Éléments fournis Spécification de l'api Une première spécification de l'api vous sera fournie au démarrage du projet. Elle présentera la structure des paquets (header, données, CRC) et les diverses fonctions suggérées. Vous serez libres de la modifier. Firmware Le firmware vous sera fourni avec une première implémentation de la machine à états correspondant aux spécifications de l'api susmentionnée. Vous aurez à charge de le compléter et/ou de le modifier. Prototype Un prototype du cube vous sera fourni, avec l'intégralité des cartes électroniques ainsi que le programmeur pour le STM32. C est parti Gardez en tête également que ce sujet a été écrit dans l optique de vous laisser un maximum de liberté. Un certain nombre d éléments sont fournis pour vous aider à démarrer plus vite mais toute initiative sera la bienvenue. Vous êtes avant tout des collaborateurs. Soyez créatifs et rigoureux. Page 5 sur 6

Page 6 sur 6