Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: mbed-os nRF24L01P
main.cpp@14:1b41c5adf46e, 2022-10-13 (annotated)
- Committer:
- evedelegue
- Date:
- Thu Oct 13 10:39:25 2022 +0000
- Revision:
- 14:1b41c5adf46e
- Parent:
- 13:50de0cf096d1
je ne sais plus si je l'avais bien commit;
Who changed what in which revision?
User | Revision | Line number | New 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 | 12:1378fba9c916 | 24 | DigitalOut charge(D0); |
evedelegue | 12:1378fba9c916 | 25 | DigitalOut tir(D3); |
evedelegue | 12:1378fba9c916 | 26 | DigitalOut dd(D15); |
evedelegue | 12:1378fba9c916 | 27 | |
evedelegue | 12:1378fba9c916 | 28 | Thread reception_thread; |
evedelegue | 12:1378fba9c916 | 29 | Thread tir_thread; |
evedelegue | 12:1378fba9c916 | 30 | Thread dribble_thread; |
evedelegue | 9:67d737d8a349 | 31 | |
evedelegue | 12:1378fba9c916 | 32 | #define TRANSFER_SIZE 14 |
Owen | 0:a51a6e7da590 | 33 | |
evedelegue | 12:1378fba9c916 | 34 | char chaine[150]; |
evedelegue | 10:0312e23ba3a1 | 35 | char tampon; |
evedelegue | 10:0312e23ba3a1 | 36 | |
evedelegue | 10:0312e23ba3a1 | 37 | char* reception8; |
evedelegue | 12:1378fba9c916 | 38 | |
evedelegue | 12:1378fba9c916 | 39 | int16_t Vavance, Vlat,Wz,idcharge,idtir,dribble,idrobot; |
evedelegue | 12:1378fba9c916 | 40 | int i; |
evedelegue | 10:0312e23ba3a1 | 41 | int16_t reception16[TRANSFER_SIZE/2]; |
evedelegue | 12:1378fba9c916 | 42 | |
evedelegue | 12:1378fba9c916 | 43 | void reception() |
evedelegue | 12:1378fba9c916 | 44 | { |
evedelegue | 14:1b41c5adf46e | 45 | |
Owen | 0:a51a6e7da590 | 46 | my_nrf24l01p.powerUp(); |
evedelegue | 12:1378fba9c916 | 47 | my_nrf24l01p.setRfFrequency(2424); |
evedelegue | 9:67d737d8a349 | 48 | my_nrf24l01p.setAirDataRate(1000); |
Owen | 0:a51a6e7da590 | 49 | my_nrf24l01p.setTransferSize( TRANSFER_SIZE ); |
Owen | 0:a51a6e7da590 | 50 | my_nrf24l01p.setReceiveMode(); |
emerichartmann | 8:04ab02bb2262 | 51 | my_nrf24l01p.setCrcWidth(0); |
emerichartmann | 8:04ab02bb2262 | 52 | my_nrf24l01p.setRxAddress(); |
evedelegue | 12:1378fba9c916 | 53 | my_nrf24l01p.enable(); |
evedelegue | 9:67d737d8a349 | 54 | |
evedelegue | 9:67d737d8a349 | 55 | pc_serie.write("Je suis le robot de Eve", strlen("Je suis le robot de Eve")); |
evedelegue | 9:67d737d8a349 | 56 | |
evedelegue | 9:67d737d8a349 | 57 | maled2 = 1; |
evedelegue | 10:0312e23ba3a1 | 58 | MX12 servo_bus(PC_4, PC_5, 115200); |
evedelegue | 9:67d737d8a349 | 59 | |
Owen | 0:a51a6e7da590 | 60 | while (1) { |
Owen | 0:a51a6e7da590 | 61 | |
evedelegue | 9:67d737d8a349 | 62 | if (my_nrf24l01p.readable()) { |
evedelegue | 9:67d737d8a349 | 63 | maled2 = !maled2; |
evedelegue | 10:0312e23ba3a1 | 64 | my_nrf24l01p.read( NRF24L01P_PIPE_P0, reception8, TRANSFER_SIZE ); |
evedelegue | 10:0312e23ba3a1 | 65 | for (i=0 ; i<TRANSFER_SIZE;i+=2){ |
evedelegue | 10:0312e23ba3a1 | 66 | tampon = reception8[i+1]; |
evedelegue | 10:0312e23ba3a1 | 67 | reception8[i+1] = reception8 [i]; |
evedelegue | 10:0312e23ba3a1 | 68 | reception8[i]= tampon; |
evedelegue | 12:1378fba9c916 | 69 | } |
evedelegue | 12:1378fba9c916 | 70 | idrobot = reception16[6]; |
evedelegue | 14:1b41c5adf46e | 71 | if (idrobot==0){ |
evedelegue | 12:1378fba9c916 | 72 | |
evedelegue | 10:0312e23ba3a1 | 73 | Vavance = reception16[0]; |
evedelegue | 10:0312e23ba3a1 | 74 | Vlat = reception16[1]; |
evedelegue | 10:0312e23ba3a1 | 75 | Wz = reception16[2]; |
evedelegue | 12:1378fba9c916 | 76 | idcharge = reception16[3]; |
evedelegue | 12:1378fba9c916 | 77 | idtir = reception16[4]; |
evedelegue | 12:1378fba9c916 | 78 | dribble = reception16[5]; |
evedelegue | 14:1b41c5adf46e | 79 | dd=(dribble!=0); |
evedelegue | 12:1378fba9c916 | 80 | //alors là c'est juste un test mais il y a quasi aucune chance que ça marche |
evedelegue | 12:1378fba9c916 | 81 | sprintf(chaine," Vav = %d, Vlat = %d, Wz = %d, dribble= %d, idtir= %d, idcharge= %d, idrobot= %d \n\r",(int)Vavance, (int)Vlat, (int)Wz, (int)dribble, (int)idtir, (int)idcharge, (int)idrobot); |
evedelegue | 9:67d737d8a349 | 82 | pc_serie.write(chaine, strlen(chaine)); |
evedelegue | 12:1378fba9c916 | 83 | |
evedelegue | 12:1378fba9c916 | 84 | servo_bus.cmd_moteur(Vavance/1000.0, Vlat/1000.0, Wz/1000.0); |
evedelegue | 12:1378fba9c916 | 85 | //a bouger |
evedelegue | 12:1378fba9c916 | 86 | //charge=(idcharge!=0); |
evedelegue | 12:1378fba9c916 | 87 | charge=(idcharge==1); |
evedelegue | 12:1378fba9c916 | 88 | ThisThread::sleep_for(10ms); |
evedelegue | 12:1378fba9c916 | 89 | charge=0; |
evedelegue | 12:1378fba9c916 | 90 | //dd.SetSpeed(dribble); |
evedelegue | 12:1378fba9c916 | 91 | //tir=1; |
evedelegue | 12:1378fba9c916 | 92 | } |
Owen | 0:a51a6e7da590 | 93 | } |
lderr | 3:793d3386768b | 94 | |
Owen | 0:a51a6e7da590 | 95 | } |
emerichartmann | 5:42dad60edb69 | 96 | |
evedelegue | 9:67d737d8a349 | 97 | } |
evedelegue | 12:1378fba9c916 | 98 | void Dribble(){ |
evedelegue | 14:1b41c5adf46e | 99 | } |
evedelegue | 14:1b41c5adf46e | 100 | |
evedelegue | 12:1378fba9c916 | 101 | void Tir(){ |
evedelegue | 12:1378fba9c916 | 102 | while(1){ |
evedelegue | 14:1b41c5adf46e | 103 | if (idtir!=0){ |
evedelegue | 12:1378fba9c916 | 104 | tir = 1 ; |
evedelegue | 14:1b41c5adf46e | 105 | ThisThread::sleep_for(idtir); |
evedelegue | 12:1378fba9c916 | 106 | tir = 0 ; |
evedelegue | 12:1378fba9c916 | 107 | } |
evedelegue | 12:1378fba9c916 | 108 | tir=0;} |
evedelegue | 12:1378fba9c916 | 109 | } |
evedelegue | 12:1378fba9c916 | 110 | |
evedelegue | 12:1378fba9c916 | 111 | int main(){ |
evedelegue | 14:1b41c5adf46e | 112 | dd=0; |
evedelegue | 12:1378fba9c916 | 113 | reception8 = (char*) reception16; |
evedelegue | 12:1378fba9c916 | 114 | reception_thread.start(reception); |
evedelegue | 12:1378fba9c916 | 115 | dribble_thread.start(Dribble); |
evedelegue | 14:1b41c5adf46e | 116 | |
evedelegue | 12:1378fba9c916 | 117 | tir_thread.start(Tir); |
evedelegue | 12:1378fba9c916 | 118 | } |