déc 13

Sommaire du cours d’Ada

Salut à tous,

Je vais référencer sur cette page les cours pour la programmation en Ada sur stm32. Les premiers sont à faire dans l’ordre et la fin sera un peu plus libre.

  1. Le cours d’Ada pur
  2. Installation du crosscompilateur Ada pour stm32
  3. Installation de notre api
  4. Les GPIOs

 

Je viendrai au fur et à mesure rajouter des éléments à la liste :)

A+

Julien

déc 13

L’api Ada

Salut à tous,

Nous allons maintenant installer l’api ada qui nous avons développé au club. Avant de poursuivre, assurez-vous d’avoir réussi à installer le compilateur. Si ce n’est pas le cas, je vous renvois Ici.

Ensuite, assurez vous d’avoir git installé. Si ce n’est pas le cas, tapez simplement dans la console :

sudo apt-get install git

Nous pouvons maintenant récupérer l’api. Pour cela, rien de plus simple. Il suffit de cloner le dépot mis à votre disposition par le club. Entrez dans le terminal :

git clone https://github.com/telrob/ada-api

Voila, vous avez installé l’api ! Testons maintenant son fonctionnement. Rendez vous dans le dossier ada-api :

cd ada-api

Un fichier d’exemple est mis à votre disposition. Pour vérifier qu’il compile comme il faut. Entrez :

make

dans la console. Si tout se passe comme il faut, vous trouverez l’exécutable dans le dossier bin et les objets intermédiaires dans le dossier objs. Vous pouvez essayer de flasher votre carte. Pour cela, deux choix s’offrent à vous. Le premier est de réutiliser la méthode vue dans le chapitre précédent . L’autre consiste à utiliser un fichier appelé .gdbinit qui va exécuter tout seul un certain nombre de commande à l’ouverture de gdb. Il se trouve dans le fichier bin. Au premier lancement, il ne sera pas actif. Pas de problème, gdb vous le signale. Il vous dit qu’il faut écrire un ligne du genre add-auto-load-safe-path /home/julien/Documents/ADA_API_STM32/bin/.gdbinit dans le fichier /home/nom_utilisateur/.gdbinit . Si ce fichier n’existe pas, créez le et copiez-y la ligne. Relancez gdb. La consigne a disparu. Il vous suffit maintenant de faire un load pour flasher la carte. N’oubliez pas de lancer openocd avec gdb. SI des problèmes persistent, débranchez, rebranchez la carte et relancer openocd et gdb. Si vous êtes curieux, jeté un œil dans le fichier .gdbinit. Vous reconnaîtrez alors certaines commandes, parfois en abrégé. Ces commandes sont exécutées au lancement de gdb et vous pouvez les modifier ou en ajouter. Je vous renvoie vers l’article de Félix pour plus d’informations.

Détaillons maintenant le contenu. Comme je l’ai déjà précisé, le dossier bin va contenir les exécutables que vous génèrerez. Le dossier objs, qui n’a pas trop d’importance, contient les fichiers intermédiaires. Le dossier hwinterface contient les fonctions de base qui nous permettrons de programmer sur la stm32. Le dossier doc contient la documentation des fonctions utilisables (en cours d’écriture à l’heure actuelle). Pour la lire, ouvrez le fichier masterindex.html avec votre navigateur préféré ;)

Vous trouverez ensuite un fichier Makefile. Si vous ne savez pas ce que c’est, sachez qu’il s’agit d’un fichier souvent présent dans les projets de programmation et qui permet d’effectuer des actions prédéfinies, comme compiler par exemple. Quand nous avons appelé make, nous avons en réalité appelé la première fonction du Makefile qui a compilé le programme. Vous pouvez aussi supprimer tous les fichiers créés pendant la compilation en tapant make clean . Le Makefile est un concept très important et je vous conseille fortement d’apprendre à l’utiliser :)

Si nous regardons le contenu du Makefile, on peut voir que arm-none-eabi-gnatmake est appelée. Souvenez vous, c’est cette fonction que nous avons utilisé pour vérifier l’installation du compilateur. Cette fois, elle est accompagnée du plus d’arguments, et notamment un appel au fichier build.gpr . Il s’agit d’un fichier pour gérer les projets (on l’inclut d’ailleurs avec -P). Dedans, vous trouverez des définitions liées à l’organisation du projet. On y définit par exemple l’emplacement des fichiers sources, l’emplacement des exécutables, des options de compilation,… Une option nous intéresse plus particulièrement : Main. C’est la liste des fichiers dont nous souhaitons obtenir les exécutables. Ainsi, si vous rajoutez un exécutable, vous pouvez venir le l’ajouter à la liste :

