wireless receiver

Dependencies:   USBDevice mbed nRF24L01P

Fork of NRF_Wireless_mouse by Ananya Iyer

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?

UserRevisionLine numberNew 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 }