Cours:StartMindstorm
Nous allons programmer la brique levo mindstorm EV3 à l'aide de l'ensemble logiciel c4ev3.
Vous pourrez bien entendu utiliser votre ordinateur Windows/Linux/Mac à condition d'avoir mené à bien l'ensemble des configurations nécessaires.
Nous utiliserons l'IDE éclipse pour l'édition, la compilation, le téléchargement ainsi que l'exécution des programmes.
Prise en main d'éclipse
Eclipse fonctionne à l'aide de projet : chaque fois que vous souhaitez écrire un nouveau programme, il convient d'en faire un nouveau.
Nouveau projet
Voici les étapes nécessaires à la bonne configuration d'un projet pour programmer la brique EV3 :
- File>New>C Project ... ça doit vouloir dire faire un nouveau projet en langage C !
- 1ère fenêtre :
- choisir un nom pour le projet : tp1
- projet de type : Executable/Hello World EV3 Project
- Toolchains : Cross ARM/EV3 GCC (votre ordinateur est une architecture x86_64, la brique EV3 comme la plupart des smartphones une architecture ARM => ce n'est pas la même chose on fait de la cross-compilation)
- Suivant, enfin NEXT plutôt !
- 2ème fenêtre, il faut vérifier :
- API path : /opt/electronique/lego/EV3-API/API
- Upload path : SD-Card
- Source : src
- NEXT
- 3ème fenêtre :
- on décoche debug
- on garde Release
- NEXT
- 4ème fenêtre, il suffit normalement de vérifier :
- Toolchain name : Sourcery CodeBench Lite for ARM ...
- Toolchain path : /opt/electronique/lego/arm-2009q1/bin
- EV3 Uploader : /usr/lib/ev3duder
- FINISH
Compilation/Exécution
Le code source du programme "minimum" devrait s'afficher à l'écran. Sinon, on le retrouve à gauche dans l'arborescence du projet dans le projet que l'on vient de créer, dans le dossier "src", par exemple "tp1.c" :
#include <ev3.h>
int main(void)
{
//TODO Place here your variables
InitEV3();
//TODO Place here your code
LcdPrintf(1, "Hello World!\n");
Wait(SEC_2);
FreeEV3();
return 0;
}
Avant d'expliquer plus en détail se programme, nous allons :
- le compiler :
- dans la barre d'icône au dessus de l'écran
- l'icône en forme de marteau : build
- on vérifie en bas de l'écran dans l'onglet "console" que tout s'est bien déroulé.
- on vérifie qu'il n'y a pas d'astérisque (*), à côté du nom du fichier, par ex tp1.c*
- si c'est le cas, il faut sauvegarder le fichier et recommencer
- Un robot connecté en USB et démarré ça pourrait servir maintenant !
- Exécution du programme
- barre de menu
- EV3>Upload and run ... je vous laisse traduire !
- On regarde l'écran, on doit voir le message "Hello World!"
Le programme :
Quelques explications sur le programme maintenant :
- On doit nécessairement écrire une fonction "main"
- elle est exécutée au lancement du programme
- int main(void) :
- elle retourne une valeur de type entier
- la valeur est récupérée à la fermeture du programme
- si la valeur est 0, tout s'est bien passé
- sinon la valeur représente un code d'erreur
- int main(void) :
- on ne passe pas de paramètre à la fonction main
- on peut aussi écrire : int main()
- { : la déclaration de la fonction main commence juste après l'accolade ouvrante
- } : la déclaration de la fonction main se termine juste avant l'accolade fermante
- return 0;
- on quitte la fonction (main ici) en envoyant la valeur 0 : tout s'est bien passé.
- si on ajoute des lignes après "return", elles ne seront pas exécutées