Program to test nrF24 module / RF transmission

Dependencies:   MOD24_NRF nRF24

Committer:
villemejane
Date:
Tue Dec 14 15:03:53 2021 +0000
Revision:
1:b96e529849d1
nRF24 L01 - RF communication module

Who changed what in which revision?

UserRevisionLine numberNew contents of line
villemejane 1:b96e529849d1 1 /****************************************************************************/
villemejane 1:b96e529849d1 2 /* Autonomous Vehicle / based on RC vehicle Lancia Delta */
villemejane 1:b96e529849d1 3 /****************************************************************************/
villemejane 1:b96e529849d1 4 /* LEnsE / Julien VILLEMEJANE / Institut d'Optique Graduate School */
villemejane 1:b96e529849d1 5 /****************************************************************************/
villemejane 1:b96e529849d1 6 /* Library - voiture_auto.cpp file */
villemejane 1:b96e529849d1 7 /****************************************************************************/
villemejane 1:b96e529849d1 8 /* Tested on Nucleo-L476RG / 4th nov 2021 */
villemejane 1:b96e529849d1 9 /****************************************************************************/
villemejane 1:b96e529849d1 10
villemejane 1:b96e529849d1 11 #include "mbed.h"
villemejane 1:b96e529849d1 12 #include "voiture_auto.h"
villemejane 1:b96e529849d1 13
villemejane 1:b96e529849d1 14 /* Entrées - Sorties */
villemejane 1:b96e529849d1 15 // Chassis
villemejane 1:b96e529849d1 16 PwmOut direction(PB_13); // Servomoteur de direction
villemejane 1:b96e529849d1 17 PwmOut moteur(PC_9); // Motorisation / ESC
villemejane 1:b96e529849d1 18 AnalogIn pot_dir(PC_5);
villemejane 1:b96e529849d1 19 // Capteurs
villemejane 1:b96e529849d1 20 AnalogIn capt1(PC_2);
villemejane 1:b96e529849d1 21 AnalogIn capt2(PC_3);
villemejane 1:b96e529849d1 22 AnalogIn capt3(PC_0);
villemejane 1:b96e529849d1 23 AnalogIn capt4(PC_1);
villemejane 1:b96e529849d1 24 AnalogIn capt5(PB_0);
villemejane 1:b96e529849d1 25 AnalogIn capt6(PA_4);
villemejane 1:b96e529849d1 26
villemejane 1:b96e529849d1 27 /* Variables globales */
villemejane 1:b96e529849d1 28 int angle_roues, vitesse;
villemejane 1:b96e529849d1 29 char data = 'd';
villemejane 1:b96e529849d1 30 float distance_c[6] = {0};
villemejane 1:b96e529849d1 31
villemejane 1:b96e529849d1 32 /* Initialisation de la voiture */
villemejane 1:b96e529849d1 33 void initVoiture(void){
villemejane 1:b96e529849d1 34 // Initialisation moteur et direction
villemejane 1:b96e529849d1 35 direction.period_ms(20); //période de réception du servomoteur
villemejane 1:b96e529849d1 36 direction.pulsewidth_us(1300); //première commande du servomoteur -> tout droit
villemejane 1:b96e529849d1 37 moteur.period_ms(20); //période de réception du moteur
villemejane 1:b96e529849d1 38 moteur.pulsewidth_us(1500); // 1500 -> point mort
villemejane 1:b96e529849d1 39 wait_us(2000000);
villemejane 1:b96e529849d1 40 }
villemejane 1:b96e529849d1 41
villemejane 1:b96e529849d1 42 /* Test Direction */
villemejane 1:b96e529849d1 43 void testDirection(void){
villemejane 1:b96e529849d1 44 for(angle_roues = 1100; angle_roues < 1500; angle_roues+=10){
villemejane 1:b96e529849d1 45 direction.pulsewidth_us(angle_roues);
villemejane 1:b96e529849d1 46 wait_us(100000);
villemejane 1:b96e529849d1 47 }
villemejane 1:b96e529849d1 48 angle_roues = 1300;
villemejane 1:b96e529849d1 49 direction.pulsewidth_us(angle_roues);
villemejane 1:b96e529849d1 50 }
villemejane 1:b96e529849d1 51
villemejane 1:b96e529849d1 52 /* Réglage Direction */
villemejane 1:b96e529849d1 53 void setDirection(void){
villemejane 1:b96e529849d1 54 // TO DO
villemejane 1:b96e529849d1 55 }
villemejane 1:b96e529849d1 56
villemejane 1:b96e529849d1 57 /* Test Vitesse */
villemejane 1:b96e529849d1 58 void testVitesse(void){
villemejane 1:b96e529849d1 59 // Marche Avant progressive
villemejane 1:b96e529849d1 60 for(vitesse = 1500; vitesse < 1600; vitesse+=10){
villemejane 1:b96e529849d1 61 moteur.pulsewidth_us(vitesse);
villemejane 1:b96e529849d1 62 wait_us(100000);
villemejane 1:b96e529849d1 63 }
villemejane 1:b96e529849d1 64 wait_us(1000000);
villemejane 1:b96e529849d1 65 // Arrêt
villemejane 1:b96e529849d1 66 vitesse = 1500;
villemejane 1:b96e529849d1 67 moteur.pulsewidth_us(vitesse);
villemejane 1:b96e529849d1 68 wait_us(100000);
villemejane 1:b96e529849d1 69 // Marche arrière - insdispensable / voir régulateur vitesse
villemejane 1:b96e529849d1 70 vitesse = 1400;
villemejane 1:b96e529849d1 71 moteur.pulsewidth_us(vitesse);
villemejane 1:b96e529849d1 72 wait_us(100000);
villemejane 1:b96e529849d1 73 // Arrêt - insdispensable
villemejane 1:b96e529849d1 74 vitesse = 1500;
villemejane 1:b96e529849d1 75 moteur.pulsewidth_us(vitesse);
villemejane 1:b96e529849d1 76 wait_us(100000);
villemejane 1:b96e529849d1 77 // Marche arrière progressive
villemejane 1:b96e529849d1 78 for(vitesse = 1500; vitesse > 1400; vitesse-=10){
villemejane 1:b96e529849d1 79 moteur.pulsewidth_us(vitesse);
villemejane 1:b96e529849d1 80 wait_us(100000);
villemejane 1:b96e529849d1 81 }
villemejane 1:b96e529849d1 82 wait_us(1000000);
villemejane 1:b96e529849d1 83 // Arrêt
villemejane 1:b96e529849d1 84 vitesse = 1500;
villemejane 1:b96e529849d1 85 moteur.pulsewidth_us(vitesse);
villemejane 1:b96e529849d1 86 }
villemejane 1:b96e529849d1 87
villemejane 1:b96e529849d1 88 /* Récupération des données des capteurs */
villemejane 1:b96e529849d1 89 void collectData(void){
villemejane 1:b96e529849d1 90 distance_c[0] = capt1.read()*3.3;
villemejane 1:b96e529849d1 91 distance_c[1] = capt2.read()*3.3;
villemejane 1:b96e529849d1 92 distance_c[2] = capt3.read()*3.3;
villemejane 1:b96e529849d1 93 distance_c[3] = capt4.read()*3.3;
villemejane 1:b96e529849d1 94 distance_c[4] = capt5.read()*3.3;
villemejane 1:b96e529849d1 95 distance_c[5] = capt6.read()*3.3;
villemejane 1:b96e529849d1 96 }
villemejane 1:b96e529849d1 97
villemejane 1:b96e529849d1 98 /* Affichage des données des capteurs */
villemejane 1:b96e529849d1 99 void printData(void){
villemejane 1:b96e529849d1 100 for(int i = 0; i < 6; i++){
villemejane 1:b96e529849d1 101 debug_pc.printf("\tD%d = %lf\r\n", i, distance_c[i]);
villemejane 1:b96e529849d1 102 }
villemejane 1:b96e529849d1 103 debug_pc.printf("\r\n");
villemejane 1:b96e529849d1 104 }