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: robot_lorenzo mbed-os nRF24L01P dribble
main.cpp@13:2620b6bb3e46, 2022-06-02 (annotated)
- Committer:
- lorenzodunau
- Date:
- Thu Jun 02 15:44:40 2022 +0000
- Revision:
- 13:2620b6bb3e46
- Parent:
- 9:ab2b0ec489df
lol
Who changed what in which revision?
| User | Revision | Line number | New contents of line |
|---|---|---|---|
| Owen | 0:a51a6e7da590 | 1 | #include "mbed.h" |
| lderr | 3:793d3386768b | 2 | #include "string.h" |
| Owen | 0:a51a6e7da590 | 3 | #include "nRF24L01P.h" |
| ajuton | 4:4fae82a1be60 | 4 | #include "string.h" |
| emerichartmann | 9:ab2b0ec489df | 5 | #include "MX12.h" |
| lorenzodunau | 13:2620b6bb3e46 | 6 | #include "DRIBBLE.h" |
| lorenzodunau | 13:2620b6bb3e46 | 7 | |
| lorenzodunau | 13:2620b6bb3e46 | 8 | DigitalOut charge (D0); |
| lorenzodunau | 13:2620b6bb3e46 | 9 | DigitalOut kick (D3); |
| lorenzodunau | 13:2620b6bb3e46 | 10 | DigitalOut myled(LED2); |
| lorenzodunau | 13:2620b6bb3e46 | 11 | Thread thread; |
| lorenzodunau | 13:2620b6bb3e46 | 12 | Thread thread2; |
| lorenzodunau | 13:2620b6bb3e46 | 13 | dribbleur d(D15); |
| lorenzodunau | 13:2620b6bb3e46 | 14 | BufferedSerial pc_serie(USBTX,USBRX,115200); |
| lorenzodunau | 13:2620b6bb3e46 | 15 | MX12 bus(PC_4,PC_5,115200); |
| lorenzodunau | 13:2620b6bb3e46 | 16 | nRF24L01P my_nrf24l01p(D11, D12, D13, D9, D2, D1); // mosi, miso, sck, csn, ce, irq |
| lorenzodunau | 13:2620b6bb3e46 | 17 | int8_t instructionDribble=0; |
| lorenzodunau | 13:2620b6bb3e46 | 18 | int instructionPowerOff; |
| lorenzodunau | 13:2620b6bb3e46 | 19 | int instructionTir = 0; |
| lorenzodunau | 13:2620b6bb3e46 | 20 | |
| lorenzodunau | 13:2620b6bb3e46 | 21 | void dribbleOn() |
| lorenzodunau | 13:2620b6bb3e46 | 22 | { |
| lorenzodunau | 13:2620b6bb3e46 | 23 | int instructionDribble_old = 0; |
| lorenzodunau | 13:2620b6bb3e46 | 24 | int i; |
| lorenzodunau | 13:2620b6bb3e46 | 25 | while(1) { |
| lorenzodunau | 13:2620b6bb3e46 | 26 | if((instructionDribble == 1) && (instructionDribble_old ==0)) { |
| lorenzodunau | 13:2620b6bb3e46 | 27 | for (i=10; i<=40; i=i+1) { |
| lorenzodunau | 13:2620b6bb3e46 | 28 | d.SetSpeed(i); |
| lorenzodunau | 13:2620b6bb3e46 | 29 | thread_sleep_for(100); |
| lorenzodunau | 13:2620b6bb3e46 | 30 | } |
| lorenzodunau | 13:2620b6bb3e46 | 31 | } |
| lorenzodunau | 13:2620b6bb3e46 | 32 | if(instructionDribble == 0) { |
| lorenzodunau | 13:2620b6bb3e46 | 33 | d.SetSpeed(0); |
| lorenzodunau | 13:2620b6bb3e46 | 34 | } |
| lorenzodunau | 13:2620b6bb3e46 | 35 | |
| lorenzodunau | 13:2620b6bb3e46 | 36 | instructionDribble_old = instructionDribble; |
| lorenzodunau | 13:2620b6bb3e46 | 37 | thread_sleep_for(10); |
| lorenzodunau | 13:2620b6bb3e46 | 38 | } |
| lorenzodunau | 13:2620b6bb3e46 | 39 | } |
| Owen | 0:a51a6e7da590 | 40 | |
| lderr | 3:793d3386768b | 41 | |
| Owen | 0:a51a6e7da590 | 42 | |
| lderr | 3:793d3386768b | 43 | int main() |
| lderr | 3:793d3386768b | 44 | { |
| lorenzodunau | 13:2620b6bb3e46 | 45 | myled = 1 ; |
| Owen | 0:a51a6e7da590 | 46 | |
| lorenzodunau | 13:2620b6bb3e46 | 47 | #define TRANSFER_SIZE 12 |
| lorenzodunau | 13:2620b6bb3e46 | 48 | |
| lorenzodunau | 13:2620b6bb3e46 | 49 | int16_t Vavance_mm_s; |
| lorenzodunau | 13:2620b6bb3e46 | 50 | int16_t Vlat_mm_s; |
| lorenzodunau | 13:2620b6bb3e46 | 51 | int16_t Vrot_mrad_s; |
| Owen | 0:a51a6e7da590 | 52 | |
| lorenzodunau | 13:2620b6bb3e46 | 53 | char tab[TRANSFER_SIZE]; |
| lorenzodunau | 13:2620b6bb3e46 | 54 | int i; |
| lorenzodunau | 13:2620b6bb3e46 | 55 | char text[50]; |
| lorenzodunau | 13:2620b6bb3e46 | 56 | |
| Owen | 0:a51a6e7da590 | 57 | my_nrf24l01p.powerUp(); |
| lorenzodunau | 13:2620b6bb3e46 | 58 | my_nrf24l01p.setRfFrequency(2422); |
| lorenzodunau | 13:2620b6bb3e46 | 59 | my_nrf24l01p.setAirDataRate(1000); |
| Owen | 0:a51a6e7da590 | 60 | my_nrf24l01p.setTransferSize( TRANSFER_SIZE ); |
| Owen | 0:a51a6e7da590 | 61 | my_nrf24l01p.setReceiveMode(); |
| emerichartmann | 8:04ab02bb2262 | 62 | my_nrf24l01p.setCrcWidth(0); |
| emerichartmann | 8:04ab02bb2262 | 63 | my_nrf24l01p.setRxAddress(); |
| Owen | 0:a51a6e7da590 | 64 | my_nrf24l01p.enable(); |
| Owen | 0:a51a6e7da590 | 65 | while (1) { |
| lorenzodunau | 13:2620b6bb3e46 | 66 | if (my_nrf24l01p.readable()) { |
| lorenzodunau | 13:2620b6bb3e46 | 67 | myled = !myled; |
| lorenzodunau | 13:2620b6bb3e46 | 68 | my_nrf24l01p.read( NRF24L01P_PIPE_P0, tab, TRANSFER_SIZE ); |
| Owen | 0:a51a6e7da590 | 69 | |
| lorenzodunau | 13:2620b6bb3e46 | 70 | // |
| lorenzodunau | 13:2620b6bb3e46 | 71 | //sprintf(text, "trame_recue :"); |
| lorenzodunau | 13:2620b6bb3e46 | 72 | //pc_serie.write(text,strlen(text)); |
| lorenzodunau | 13:2620b6bb3e46 | 73 | //for(i=0;i<TRANSFER_SIZE;i++) |
| lorenzodunau | 13:2620b6bb3e46 | 74 | //{ |
| lorenzodunau | 13:2620b6bb3e46 | 75 | // sprintf(text, "%x ",tab[i]); |
| lorenzodunau | 13:2620b6bb3e46 | 76 | // pc_serie.write(text,strlen(text)); |
| lorenzodunau | 13:2620b6bb3e46 | 77 | //} |
| lorenzodunau | 13:2620b6bb3e46 | 78 | thread.start(dribbleOn); |
| lorenzodunau | 13:2620b6bb3e46 | 79 | Vavance_mm_s = ((uint16_t)tab[0] << 8) + tab[1]; |
| lorenzodunau | 13:2620b6bb3e46 | 80 | Vlat_mm_s = ((uint16_t)tab[2] << 8) + tab[3]; |
| lorenzodunau | 13:2620b6bb3e46 | 81 | Vrot_mrad_s = ((uint16_t)tab[4] << 8) + tab[5]; |
| lorenzodunau | 13:2620b6bb3e46 | 82 | instructionDribble = tab[6]; |
| lorenzodunau | 13:2620b6bb3e46 | 83 | instructionPowerOff = tab[7]; |
| lorenzodunau | 13:2620b6bb3e46 | 84 | instructionTir = tab[8]; |
| lorenzodunau | 13:2620b6bb3e46 | 85 | if (instructionPowerOff == 12) { |
| lorenzodunau | 13:2620b6bb3e46 | 86 | bus.eteindre_moteurs(); |
| lorenzodunau | 13:2620b6bb3e46 | 87 | } else { |
| lorenzodunau | 13:2620b6bb3e46 | 88 | bus.cmd_moteur(-Vavance_mm_s/1000.0,-Vlat_mm_s/1000.0,-Vrot_mrad_s/1000.0); |
| lorenzodunau | 13:2620b6bb3e46 | 89 | } |
| lorenzodunau | 13:2620b6bb3e46 | 90 | if (instructionTir == 1) { |
| lorenzodunau | 13:2620b6bb3e46 | 91 | charge = 1; |
| lorenzodunau | 13:2620b6bb3e46 | 92 | thread_sleep_for(40); |
| lorenzodunau | 13:2620b6bb3e46 | 93 | charge = 0; |
| lorenzodunau | 13:2620b6bb3e46 | 94 | } else if (instructionTir == 2){ |
| lorenzodunau | 13:2620b6bb3e46 | 95 | kick = 1; |
| lorenzodunau | 13:2620b6bb3e46 | 96 | thread_sleep_for(10); |
| lorenzodunau | 13:2620b6bb3e46 | 97 | kick = 0; |
| lorenzodunau | 13:2620b6bb3e46 | 98 | } |
| lorenzodunau | 13:2620b6bb3e46 | 99 | |
| Owen | 0:a51a6e7da590 | 100 | |
| Owen | 0:a51a6e7da590 | 101 | } |
| lderr | 3:793d3386768b | 102 | |
| lorenzodunau | 13:2620b6bb3e46 | 103 | } |
| lorenzodunau | 13:2620b6bb3e46 | 104 | |
| emerichartmann | 9:ab2b0ec489df | 105 | } |