Découvertes personnelles de la programmation

Date : 1983
Machine : TI 99/4A
Langage : BASIC

Découverte de la programmation grâce au BASIC

C'est à l'âge de 9 ans que, grâce à mes parents et à mes frères plus âgés, j'ai découvert les débuts de la micro-informatique. C'était fascinant de voir tout ce qu'on pouvait créer, grâce à la programmation en BASIC. Je me souviens des programmes à recopier à partir d'un hebdomadaire, et à sauvegarder sur cassettes... c'était toute une époque !

Date : été 1989
Machine : PC / MS-DOS
Langage : C

Dernière version :
Abalone 1.0

Premier programme en C : Abalone


Abalone pour MS-DOS

J'ai eu la chance de pouvoir utiliser un PC dès le début de l'année 1988, ce qui m'a permis d'explorer les possibilités offertes par cet ordinateur. J'ai d'abord appris à utiliser le MS-DOS et puis mon père m'a donné des outils pour programmer en langage C, pour l'été 1989... L'attrait de la programmation était si fort que je m'y suis mis.
Résultat : j'ai créé le logiciel Abalone en C, pour MS-DOS (en 640x480 16 couleurs, avec la souris).

Date : environ 1990
Machine : calculatrice TI 81
Langage : BASIC

Découverte de la programmation sur calculatrice

Comme beaucoup, j'ai eu une calculatrice... et j'ai voulu l'utiliser pour programmer. J'ai essayé de faire le maximum que je pouvais, avec le petit BASIC qu'il y avait. Par exemple, j'ai fait :
 - Master Mind
 - Donjon : un labyrinthe en pseudo-3D (en mode graphique)
 - Démineur : comme le démineur qu'on retrouve sous Windows (en mode graphique)
 - Font Editor : un éditeur de polices de caractères (en mode graphique)

Date : été 1994
Machine : PC / MS-DOS
Langage : C++

Dernière version :
Relief 1.2

Premier programme en C++ : Relief


Relief pour MS-DOS

Pendant l'année scolaire 1993/194 à l'IUT d'informatique d'Orsay, on n'a pas appris le C++, puisqu'il fallait d'abord maîtriser le C. J'étais trop curieux pour attendre d'apprendre la programmation orientée objet, et c'est pourquoi j'ai profité des vacances d'été pour faire du C++.
Les stéréogrammes étaient alors à la mode, et dans un numéro de SVM (Sciences et Vie Micro), il y avait un programme fait en Pascal permettant de créer un stéréogramme, avec une formule mathématique.
Je me suis dit que ça serait intéressant de créer un logiciel permettant de faire toutes sortes de stéréogrammes :
  - pour le motif en 3D : soit une formule mathématique, soit un fichier image dans lequel chaque couleur définit une profondeur
  - pour le motif répété : soir un motif pseudo aléatoire, soit un fichier image en 256 couleurs.
Petite remarque : Relief affiche des stéréogrammes en 256 couleurs, jusqu'à la résolution de 1024x768 pixels.
C'est ainsi que j'ai créé la classe "StereoGramme", ma première classe dans un langage orienté objet.

Date : été 1998
Machine : PC / Windows
Langage : Lingo (Director)

Dernière version :
Abalone 1.0

 
Disponible ici 

Premier programme sous Director : Abalone


Abalone pour Windows

Après mes différentes expériences en programmation,, j'ai pensé qu'il serait bien de créer des applications multimédias, très intuitives et ergonomiques pour l'utilisateur final. La programmation en C++ sous Windows offrait à l'époque, très peu de facilités pour construire de telles applications, simplement.
C'est la raison pour laquelle je me suis tourné vers le logiciel Macromédia Director, qui sert pour la création de programmes multimédia (par exemple, il y a beaucoup de logiciels culturels et ludo-éducatifs). J'ai manipulé Director, et j'ai eu la surprise d'y trouver un langage de script (Lingo), permettant de programmer certaines choses.
Je me suis lancé le défi de faire le jeu d'Abalone, sous Director, de telle sorte qu'il soit ergonomique et attrayant. C'était l'occasion d'ajouter au jeu la réflexion de l'ordinateur, en me basant sur mes cours de maîtrise concernant l'intelligence artificielle.
Malheureusement, la vitesse de réflexion de l'ordinateur n'était pas optimale... ce qui est logique, étant donné que Lingo n'est pas un langage fait pour ça : la puissance de Director se situe dans tout ce qui est multimédia.
D'ailleurs, un peu plus tard, j'ai commencé à faire un jeu d'aventure original, sous Director. Malheureusement, ce projet n'a pas abouti, pour diverses raisons.

