Luc Derrien / Mbed 2 deprecated L432_coach_pc

Dependencies:   mbed nRF24L01P

Committer:
lderr
Date:
Fri Apr 16 12:20:18 2021 +0000
Revision:
3:57925f75ede1
Parent:
2:e309f19062b7
code_L432_coach_pc

Who changed what in which revision?

UserRevisionLine numberNew contents of line
lderr 3:57925f75ede1 1 /*
lderr 3:57925f75ede1 2 RobotCup ENS Paris Saclay 2020-2021
lderr 3:57925f75ede1 3 Team FC Furious
lderr 3:57925f75ede1 4 Code by Luc DERRIEN
lderr 3:57925f75ede1 5
lderr 3:57925f75ede1 6 Programme communication PC-Robot
lderr 3:57925f75ede1 7 Point de vue : pc
lderr 3:57925f75ede1 8 micro controleur : L432
lderr 3:57925f75ede1 9
lderr 3:57925f75ede1 10 envoi d'une chaine de caractère de taille TRANSFER_SIZE = 20
lderr 3:57925f75ede1 11 */
lderr 3:57925f75ede1 12
Owen 0:a51a6e7da590 13 #include "mbed.h"
Owen 0:a51a6e7da590 14 #include "nRF24L01P.h"
Owen 0:a51a6e7da590 15
Owen 0:a51a6e7da590 16 Serial pc(USBTX, USBRX); // tx, rx
Owen 0:a51a6e7da590 17
Fab2A 2:e309f19062b7 18 //Définition des E/S de la liaison SPI vers le module nRF24L01+
Fab2A 2:e309f19062b7 19 nRF24L01P my_nrf24l01p(D11, D12, D13, A3, D9, A0); // mosi, miso, sck, csn, ce, irq
Owen 0:a51a6e7da590 20
Fab2A 2:e309f19062b7 21 DigitalOut myled1(D4);
Fab2A 2:e309f19062b7 22 DigitalOut myled2(D5);
Owen 0:a51a6e7da590 23
lderr 3:57925f75ede1 24 int main()
lderr 3:57925f75ede1 25 {
Owen 0:a51a6e7da590 26
Fab2A 2:e309f19062b7 27 // Nombre de caractères transmis à chaque envoi
lderr 3:57925f75ede1 28 #define TRANSFER_SIZE 20
Owen 0:a51a6e7da590 29
Owen 0:a51a6e7da590 30 char txData[TRANSFER_SIZE], rxData[TRANSFER_SIZE];
lderr 3:57925f75ede1 31 char caractere_recu=0;
Owen 0:a51a6e7da590 32 int txDataCnt = 0;
Owen 0:a51a6e7da590 33 int rxDataCnt = 0;
lderr 3:57925f75ede1 34 int id_robot, v_tangent, v_normale, omega_robot, spiner_bool, v_tir ;
lderr 3:57925f75ede1 35 int consigneData[6];
lderr 3:57925f75ede1 36
Fab2A 2:e309f19062b7 37 pc.baud(115200); // Débit de la liaison série PC
Owen 0:a51a6e7da590 38
Owen 0:a51a6e7da590 39 my_nrf24l01p.powerUp();
lderr 3:57925f75ede1 40
lderr 3:57925f75ede1 41 // paramétrage
Fab2A 2:e309f19062b7 42 my_nrf24l01p.setRfFrequency(2416); // Définition de la fréquence du canal d'E/R
Fab2A 2:e309f19062b7 43 my_nrf24l01p.setAirDataRate(NRF24L01P_DATARATE_1_MBPS); // Définition du débit de la communication RF
lderr 3:57925f75ede1 44 my_nrf24l01p.setRfOutputPower(-6);
lderr 3:57925f75ede1 45
Owen 0:a51a6e7da590 46
lderr 3:57925f75ede1 47 // Affichage de l'état de la configuration du nRF24L01+
lderr 3:57925f75ede1 48 pc.printf( "_______________________\r\nCarte coach pc :\r\n_______________________\r\n" );
Owen 0:a51a6e7da590 49 pc.printf( "nRF24L01+ Frequency : %d MHz\r\n", my_nrf24l01p.getRfFrequency() );
Owen 0:a51a6e7da590 50 pc.printf( "nRF24L01+ Output power : %d dBm\r\n", my_nrf24l01p.getRfOutputPower() );
Owen 0:a51a6e7da590 51 pc.printf( "nRF24L01+ Data Rate : %d kbps\r\n", my_nrf24l01p.getAirDataRate() );
Owen 0:a51a6e7da590 52 pc.printf( "nRF24L01+ TX Address : 0x%010llX\r\n", my_nrf24l01p.getTxAddress() );
lderr 3:57925f75ede1 53 pc.printf( "nRF24L01+ RX Address : 0x%010llX\r\n", my_nrf24l01p.getRxAddress() );
lderr 3:57925f75ede1 54
Owen 0:a51a6e7da590 55
Owen 0:a51a6e7da590 56 pc.printf( "Type keys to test transfers:\r\n (transfers are grouped into %d characters)\r\n", TRANSFER_SIZE );
Owen 0:a51a6e7da590 57
Owen 0:a51a6e7da590 58 my_nrf24l01p.setTransferSize( TRANSFER_SIZE );
Owen 0:a51a6e7da590 59 my_nrf24l01p.setReceiveMode();
Owen 0:a51a6e7da590 60 my_nrf24l01p.enable();
Owen 0:a51a6e7da590 61
Owen 0:a51a6e7da590 62 while (1) {
Owen 0:a51a6e7da590 63
Owen 0:a51a6e7da590 64 // If we've received anything over the host serial link...
Owen 0:a51a6e7da590 65 if ( pc.readable() ) {
lderr 3:57925f75ede1 66 caractere_recu= pc.getc();
lderr 3:57925f75ede1 67 if (caractere_recu == 'D') {
lderr 3:57925f75ede1 68 txDataCnt = 0;
lderr 3:57925f75ede1 69 myled2 = !myled2;
lderr 3:57925f75ede1 70 } else {
lderr 3:57925f75ede1 71 // ...add it to the transmit buffer
lderr 3:57925f75ede1 72 txData[txDataCnt++] = caractere_recu;
lderr 3:57925f75ede1 73 }
Owen 0:a51a6e7da590 74 // If the transmit buffer is full
Owen 0:a51a6e7da590 75 if ( txDataCnt >= sizeof( txData ) ) {
Owen 0:a51a6e7da590 76
Owen 0:a51a6e7da590 77 // Send the transmitbuffer via the nRF24L01+
Owen 0:a51a6e7da590 78 my_nrf24l01p.write( NRF24L01P_PIPE_P0, txData, txDataCnt );
Owen 0:a51a6e7da590 79
Owen 0:a51a6e7da590 80 txDataCnt = 0;
lderr 3:57925f75ede1 81 myled1 = !myled1;
Owen 0:a51a6e7da590 82 }
Owen 0:a51a6e7da590 83 }
Owen 0:a51a6e7da590 84 }
Owen 0:a51a6e7da590 85 }