wireless educational game for use with Python3 code
main.cpp@0:782928220968, 2015-07-09 (annotated)
- Committer:
- caeng
- Date:
- Thu Jul 09 00:32:26 2015 +0000
- Revision:
- 0:782928220968
LACC quasar wireless game
Who changed what in which revision?
| User | Revision | Line number | New contents of line |
|---|---|---|---|
| caeng | 0:782928220968 | 1 | #include "mbed.h" |
| caeng | 0:782928220968 | 2 | #include "nRF24L01P.h" |
| caeng | 0:782928220968 | 3 | |
| caeng | 0:782928220968 | 4 | Serial pc(USBTX, USBRX); // tx, rx |
| caeng | 0:782928220968 | 5 | nRF24L01P my_nrf24l01p(p5, p6, p7, p8, p9, p10); // mosi, miso, sck, csn, ce, irq |
| caeng | 0:782928220968 | 6 | |
| caeng | 0:782928220968 | 7 | DigitalOut led1(LED1); |
| caeng | 0:782928220968 | 8 | DigitalOut led2(LED2); |
| caeng | 0:782928220968 | 9 | DigitalOut led3(LED3); |
| caeng | 0:782928220968 | 10 | DigitalOut led4(LED4); |
| caeng | 0:782928220968 | 11 | |
| caeng | 0:782928220968 | 12 | int main() { |
| caeng | 0:782928220968 | 13 | |
| caeng | 0:782928220968 | 14 | // set up PC comm. |
| caeng | 0:782928220968 | 15 | pc.baud(115200); |
| caeng | 0:782928220968 | 16 | |
| caeng | 0:782928220968 | 17 | // set up wireless transfer size |
| caeng | 0:782928220968 | 18 | #define TRANSFER_SIZE 3 |
| caeng | 0:782928220968 | 19 | |
| caeng | 0:782928220968 | 20 | char rxData[TRANSFER_SIZE]; |
| caeng | 0:782928220968 | 21 | int rxDataCnt = 0; |
| caeng | 0:782928220968 | 22 | |
| caeng | 0:782928220968 | 23 | // initialize wireless comm. |
| caeng | 0:782928220968 | 24 | my_nrf24l01p.powerUp(); |
| caeng | 0:782928220968 | 25 | my_nrf24l01p.setTransferSize( TRANSFER_SIZE ); |
| caeng | 0:782928220968 | 26 | my_nrf24l01p.setReceiveMode(); |
| caeng | 0:782928220968 | 27 | my_nrf24l01p.enable(); |
| caeng | 0:782928220968 | 28 | my_nrf24l01p.setAirDataRate(2000); |
| caeng | 0:782928220968 | 29 | // set wireless RX |
| caeng | 0:782928220968 | 30 | my_nrf24l01p.setRxAddress(0xABCDABCDABCDABCD); |
| caeng | 0:782928220968 | 31 | |
| caeng | 0:782928220968 | 32 | // Display the (default) setup of the nRF24L01+ chip |
| caeng | 0:782928220968 | 33 | pc.printf( "nRF24L01+ Frequency : %d MHz\r\n", my_nrf24l01p.getRfFrequency() ); |
| caeng | 0:782928220968 | 34 | pc.printf( "nRF24L01+ Output power : %d dBm\r\n", my_nrf24l01p.getRfOutputPower() ); |
| caeng | 0:782928220968 | 35 | pc.printf( "nRF24L01+ Data Rate : %d kbps\r\n", my_nrf24l01p.getAirDataRate() ); |
| caeng | 0:782928220968 | 36 | pc.printf( "nRF24L01+ TX Address : 0x%010llX\r\n", my_nrf24l01p.getTxAddress() ); |
| caeng | 0:782928220968 | 37 | pc.printf( "nRF24L01+ RX Address : 0x%010llX\r\n", my_nrf24l01p.getRxAddress() ); |
| caeng | 0:782928220968 | 38 | |
| caeng | 0:782928220968 | 39 | while (1) { |
| caeng | 0:782928220968 | 40 | led1 = 1; |
| caeng | 0:782928220968 | 41 | |
| caeng | 0:782928220968 | 42 | // If we've received anything in the nRF24L01+... |
| caeng | 0:782928220968 | 43 | if ( my_nrf24l01p.readable() ) { |
| caeng | 0:782928220968 | 44 | |
| caeng | 0:782928220968 | 45 | // ...read the data into the receive buffer |
| caeng | 0:782928220968 | 46 | rxDataCnt = my_nrf24l01p.read( NRF24L01P_PIPE_P0, rxData, sizeof( rxData ) ); |
| caeng | 0:782928220968 | 47 | |
| caeng | 0:782928220968 | 48 | // Display the receive buffer contents via the host serial link |
| caeng | 0:782928220968 | 49 | for ( int i = 0; rxDataCnt > 0; rxDataCnt--, i++ ) { |
| caeng | 0:782928220968 | 50 | pc.printf( "%d,", rxData[i] ); |
| caeng | 0:782928220968 | 51 | } |
| caeng | 0:782928220968 | 52 | pc.printf("\n\r"); |
| caeng | 0:782928220968 | 53 | |
| caeng | 0:782928220968 | 54 | // Toggle LED2 (to help debug nRF24L01+ -> Host communication) |
| caeng | 0:782928220968 | 55 | led2 = !led2; |
| caeng | 0:782928220968 | 56 | } |
| caeng | 0:782928220968 | 57 | } |
| caeng | 0:782928220968 | 58 | } |