Question
Comment puis-je précéder pour faire une lecture en même temps que la lecture du son et des composants ?
Quelle code à utiliser ?
Je souhaite mettre une remise a 0 a la fin du programme, j’utilise ce code ?
// Revient à zéro:
stepper.moveTo(0);
stepper.runToPosition();
delay(1000);
}
Si vous pouvez m'aider pour tout ces questions vous vous serez reconnaissant
Je reste a votre disposition
Merci
Slt
qui peut m'aider j'aimerai rajouter un détecteur de son pour une led a mon code mais j'ai des erreurs : a function-definition is not allowed here before '{' token
quelqu'un peut me guider svp
faut t’il les enlever ?
#include <SoftwareSerial.h>
SoftwareSerial BT(4,2);
#include "DFRobotDFPlayerMini.h"
#include <Servo.h> // Tools -> Manage Libraries...
#include <ServoEasing.h> // ServoEasing v2.3.4
#include <AsyncTimer.h> // AsyncTimer v2.2.0
#include <jled.h> // JLed v4.8.0
//
// Eye LED settings...
//
#define LED_A 5
#define LED_B 6
#define LED_C 7
#define FADE_ON 125
#define FADE_ON_WAIT 500
#define FLICKER_TIME 2500
#define EYES_ON_WAIT 500
#define FADE_OFF 1500
#define FADE_OFF_WAIT 2500
//
// Eye Servo settings...
//
#define EYE_SERVO_A 9
#define EYE_SERVO_B 10
#define EYE_SERVO_C 11
#define EYE_SPEED 150
#define EYE_MIN 20
#define EYE_MAX 160
#define EYE_CENTER 90
#define EYE_INTERVAL 900
//
// Random eye movement...
//
AsyncTimer t;
ServoEasing eyeServoA;
ServoEasing eyeServoB;
ServoEasing eyeServoC;
unsigned short eyeTimer;
unsigned short scanTimer;
bool eyeMoveA = true;
bool eyeMoveB = true;
bool eyeMoveC = true;
//
// Eye flickering & fading movement.
//
JLed ledsA[] = {
JLed(LED_A).FadeOn(FADE_ON).DelayAfter(FADE_ON_WAIT * 2),
JLed(LED_A).Candle(6, 100, FLICKER_TIME * 2),
JLed(LED_A).On().DelayAfter(EYES_ON_WAIT * 2),
// JLed(LED_A).FadeOff(FADE_OFF).DelayAfter(FADE_OFF_WAIT * 2)
};
auto seqA = JLedSequence(JLedSequence::eMode::SEQUENCE, ledsA);
auto ledA = JLed(LED_A).FadeOff(FADE_OFF).DelayAfter(FADE_OFF_WAIT * 2);
JLed ledsB[] = {
JLed(LED_B).FadeOn(FADE_ON).DelayAfter(FADE_ON_WAIT * 2),
JLed(LED_B).Candle(6, 100, FLICKER_TIME * 2),
JLed(LED_B).On().DelayAfter(EYES_ON_WAIT * 2),
// JLed(LED_B).FadeOff(FADE_OFF).DelayAfter(FADE_OFF_WAIT * 2)
};
auto seqB = JLedSequence(JLedSequence::eMode::SEQUENCE, ledsB);
auto ledB = JLed(LED_B).FadeOff(FADE_OFF).DelayAfter(FADE_OFF_WAIT * 2);
//
// Generate variation for range -> range * 2
//
int vary(int range, int v = 11) {
return range + random(v) * range / v;
}
int Led = 13 ;
int buttonpin = 8;
int val = 0;
//
// Change JLed timings so each flicker is independent.
//
void retime(JLed (&leds)[3], JLed &led) {
leds[0].FadeOn(FADE_ON).DelayAfter(vary(FADE_ON_WAIT));
leds[1].Candle(6, 100, vary(FLICKER_TIME));
leds[2].On().DelayAfter(vary(EYES_ON_WAIT));
led.FadeOff(FADE_OFF).DelayAfter(vary(FADE_OFF_WAIT));
}
//
// Random eye movement.
//
void moveEyes() {
if (eyeMoveA) {
eyeServoA.startEaseTo(random(EYE_MIN, EYE_MAX + 1));
}
if (eyeMoveB) {
eyeServoB.startEaseTo(random(EYE_MIN, EYE_MAX + 1));
}
}
//
// Scan eyes back and forth.
//
void scanEyes() {
eyeServoC.startEaseTo(eyeMoveC ? EYE_MIN : EYE_MAX);
eyeMoveC = !eyeMoveC;
}
//
// Standard setup function.
//
// Use pins 2 and 3 to communicate with DFPlayer Mini
static const uint8_t PIN_MP3_TX = 2; // Connects to module's RX
static const uint8_t PIN_MP3_RX = 3; // Connects to module's TX
SoftwareSerial softwareSerial(PIN_MP3_RX, PIN_MP3_TX);
// Create the Player object
DFRobotDFPlayerMini player;
void setup() {
BT.begin(9600);
void playMp3Folder(int fileNumber);
// Init serial port for DFPlayer Mini
softwareSerial.begin(9600);
// Start communication with DFPlayer Mini
if (player.begin(softwareSerial)) {
Serial.println("OK");
// Set volume to maximum (0 to 30).
player.volume(20);
delay(45700);
} else {
Serial.println("Connecting to DFPlayer Mini failed!");
}
Serial.begin(9600); // For debugging.
randomSeed(analogRead(0)); // Init random number generator.
eyeServoA.attach(EYE_SERVO_A); // Init eyes.
eyeServoA.write(EYE_CENTER);
eyeServoA.setSpeed(EYE_SPEED);
eyeServoB.attach(EYE_SERVO_B);
eyeServoB.write(EYE_CENTER);
eyeServoB.setSpeed(EYE_SPEED);
eyeServoC.attach(EYE_SERVO_C);
eyeServoC.write(EYE_CENTER);
eyeServoC.setSpeed(EYE_SPEED / 2); // Run slower is scanning mode.
pinMode(LED_C, OUTPUT); // Make Led C constantly on (for scanning mode).
digitalWrite(LED_C, HIGH);
t.setup();
eyeTimer = t.setInterval(moveEyes, EYE_INTERVAL);
scanTimer = t.setInterval(scanEyes, EYE_INTERVAL * 5);
pinMode (Led, OUTPUT) ;
pinMode (buttonpin, INPUT) ;
//
// Standard loop.
//
void loop() {
if (BT.available()){
Serial.write(BT.read()); // les données reçues par le port BT sont envoyées au moniteur série
}
if(Serial.available()) {
BT.write(Serial.read()); // les données reçues par le moniteur série sont envoyées au port BT
}
player.play(1); // Play the first MP3 file on the SD card
t.handle();
if (!seqA.Update()) {
eyeMoveA = false; // Stop random eye movement when sequence ends and then we fade off.
if (!ledA.Update()) {
retime(ledsA, ledA);
seqA.Reset();
ledA.Reset();
eyeMoveA = true; // Restart eye movement for next eye flickering sequence.
}
}
if (!seqB.Update()) {
eyeMoveB = false; // Stop random eye movement when sequence ends and then we fade off.
if (!ledB.Update()) {
retime(ledsB, ledB);
seqB.Reset();
ledB.Reset();
eyeMoveB = true; // Restart eye movement for next eye flickering sequence.
{
val = digitalRead(buttonpin);
if (val == HIGH)
{
digitalWrite (Led, HIGH);
}
else
{
digitalWrite (Led, LOW);
}
}
}
C'est un peu le bazar dans les accolades.
Fais un ctrl+t dans l'IDE pour mettre à jour l'indentation de ton ton programme, tu vas voir qu'il en manque quelques unes au niveau de setup() et loop().
Bon le son ne veut plu marcher correctement et j'ai une erreur je pige pas le code est OK en vérifiant et en téléversement sa déconne
help
Le croquis utilise 15368 octets (47%) de l'espace de stockage de programmes. Le maximum est de 32256 octets.
Les variables globales utilisent 948 octets (46%) de mémoire dynamique, ce qui laisse 1100 octets pour les variables locales. Le maximum est de 2048 octets.
Une erreur est survenue lors du transfert du croquis
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_recv(): programmer is not responding
avr_read(): error reading address 0x0000
read operation not supported for memory "flash"
avrdude: failed to read all of flash memory, rc=-2
avrdude: stk500_recv(): programmer is not responding
Oui je comprend pas j'ai pas toucher les connexions de la carte et de la breadboard J'ai réessayer le code d'avant qui ne marche plu non plu, mais je me demande si ce n'est pas la module DFplayer qui a un problème ou la carte SD vous avez une idée ? Probleme de son (DFplayer)
Bon sur ma carte NANO en 5V comme précédemment sa ne marche pas mieux pas donc conclusion DFplayer HS bizarre que sa saute comme ça sans y toucher ?
Carte SD : dossier mp3 > 0001.mp3
#include "SoftwareSerial.h"
#include "DFRobotDFPlayerMini.h"
// Use pins 10 and 11 to communicate with DFPlayer Mini
static const uint8_t PIN_MP3_TX = 2; // Connects to module's RX
static const uint8_t PIN_MP3_RX = 3; // Connects to module's TX
SoftwareSerial softwareSerial(PIN_MP3_RX, PIN_MP3_TX);
// Create the Player object
DFRobotDFPlayerMini player;
void setup() {
void playMp3Folder(int fileNumber);
// Init USB serial port for debugging
Serial.begin(9600);
// Init serial port for DFPlayer Mini
softwareSerial.begin(9600);
// Start communication with DFPlayer Mini
if (player.begin(softwareSerial)) {
Serial.println("OK");
// Set volume to maximum (0 to 30).
player.volume(23);
// Play the first MP3 file on the SD card
player.play(1);
} else {
Serial.println("Connecting to DFPlayer Mini failed!");
}
}
void loop() {
}i
Re en réfléchissant si le dfplayer était HS comme je croyait il ne s’allumerait pas, on est d'accort ? Comme sur le vidéo il fonctionne sauf la lecture ne ce passe pas bien
ce serait t'il pas un problème dans le code ? merci de votre aide
Donc le DFplayer remarche j'ai toujours pas compris pourquoi mais bon
J'ai tout recommencer mais j'ai juste toujours cette erreur ou je suis pas doué
pouvez vous me dire ou est l'erreur ligne 197
a function-definition is not allowed here before '{' token
J'ai regarder mais j'arrive pas a trouver
#include <SoftwareSerial.h>
#include "DFRobotDFPlayerMini.h"
#include <Servo.h> // Tools -> Manage Libraries...
#include <ServoEasing.h> // ServoEasing v2.3.4
#include <AsyncTimer.h> // AsyncTimer v2.2.0
#include <jled.h> // JLed v4.8.0
//
// Eye LED settings...
//
#define LED_A 5
#define LED_B 6
#define LED_C 7
#define FADE_ON 125
#define FADE_ON_WAIT 500
#define FLICKER_TIME 2500
#define EYES_ON_WAIT 500
#define FADE_OFF 1500
#define FADE_OFF_WAIT 2500
//
// Eye Servo settings...
//
#define EYE_SERVO_A 9
#define EYE_SERVO_B 10
#define EYE_SERVO_C 11
#define EYE_SPEED 150
#define EYE_MIN 20
#define EYE_MAX 160
#define EYE_CENTER 90
#define EYE_INTERVAL 900
//
// Bluetooth HC-06
//
SoftwareSerial BT(4, 2);
//
// Random eye movement...
//
AsyncTimer t;
ServoEasing eyeServoA;
ServoEasing eyeServoB;
ServoEasing eyeServoC;
unsigned short eyeTimer;
unsigned short scanTimer;
bool eyeMoveA = true;
bool eyeMoveB = true;
bool eyeMoveC = true;
//
// Eye flickering & fading movement.
//
JLed ledsA[] = {
JLed(LED_A).FadeOn(FADE_ON).DelayAfter(FADE_ON_WAIT * 2),
JLed(LED_A).Candle(6, 100, FLICKER_TIME * 2),
JLed(LED_A).On().DelayAfter(EYES_ON_WAIT * 2),
// JLed(LED_A).FadeOff(FADE_OFF).DelayAfter(FADE_OFF_WAIT * 2)
};
auto seqA = JLedSequence(JLedSequence::eMode::SEQUENCE, ledsA);
auto ledA = JLed(LED_A).FadeOff(FADE_OFF).DelayAfter(FADE_OFF_WAIT * 2);
JLed ledsB[] = {
JLed(LED_B).FadeOn(FADE_ON).DelayAfter(FADE_ON_WAIT * 2),
JLed(LED_B).Candle(6, 100, FLICKER_TIME * 2),
JLed(LED_B).On().DelayAfter(EYES_ON_WAIT * 2),
// JLed(LED_B).FadeOff(FADE_OFF).DelayAfter(FADE_OFF_WAIT * 2)
};
auto seqB = JLedSequence(JLedSequence::eMode::SEQUENCE, ledsB);
auto ledB = JLed(LED_B).FadeOff(FADE_OFF).DelayAfter(FADE_OFF_WAIT * 2);
//
// Generate variation for range -> range * 2
//
int vary(int range, int v = 11) {
return range + random(v) * range / v;
}
//
// Change JLed timings so each flicker is independent.
//
void retime(JLed (&leds)[3], JLed &led) {
leds[0].FadeOn(FADE_ON).DelayAfter(vary(FADE_ON_WAIT));
leds[1].Candle(6, 100, vary(FLICKER_TIME));
leds[2].On().DelayAfter(vary(EYES_ON_WAIT));
led.FadeOff(FADE_OFF).DelayAfter(vary(FADE_OFF_WAIT));
}
//
// Random eye movement.
//
void moveEyes() {
if (eyeMoveA) {
eyeServoA.startEaseTo(random(EYE_MIN, EYE_MAX + 1));
}
if (eyeMoveB) {
eyeServoB.startEaseTo(random(EYE_MIN, EYE_MAX + 1));
}
}
//
// Scan eyes back and forth.
//
void scanEyes() {
eyeServoC.startEaseTo(eyeMoveC ? EYE_MIN : EYE_MAX);
eyeMoveC = !eyeMoveC;
}
//
// Standard setup function.
//
// Use pins 2 and 3 to communicate with DFPlayer Mini
static const uint8_t PIN_MP3_TX = 2; // Connects to module's RX
static const uint8_t PIN_MP3_RX = 3; // Connects to module's TX
SoftwareSerial softwareSerial(PIN_MP3_RX, PIN_MP3_TX);
// Create the Player object
DFRobotDFPlayerMini player;
// Pin - capteur sonore - Plasma
int Led = 13;
int buttonpin = 7;
int val = 0;
void setup() {
BT.begin(9600);
void playMp3Folder(int fileNumber);
// Init serial port for DFPlayer Mini
softwareSerial.begin(9600);
// Start communication with DFPlayer Mini
if (player.begin(softwareSerial)) {
Serial.println("OK");
// Set volume to maximum (0 to 30).
player.volume(20);
// Play the first MP3 file on the SD card
player.play(1);
delay(55000);
} else {
Serial.println("Connecting to DFPlayer Mini failed!");
}
Serial.begin(9600); // For debugging.
randomSeed(analogRead(0)); // Init random number generator.
eyeServoA.attach(EYE_SERVO_A); // Init eyes.
eyeServoA.write(EYE_CENTER);
eyeServoA.setSpeed(EYE_SPEED);
eyeServoB.attach(EYE_SERVO_B);
eyeServoB.write(EYE_CENTER);
eyeServoB.setSpeed(EYE_SPEED);
eyeServoC.attach(EYE_SERVO_C);
eyeServoC.write(EYE_CENTER);
eyeServoC.setSpeed(EYE_SPEED / 2); // Run slower is scanning mode.
pinMode(LED_C, OUTPUT); // Make Led C constantly on (for scanning mode).
digitalWrite(LED_C, HIGH);
t.setup();
eyeTimer = t.setInterval(moveEyes, EYE_INTERVAL);
scanTimer = t.setInterval(scanEyes, EYE_INTERVAL * 5);
{
//
// Capteur sonore - Plasma
//
}
pinMode(Led, OUTPUT);
pinMode(buttonpin, INPUT);
//
// Standard loop.
//
void loop() {
//
// Données Bluetooth
//
if (BT.available()) {
Serial.write(BT.read()); // les données reçues par le port BT sont envoyées au moniteur série
}
if (Serial.available()) {
BT.write(Serial.read()); // les données reçues par le moniteur série sont envoyées au port BT
}
t.handle();
if (!seqA.Update()) {
eyeMoveA = false; // Stop random eye movement when sequence ends and then we fade off.
if (!ledA.Update()) {
retime(ledsA, ledA);
seqA.Reset();
ledA.Reset();
eyeMoveA = true; // Restart eye movement for next eye flickering sequence.
}
}
if (!seqB.Update()) {
eyeMoveB = false; // Stop random eye movement when sequence ends and then we fade off.
if (!ledB.Update()) {
retime(ledsB, ledB);
seqB.Reset();
ledB.Reset();
eyeMoveB = true; // Restart eye movement for next eye flickering sequence.
}
}
//
// Capteur sonore - Plasma
//
val = digitalRead(buttonpin);
if (val == HIGH) {
digitalWrite(Led, HIGH);
} else {
digitalWrite(Led, LOW);
}
}
}
De rien.
Lorsque ce type d'erreur remonte, il faut avoir le réflexe de faire ctrl+t pour reformater le code ensuite, regarder l'emprise des accolades
Dans l'IDE 2.0.x une ligne verticale marque le bloc de code encadré par une paire d'accolade cela permet de visualiser assez rapidement s'il y a un problème avec celles-ci.
S'il manque des accolades la ligne va s'arrêter dans le vide
Oui j’ai installer la dernière version qui est plus pratique ^^
maintenant je vais essayer de trouver un code pour faire marcher tous ca avec lecture d'une vidéo
Slt
Donc pour prévoir la dernière étape (lecture video) comme l'indique le poste 1/..
Pour le Raspberry pi il y aurai un code a insérer sur cette carte
Je me référence a ce lien ? Installer un écran au Raspberry Pi
avec cette écran (commandé) Ecran tactile LCD TFT 3.5 pouces
j’espère que cela ira, rassurer moi
Merci
????
Le module HC06 propose une interface série donc, une fois l'appairage réalisé, tu l'utilises comme Serial.
Si ton application fonctionne avec Serial, elle devrait fonctionner avec le module HC06.