Vidéos
Liste des composants
Les Schémas
Schéma Télécommande :

Schéma Aéroglisseur :

Les codes Arduino
//------------------------------------------------------
// https://gammatroniques.fr/
// Code Télécommande
// 08/2020 - by Bearduino
//------------------------------------------------------
#include <SPI.h> // Pour la communication via le port SPI
#include <Mirf.h> // Pour la gestion de la communication
#include <nRF24L01.h> // Pour les définitions des registres du nRF24L01
#include <MirfHardwareSpiDriver.h> // Pour la communication SPI
typedef struct {
int Xvaleur;
int Yvaleur;
} MaStructure;
void setup() {
Serial.begin(9600);
Mirf.cePin = 8; // Broche CE sur D8
Mirf.csnPin = 10; // Broche CSN sur D10
Mirf.spi = &MirfHardwareSpi; // On veut utiliser le port SPI hardware
Mirf.init(); // Initialise la bibliothèque
Mirf.channel = 1; // Choix du canal de communication (128 canaux disponibles, de 0 à 127)
Mirf.payload = sizeof(MaStructure); // Taille d'un message (maximum 32 octets)
Mirf.config(); // Sauvegarde la configuration dans le module radio
Mirf.setTADDR((byte *) "nrf02"); // Adresse de transmission
Mirf.setRADDR((byte *) "nrf01"); // Adresse de réception
Serial.println("Go !");
}
void loop() {
MaStructure message;
message.Xvaleur = analogRead(A0); // Valeur X du Joystick
message.Yvaleur = analogRead(A1); // Valeur Y du Joystick
Mirf.send((byte*) &message); // On envoie le message
while(Mirf.isSending()); // On attend la fin de l'envoi
delay(50);
}
//------------------------------------------------------
// https://gammatroniques.fr/
// Code Aéroglisseur
// 08/2020 - by Bearduino
//------------------------------------------------------
#include <SPI.h> // Pour la communication via le port SPI
#include <Mirf.h> // Pour la gestion de la communication
#include <nRF24L01.h> // Pour les définitions des registres du nRF24L01
#include <MirfHardwareSpiDriver.h> // Pour la communication SPI
#include <Servo.h> // Pour le contrôle du ServoMoteur
typedef struct {
int Xvaleur;
int Yvaleur;
} MaStructure;
Servo myServo;
int X = 90;
int derval = 90;
void setup() {
myServo.attach(6);
Mirf.cePin = 8; // Broche CE sur D8
Mirf.csnPin = 10; // Broche CSN sur D10
Mirf.spi = &MirfHardwareSpi; // On veut utiliser le port SPI hardware
Mirf.init(); // Initialise la bibliothèque
Mirf.channel = 1; // Choix du canal de communication (128 canaux disponibles, de 0 à 127)
Mirf.payload = sizeof(MaStructure); // Taille d'un message (maximum 32 octets)
Mirf.config(); // Sauvegarde la configuration dans le module radio
Mirf.setTADDR((byte *) "nrf01"); // Adresse de transmission
Mirf.setRADDR((byte *) "nrf02"); // Adresse de réception
Serial.println("Go !");
myServo.write(X);
}
void loop() {
MaStructure message;
if(Mirf.dataReady()){
Mirf.getData((byte*) &message); // Réception du paquet
int Y = map(message.Yvaleur, 0, 1023, 0, 255); //Adapter Valeur Y pour ventilateur
X = map(message.Xvaleur, 0, 1023, 0, 180); // Adapter Valeur X pour moteur
analogWrite(5, Y); // Pour faire tourner le ventilateur
if (X < derval){
derval = derval-5;
myServo.write(derval);
}
else if (X > derval){ // Faire tourner le moteur
derval = derval+5; // sans bloquer le code
myServo.write(derval);
}
else {
myServo.write(derval);
}
}
}