for Main use ("example", "projet1","foo");

Pour les plus téméraires, vous pouvez aussi jouer avec les autres options de compilation.

Voilà, je pense avoir fait le tour. Vous devriez maintenant être capable de poursuivre avec les cours sur le site ou en solo.

 

A+,

Julien

oct 24

Photos de la séance peinture

 

 

 

 

 

 

 

 

IMG_20141023_213907 IMG_20141023_213905 IMG_20141023_213859 IMG_20141023_213851 IMG_20141023_210918 IMG_20141023_210734 IMG_20141023_210720

oct 05

Installer le compilateur Ada

Salut à tous,

Aujourd’hui s’achève le premier week-end robotique de l’année et un certain nombre de leçons furent tirées concernant l’installation d’Ada. Voici donc un résumé des étapes à suivre.

En savoir plus »

oct 04

Ada et les GPIOs

Salut à tous,

Aujourd’hui un petit tutorial pour mieux comprendre l’utilisation des GPIOs sur stm32 avec Ada ! C’est parti !

Avant de commencer, expliquons ce que sont les GPIOs. GPIO (General Purpose Input/Output = Entrée/Sortie à usage général) sont des ports pouvant jouer soit le rôle d’entrée sur le microcontrolleur, soit le rôle de sortie. On accède en général aux données du port GPIO via des registres, qui sont des emplacements mémoire internes au processeur. C’est une des mémoires les plus rapides mais aussi une des plus chères à produire.

Sur notre stm32f4-discovery, les ports GPIOs se trouvent sur les côtés et sont faits de telle sorte qu’ils soient facile d’accés.
En savoir plus »

Image

Porte clés du club

image

#jenveuxun

sept 14

Ada et Robots #1: démarrage

Nos robots sont programmés en Ada. Pourquoi? Alexis écrivait en 2008 « c’est un langage beaucoup plus sûr ». C’est vrai – mais excessivement réducteur.

Cette série d’articles va vous apporter les premiers pas d’Ada pratique sur STM32 – on ne va pas trop parler au début du typage fort et des restrictions du profile Ravenscar.

Le programme est le suivant:

  1. Démarrage: installer les outils de développement (GNAT, bibliothèques, outils associés); compiler un premier programme (vide).
  2. Clignotons des diodes: comment (presque) contrôler le monde
  3. Bases d’Ada en 60 secondes chrono: packages, fichiers programme, GNATMake…
  4. Le multitâche basique: faisons plein de choses en même temps – sans effort.

[Cette liste sera mise à jour au fur et à mesure de la publication des articles]
En savoir plus »

août 20

Lettre aux nouveaux télécommiens

« Oh seigneur, mais qu’est ce que tu a fais ? Je suis monté à l’envers. Stupide gros tas de peluche. » – C3PO à Chewie

Salut à toi, jeune télécommien. Ton WEI s’achève à peine et tu cherches dans ce petit livret le club de tes rêves ? Ne vas pas plus loin : tu l’as trouvé ! Le club robotique de télécom est là pour toi. Viens avec nous découvrir et apprendre dans cet univers fascinant de nouvelles technologies qu’est la robotique !

Mais avant tout, qu’est ce que le club robotique ? C’est une association un peu spéciale : elle réunit des membres de toutes les promos et de différentes écoles (Télécom, Polytechnique,…) autour d’une passion commune : la robotique. Notre but : apprendre à tout le monde comment fonctionne un robot et participer à la coupe de France de robotique !

Logo

Et là tu te dis : la coupe de France ? C’est bien trop dur pour moi ! Et bien pas du tout ! Tout le monde a son importance et aide à la construction de nos deux robots. Certes, le niveau est très élevé mais c’est avant tout un événement qui réunit pleins de passionnés qui aiment partager leurs expériences. Et Télécom Robotics dans tout ça ? Depuis 10 ans, le club y participe et dernièrement a obtenu de très bons résultats (4ième l’année dernière, 3ième il y a trois ans) et est même allé jusqu’en coupe d’Europe en Allemagne l’année dernière !

