fetitfilou
Différences
Ci-dessous, les différences entre deux révisions de la page.
| Prochaine révision | Révision précédente | ||
| fetitfilou [2020/02/17 09:29] – créée gaziel | fetitfilou [2020/10/27 18:35] (Version actuelle) – ↷ Liens modifiés en raison d'un déplacement. serge | ||
|---|---|---|---|
| Ligne 2: | Ligne 2: | ||
| A la demande de Buz, création d'un petit filou géant, avec interaction. | A la demande de Buz, création d'un petit filou géant, avec interaction. | ||
| - | |||
| Ligne 9: | Ligne 8: | ||
| * faire de la lumière | * faire de la lumière | ||
| * lancer une interjection de Buz | * lancer une interjection de Buz | ||
| + | |||
| + | |||
| ====fabrication==== | ====fabrication==== | ||
| Ligne 17: | Ligne 18: | ||
| 2 servos | 2 servos | ||
| + | ====Detection==== | ||
| - | bruit et Lumière en attente | + | Module SR04 ultrason |
| - | ==== code ==== | + | {{media_04: |
| - | <WRAP center round box 90%> | + | |
| + | facile et efficace ! | ||
| - | #include <Servo.h> | + | librairie Ultrasonic d'Eric Simões |
| - | Servo eye1; | + | arduino=>SR04 |
| - | Servo eye2; | + | |
| - | int distance | + | 5V=>VCC |
| - | int duree = 30; // durée de fonctionnement de l' | + | |
| - | const byte POTDISPIN | + | GND=>GND |
| - | const byte POTDELAYPIN = 1; // broche | + | |
| - | const byte RELAYPIN | + | D2=>Echo |
| - | const byte EYE1PIN | + | D3=>Trig |
| - | const byte EYE2PIN = 11; // broche servo Oeil1 | + | |
| - | const byte TRIGGER_PIN = 2; // Broche TRIGGER | ||
| - | const byte ECHO_PIN = 3; // Broche ECHO | ||
| - | const unsigned long MEASURE_TIMEOUT = 25000UL; // 25ms = ~8m à 340m/s/* Constantes pour le timeout */ | ||
| - | const float SOUND_SPEED = 340.0 / 1000;/* Vitesse du son dans l'air en mm/us */ | ||
| - | byte eye1Pos | + | ====Bruit==== |
| - | byte eye2Pos | + | |
| + | utilisation d'un "DY Player" | ||
| + | {{media_04: | ||
| + | module DY-SV5W | ||
| + | utilisation en Mode UART ( envoie de commande par le port TX/RX série de l' | ||
| - | void setup() { | + | Sans prise de tête avec la librairie [[https://github.com/ |
| - | | + | |
| - | Serial.begin(115200); | + | |
| - | randomSeed(analogRead(0)); | + | juste 3 fils : |
| - | /* Initialise les broches */ | + | arduino=> |
| - | pinMode(TRIGGER_PIN, | + | |
| - | digitalWrite(TRIGGER_PIN, | + | |
| - | pinMode(ECHO_PIN, | + | |
| - | Serial.println(" | + | |
| - | eye1.attach(EYE1PIN); | + | 5V=>+5V |
| - | eye2.attach(EYE2PIN); | + | |
| - | delay(100); | + | |
| - | eye1.write(eye1Pos); | + | |
| - | eye2.write(eye2Pos); | + | |
| - | Serial.println(" | + | |
| - | } | + | |
| - | void anime() { | + | GND=>-5V |
| - | switch (duree) { | + | D1/ |
| - | case 1 : // bas | + | ====Lumière=== |
| - | eye1Pos | + | |
| - | eye2Pos | + | |
| - | break; | + | |
| - | case 2 : // louche 1 | + | |
| - | eye1Pos | + | |
| - | eye2Pos | + | |
| - | | + | |
| - | case 3 : // louche 2 | + | |
| - | eye1Pos | + | |
| - | eye2Pos | + | |
| - | case 4 : // haut | + | |
| - | eye1Pos | + | |
| - | eye2Pos = 180 ; | + | |
| - | default : // | + | juste une LED RGB ! |
| - | eye1Pos = int(random(180)); | + | |
| - | eye2Pos = int(random(180)); | + | |
| - | break; | + | |
| - | } | + | |
| - | eye1.write(eye1Pos); | + | arduino=> |
| - | eye2.write(eye2Pos); | + | |
| - | delay(100); | + | |
| - | } | + | |
| + | 5V=>V | ||
| - | //renvois vrai si la distance en parametre est plus petite en mm | + | D4=>R |
| - | bool declanche( int distance) { | + | |
| - | digitalWrite(TRIGGER_PIN, | + | D5=>B |
| - | delayMicroseconds(10); | + | |
| - | digitalWrite(TRIGGER_PIN, | + | |
| - | long mesure | + | |
| - | delay(500); | + | D6=>G |
| - | if (mesure / 2.0 * SOUND_SPEED < distance) { | + | |
| - | return true; | + | |
| - | } | + | |
| - | else { | + | |
| - | return false; | + | |
| - | } | + | |
| + | ==== code ==== | ||
| + | <code python> | ||
| + | #include < | ||
| + | |||
| + | //son | ||
| + | #include " | ||
| + | DY::Player player; | ||
| + | int son = 1; | ||
| + | |||
| + | //detection SR04 | ||
| + | #include < | ||
| + | Ultrasonic ultrasonic(2, | ||
| + | int distance; | ||
| + | |||
| + | // yeux | ||
| + | #include < | ||
| + | Servo eye1; | ||
| + | Servo eye2; | ||
| + | const byte EYE1PIN = 8; // broche servo Oeil | ||
| + | const byte EYE2PIN = 9; // broche servo Oei1 | ||
| + | byte eye1Pos = 0; | ||
| + | byte eye2Pos = 0; | ||
| + | |||
| + | //lumiere | ||
| + | |||
| + | const byte COLOR[8] = {0b000, 0b100, 0b010, 0b001, 0b101, 0b011, 0b110, 0b111}; | ||
| + | |||
| + | /* Broches */ | ||
| + | const byte PIN_LED_R = 4; | ||
| + | const byte PIN_LED_G = 5; | ||
| + | const byte PIN_LED_B = 6; | ||
| + | byte rvb = 0; | ||
| + | |||
| + | |||
| + | void setup() { | ||
| + | // | ||
| + | |||
| + | player.begin(); | ||
| + | player.setVolume(20); | ||
| + | |||
| + | eye1.attach(EYE1PIN); | ||
| + | eye2.attach(EYE2PIN); | ||
| + | |||
| + | randomSeed(analogRead(0)); | ||
| + | |||
| + | pinMode(PIN_LED_R, | ||
| + | pinMode(PIN_LED_G, | ||
| + | pinMode(PIN_LED_B, | ||
| + | displayColor(COLOR[7]); | ||
| } | } | ||
| + | |||
| void loop() { | void loop() { | ||
| + | //lecture de la distance en CM | ||
| + | distance = ultrasonic.read(); | ||
| + | delay(500); | ||
| - | if (declanche(300)){ | ||
| - | | + | |
| - | // son | + | |
| - | // lumiere | + | // couleur aleatoire |
| + | // | ||
| + | displayColor(COLOR[int(random(0, | ||
| + | delay(10); | ||
| + | //lecture d' | ||
| + | | ||
| + | player.playSpecified(son); | ||
| + | delay(250); | ||
| + | displayColor(COLOR[int(random(0, | ||
| + | |||
| + | // servo position aleatoire | ||
| + | eye1Pos = int(random(180)); | ||
| + | eye2Pos = int(random(180)); | ||
| + | |||
| + | eye1.write(eye1Pos); | ||
| + | eye2.write(eye2Pos); | ||
| + | delay(50); | ||
| + | displayColor(COLOR[int(random(0, | ||
| + | //attente avant prochaine declanchement | ||
| + | delay(4000); | ||
| + | |||
| + | // remise a off | ||
| + | displayColor(COLOR[7]); | ||
| + | distance = 300;// forcage distance> | ||
| } | } | ||
| + | } | ||
| + | /** Affiche une couleur */ | ||
| + | void displayColor(byte color) { | ||
| + | // Assigne l' | ||
| + | // Version cathode commune | ||
| + | // | ||
| + | // | ||
| + | // | ||
| + | // Version anode commune | ||
| + | digitalWrite(PIN_LED_R, | ||
| + | digitalWrite(PIN_LED_G, | ||
| + | digitalWrite(PIN_LED_B, | ||
| } | } | ||
| - | </WRAP> | + | </code> |
fetitfilou.1581931788.txt.gz · Dernière modification : de gaziel
