Program to test nrF24 module / RF transmission

Dependencies:   MOD24_NRF nRF24

Revision:
1:b96e529849d1
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/voiture_auto.cpp	Tue Dec 14 15:03:53 2021 +0000
@@ -0,0 +1,104 @@
+/****************************************************************************/
+/*  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");
+}
\ No newline at end of file