jeudi 3 avril 2008

Programmation USB sous linux

La carte k8055 de velleman est une carte d'interface usb dotée de 8 sorties numériques (bufferisées par un ULN2803), de 5 entrées numériques, de 2 entrées analogiques et de 2 sorties analogiques basées sur un générateur PWM. Le microcontroleur qui régente tout ça est un PIC 16C745.

Il existe un programme de commande sous linux qui m'a permis d'aller explorer la programmation USB sur ce système. Ce programme se base sur la librairie libusb qui remonte au niveau utilisateur les fonctions de gestion USB.

Les sources sont suffisaments documentés pour comprendre facilement comment cela fonctionne.

Pour en savoir plus :

Confusions

Je constate que bien souvent, dans la presse ou sur internet, la notion d'urbanisation s'accompagne de tout un tas de sigles du style SOA, BPM, BPEL, bus logiciels, webservices, business intelligence, etc....en fait représentant des technologies ou des notions purement liés à l'informatique. C'est oublier un peu vite, me semble t-il qu'un bon projet d'urbanisation doit commencer par décrire le métier pour lequel l'informaticien travaille. Quand je dis métier, ce n'est pas encore les spécifications fonctionnelles, mais bien le métier, c'est à dire ce que les autres gens font de leur journées pour gagner leur vie. Dans cet univers là, l'ordinateur n'existe pas, ce qui, j'en conviens peut paraitre suréaliste pour l'informaticien lambda.

Au départ il s'agit simplement de décrire le système d'information, c'est à dire quelles sont les informations manipulés par les gens du métier. Cela ne veut pas dire que toutes ces informations vont se retrouver dans un ordinateur. Il va falloir faire des choix en fonction de la faisabilité ou du coût (ou des deux).

C'est ensuite que l'on commence à parler de spécifications fonctionnelles, lorsque justement on sait ce qui va être informatisé ou sur ce qui l'est déjà. Quand j'emploi le futur, c'est aussi parce que dans le monde réel, les gens ont des projets, une entreprise peut faire des choix stratégiques. Il est important aussi de penser à cela, à l'évolution du métier.

Ce n'est qu'après cela que l'on peut commencer à se poser des questions liés au système informatique.

Les spécifications fonctionnelles ne doivent normalement contenir aucune notion d'informatique, ce n'est pas encore le moment. Ce n'est qu'une partie de la description du métier.


La notion de système informatique apparait vaguement avec

Embarquer

Non, ce billet ne concerne pas l'informatique embarqué, mais la sérieuse tendance de java à embarquer d'autres langages. Depuis la spec JSR223, l'univers des interpréteurs embarqués dans Java explose. En peut en effet faire fonctionner du javascript, groovy, php, python, ruby et donc aussi les frameworks qui vont avec, ce qui permet de voir la naissance de projets comme JRuby On Rail. Mais quel est donc l'intérêt de faire ceci ? Tous d'abord cela permet de bénéficier de la jvm et de la longue expérience d'optimisation et de compilation à la volée accumulée depuis 10 ans. Mais surtout cela permet de faciliter les phases d'intégration, voir d'urbanisation autour d'applications implémentées avec des langages différents. J2EE sait très bien faire. On peut par exemple ainsi avoir des sites commerciaux en php relié a des ERP écrit en java.

Tous cela ouvre des perspectives...