ISEN Nimes CSI3 / Mbed 2 deprecated ISEN_RF24Network_Node_01

Dependencies:   mbed RF24Network RF24

Files at this revision

API Documentation at this revision

Comitter:
Giamarchi
Date:
Thu May 20 07:26:02 2021 +0000
Parent:
3:d605536db315
Commit message:
version 00

Changed in this revision

RF24.lib Show annotated file Show diff for this revision Revisions of this file
RF24Network.lib Show annotated file Show diff for this revision Revisions of this file
isen32_board.h Show annotated file Show diff for this revision Revisions of this file
main.cpp Show annotated file Show diff for this revision Revisions of this file
mbed.bld Show annotated file Show diff for this revision Revisions of this file
diff -r d605536db315 -r d7a0a07f21f3 RF24.lib
--- a/RF24.lib	Thu Nov 05 05:59:18 2015 +0000
+++ b/RF24.lib	Thu May 20 07:26:02 2021 +0000
@@ -1,1 +1,1 @@
-http://developer.mbed.org/users/akashvibhute/code/RF24/#e94be00fd19e
+https://os.mbed.com/users/Giamarchi/code/RF24/#e8fd79e44284
diff -r d605536db315 -r d7a0a07f21f3 RF24Network.lib
--- a/RF24Network.lib	Thu Nov 05 05:59:18 2015 +0000
+++ b/RF24Network.lib	Thu May 20 07:26:02 2021 +0000
@@ -1,1 +1,1 @@
-http://developer.mbed.org/users/akashvibhute/code/RF24Network/#dfc8da7ac18c
+https://os.mbed.com/users/Giamarchi/code/RF24Network/#be18fc3ba293
diff -r d605536db315 -r d7a0a07f21f3 isen32_board.h
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/isen32_board.h	Thu May 20 07:26:02 2021 +0000
@@ -0,0 +1,113 @@
+#include "mbed.h"
+
+// Nucleo Board associé à la carte ISEN
+
+DigitalOut Led1(LED1);      // PA5 attention SPI CLK aussi
+DigitalIn BTN_User(PC_13);
+
+// ISEN32 Board
+
+DigitalOut L0(PB_1);        // Dels, en sortie, reliée à PB1
+DigitalOut L1(PB_2);
+DigitalOut L2(PB_10);
+DigitalOut L3(PB_11);
+DigitalOut L4(PB_12);
+DigitalOut L5(PB_13);
+DigitalOut L6(PB_14);
+DigitalOut L7(PB_15);       // la plus à gauche
+
+DigitalIn BTN1(PA_11);       // Bouton Poussoir, en entrée, relié à PA11
+DigitalIn BTN2(PA_12);
+DigitalIn BTN3(PC_6);
+DigitalIn BTN4(PC_5);
+
+DigitalOut BZ1(PC_7);       // Buzzer, en sortie, relié à PC7
+
+//DigitalOut M1(PB_4);       // Moteur mini, en sortie, relié à PB4
+//PwmOut M1(PB_4);        // Moteur mini en mode PWM
+
+// Lignes pour entrées analogiques
+AnalogIn RV1(A0);           // RV1, en entrée analogique, relié à PA0
+AnalogIn RV2(A1);           // RV2, en entrée analogique, relié à PA1
+AnalogIn SENSOR(A4);        // Pour capteur externe, exemple capt. de temp. MCP9700 Attention en conflit possible avec DAC
+
+// Lignes SPI pour piloter le MAX7219
+SPI spi(PA_7, PA_6, PA_5);
+DigitalOut CS(PA_8);
+
+// Lignes I2C
+//DigitalOut SCL(PB_6);
+//DigitalOut SDA(PB_7);
+
+// Adresses des 2 EEPROMs I2C
+#define EEPROM1 0b1010000
+#define EEPROM2 0b1010001
+
+// Lignes pour piloter des servomoteurs
+//DigitalOut SERVO1(PB_9);
+//DigitalOut SERVO2(PB_8);
+//DigitalOut SERVO3(PC_8);
+//DigitalOut SERVO4(PC_9);
+
+// Lignes pour piloter 2 moteurs DC
+//DigitalOut EN1(PB_10);
+//PwmOut EN1(PB_10);
+//DigitalOut IN1(PB_1);
+//DigitalOut IN2(PB_2);
+
+void Set_8Dels(uint8_t position)
+{
+    L0 = position & 0x01;
+    L1 = position & 0x02;
+    L2 = position & 0x04;
+    L3 = position & 0x08;
+    L4 = position & 0x10;
+    L5 = position & 0x20;
+    L6 = position & 0x40;
+    L7 = position & 0x80;
+}
+
+/* MAX7219 : Interface SPI pour afficheur 7 segments */
+void Init_spi(void)
+{
+    spi.format(16,3);           // SPI en mode 16 bits
+
+    CS = 0;
+//    spi.write(0x0F01);          // Test Display On
+//    spi.write(0x0F00);          // Test Display Off
+    spi.write(0x0C01);
+    CS = 1;
+
+    CS = 0;
+    spi.write(0x090F);          // Mode BCD sur 4 digits
+    CS = 1;
+
+    CS = 0;
+    spi.write(0x0A03);          // Intensité à 3/15
+    CS = 1;
+
+    CS = 0;
+    spi.write(0x0B03);
+    CS = 1;
+
+//    CS = 0;
+//    spi.write(0x0F01);
+//    CS = 1;
+//    wait_ms(1000);
+    CS = 0;
+    spi.write(0x0F00);          // Test mode Off
+    CS = 1;
+
+    CS = 0;
+    spi.write(0x0101);          // Chiffre des milliers
+    CS = 1;
+    CS = 0;
+    spi.write(0x0282);          // Chiffre des centaines
+    CS = 1;
+    CS = 0;
+    spi.write(0x0303);          // Chiffre des dizaines
+    CS = 1;
+    CS = 0;
+    spi.write(0x0404);          // Chiffre des unités
+    CS = 1;
+}
diff -r d605536db315 -r d7a0a07f21f3 main.cpp
--- a/main.cpp	Thu Nov 05 05:59:18 2015 +0000
+++ b/main.cpp	Thu May 20 07:26:02 2021 +0000
@@ -1,14 +1,15 @@
 #include "mbed.h"
 #include <RF24Network.h>
 #include <RF24.h>
