.
Dependencies: ISR_Mini-explorer RF24 mbed
main.cpp@0:59b3345b2b9e, 2017-07-27 (annotated)
- Committer:
- fabiofaria
- Date:
- Thu Jul 27 13:06:04 2017 +0000
- Revision:
- 0:59b3345b2b9e
.
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
fabiofaria | 0:59b3345b2b9e | 1 | #include "mbed.h" |
fabiofaria | 0:59b3345b2b9e | 2 | #include "robot.h" // Inicializa o robô. Este include deverá ser usado em todos os main.cpp! |
fabiofaria | 0:59b3345b2b9e | 3 | //#include "nRF24L01P.h" |
fabiofaria | 0:59b3345b2b9e | 4 | #include <RF24.h> |
fabiofaria | 0:59b3345b2b9e | 5 | |
fabiofaria | 0:59b3345b2b9e | 6 | #define TRANSFER_SIZE 1 |
fabiofaria | 0:59b3345b2b9e | 7 | |
fabiofaria | 0:59b3345b2b9e | 8 | //nRF24L01P my_nrf24l01p(PTD2, PTD3, PTD1, PTC13, PTC12, PTA13); |
fabiofaria | 0:59b3345b2b9e | 9 | RF24 radio(PTD2, PTD3, PTD1, PTC12 ,PTC13); |
fabiofaria | 0:59b3345b2b9e | 10 | |
fabiofaria | 0:59b3345b2b9e | 11 | |
fabiofaria | 0:59b3345b2b9e | 12 | void config_init_nrf2() |
fabiofaria | 0:59b3345b2b9e | 13 | { |
fabiofaria | 0:59b3345b2b9e | 14 | int resultado; |
fabiofaria | 0:59b3345b2b9e | 15 | resultado = radio.begin(); |
fabiofaria | 0:59b3345b2b9e | 16 | |
fabiofaria | 0:59b3345b2b9e | 17 | pc.printf( "Begin=%d\r\n", resultado ); |
fabiofaria | 0:59b3345b2b9e | 18 | radio.setDataRate(RF24_1MBPS); |
fabiofaria | 0:59b3345b2b9e | 19 | radio.setCRCLength(RF24_CRC_8); |
fabiofaria | 0:59b3345b2b9e | 20 | radio.setPayloadSize(1); |
fabiofaria | 0:59b3345b2b9e | 21 | radio.setChannel(101); |
fabiofaria | 0:59b3345b2b9e | 22 | radio.setAutoAck(true); |
fabiofaria | 0:59b3345b2b9e | 23 | radio.printDetails(); |
fabiofaria | 0:59b3345b2b9e | 24 | |
fabiofaria | 0:59b3345b2b9e | 25 | radio.openWritingPipe(0x314e6f6465); |
fabiofaria | 0:59b3345b2b9e | 26 | radio.openReadingPipe(1,0x324e6f6465 ); |
fabiofaria | 0:59b3345b2b9e | 27 | |
fabiofaria | 0:59b3345b2b9e | 28 | radio.startListening(); |
fabiofaria | 0:59b3345b2b9e | 29 | } |
fabiofaria | 0:59b3345b2b9e | 30 | |
fabiofaria | 0:59b3345b2b9e | 31 | int main() |
fabiofaria | 0:59b3345b2b9e | 32 | { |
fabiofaria | 0:59b3345b2b9e | 33 | char txData, rxData; |
fabiofaria | 0:59b3345b2b9e | 34 | |
fabiofaria | 0:59b3345b2b9e | 35 | |
fabiofaria | 0:59b3345b2b9e | 36 | initRobot(); |
fabiofaria | 0:59b3345b2b9e | 37 | pc.baud(9600); |
fabiofaria | 0:59b3345b2b9e | 38 | config_init_nrf2(); // Should be after pc.baud() |
fabiofaria | 0:59b3345b2b9e | 39 | |
fabiofaria | 0:59b3345b2b9e | 40 | pc.printf( "Robot A\r\n" ); |
fabiofaria | 0:59b3345b2b9e | 41 | |
fabiofaria | 0:59b3345b2b9e | 42 | |
fabiofaria | 0:59b3345b2b9e | 43 | // Desliga os LEDs. |
fabiofaria | 0:59b3345b2b9e | 44 | q_led_red_fro = 1; //Led Red Front |
fabiofaria | 0:59b3345b2b9e | 45 | q_led_gre_fro = 1; //Led Green Front |
fabiofaria | 0:59b3345b2b9e | 46 | q_led_blu_fro = 1; //Led Blue Front |
fabiofaria | 0:59b3345b2b9e | 47 | q_led_red_rea = 1; //Led Red Rear |
fabiofaria | 0:59b3345b2b9e | 48 | q_led_gre_rea = 1; //Led Green Rear |
fabiofaria | 0:59b3345b2b9e | 49 | q_led_blu_rea = 1; //Led Blue Rear |
fabiofaria | 0:59b3345b2b9e | 50 | |
fabiofaria | 0:59b3345b2b9e | 51 | while (1) { |
fabiofaria | 0:59b3345b2b9e | 52 | |
fabiofaria | 0:59b3345b2b9e | 53 | // If we've received anything over the host serial link... |
fabiofaria | 0:59b3345b2b9e | 54 | if ( pc.readable() ) { |
fabiofaria | 0:59b3345b2b9e | 55 | |
fabiofaria | 0:59b3345b2b9e | 56 | // ...add it to the transmit buffer |
fabiofaria | 0:59b3345b2b9e | 57 | txData = pc.getc(); |
fabiofaria | 0:59b3345b2b9e | 58 | |
fabiofaria | 0:59b3345b2b9e | 59 | // Send the transmitbuffer via the nRF24L01+ |
fabiofaria | 0:59b3345b2b9e | 60 | //pc.printf( "Vou enviar: %c\r\n",txData); |
fabiofaria | 0:59b3345b2b9e | 61 | radio.stopListening(); |
fabiofaria | 0:59b3345b2b9e | 62 | radio.write( &txData, sizeof(txData) ); |
fabiofaria | 0:59b3345b2b9e | 63 | radio.startListening(); |
fabiofaria | 0:59b3345b2b9e | 64 | |
fabiofaria | 0:59b3345b2b9e | 65 | |
fabiofaria | 0:59b3345b2b9e | 66 | // Toggle LED1 (to help debug Host -> nRF24L01+ communication) |
fabiofaria | 0:59b3345b2b9e | 67 | q_led_red_fro = !q_led_red_fro; |
fabiofaria | 0:59b3345b2b9e | 68 | } |
fabiofaria | 0:59b3345b2b9e | 69 | |
fabiofaria | 0:59b3345b2b9e | 70 | // If we've received anything in the nRF24L01+... |
fabiofaria | 0:59b3345b2b9e | 71 | if (radio.available() ) { |
fabiofaria | 0:59b3345b2b9e | 72 | |
fabiofaria | 0:59b3345b2b9e | 73 | // ...read the data into the receive buffer |
fabiofaria | 0:59b3345b2b9e | 74 | //my_nrf24l01p.read( NRF24L01P_PIPE_P0, &rxData, sizeof( rxData ) ); |
fabiofaria | 0:59b3345b2b9e | 75 | radio.read( &rxData, sizeof(rxData) ); |
fabiofaria | 0:59b3345b2b9e | 76 | |
fabiofaria | 0:59b3345b2b9e | 77 | |
fabiofaria | 0:59b3345b2b9e | 78 | |
fabiofaria | 0:59b3345b2b9e | 79 | pc.putc( rxData ); |
fabiofaria | 0:59b3345b2b9e | 80 | |
fabiofaria | 0:59b3345b2b9e | 81 | |
fabiofaria | 0:59b3345b2b9e | 82 | // Toggle LED2 (to help debug nRF24L01+ -> Host communication) |
fabiofaria | 0:59b3345b2b9e | 83 | q_led_red_rea = !q_led_red_rea; |
fabiofaria | 0:59b3345b2b9e | 84 | } |
fabiofaria | 0:59b3345b2b9e | 85 | } |
fabiofaria | 0:59b3345b2b9e | 86 | } |