PSL_2021 / Mbed OS prog_robot_Eve_v1

Dependencies:   mbed-os nRF24L01P

Committer:
evedelegue
Date:
Fri Mar 11 09:50:01 2022 +0000
Revision:
11:5f2289e0d0e8
Parent:
10:0312e23ba3a1
ca marche mieux !;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
lderr 3:793d3386768b 1 /*
lderr 3:793d3386768b 2 RobotCup ENS Paris Saclay 2020-2021
lderr 3:793d3386768b 3 Team FC Furious
evedelegue 6:2be1def8ba74 4 Code by Luc DERRIEN adapted by Eve
lderr 3:793d3386768b 5
lderr 3:793d3386768b 6 Programme communication PC-Robot
lderr 3:793d3386768b 7 Point de vue : PC
lderr 3:793d3386768b 8 micro controleur : L475
lderr 3:793d3386768b 9
evedelegue 9:67d737d8a349 10 envoi d'une chaine de caractère de taille TRANSFER_SIZE
lderr 3:793d3386768b 11 */
lderr 3:793d3386768b 12
Owen 0:a51a6e7da590 13 #include "mbed.h"
lderr 3:793d3386768b 14 #include "string.h"
Owen 0:a51a6e7da590 15 #include "nRF24L01P.h"
evedelegue 9:67d737d8a349 16 #include "float.h"
evedelegue 9:67d737d8a349 17 #include "MX12.h"
evedelegue 9:67d737d8a349 18 #include "stdio.h"
lderr 3:793d3386768b 19
emerichartmann 8:04ab02bb2262 20 BufferedSerial pc_serie(USBTX,USBRX,115200);
lderr 3:793d3386768b 21
lderr 3:793d3386768b 22 nRF24L01P my_nrf24l01p(D11, D12, D13, D9, D2, D1); // mosi, miso, sck, csn, ce, irq
evedelegue 9:67d737d8a349 23 DigitalOut maled2(LED2);
evedelegue 9:67d737d8a349 24
Owen 0:a51a6e7da590 25
lderr 3:793d3386768b 26 int main()
lderr 3:793d3386768b 27 {
Owen 0:a51a6e7da590 28
evedelegue 9:67d737d8a349 29 #define TRANSFER_SIZE 12
Owen 0:a51a6e7da590 30
evedelegue 9:67d737d8a349 31 char chaine[50];
evedelegue 10:0312e23ba3a1 32 char tampon;
evedelegue 10:0312e23ba3a1 33
evedelegue 10:0312e23ba3a1 34 char* reception8;
evedelegue 10:0312e23ba3a1 35 int16_t reception16[TRANSFER_SIZE/2];
evedelegue 10:0312e23ba3a1 36 reception8 = (char*) reception16;
evedelegue 10:0312e23ba3a1 37 int16_t Vavance, Vlat,Wz;
evedelegue 9:67d737d8a349 38 int i;
Owen 0:a51a6e7da590 39 my_nrf24l01p.powerUp();
evedelegue 9:67d737d8a349 40 my_nrf24l01p.setRfFrequency(2420);
evedelegue 9:67d737d8a349 41 my_nrf24l01p.setAirDataRate(1000);
Owen 0:a51a6e7da590 42 my_nrf24l01p.setTransferSize( TRANSFER_SIZE );
Owen 0:a51a6e7da590 43 my_nrf24l01p.setReceiveMode();
emerichartmann 8:04ab02bb2262 44 my_nrf24l01p.setCrcWidth(0);
emerichartmann 8:04ab02bb2262 45 my_nrf24l01p.setRxAddress();
Owen 0:a51a6e7da590 46 my_nrf24l01p.enable();
evedelegue 10:0312e23ba3a1 47
evedelegue 9:67d737d8a349 48
evedelegue 9:67d737d8a349 49 pc_serie.write("Je suis le robot de Eve", strlen("Je suis le robot de Eve"));
evedelegue 9:67d737d8a349 50
evedelegue 9:67d737d8a349 51 maled2 = 1;
evedelegue 10:0312e23ba3a1 52 MX12 servo_bus(PC_4, PC_5, 115200);
evedelegue 9:67d737d8a349 53
Owen 0:a51a6e7da590 54 while (1) {
Owen 0:a51a6e7da590 55
Owen 0:a51a6e7da590 56
evedelegue 9:67d737d8a349 57 if (my_nrf24l01p.readable()) {
evedelegue 9:67d737d8a349 58 maled2 = !maled2;
evedelegue 10:0312e23ba3a1 59 my_nrf24l01p.read( NRF24L01P_PIPE_P0, reception8, TRANSFER_SIZE );
evedelegue 10:0312e23ba3a1 60 for (i=0 ; i<TRANSFER_SIZE;i+=2){
evedelegue 10:0312e23ba3a1 61 tampon = reception8[i+1];
evedelegue 10:0312e23ba3a1 62 reception8[i+1] = reception8 [i];
evedelegue 10:0312e23ba3a1 63 reception8[i]= tampon;
evedelegue 10:0312e23ba3a1 64 }
evedelegue 10:0312e23ba3a1 65
evedelegue 10:0312e23ba3a1 66 Vavance = reception16[0];
evedelegue 10:0312e23ba3a1 67 Vlat = reception16[1];
evedelegue 10:0312e23ba3a1 68 Wz = reception16[2];
evedelegue 9:67d737d8a349 69
evedelegue 10:0312e23ba3a1 70 sprintf(chaine," Vav = %d, Vlat = %d, Wz = %d\n\r",(int)Vavance, (int)Vlat, (int)Wz);
evedelegue 9:67d737d8a349 71 pc_serie.write(chaine, strlen(chaine));
evedelegue 10:0312e23ba3a1 72 servo_bus.cmd_moteur(Vavance/1000.0, Vlat/1000.0, Wz);
Owen 0:a51a6e7da590 73
Owen 0:a51a6e7da590 74 }
lderr 3:793d3386768b 75
Owen 0:a51a6e7da590 76 }
emerichartmann 5:42dad60edb69 77
evedelegue 9:67d737d8a349 78 }
evedelegue 9:67d737d8a349 79