+#include "isen32_board.h"
 
-Serial pc(USBTX, USBRX);
+Serial pc(USBTX, USBRX);        // 9600 baud par défaut
 
-#define nrf_CE      D9
-#define nrf_CSN     D10
-#define spi_SCK     D3
-#define spi_MOSI    D4
-#define spi_MISO    D5
+#define nrf_CE      PB_3        // D3 sur connecteur Arduino        
+#define nrf_CSN     PB_12
+#define spi_MOSI    PB_15
+#define spi_MISO    PB_14
+#define spi_SCK     PB_13
 
 RF24 radio(spi_MOSI, spi_MISO, spi_SCK, nrf_CE, nrf_CSN );
 
@@ -22,7 +23,7 @@
 const uint16_t other_node = 00;
 
 // How often to send payload packet to the other unit
-const unsigned long interval = 100; //ms
+const unsigned long interval = 1000; //ms
 
 // When did we last send?
 unsigned long last_sent;
@@ -35,24 +36,38 @@
 // Structure of our payload
 struct payload_t 
 {
-    unsigned long ms;
-    unsigned long counter;
+//    unsigned long ms;
+//    unsigned long counter;
+    uint8_t num;
+    uint8_t del;
 };
 
+struct _node
+{
+    uint8_t num;
+    uint8_t del;
+};
 
 int main()
 {
-    pc.baud(921600);
+    _node node;
+       
+    BTN1.mode(PullUp);    // Resist interne Pull up
+    pc.baud(9600);
     wait_ms(1000);
 
-    pc.printf("mBed RF24Network node: Tx\n");
+    pc.printf("mBed RF24Network node : 01\r\n");
     radio.begin();
     network.begin(/*channel*/ 90, /*node address*/ this_node);
     wait_ms(2000);
     t.start();
     t_packet.start();
+    
     while(1) 
     {
+        // Refresh Dels
+        Set_8Dels(node.del);
+        
         // Pump the network regularly
         network.update();
 
@@ -62,21 +77,38 @@
         {
             t.reset();
 
-            pc.printf("Sending...");
+            pc.printf("Envoi...");
             payload_t payload_tx;
-            payload_tx.ms = t_packet.read_ms();
-            payload_tx.counter = packets_sent++;
+            if(!BTN1)
+                payload_tx.num = 02;
+            else
+                payload_tx.num = 00;
+                
+            payload_tx.del++;
 
 
             RF24NetworkHeader header_tx(/*to node*/ other_node);
             bool ok = network.write(header_tx,&payload_tx,sizeof(payload_tx));
             if (ok)
-                pc.printf("ok.\n");
+                pc.printf("%d ok.\r\n",payload_tx.del);
             else
-                pc.printf("failed.\n");
+                pc.printf("erreur.\r\n");
+                
+                
         }
-
-
+        while ( network.available() ) 
+        {
+            // If so, grab it and print it out
+            RF24NetworkHeader header_rx;
+            payload_t payload_rx;
+            network.read(header_rx,&payload_rx,sizeof(payload_rx));
+ //           pc.printf("Received packet # %d at %d ms\r\n",payload_rx.counter,payload_rx.ms);
+            pc.printf("Node %d del %d\r\n",payload_rx.num,payload_rx.del);
+            
+            if (payload_rx.num == 01)
+            {
+                node.del = payload_rx.del;
+            }
+         }
     }
-
 }
\ No newline at end of file
diff -r d605536db315 -r d7a0a07f21f3 mbed.bld
--- a/mbed.bld	Thu Nov 05 05:59:18 2015 +0000
+++ b/mbed.bld	Thu May 20 07:26:02 2021 +0000
@@ -1,1 +1,1 @@
-http://mbed.org/users/mbed_official/code/mbed/builds/9296ab0bfc11
\ No newline at end of file
+https://os.mbed.com/users/mbed_official/code/mbed/builds/65be27845400
\ No newline at end of file