for jorge
Dependencies: MMA8451Q mbed nRF24L01P
Fork of nRF24L01P_Hello_World by
Revision 2:020a3715aac4, committed 2017-03-14
- Comitter:
- supershiu
- Date:
- Tue Mar 14 19:36:33 2017 +0000
- Parent:
- 1:5be2682710c6
- Commit message:
- for jorge
Changed in this revision
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/MMA8451Q.lib Tue Mar 14 19:36:33 2017 +0000 @@ -0,0 +1,1 @@ +http://mbed.org/users/emilmont/code/MMA8451Q/#c4d879a39775
--- a/main.cpp Wed Jan 19 23:53:19 2011 +0000
+++ b/main.cpp Tue Mar 14 19:36:33 2017 +0000
@@ -1,75 +1,365 @@
#include "mbed.h"
+#include "MMA8451Q.h"
#include "nRF24L01P.h"
-
-Serial pc(USBTX, USBRX); // tx, rx
-
-nRF24L01P my_nrf24l01p(p5, p6, p7, p8, p9, p10); // mosi, miso, sck, csn, ce, irq
+#include <string>
-DigitalOut myled1(LED1);
-DigitalOut myled2(LED2);
-
-int main() {
+#define MMA8451_I2C_ADDRESS (0x1d<<1)
+#define TRANSFER_SIZE 1
-// The nRF24L01+ supports transfers from 1 to 32 bytes, but Sparkfun's
-// "Nordic Serial Interface Board" (http://www.sparkfun.com/products/9019)
-// only handles 4 byte transfers in the ATMega code.
-#define TRANSFER_SIZE 4
+nRF24L01P my_nrf24l01p(PTD2, PTD3, PTC5, PTA4, PTC8, PTA12); // mosi, miso, sck, csn, ce, irq
+DigitalOut tx(PTD5);
+DigitalOut rx(PTA13);
+DigitalIn press(PTB0);
+
- char txData[TRANSFER_SIZE], rxData[TRANSFER_SIZE];
- int txDataCnt = 0;
- int rxDataCnt = 0;
-
- my_nrf24l01p.powerUp();
+int funcx(float y); //Function to dtermine angle
+string funcp(int, char);
+string funcp(int p, char c);
+Serial pc(USBTX, USBRX);
- // Display the (default) setup of the nRF24L01+ chip
- pc.printf( "nRF24L01+ Frequency : %d MHz\r\n", my_nrf24l01p.getRfFrequency() );
- pc.printf( "nRF24L01+ Output power : %d dBm\r\n", my_nrf24l01p.getRfOutputPower() );
- pc.printf( "nRF24L01+ Data Rate : %d kbps\r\n", my_nrf24l01p.getAirDataRate() );
- pc.printf( "nRF24L01+ TX Address : 0x%010llX\r\n", my_nrf24l01p.getTxAddress() );
- pc.printf( "nRF24L01+ RX Address : 0x%010llX\r\n", my_nrf24l01p.getRxAddress() );
+float Y;
+int x;
+string z;
+float p;
+
- pc.printf( "Type keys to test transfers:\r\n (transfers are grouped into %d characters)\r\n", TRANSFER_SIZE );
-
+int main(){
+ MMA8451Q acc(PTE25, PTE24, MMA8451_I2C_ADDRESS);
+ char rxData[TRANSFER_SIZE];
+ int rxDataCnt = 0;
+ my_nrf24l01p.powerUp();
my_nrf24l01p.setTransferSize( TRANSFER_SIZE );
-
my_nrf24l01p.setReceiveMode();
my_nrf24l01p.enable();
-
- while (1) {
-
- // If we've received anything over the host serial link...
- if ( pc.readable() ) {
-
- // ...add it to the transmit buffer
- txData[txDataCnt++] = pc.getc();
+ pc.printf("receiver\n");
- // If the transmit buffer is full
- if ( txDataCnt >= sizeof( txData ) ) {
+
+ while (1){
+ p = press.read();
+ Y = abs(acc.getAccY()); //Get gyroscope readings
+ x =funcx(Y); //Call function to determine angle based on gyroscoe readings
+
+ if (p && my_nrf24l01p.readable()){//transmitter not sending signal when open string.
+ //if (my_nrf24l01p.readable()){
+ rxDataCnt = my_nrf24l01p.read( NRF24L01P_PIPE_P0, rxData, sizeof( rxData ) );
+ for ( int i = 0; rxDataCnt > 0; rxDataCnt--, i++ ){
+ //pc.putc( rxData[i] );
+ z = funcp(x, rxData[i]);
+ pc.printf("%s\n", z);
+ }
+ rx = !rx;
+ }
+
+ //z=funcp(x,rxData[i]); what is this?????????????????????????????????????????????????????????????????????
+
+ }
+}
- // Send the transmitbuffer via the nRF24L01+
- my_nrf24l01p.write( NRF24L01P_PIPE_P0, txData, txDataCnt );
-
- txDataCnt = 0;
- }
+//Function used to determine the angle for note
+int funcx(float y){
+ int a;
+ if (y < 0.25000)
+ {
+ a=1;
+ }
+else if (y > 0.25001 && y < 0.5000)
+ {
+ a=2;
+ }
+else if (y > 0.50001 && y < 0.7500)
+ {
+ a=3;
+ }
+else
+ {
+ a=4;
+ }
+ //pc.printf("%i ",a);
+ return a;
+}
- // Toggle LED1 (to help debug Host -> nRF24L01+ communication)
- myled1 = !myled1;
+//Final function used to dtermine what string to send to the phone//
+string funcp(int p, char c){
+ string str; // Final string output
+
+ if(p == 1)
+ {
+ if(c == 'r')
+ {
+ str = "G string D flat";
+ //return str;
+ }
+ if(c == 'e')
+ {
+ str = "G string C flat";
+ //return str;
+ }
+ if(c == 'w')
+ {
+ str = "G string B flat";
+ //return str;
+ }
+ if(c == 'q')
+ {
+ str = "G string A flat";
+ //return str;
+ }
+ if(c == 'f')
+ {
+ str = "G string D";
+ //return str;
+ }
+ if(c == 'd')
+ {
+ str = "G string C";
+ //return str;
+ }
+ if(c == 's')
+ {
+ str = "G string B";
+ //return str;
+ }
+ if(c == 'a')
+ {
+ str = "G string A";
+ //return str;
+ }
+ if(c == 'v')
+ {
+ str = "G string D sharp";
+ //return str;
+ }
+ if(c == 'c')
+ {
+ str = "G string C sharp";
+ //return str;
+ }
+ if(c == 'x')
+ {
+ str = "G string B sharp";
+ //return str;
+ }
+ if(c == 'z')
+ {
+ str = "G string A sharp";
+ //return str;
+ }
+ if(c == '0')
+ {
+ str = "Open G string";
+ return str;
+ }
+
+ }
+ if(p == 2)
+ {
+ str = "Open D";
+ if(c == 'r')
+ {
+ str = "D string A flat";
+ //return str;
+ }
+ if(c == 'e')
+ {
+ str = "D string G flat";
+ //return str;
+ }
+ if(c == 'w')
+ {
+ str = "D string F flat";
+ //return str;
+ }
+ if(c == 'q')
+ {
+ str = "D string E flat";
+ //return str;
+ }
+ if(c == 'f')
+ {
+ str = "D string A";
+ //return str;
}
-
- // If we've received anything in the nRF24L01+...
- if ( my_nrf24l01p.readable() ) {
-
- // ...read the data into the receive buffer
- rxDataCnt = my_nrf24l01p.read( NRF24L01P_PIPE_P0, rxData, sizeof( rxData ) );
-
- // Display the receive buffer contents via the host serial link
- for ( int i = 0; rxDataCnt > 0; rxDataCnt--, i++ ) {
-
- pc.putc( rxData[i] );
- }
-
- // Toggle LED2 (to help debug nRF24L01+ -> Host communication)
- myled2 = !myled2;
+ if(c == 'd')
+ {
+ str = "D string G";
+ //return str;
+ }
+ if(c == 's')
+ {
+ str = "D string F";
+ //return str;
+ }
+ if(c == 'a')
+ {
+ str = "D string E";
+ //return str;
+ }
+ if(c == 'v')
+ {
+ str = "D string A sharp";
+ //return str;
+ }
+ if(c == 'c')
+ {
+ str = "D string G sharp";
+ //return str;
+ }
+ if(c == 'x')
+ {
+ str = "D string F sharp";
+ //return str;
+ }
+ if(c == 'z')
+ {
+ str = "D string E sharp";
+ //return str;
+ }
+ if(c == '0')
+ {
+ str = "Open D string";
+ return str;
+ }
+ }
+ if(p == 3)
+ {
+ str = "Open A";
+ if(c == 'r')
+ {
+ str = "A string E flat";
+ //return str;
+ }
+ if(c == 'e')
+ {
+ str = "A string D flat";
+ //return str;
+ }
+ if(c == 'w')
+ {
+ str = "A string C flat";
+ //return str;
+ }
+ if(c == 'q')
+ {
+ str = "A string B flat";
+ //return str;
+ }
+ if(c == 'f')
+ {
+ str = "A string E";
+ //return str;
+ }
+ if(c == 'd')
+ {
+ str = "A string D";
+ //return str;
+ }
+ if(c == 's')
+ {
+ str = "A string C";
+ //return str;
+ }
+ if(c == 'a')
+ {
+ str = "A string B";
+ //return str;
+ }
+ if(c == 'v')
+ {
+ str = "A string E sharp";
+ //return str;
+ }
+ if(c == 'c')
+ {
+ str = "A string D sharp";
+ //return str;
+ }
+ if(c == 'x')
+ {
+ str = "A string C sharp";
+ //return str;
+ }
+ if(c == 'z')
+ {
+ str = "A string B sharp";
+ //return str;
+ }
+ if(c == '0')
+ {
+ str = "Open A string";
+ return str;
}
}
-}
+ if(p == 4)
+ {
+ str = "Open E";
+ if(c == 'r')
+ {
+ str = "E string B flat";
+ //return str;
+ }
+ if(c == 'e')
+ {
+ str = "E string A flat";
+ //return str;
+ }
+ if(c == 'w')
+ {
+ str = "E string G flat";
+ //return str;
+ }
+ if(c == 'q')
+ {
+ str = "E string F flat";
+ //return str;
+ }
+ if(c == 'f')
+ {
+ str = "E string B";
+ //return str;
+ }
+ if(c == 'd')
+ {
+ str = "E string A";
+ //return str;
+ }
+ if(c == 's')
+ {
+ str = "E string G";
+ //return str;
+ }
+ if(c == 'a')
+ {
+ str = "E string F";
+ //return str;
+ }
+ if(c == 'v')
+ {
+ str = "E string B sharp";
+ //return str;
+ }
+ if(c == 'c')
+ {
+ str = "E string A sharp";
+ //return str;
+ }
+ if(c == 'x')
+ {
+ str = "E string G sharp";
+ //return str;
+ }
+ if(c == 'z')
+ {
+ str = "E string F sharp";
+ //return str;
+ }
+ if(c == '0')
+ {
+ str = "Open E string";
+ return str;
+ }
+ }
+
+
+
+ return str;
+}
\ No newline at end of file
--- a/mbed.bld Wed Jan 19 23:53:19 2011 +0000 +++ b/mbed.bld Tue Mar 14 19:36:33 2017 +0000 @@ -1,1 +1,1 @@ -http://mbed.org/users/mbed_official/code/mbed/builds/e2ac27c8e93e +http://mbed.org/users/mbed_official/code/mbed/builds/e1686b8d5b90 \ No newline at end of file