Date : été 2000
Machine : PC / BeOS
Langage : C++ (API BeOS)

Dernière version :
aba_Be_lone 1.2

Premier programme sous BeOS : aba_Be_lone


aba_Be_lone pour BeOS

C'est en mai 2000 que j'ai installé BeOS 5 sur mon ordinateur. C'était la première fois qu'un système d'exploitation vraiment multimédia et facile d'utilisation, devenait accessible gratuitement au grand public. J'ai alors compris que BeOS était le système d'exploitation dont j'avais toujours rêvé.
Voulant vérifier par moi-même la facilité de programmer des applications multimédias sous BeOS (en comparant à Windows ou Unix), je me suis lancé dans une adaptation d'Abalone pour BeOS, en C++.
Mes objectifs étaient d'apprendre à programmer sous BeOS, et d'aboutir à une version informatique d'Abalone, d'une grande qualité (ergonomique, rapide, modulaire,...).
Enfin, je pouvais concilier le côté multimédia et ma maîtrise du C++.
Pour plus d'informations, voir la page d'accueil

Date : été 2002
Machine : PC / Windows
Langage : Squeak

Premiers pas en Squeak

Grâce à la revue Login:, j'ai été attiré par un langage dérivé de Smalltalk, un langage purement objet : le Squeak. C'est réellement étonnant de découvrir un langage très puissant, entièrement objet (contrairement au C++), et qui permet de créer des applications multimédias très conviviales. Il est à noter que des enseignants ont compris l'intérêt pédagogique de Squeak, qui intègre des objets résolument tournés vers une utilisation pédagogique et multimédia (les E-Toys).
Je pense que je vais commencer à écrire un programme... en Squeak !



Logiciels professionnels

Date : mars-juin 1995
Machine : PC / MS-DOS
Langage : C

Dernière version :
Photométrie 1.5

