Home » robot

Category: robot

Utilisation d’un encodeur magnétique AS5048 avec la Raspberry Pi Pico

Un exemple d’utilisation d’un encodeur magnétique de référence AS5048 avec la carte Raspberry Pi Pico.

 

L’encodeur est relié en SPI au Pico via les pins :

  • GPIO4 => MISO
  • GPIO3 => MOSI
  • GPIO6 => SCK
  • GPIO5 => CS

Exemple de lecture

#include <SimpleFOC.h>
#include <SPI.h>

#define SPI_MISO 4
#define SPI_MOSI 3
#define SPI_SCK 6
#define SPI_CS 5

MagneticSensorSPI sensor = MagneticSensorSPI(SPI_CS, 14, 0x3FFF);

void setup()
{

SPI.setCS(SPI_CS);
SPI.setSCK(SPI_SCK);
SPI.setRX(SPI_MISO);
SPI.setTX(SPI_MOSI);

SPI.begin();

// initialise magnetic sensor hardware
sensor.init();
}


void loop()
{

sensor.update();

// display the angle and the angular velocity to the terminal
Serial.print(sensor.getAngle());
Serial.print("\t");
Serial.println(sensor.getVelocity());

delay(1000);
}

FIN !

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:

[pastacode lang=”c” manual=”%23include%20%22MRPiZ.h%22%0A%0A%0Aint%20main(int%20argc%2C%20char*%20argv%5B%5D)%0A%7B%0A%0A%20%20init()%3B%0A%0A%20%20forward(25)%3B%0A%0A%20%20sleep(3)%3B%0A%0A%20%20back(25)%3B%0A%0A%20%20sleep(3)%3B%0A%0A%20%20stop()%3B%0A%7D” message=”” highlight=”” provider=”manual”/]

Compilation du fichier :

[pastacode lang=”c” manual=”gcc%20sources%2F*.c%20-I%20header%20-o%20Exemple1″ message=”” highlight=”” provider=”manual”/]

Exécution du programme :

[pastacode lang=”c” manual=”.%2FExemple1″ message=”” highlight=”” provider=”manual”/]

 

Exemple n°2 : lecture des capteurs laser

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

[pastacode lang=”c” manual=”%23include%20%22MRPiZ.h%22%0A%0A%0Aint%20main(int%20argc%2C%20char*%20argv%5B%5D)%0A%7B%0Aint%20p2%2C%20p3%2C%20p4%3B%0Aint%20c%3D0%3B%0A%0A%20%20init()%3B%0A%0A%20%20for(c%3D0%3B%20c%20%3C%2010%3B%20c%2B%2B)%0A%20%20%7B%0A%20%20%20%20p2%20%3D%20proxSensor(2)%3B%0A%20%20%20%20p3%20%3D%20proxSensor(3)%3B%0A%20%20%20%20p4%20%3D%20proxSensor(4)%3B%0A%0A%20%20%20%20printf(%22Capteur%20p1%3D%25d%5Cn%22%2C%20p2)%3B%0A%20%20%20%20printf(%22Capteur%20p2%3D%25d%5Cn%22%2C%20p3)%3B%0A%20%20%20%20printf(%22Capteur%20p3%3D%25d%5Cn%22%2C%20p4)%3B%0A%20%20%0A%20%20%20%20sleep(1)%3B%0A%20%20%7D%0A%20%20%0A%7D” message=”” highlight=”” provider=”manual”/]

Exemple n°3 : lecture des encodeurs

Un exemple pour la lecture des 2 encodeurs du robot.

[pastacode lang=”c” manual=”%23include%20%22MRPiZ.h%22%0A%0A%0Aint%20main(int%20argc%2C%20char*%20argv%5B%5D)%0A%7B%0Aint%20eL%2C%20eR%3B%0Aint%20c%3B%0A%0A%20%20init()%3B%0A%0A%20%20for(c%3D0%3B%20c%20%3C%2010%3B%20c%2B%2B)%0A%20%20%7B%0A%09%20%20%0A%09forward(30)%3B%0A%09%0A%20%20%20%20eL%20%3D%20encoderLeft()%3B%0A%20%20%20%20eR%20%3D%20encoderRight()%3B%0A%0A%20%20%20%20printf(%22encoder%20left%3D%25d%5Cn%22%2C%20eL)%3B%0A%20%20%20%20printf(%22encoder%20right%3D%25d%5Cn%22%2C%20eR)%3B%0A%0A%20%20%20%20sleep(1)%3B%0A%20%20%7D%0A%20%20%0A%20%20stop()%3B%0A%0A%7D” message=”” highlight=”” provider=”manual”/]

 

Fin du tuto !