receiver code for wireless mouse
Dependencies: USBDevice mbed nRF24L01P
Fork of kl25Z_nRF_RX by
Receiver.cpp@3:725a4d2e9026, 2015-10-11 (annotated)
- Committer:
- Ananya020
- Date:
- Sun Oct 11 09:48:32 2015 +0000
- Revision:
- 3:725a4d2e9026
- Parent:
- 2:9f401852272c
Receiver code for wireless mouse
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
ganeshgore | 2:9f401852272c | 1 | #include "mbed.h" |
ganeshgore | 2:9f401852272c | 2 | #include "nRF24L01P.h" |
Ananya020 | 3:725a4d2e9026 | 3 | #include "USBMouse.h" |
ganeshgore | 2:9f401852272c | 4 | Serial pc(USBTX, USBRX); // tx, rx |
ganeshgore | 2:9f401852272c | 5 | |
ganeshgore | 2:9f401852272c | 6 | nRF24L01P my_nrf24l01p(PTD6, PTE3, PTE2, PTB8, PTB9, PTD0); // mosi, miso, sck, csn, ce, irq |
ganeshgore | 2:9f401852272c | 7 | DigitalOut GreenLED(LED2); |
Ananya020 | 3:725a4d2e9026 | 8 | USBMouse mouse; |
Ananya020 | 3:725a4d2e9026 | 9 | char count[3] = {'\0'}; |
ganeshgore | 2:9f401852272c | 10 | int main() { |
ganeshgore | 2:9f401852272c | 11 | |
Ananya020 | 3:725a4d2e9026 | 12 | |
ganeshgore | 2:9f401852272c | 13 | char RxDataCnt; |
ganeshgore | 2:9f401852272c | 14 | char temp; |
ganeshgore | 2:9f401852272c | 15 | |
ganeshgore | 2:9f401852272c | 16 | my_nrf24l01p.powerUp(); |
Ananya020 | 3:725a4d2e9026 | 17 | my_nrf24l01p.setRfFrequency(2510); |
ganeshgore | 2:9f401852272c | 18 | |
ganeshgore | 2:9f401852272c | 19 | // Display the (default) setup of the nRF24L01+ chip |
ganeshgore | 2:9f401852272c | 20 | pc.printf( "nRF24L01+ Frequency : %d MHz\r\n", my_nrf24l01p.getRfFrequency() ); |
ganeshgore | 2:9f401852272c | 21 | pc.printf( "nRF24L01+ Output power : %d dBm\r\n", my_nrf24l01p.getRfOutputPower() ); |
ganeshgore | 2:9f401852272c | 22 | pc.printf( "nRF24L01+ Data Rate : %d kbps\r\n", my_nrf24l01p.getAirDataRate() ); |
ganeshgore | 2:9f401852272c | 23 | pc.printf( "nRF24L01+ TX Address : 0x%010llX\r\n", my_nrf24l01p.getTxAddress() ); |
ganeshgore | 2:9f401852272c | 24 | pc.printf( "nRF24L01+ RX Address : 0x%010llX\r\n", my_nrf24l01p.getRxAddress() ); |
ganeshgore | 2:9f401852272c | 25 | |
ganeshgore | 2:9f401852272c | 26 | pc.printf( "Simple 2 Byte Receiver\r\n" ); |
ganeshgore | 2:9f401852272c | 27 | |
Ananya020 | 3:725a4d2e9026 | 28 | RxDataCnt = 3; |
ganeshgore | 2:9f401852272c | 29 | my_nrf24l01p.setTransferSize( RxDataCnt ); |
ganeshgore | 2:9f401852272c | 30 | |
ganeshgore | 2:9f401852272c | 31 | my_nrf24l01p.setReceiveMode(); |
ganeshgore | 2:9f401852272c | 32 | my_nrf24l01p.enable(); |
ganeshgore | 2:9f401852272c | 33 | |
ganeshgore | 2:9f401852272c | 34 | while (1) { |
ganeshgore | 2:9f401852272c | 35 | |
ganeshgore | 2:9f401852272c | 36 | // If we've received anything in the nRF24L01+... |
ganeshgore | 2:9f401852272c | 37 | if ( my_nrf24l01p.readable() ) { |
ganeshgore | 2:9f401852272c | 38 | |
ganeshgore | 2:9f401852272c | 39 | // ...read the data into the receive buffer |
ganeshgore | 2:9f401852272c | 40 | temp = my_nrf24l01p.read( NRF24L01P_PIPE_P0, count, RxDataCnt ); |
ganeshgore | 2:9f401852272c | 41 | |
ganeshgore | 2:9f401852272c | 42 | |
Ananya020 | 3:725a4d2e9026 | 43 | pc.printf( "%d %d %d\r\n",count[0],count[1],count[2]); |
Ananya020 | 3:725a4d2e9026 | 44 | |
Ananya020 | 3:725a4d2e9026 | 45 | int xaxis = int(count[0]); |
Ananya020 | 3:725a4d2e9026 | 46 | int yaxis = int(count[1]); |
Ananya020 | 3:725a4d2e9026 | 47 | int value = int(count[2]); |
ganeshgore | 2:9f401852272c | 48 | |
ganeshgore | 2:9f401852272c | 49 | |
ganeshgore | 2:9f401852272c | 50 | // Toggle LED2 (to help debug nRF24L01+ -> Host communication) |
Ananya020 | 3:725a4d2e9026 | 51 | if( xaxis >=0 && xaxis <=50 ) |
Ananya020 | 3:725a4d2e9026 | 52 | mouse.move(0,-3); |
Ananya020 | 3:725a4d2e9026 | 53 | |
Ananya020 | 3:725a4d2e9026 | 54 | if( xaxis >=150 && xaxis <=200 ) |
Ananya020 | 3:725a4d2e9026 | 55 | mouse.move(0,3); |
Ananya020 | 3:725a4d2e9026 | 56 | |
Ananya020 | 3:725a4d2e9026 | 57 | if( xaxis >50 && xaxis <=80 ) |
Ananya020 | 3:725a4d2e9026 | 58 | mouse.move(0,-1); |
Ananya020 | 3:725a4d2e9026 | 59 | |
Ananya020 | 3:725a4d2e9026 | 60 | if( xaxis >=120 && xaxis <150 ) |
Ananya020 | 3:725a4d2e9026 | 61 | mouse.move(0,1); |
Ananya020 | 3:725a4d2e9026 | 62 | |
Ananya020 | 3:725a4d2e9026 | 63 | |
Ananya020 | 3:725a4d2e9026 | 64 | |
Ananya020 | 3:725a4d2e9026 | 65 | if( yaxis >50 && yaxis <=80 ) |
Ananya020 | 3:725a4d2e9026 | 66 | mouse.move(1,0); |
Ananya020 | 3:725a4d2e9026 | 67 | |
Ananya020 | 3:725a4d2e9026 | 68 | if( yaxis >=120 && yaxis <150 ) |
Ananya020 | 3:725a4d2e9026 | 69 | mouse.move(-1,0); |
Ananya020 | 3:725a4d2e9026 | 70 | |
Ananya020 | 3:725a4d2e9026 | 71 | if( yaxis >=0 && yaxis <=50 ) |
Ananya020 | 3:725a4d2e9026 | 72 | mouse.move(3,0); |
Ananya020 | 3:725a4d2e9026 | 73 | |
Ananya020 | 3:725a4d2e9026 | 74 | if( yaxis >=150 && yaxis <=200 ) |
Ananya020 | 3:725a4d2e9026 | 75 | mouse.move(-3,0); |
Ananya020 | 3:725a4d2e9026 | 76 | |
Ananya020 | 3:725a4d2e9026 | 77 | if( xaxis >=0 && xaxis <=80 && yaxis >=0 && yaxis <=80 ) |
Ananya020 | 3:725a4d2e9026 | 78 | mouse.move(2,-2); |
Ananya020 | 3:725a4d2e9026 | 79 | |
Ananya020 | 3:725a4d2e9026 | 80 | if( xaxis >=120 && xaxis <=200 && yaxis >=0 && yaxis <=80 ) |
Ananya020 | 3:725a4d2e9026 | 81 | mouse.move(2,2); |
Ananya020 | 3:725a4d2e9026 | 82 | |
Ananya020 | 3:725a4d2e9026 | 83 | if( xaxis >=0 && xaxis <=80 && yaxis >=120 && yaxis <=200 ) |
Ananya020 | 3:725a4d2e9026 | 84 | mouse.move(-2,-2); |
Ananya020 | 3:725a4d2e9026 | 85 | |
Ananya020 | 3:725a4d2e9026 | 86 | if( xaxis >=120 && xaxis <=200 && yaxis >=120 && yaxis <=200) |
Ananya020 | 3:725a4d2e9026 | 87 | mouse.move(-2,2); |
Ananya020 | 3:725a4d2e9026 | 88 | |
Ananya020 | 3:725a4d2e9026 | 89 | if(value>50) |
Ananya020 | 3:725a4d2e9026 | 90 | {mouse.press(MOUSE_LEFT); |
Ananya020 | 3:725a4d2e9026 | 91 | wait(0.1); |
Ananya020 | 3:725a4d2e9026 | 92 | mouse.release(MOUSE_LEFT); |
Ananya020 | 3:725a4d2e9026 | 93 | } |
Ananya020 | 3:725a4d2e9026 | 94 | |
Ananya020 | 3:725a4d2e9026 | 95 | if(value<50 && value>0) |
Ananya020 | 3:725a4d2e9026 | 96 | {mouse.press(MOUSE_RIGHT); |
Ananya020 | 3:725a4d2e9026 | 97 | wait(0.1); |
Ananya020 | 3:725a4d2e9026 | 98 | mouse.release(MOUSE_RIGHT); |
Ananya020 | 3:725a4d2e9026 | 99 | } |
Ananya020 | 3:725a4d2e9026 | 100 | else |
Ananya020 | 3:725a4d2e9026 | 101 | mouse.move(0,0); |
ganeshgore | 2:9f401852272c | 102 | } |
ganeshgore | 2:9f401852272c | 103 | } |
ganeshgore | 2:9f401852272c | 104 | } |