Photométrie (pour l'observatoire de Paris-Meudon)


Photométrie pour MS-DOS
(menus)

Photométrie pour MS-DOS
(tableau de bord)

J'ai réalisé ce logiciel dans le cadre de mon stage de fin d'IUT, en collaboration avec l'observatoire de Meudon (au DAMAp : Département Atomes et Molécules en Astrophysique). Il sert à faire l'analyse photométrique en temps réel d'images faites à l'aide d'une caméra CCD et reprises par une carte d'acquisition d'images.
Le matériel dont je disposais était :
 - un PC 486 DX33 sous MS-DOS (avec Borland C v3.1),
 - une carte d'acquisition vidéo (Vidéo Blaster SE),
 - une caméra CCD (et un laser pour les expériences).
Photométrie permet principalement d'effectuer :
 - des coupes photométriques, en mode statique (avec enregistrement) ou en mode dynamique, le long de segments en travers de l'image affichée.
 - des mesures photométriques, en temps réel ou différé, par l'intégration de l'intensité lumineuse reçue sur une portion de l'écran (points, carrés, rectangles ou cercles de dimensions variables) avec enregistrement simultané.
 - le comptage automatique des franges après définition de seuils haut et bas et avec élimination du bruit.
 - l'enregistrement (après choix de la base de temps) et le rappel pour la visualisation des profils photométriques (en mode ASCII ou binaire).
 - les fonctions élémentaires d'enregistrement et de rappel des images pour la visualisation (au format TGA).

Photométrie 1.5 a été présenté aux Septièmes Journées Nationales "Informatique et Pédagogie des Sciences Physiques", les 8-9-10 février 1996, organisées par l'UDP, l'IGEN et l'INRP à l'Université de Bordeaux I.

Date : 1995-2000
Machine : PC / MS-DOS
Langage : C

Dernière version :
Balzer 2000

Balzer (pour l'observatoire de Paris-Meudon)


Balzer 2000 pour MS-DOS
(configuration)

Balzer pour MS-DOS
(graphique)

Balzer sert à faire la spectroscopie d'un gaz, grâce au rayonnement lumineux issu d'un synchrotron situé à Orsay, au LURE (Laboratoire des Utilisateurs du Rayonnement Electromagnétique). Il permet de :
 - gérer le déplacement de moteurs pas à pas (via la liaison série ou la liaison GPIB) pour sélectionner la longueur d'onde souhaitée,
 - faire l'acquisition des données (via la liaison GPIB ou via une carte d'entrées/sorties analogiques/numériques),
 - visualiser et sauvegarder les informations.
Les fonctions de base de ce logiciel ont été programmées par deux stagiaires, puis j'ai repris le développement pour la finalisation. Au fur et à mesure des expériences réalisées sur le synchrotron, j'ai été obligé d'améliorer de nombreuses choses, et de concevoir de nouvelles fonctionnalités.
Balzer 2000 regroupe plusieurs versions de Balzer ayant servies pour de nombreuses expériences sur le synchrotron SuperACO, à Orsay.

Date : 1998-2000
Machine : PC / Windows 9X
Langage : C++ (Borland)

Dernière version :
Hit 3.4

Hit (pour l'observatoire de Paris-Meudon)


Hit pour Windows

Le logiciel Hit a été commencé par un stagiaire. J'en ai assuré le suivi du développement pour le rendre pleinement fonctionnel et pour l'améliorer.
Hit a servi principalement à une expérience servant à comprendre la formation des météorites et des micrométéorites et à comprendre leur composition chimique. Cette expérience s'est déroulée au LURE à Orsay. Elle a permis d'utiliser le rayonnement du synchrotron pour faire une spectroscopie du gaz à étudier.
En effet, ce rayonnement arrivant sur le gaz que l'on veut étudier, crée des ions (et des neutrons) qui sont détectés pour un système d'acquisition relié à un ordinateur. Pour avoir une spectroscopie du gaz, il suffit de faire varier la longueur d'onde de la lumière provenant du synchrotron (on utilise généralement la zone proche des rayons X).
Cette expérience a également eu pour but de calculer le "temps de vol" des ions (et des neutrons) ainsi créés. Ce temps de vol est la durée que met l'ion à parcourir une certaine distance. Grâce à cette donnée, les chercheurs ont pu faire des calculs pour connaître le type exact de chaque ion, et donc pour étudier les réactions chimiques ainsi effectuées.
Le logiciel Hit sert principalement à :
 - programmer toutes les cartes du rack CAMAC (cartes TDC, buffer, discriminateur),
 - réaliser l'acquisition.
L'acquisition des données permet de mémoriser le temps de vol des ions et des neutrons. Ces temps de vol sont stockés par l'ordinateur et affichés sous forme d'histogrammes.
De plus, le système permet de savoir quand il y a des "doubles événements", c'est-à-dire quand il y a à la fois des ions et des neutres (avec la même durée). Ces informations sont également stockées et affichées par l'ordinateur.
La version 3.4 a été utilisée pour d'autres expériences au LURE, sur le synchrotron SuperACO.

Date : 2000
Machine : PC / Windows 3.X
Langage : C++ (Borland)

Dernière version :
Caméra 1.0

Caméra (pour un BTS électrotechnique)


Caméra pour Windows

Je me suis chargé de la partie logicielle d'un projet de BTS électrotechnique (pour le lycée Jules Verne à Château-Thierry). Ce projet avait pour but de faire de la vidéosurveillance à distance, pour un éleveur de bovins de sélection.
Il existait déjà une solution fonctionnelle mais l'éleveur désirait :
 - obtenir un signal audio en plus de la vidéo,
 - visionner en temps réel à distance (en dehors de son exploitation),
 - commander les mouvements à distance,
 - avoir un zoom plus puissant (ex. : 24),
 - disposer d'un autofocus,
 - pouvoir conserver un enregistrement du signal,
 - protéger l'installation selon les normes en vigueur (particulièrement contre les surtensions d'origine atmosphérique).
Le logiciel que j'ai créé devait remplacer la télécommande, tout en ayant la possibilité de s'exécuter via Internet. Couplé avec une carte connectée sur un port parallèle (LPT1, LPT2 ou LPT3), il a permis de commander la caméra avec toutes les fonctions de la télécommande existante. Caméra dispose d'une interface calquée sur la télécommande matérielle.

Date : 2001
Machine : PC / Windows 3.X
Langage : C++ (Borland)

Dernière version :
Chariot 0.9

Chariot (pour un BTS électrotechnique)


Chariot pour Windows

Ce logiciel a également été programmé pour un projet de BTS électrotechnique (pour le lycée Jules Verne). Le but était de gérer la programmation des trajets d'un chariot filoguidé. Les élèves devaient remettre en état les dessertes et le chariot, pendant que je me chargeais du logiciel. Il existait un programme en Pascal, mais peu fonctionnel, trop limitatif. et en mode texte.
La version actuelle de Chariot (v 0.9) permet de :
 - programmer le trajet du chariot filoguidé,
 - gérer son contenu (en posant ou chargeant un objet via une desserte),
 - lancer les trajets programmés, en visualisant graphiquement le trajet du chariot, son contenu ainsi que celui des dessertes,
 - sauvegarder automatiquement l'historique des commandes exécutées.
Les commandes via la liaison série ne sont pas implémentées, à cause des retards pris par les élèves, concernant le matériel (en revanche, tout est pré-programmé).
 

 



Page mise à jour le 10 octobre 2002