Tu as d’autres projets en tête ? Le club est aussi là pour t’aider. Si tu as la moindre question, tous les membres seront enchantés de te répondre. Au club, l’entraide est de mise. Viens aussi profiter de notre imprimante 3D pour donner vie à tes envies !

imprimante3D

Que vas tu apprendre au club robotique ? De nombreux domaines s’ouvrent à toi et il y en a pour tous les goûts : mécanique, électronique, programmation, logistique, relation entreprise,… Viens t’initier à toutes ces compétences et peut-être une vocation naîtra en toi ?

Tu as d’autres questions ou tu souhaites en apprendre plus sur le club ? N’hésite pas à nous envoyer un mail à team@telecom-robotics.org ou à consulter notre site web : www.telecom-robotics.org .

 

Sur ce, bonne rentrée et amuse toi bien dans ta nouvelle école,

 

Julien Romero pour Telecom Robotics

juil 08

Petit retour sur la Coupe de France et la Coupe d’Europe

Cette année, grande nouveauté mécanique pour nous : découvrir les joies (et les lenteurs ?) de l’imprimante 3D.

La Coupe de France

c’est plusieurs mois de réflexions, de modélisations (3D), puis d’impression 3D, de bricolage, de tirage de carte électronique, soudures, programmation….

2014-05-30 16.24.31VLUU L310 W  / Samsung L310 W

Sur place, ce furent 4 jours de travail, 3 nuits de travail, 5 matchs qualificatifs… beaucoup de patchs mécaniques ou électroniques. Avec un début qui n’était pas de tout repos, 130 points plus tard, Telecom Robotics se qualifie pour les phases finales du samedi après-midi avec une 7ème place.

Huitième de finale contre l’ESEO, Quart de finale contre BH Team, Demi-finale contre RCVA (devenus champions de France), Petite finale contre µArt.  Résultat : 4ème place sur plus de 160 équipes !

C’est grâce à ce résultat que pour la première fois de son histoire, Telecom Robotics a décroché sa place pour la coupe d’Europe !

 

Et la coupe d’Europe ? (ou préparer une expédition en Allemagne à Dresde en moins de 5 jours)

Défi logistique et financier (au départ de Paris : 9 des membres , 2 robots, et beaucoup de matériel, hébergement, repas sur la route, et en Allemagne pour 3 jours…). Organisez tout ça en découvrant que vous êtes qualifiés seulement 5 jours avant. C’est quelque chose que de gérer une expédition.  (Faire 7 ou 8 devis de locations de voiture… etc.. )

 

Notre stand à la coupe d'Europe

Notre stand à la coupe d’Europe, Un Wall-E s’est caché sur la photo, saurez-vous trouver Where is Wall-E ?

 

1er contre-temps : nous pensions passer quelques nuits blanches, mais les stands étaient fermés la 1ère nuit.

Ensuite, nous partagions notre temps entre tests, matchs, réparations, et en pensant à faire tourner les groupes pour aller manger aux heures où le repas est servi  (à l’inverse de la Coupe de France, où l’on se prépare à manger à 2h du matin).

VLUU L310 W  / Samsung L310 WVLUU L310 W  / Samsung L310 W

VLUU L310 W  / Samsung L310 W VLUU L310 W  / Samsung L310 W

Tests, matchs, réparations, tests, patchs, réparations, tests, match,… Ce fut même pour nous l’occasion de découvrir enfin la raison de certains dysfonctionnements  (ex: d’où venait le problème de communication entre notre BeagleBoard et notre carte STM32 => GPIO qui était en Open-Drain, au lieu du Push/Pull), ou bien de finir de développer certaines fonctionnalités.

Nous avons réalisé des matchs avec des scores en dent de scie en phases qualificatives. 11 points, 17 point, 31 points, 11 points, 23 points. Au final, une 17ème place. Il fallait une place de mieux pour être en phase finale européenne.

 

Pas si mal pour une première participation :-)

juin 06

Coupe D’europe De Robotique

Salut tout le monde!

Après une journée de route nous sommes enfin arrivés à l’Université de Technologie de Dresde (Allemagne),

Sans plus attendre voici une photo de notre stand.  Nous n’avons pas pu faire de match hier car il y avait un problème de connexion entre la beagleboard et la stm32. On espère pouvoir tester nos robots ce soir.  Les homologations ont fini a 20:30h et on est arrivés à 20h du coup on s’homologuera demain. On vous tient au courant!

Notre stand à la coupe d'Europe

Notre stand à la coupe d’Europe

Articles plus anciens «