Home » Archives for macerobotics

Author: macerobotics

Contrôle d’une led avec un µC STM32

Exemple de contrôle d’une led sur le port PE8 avec un microcontrôleur STM32F407 :

void led_init(void)
{
GPIO_InitTypeDef GPIO_InitStruct;

	  // configuration en sortie
	  GPIO_InitStruct.Pin = GPIO_PIN_8;
	  GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
	  GPIO_InitStruct.Pull = GPIO_NOPULL;
	  GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
	  HAL_GPIO_Init(GPIOE, &GPIO_InitStruct);

}

void led_control(GPIO_PinState state_led)
{
	HAL_GPIO_WritePin(GPIOE, GPIO_PIN_8, state_led);
}

void led_toggle(void)
{
  HAL_GPIO_TogglePin(GPIOE, GPIO_PIN_8);
}

 

Gestion du buzzer et de la led RGB

Un tutoriel pour gérer le buzzer et le led RGB du robot mobile MRPiZ (version 0.8) en langage C.

Exemple n°1 : faire du bruit

Un exemple pour utiliser le buzzer :

#include "MRPiZ.h"


int main(int argc, char* argv[])
{

  init();

  buzzer(100); // fréquence de 100 Hz

  sleep(3);

  buzzer(200); // fréquence de 200 Hz

  sleep(3);

  buzzer(0);
}
  • frequency : fréquence du signal
buzzer(frequency)

Exemple n°2 : faire de la lumière

Un exemple pour utiliser la led RGB :

 

#include "MRPiZ.h"


int main(int argc, char* argv[])
{

  init();

  while(1)
  {

    ledRGB(1,0,0);

    sleep(3);

    ledRGB(0,1,0);

    sleep(3);

    ledRGB(0,0,1);

    sleep(3);
  }
}
  • red, green, blue :
    • 0 : off
    • 1 : on
ledRGB(red, green, blue)

 

Le robot MRPiZ en langage C

Un tutoriel pour programmer le robot mobile MRPiZ en langage C.

Lien pour l’API C : https://github.com/macerobotics/MRPiZ/tree/master/Software/C

Les fichiers doivent être placer dans des répertoires:

  • les fichiers .c dans le répertoire sources
  • les fichiers .h dans le répertoire header

 

Exemple n°1 : simple déplacement

Un exemple pour déplacer le robot MRPiZ:

#include "MRPiZ.h"


int main(int argc, char* argv[])
{

  init();

  forward(25);

  sleep(3);

  back(25);

  sleep(3);

  stop();
}

Compilation du fichier :

gcc sources/*.c -I header -o Exemple1

Exécution du programme :

./Exemple1

 

Exemple n°2 : lecture des capteurs laser

Un exemple pour la lecture des 3 capteurs ToF du robot :

#include "MRPiZ.h"


int main(int argc, char* argv[])
{
int p2, p3, p4;
int c=0;

  init();

  for(c=0; c < 10; c++)
  {
    p2 = proxSensor(2);
    p3 = proxSensor(3);
    p4 = proxSensor(4);

    printf("Capteur p1=%d\n", p2);
    printf("Capteur p2=%d\n", p3);
    printf("Capteur p3=%d\n", p4);
  
    sleep(1);
  }
  
}

Exemple n°3 : lecture des encodeurs

Un exemple pour la lecture des 2 encodeurs du robot.

#include "MRPiZ.h"


int main(int argc, char* argv[])
{
int eL, eR;
int c;

  init();

  for(c=0; c < 10; c++)
  {
	  
	forward(30);
	
    eL = encoderLeft();
    eR = encoderRight();

    printf("encoder left=%d\n", eL);
    printf("encoder right=%d\n", eR);

    sleep(1);
  }
  
  stop();

}

 

Fin du tuto !