Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: mbed RF24Network RF24
Revision 4:d7a0a07f21f3, committed 2021-05-20
- Comitter:
- Giamarchi
- Date:
- Thu May 20 07:26:02 2021 +0000
- Parent:
- 3:d605536db315
- Commit message:
- version 00
Changed in this revision
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