Sender Mbed program for "Magician Mobile Robot Arm"

Dependencies:   mbed nRF24L01P

Files at this revision

API Documentation at this revision

Comitter:
bedlou
Date:
Tue Oct 21 16:56:07 2014 +0000
Commit message:
Sender Mbed program for "Magician Mobile Robot Arm"

Changed in this revision

mbed.bld Show annotated file Show diff for this revision Revisions of this file
nRF24L01P.lib Show annotated file Show diff for this revision Revisions of this file
p4Send.cpp Show annotated file Show diff for this revision Revisions of this file
diff -r 000000000000 -r aa99105568b0 mbed.bld
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mbed.bld	Tue Oct 21 16:56:07 2014 +0000
@@ -0,0 +1,1 @@
+http://mbed.org/users/mbed_official/code/mbed/builds/552587b429a1
\ No newline at end of file
diff -r 000000000000 -r aa99105568b0 nRF24L01P.lib
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/nRF24L01P.lib	Tue Oct 21 16:56:07 2014 +0000
@@ -0,0 +1,1 @@
+http://mbed.org/users/Owen/code/nRF24L01P/#8ae48233b4e4
diff -r 000000000000 -r aa99105568b0 p4Send.cpp
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/p4Send.cpp	Tue Oct 21 16:56:07 2014 +0000
@@ -0,0 +1,103 @@
+#include "mbed.h"
+#include "nRF24L01P.h"
+ 
+Serial pc(USBTX, USBRX); // tx, rx
+ 
+nRF24L01P NRFT(p5, p6, p7, p8, p9, p10);    // mosi, miso, sck, csn, ce, irq
+
+AnalogIn Vert(p19);
+AnalogIn Horz(p20);
+AnalogIn Lslide(p16);
+AnalogIn Rslide(p15);
+
+PwmOut led1(LED1);
+PwmOut led2(LED2);
+PwmOut led3(LED3);
+PwmOut led4(LED4);
+ 
+int main() {
+ 
+// 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   17
+ 
+    char txData[TRANSFER_SIZE];
+    //int txDataCnt = 0;
+ 
+    NRFT.powerUp();
+ 
+    // Display the (default) setup of the nRF24L01+ chip
+    pc.printf( "nRF24L01+ Frequency    : %d MHz\r\n",  NRFT.getRfFrequency() );
+    pc.printf( "nRF24L01+ Output power : %d dBm\r\n",  NRFT.getRfOutputPower() );
+    pc.printf( "nRF24L01+ Data Rate    : %d kbps\r\n", NRFT.getAirDataRate() );
+    pc.printf( "nRF24L01+ TX Address   : 0x%010llX\r\n", NRFT.getTxAddress() );
+    pc.printf( "nRF24L01+ RX Address   : 0x%010llX\r\n", NRFT.getRxAddress() );
+ 
+    pc.printf( "Type keys to test transfers:\r\n  (transfers are grouped into %d characters)\r\n", TRANSFER_SIZE );
+ 
+    NRFT.setTransferSize( TRANSFER_SIZE );
+ 
+    NRFT.setTransmitMode();
+    NRFT.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();
+ 
+            // If the transmit buffer is full
+            if ( txDataCnt >= sizeof( txData ) ) {
+ 
+                // Send the transmitbuffer via the nRF24L01+
+                NRFT.write( NRF24L01P_PIPE_P0, txData, txDataCnt );
+ 
+                txDataCnt = 0;
+            }
+ 
+            // Toggle LED1 (to help debug Host -> nRF24L01+ communication)
+            myled1 = !myled1;
+        }*/
+        int LSL,RSL,VER,HOR;
+        
+        while(1)
+        {
+        //wait(0.1);
+        
+            LSL = float(Lslide)*1000;
+            txData[0] = LSL & 255;
+            txData[1] = (LSL >> 8) & 255;
+            txData[2] = (LSL >> 16) & 255;
+            txData[3] = (LSL >> 24) & 255;
+            led1 = Lslide;
+            
+            VER = float(Vert)*1000;
+            txData[4] = VER & 255;
+            txData[5] = (VER >> 8) & 255;
+            txData[6] = (VER >> 16) & 255;
+            txData[7] = (VER >> 24) & 255;
+            led2 = Vert;
+            
+            HOR = float(Horz)*1000;
+            txData[8] = HOR & 255;
+            txData[9] = (HOR >> 8) & 255;
+            txData[10] = (HOR >> 16) & 255;
+            txData[11] = (HOR >> 24) & 255;
+            led3 = Horz;
+            
+            RSL = float(Rslide)*1000;
+            txData[12] = RSL & 255;
+            txData[13] = (RSL >> 8) & 255;
+            txData[14] = (RSL >> 16) & 255;
+            txData[15] = (RSL >> 24) & 255;
+            led4 = Rslide;
+            txData[16] = 'a';
+        
+            NRFT.write( NRF24L01P_PIPE_P0, txData, TRANSFER_SIZE );
+            //wait(0.1);
+        }
+    }
+}
\ No newline at end of file