Cours:StartMindstormEV3DEV : Différence entre versions
| Ligne 42 : | Ligne 42 : | ||
</source> | </source> | ||
| − | Pour compiler et exécuter votre programme test.c , il suffit de : | + | Pour compiler et exécuter votre programme {{Rouge|test.c}} , il suffit de : |
<source lang=bash> | <source lang=bash> | ||
gcc test.c -lev3dev-c -o test | gcc test.c -lev3dev-c -o test | ||
./test | ./test | ||
| + | </source> | ||
| + | |||
| + | ={{Rouge|Capteurs}}= | ||
| + | |||
| + | http://slideplayer.com/slide/10944320/ | ||
| + | |||
| + | =={{Bleu|Capteur de couleur}}== | ||
| + | |||
| + | On trouve 3 modes de mesure principaux : | ||
| + | {| | ||
| + | |- | ||
| + | | COL-COLOR || retourne un nombre entre 0 et 7 tel que : | ||
| + | {| | ||
| + | |- | ||
| + | | 0 ?? || 1 noir || 2 bleu | ||
| + | |- | ||
| + | | 3 vert|| 4 jaune|| 5 rouge | ||
| + | |- | ||
| + | | 6 blanc|| 7 marron|| | ||
| + | |} | ||
| + | |- | ||
| + | | COL-REFLECT || intensité de la lumière réfléchie entre 0 et 100 | ||
| + | |- | ||
| + | | COL-AMBIENT || intensité de la lumière ambiante entre 0 et 100 | ||
| + | |} | ||
| + | |||
| + | Il faudra tout d'abord initialiser le capteur et choisir le mode de mesure : | ||
| + | <source lang=c> | ||
| + | POOL_T capteurCouleur; | ||
| + | |||
| + | const char const *nomCouleur[] = { "?", "BLACK", "BLUE", "GREEN", "YELLOW", "RED", "WHITE", "BROWN" }; | ||
| + | #define NB_COULEUR (( int )( sizeof( nomCouleur ) / sizeof( nomCouleur[ 0 ]))) | ||
| + | int couleur; | ||
| + | |||
| + | int initCapteurCouleur() | ||
| + | { | ||
| + | capteurCouleur = sensor_search( LEGO_EV3_COLOR ); | ||
| + | if (capteurCouleur) | ||
| + | { | ||
| + | color_set_mode_col_color(capteurCouleur); | ||
| + | //color_set_mode_col_reflect(capteurCouleur); | ||
| + | //color_set_mode_col_ambient(capteurCouleur); | ||
| + | printf( "capteur couleur connecté\n"); | ||
| + | } | ||
| + | else | ||
| + | { | ||
| + | printf("vérifier le branchement du capteur couleur !\n"); | ||
| + | return (0); | ||
| + | } | ||
| + | return 1; | ||
| + | } | ||
</source> | </source> | ||
Version du 9 octobre 2017 à 09:56
Infos utiles
librairie brick
Pour commencer, nous utiliserons la librairie simplifiée "brick.h" dont nous allons explorer quelques aspects ici.
- on trouve une description globale des différentes approches de la librairie
- il faudra nécessairement se référer à la documentation de la librairie brick
Programme minimum
Cette base minimum de programme devra être reprise systématiquement :
#include <stdio.h>
#include "brick.h"
#include <unistd.h>
#define Sleep( msec ) usleep(( msec ) * 1000 )
int main( void )
{
if ( ev3_init() == -1 )
{
printf("\erreur d'initialisation\n");
return ( 1 );
}
printf("initialisation des capteurs ... ");
ev3_sensor_init();
printf(" ok !\n");
printf("initialisation des actionneurs ... ");
while ( ev3_tacho_init() < 1 ) Sleep( 1000 );
printf(" ok !\n");
// début du programme
// fin du programme
ev3_uninit();
printf("*** ( EV3 ) Bye! ***\n" );
return(0);
}
Pour compiler et exécuter votre programme test.c , il suffit de :
gcc test.c -lev3dev-c -o test
./test
Capteurs
http://slideplayer.com/slide/10944320/
Capteur de couleur
On trouve 3 modes de mesure principaux :
| COL-COLOR | retourne un nombre entre 0 et 7 tel que :
| |||||||||
| COL-REFLECT | intensité de la lumière réfléchie entre 0 et 100 | |||||||||
| COL-AMBIENT | intensité de la lumière ambiante entre 0 et 100 |
Il faudra tout d'abord initialiser le capteur et choisir le mode de mesure :
POOL_T capteurCouleur;
const char const *nomCouleur[] = { "?", "BLACK", "BLUE", "GREEN", "YELLOW", "RED", "WHITE", "BROWN" };
#define NB_COULEUR (( int )( sizeof( nomCouleur ) / sizeof( nomCouleur[ 0 ])))
int couleur;
int initCapteurCouleur()
{
capteurCouleur = sensor_search( LEGO_EV3_COLOR );
if (capteurCouleur)
{
color_set_mode_col_color(capteurCouleur);
//color_set_mode_col_reflect(capteurCouleur);
//color_set_mode_col_ambient(capteurCouleur);
printf( "capteur couleur connecté\n");
}
else
{
printf("vérifier le branchement du capteur couleur !\n");
return (0);
}
return 1;
}