CRINSA-team2025 V1
Documentation du Club Robot INSA Rennes 2025
Chargement...
Recherche...
Aucune correspondance
AX12.h
1#ifndef __AX12_H
2#define __AX12_H
3
4#include "Dynamixel.h"
5#include <Arduino.h>
6
7#define AX12_BAUDRATE 1000000
8
9// mask error bit
10#define INSTRUCTION_ERROR_MASK 0x20
11#define OVERLOAD_ERROR_MASK 0x10
12#define CHECKSUM_ERROR_MASK 0X08
13#define RANGE_ERROR_MASK 0x04
14#define ANGLE_LIMIT_ERROR_MASK 0x02
15#define INPUT_VOLTAGE_ERROR_MASK 0x01
16
17// Macros to detect error type
18#define INSTRUCTION_ERROR(x) (x & INSTRUCTION_ERROR_MASK)
19#define OVERLOAD_ERROR(x) (x & OVERLOAD_ERROR_MASK)
20#define CHECKSUM_ERROR(x) (x & CHECKSUM_ERROR_MASK)
21#define RANGE_ERROR(x) (x & RANGE_ERROR_MASK)
22#define ANGLE_LIMIT_ERROR(x) (x & ANGLE_LIMIT_ERROR_MASK)
23#define INPUT_VOLTAGE_ERROR(x) (x & INPUT_VOLTAGE_ERROR_MASK)
24
25class AX12 {
26
27 private:
28
29 unsigned char m_id;
30 bool m_endlessMode;
31 bool m_holding;
32
33 public:
34
35 static void SerialBegin(long baud, unsigned char rtx);
36 static void SerialBegin(long baud);
37 static void end();
38
39 void attach(unsigned char id);
40 void detach();
41
42 int ping();
43
44 int setID(unsigned char newID);
45 int setBD(long baud);
46
47 int move(float Position, bool waitForFinish=false);
48 int moveSpeed(float Position, float Speed, bool waitForFinish=false);
49
50 int setEndlessMode(bool Status);
51 int turn(int Speed);
52
53 int Nextmove(float Position);
54 int NextmoveSpeed(float Position, float Speed);
55
56 void static action();
57
58 int setTempLimit(unsigned char Temperature);
59 int setAngleLimit(float CWLimit, float CCWLimit);
60 int setVoltageLimit(unsigned char DVoltage, unsigned char UVoltage);
61 int setMaxTorque(int MaxTorque);
62 int setMaxTorqueRAM(int MaxTorque);
63 int setSRL(unsigned char SRL);
64 int setRDT(unsigned char RDT);
65 int setLEDAlarm(unsigned char LEDAlarm);
66 int setShutdownAlarm(unsigned char SALARM);
67 int setCMargin(unsigned char CWCMargin, unsigned char CCWCMargin);
68 int setCSlope( unsigned char CWCSlope, unsigned char CCWCSlope);
69 int setPunch(int Punch);
70
71 int moving();
72 int lockRegister();
73 int savedMove();
74
75 int readTemperature();
76 float readVoltage();
77 float readPosition();
78 float readSpeed();
79 int readTorque();
80
81 bool isHolding();
82
83 int hold(bool Status);
84 int led(bool Status);
85
86};
87#endif /* __AX12_H */
Definition AX12.h:25
float readPosition()
Renvoie la position actuelle de l'AX12.
Definition AX12.cpp:290
int turn(int Speed)
Fait tourner l'AX12 en mode Moteur à une vitesse définie.
Definition AX12.cpp:132
static void end()
Fini la comm avec le bus d'AX12.
Definition AX12.cpp:25
int savedMove()
Renvoie l'action programmée pour le prochain appel d'action.
Definition AX12.cpp:266
int readTorque()
Couple la vitesse de l'AX12.
Definition AX12.cpp:312
void detach()
Enlève la déclaration de l'AX12.
Definition AX12.cpp:40
int moving()
Regarde si l'AX12 bouge de lui même.
Definition AX12.cpp:254
int led(bool Status)
Modifie l'allumage de la LED.
Definition AX12.cpp:336
int setVoltageLimit(unsigned char DVoltage, unsigned char UVoltage)
Définie les limites de tension de l'AX12.
Definition AX12.cpp:199
int setEndlessMode(bool Status)
Met ou non le mode sans fin de l'AX12.
Definition AX12.cpp:122
int setAngleLimit(float CWLimit, float CCWLimit)
Définie les bornes de rotations.
Definition AX12.cpp:187
float readSpeed()
Renvoie la vitesse de l'AX12.
Definition AX12.cpp:299
float readVoltage()
Lis la tension de l'AX12.
Definition AX12.cpp:282
int readTemperature()
Lis la température de l'AX12.
Definition AX12.cpp:274
int setID(unsigned char newID)
Déclare une nouvelle ID à l'AX12.
Definition AX12.cpp:57
void attach(unsigned char id)
Déclare un AX12 dans le bus d'AX12.
Definition AX12.cpp:33
int setTempLimit(unsigned char Temperature)
Définie la temparture limite de l'AX12.
Definition AX12.cpp:177
int setMaxTorque(int MaxTorque)
Définie la limite MAX de couple.
Definition AX12.cpp:208
int move(float Position, bool waitForFinish=false)
Bouge l'AX12 à un position définie.
Definition AX12.cpp:76
int Nextmove(float Position)
Programme la prochaine action réalisée quand action sera appelé
Definition AX12.cpp:148
int ping()
Ping l'AX12 pour voir s'il est dans le bus.
Definition AX12.cpp:48
int setBD(long baud)
Change le baud d'un AX12 parmis le bus d'AX12.
Definition AX12.cpp:66
int setMaxTorqueRAM(int MaxTorque)
Définie dans la RAM la limite MAX de couple.
Definition AX12.cpp:218
int NextmoveSpeed(float Position, float Speed)
Programme la prochaine action réalisée quand action sera appelé
Definition AX12.cpp:159
int moveSpeed(float Position, float Speed, bool waitForFinish=false)
Bouge l'AX12 à un position & vitesse définie.
Definition AX12.cpp:100
static void action()
déclenche l'action pour tout les AX12
Definition AX12.cpp:167
static void SerialBegin(long baud, unsigned char rtx)
Ouvre le port serial défini par le param rtx du bus d'AX12.
Definition AX12.cpp:10
Structure de position.
Definition Odometry.h:14