2024-04-18 21:18:41 +00:00
// Made by Linux_Hat
2024-04-06 13:37:39 +00:00
# include <Arduino.h>
2024-04-18 21:18:41 +00:00
# include "Radio.h"
2024-04-06 13:37:39 +00:00
# include "MotorEncoder.h"
2024-04-18 21:18:41 +00:00
# include "Car.h"
2024-04-06 13:37:39 +00:00
2024-04-25 19:43:54 +00:00
# define MLEFT_ENC_PIN_A 3
2024-04-25 09:51:26 +00:00
# define MLEFT_ENC_PIN_B A4
# define MLEFT_E_MOTOR 5
# define MLEFT_M_MOTOR 4
# define MLEFT_ORIENTATION false
# define MLEFT_RATIO 120
# define MLEFT_RADIUS 3.3
# define MRIGHT_ENC_PIN_A 2
# define MRIGHT_ENC_PIN_B A4
# define MRIGHT_E_MOTOR 5
# define MRIGHT_M_MOTOR 4
# define MRIGHT_ORIENTATION false
# define MRIGHT_RATIO 120
# define MRIGHT_RADIUS 3.3
2024-04-25 19:43:54 +00:00
# define LED_ORANGE 12
2024-04-25 19:45:43 +00:00
# define SIZE 500
2024-04-25 19:43:54 +00:00
2024-04-25 09:51:26 +00:00
MotorEncoder m1 ( MLEFT_ENC_PIN_A , MLEFT_ENC_PIN_B , MLEFT_E_MOTOR , MLEFT_M_MOTOR , MLEFT_ORIENTATION , MLEFT_RATIO , MLEFT_RADIUS ) ; // Initialise motor
MotorEncoder m2 ( MRIGHT_ENC_PIN_A , MRIGHT_ENC_PIN_B , MRIGHT_E_MOTOR , MRIGHT_M_MOTOR , MRIGHT_ORIENTATION , MRIGHT_RATIO , MRIGHT_RADIUS ) ; // Initialise motor with pins
2024-04-13 15:34:11 +00:00
2024-04-25 19:43:54 +00:00
Car car ( & m1 , & m2 , 110 ) ;
float m1_duration = 0 ;
float m2_duration = 0 ;
2024-04-06 13:37:39 +00:00
void encoder_handler_m1 ( ) {
2024-04-18 21:18:41 +00:00
m1 . wheelSpeed ( ) ; // Call wheelSpeed() of the m1 MotorEncoder instance
2024-04-06 13:37:39 +00:00
}
void encoder_handler_m2 ( ) {
2024-04-18 21:18:41 +00:00
m2 . wheelSpeed ( ) ; // Call wheelSpeed() of the m2 MotorEncoder instance
2024-04-06 13:37:39 +00:00
}
2024-04-25 19:43:54 +00:00
Radio * radio ;
2024-04-18 21:18:41 +00:00
2024-04-06 13:37:39 +00:00
void setup ( ) {
2024-04-25 19:43:54 +00:00
Serial . begin ( 9600 ) ;
pinMode ( LED_ORANGE , OUTPUT ) ;
radio = new Radio ( 120 , 9 , 7 ) ;
2024-04-06 13:37:39 +00:00
m1 . EncoderHandlerInit ( encoder_handler_m1 ) ;
m2 . EncoderHandlerInit ( encoder_handler_m2 ) ;
2024-04-18 21:18:41 +00:00
Serial . println ( " Car started " ) ;
}
2024-04-06 13:37:39 +00:00
void loop ( ) {
2024-04-25 20:11:03 +00:00
Serial . println ( " Forward 50 cm " ) ;
2024-04-25 19:43:54 +00:00
car . forward ( SIZE , 50 ) ;
2024-04-25 20:11:03 +00:00
Serial . println ( " Turn on the right " ) ;
2024-04-25 09:51:26 +00:00
car . turn ( 90 , 20 ) ;
2024-04-25 19:43:54 +00:00
if ( radio - > read ( ) & & strcmp ( radio - > message , " STOP " ) = = 0 ) {
Serial . println ( " Stop car " ) ;
return ;
}
2024-04-06 13:37:39 +00:00
}