Cours:StartMindstorm

De troyesGEII
Révision datée du 4 juillet 2018 à 21:55 par Bjacquot (discussion | contributions) ({{Bleu|Compilation/Exécution}})
Aller à : navigation, rechercher

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