zuperninja / zuperninja.github.io

https://zuperninja.github.io/
Other
3 stars 0 forks source link

Animatronic Eye v2 #25

Open zuperninja opened 6 years ago

zuperninja commented 6 years ago

Context

Propose a new stage for a festival in vietnam based on https://zuperninja.github.io/blog/portfolio/quete-zome/

Object

Améliorer la constructiond e la dernière fois, notament de l'oeil, avec meilleur moteur et programation plutot que télécommande

Process

  1. Connaitre mieux les moteurs
  2. Imprimer un petit modèle d'oeil
zuperninja commented 6 years ago

Connaitre mieux les moteurs en testant un stepper

Différence entre les steppers.

Pour apprendre la différence entre les moteurs, j'aime bien utiliser la technique de trier un tas d'objet. J'ai une caisse avec plein de stepper motor au fablab qui sont pas triées. Je vais donc les trier en fonction de ce que je pense être une ressemblance ou une différence. La forme, le nombre de wiring, de pôle, la taille etc. Tom Sachs l'a très bien démontré dans l'une de ses vidéos, où il fait trier à un apprenant des vis.

Et après c'est plus facile de lire les docs de gens qui s'y connaissent en vrai pour réélement comprendre ce que l'on a observé. https://learn.adafruit.com/all-about-stepper-motors/types-of-steppers

Matos

image

Assemblage

https://www.youtube.com/watch?v=5CmjB4WF5XA

Connecter les pins VDD et GND à la carte arduino pour fournir le courant nécessaire au driver.

Puis 1A et 1B à un coil du motor. Et 2A et 2B à l'autre coil du motor.

Comment savoir le quel est le quel ?

VMOT et GND à une alimentation pour le motor. Avec un "decoupling capacitor with at least 47 µF for protecting the driver board from voltage spikes."

zuperninja commented 6 years ago

Imprimer un petit modèle d'oeil, correspondant à celui que j'ai fait la dernière fois : https://www.thingiverse.com/thing:2846536

zuperninja commented 6 years ago

Mouvement simple

👍 Comprendre le script de base du servo et jouer avec un peu. Source

#include <Servo.h>

Servo myservo;  // create servo object to control a servo
// twelve servo objects can be created on most boards

int pos = 50;    // variable to store the servo position

void setup() {
  myservo.attach(9);  // attaches the servo on pin 9 to the servo object
}

void loop() {
  for (pos =50; pos <= 80; pos += 1) { // goes from 50 degrees to 80 degrees
                                      // in steps of 1 degree
    myservo.write(pos);              // tell servo to go to position in variable 'pos'
    delay(30);                       // waits 15ms for the servo to reach the position
  }
  for (pos = 80; pos >= 50; pos -= 1) { // goes from 80 degrees to 50 degrees in step of 1 degrees
    myservo.write(pos);              // tell servo to go to position in variable 'pos'
    delay(5);                       // waits 15ms for the servo to reach the position
  }
}

👍 Rajouter une fonction pour attendre un instant avant de recommencer à bouger. Add randNumber et delay

#include <Servo.h>
long randNumber;

Servo myservo;  // create servo object to control a servo
// twelve servo objects can be created on most boards

int pos = 0;    // variable to store the servo position

void setup() {
  myservo.attach(9);  // attaches the servo on pin 9 to the servo object
}

void loop() {
  for (pos =0; pos <= 180; pos += 1) { // goes from 0 degrees to 180 degrees
                                      // in steps of 1 degree
    myservo.write(pos);              // tell servo to go to position in variable 'pos'
    delay(30);                       // waits 15ms for the servo to reach the position
  }
 randNumber = random(2000, 6000);        // generate each time a different time between 2s and 6s
  delay(randNumber);                    // waits before moving again

  for (pos = 180; pos >= 0; pos -= 1) { // goes from 180 degrees to 0 degrees in step of 1 degrees
    myservo.write(pos);              // tell servo to go to position in variable 'pos'
    delay(30);                       // waits 15ms for the servo to reach the position
  }
}
zuperninja commented 6 years ago

Changement de mode de mouvement

zuperninja commented 6 years ago

Mapping led light processing + LX Studio + raspberry pi ?

zuperninja commented 6 years ago

Yeux du dragon avec gemma et neopixel

zuperninja commented 6 years ago

https://learn.adafruit.com/adafruit-neopixel-uberguide/arduino-library-use

image https://www.aliexpress.com/item/Best-Price-2-1000Pcs-IC-APA106-F5-5mm-F8-8mm-Round-RGB-Full-Color-Neo-pixel/32704158290.html?spm=a2g0s.9042311.0.0.776e4c4dCPRnUS

image Ca marche ça s'allume, maintenant faut programmer :) et verifier la safety....

zuperninja commented 6 years ago

LED RGB Strip - Adressable

Sur le dragon j'ai besoin de 3 "lignes" lumineuses. Cad 3LEDs qui réagissent pareil au même moment. Ce qui me fait deux lignes de 17LEDs et une de 16LEDs.

En branchant directement la LED RDB strip sur l'arduino je n'ai aucun soucis pour tester mon code. En pratique, je brancherai le 5V sur une source d'alimentation externe. Vert = data = Pin 9 Rouge = 5V Blanc = GND

Pour tester, j'ai utiliser la librairie FastLED et l'exemple ColorPalette.

Light LED 3 by 3

Code arduino pour allumer 3led à la fois, puis passer aux 3autres leds, etc

    for(int dot = 0; dot < NUM_LEDS-2; dot++) { 
      leds[dot] = CRGB::Red; 
      leds[dot+1] = CRGB::Red;
      leds[dot+2] = CRGB::Red;
      FastLED.delay(33); 
      leds[dot] = CRGB::Black; 
      leds[dot+1] = CRGB::Black;
      leds[dot+2] = CRGB::Red;
    }
nicolasdb commented 6 years ago

Masta badge women in tech powaaaa

image

nicolasdb commented 6 years ago

sorry, c'est le seul meme que j'ai trouvé sur #womenintech :)

zuperninja commented 6 years ago

hahahahah c'est triste que ça soit le seul meme !!!!

nicolasdb commented 6 years ago

oui, c'est pas terrible comme exemple. Tu te débrouille bcp mieux, même en situation de jungle.

zuperninja commented 5 years ago

Servo

  1. Calibrer les servo avec pulsemin et pulsemax
  2. Mapper les 3 servos

image

Servo + RGB LED

  1. Amener power pour servo driver et RDB LED strip
  2. Fusionner les deux codes
  3. Prier

image