IOGS_France
/
IeTI_nRF24
Program to test nrF24 module / RF transmission
voiture_auto.cpp
- Committer:
- villemejane
- Date:
- 2021-12-14
- Revision:
- 1:b96e529849d1
File content as of revision 1:b96e529849d1:
/****************************************************************************/ /* Autonomous Vehicle / based on RC vehicle Lancia Delta */ /****************************************************************************/ /* LEnsE / Julien VILLEMEJANE / Institut d'Optique Graduate School */ /****************************************************************************/ /* Library - voiture_auto.cpp file */ /****************************************************************************/ /* Tested on Nucleo-L476RG / 4th nov 2021 */ /****************************************************************************/ #include "mbed.h" #include "voiture_auto.h" /* Entrées - Sorties */ // Chassis PwmOut direction(PB_13); // Servomoteur de direction PwmOut moteur(PC_9); // Motorisation / ESC AnalogIn pot_dir(PC_5); // Capteurs AnalogIn capt1(PC_2); AnalogIn capt2(PC_3); AnalogIn capt3(PC_0); AnalogIn capt4(PC_1); AnalogIn capt5(PB_0); AnalogIn capt6(PA_4); /* Variables globales */ int angle_roues, vitesse; char data = 'd'; float distance_c[6] = {0}; /* Initialisation de la voiture */ void initVoiture(void){ // Initialisation moteur et direction direction.period_ms(20); //période de réception du servomoteur direction.pulsewidth_us(1300); //première commande du servomoteur -> tout droit moteur.period_ms(20); //période de réception du moteur moteur.pulsewidth_us(1500); // 1500 -> point mort wait_us(2000000); } /* Test Direction */ void testDirection(void){ for(angle_roues = 1100; angle_roues < 1500; angle_roues+=10){ direction.pulsewidth_us(angle_roues); wait_us(100000); } angle_roues = 1300; direction.pulsewidth_us(angle_roues); } /* Réglage Direction */ void setDirection(void){ // TO DO } /* Test Vitesse */ void testVitesse(void){ // Marche Avant progressive for(vitesse = 1500; vitesse < 1600; vitesse+=10){ moteur.pulsewidth_us(vitesse); wait_us(100000); } wait_us(1000000); // Arrêt vitesse = 1500; moteur.pulsewidth_us(vitesse); wait_us(100000); // Marche arrière - insdispensable / voir régulateur vitesse vitesse = 1400; moteur.pulsewidth_us(vitesse); wait_us(100000); // Arrêt - insdispensable vitesse = 1500; moteur.pulsewidth_us(vitesse); wait_us(100000); // Marche arrière progressive for(vitesse = 1500; vitesse > 1400; vitesse-=10){ moteur.pulsewidth_us(vitesse); wait_us(100000); } wait_us(1000000); // Arrêt vitesse = 1500; moteur.pulsewidth_us(vitesse); } /* Récupération des données des capteurs */ void collectData(void){ distance_c[0] = capt1.read()*3.3; distance_c[1] = capt2.read()*3.3; distance_c[2] = capt3.read()*3.3; distance_c[3] = capt4.read()*3.3; distance_c[4] = capt5.read()*3.3; distance_c[5] = capt6.read()*3.3; } /* Affichage des données des capteurs */ void printData(void){ for(int i = 0; i < 6; i++){ debug_pc.printf("\tD%d = %lf\r\n", i, distance_c[i]); } debug_pc.printf("\r\n"); }