La lumière introvertie

5,084

64

9

Introduction : La lumière introvertie

À propos : Je m'appelle Rutger Oomkes et je suis créateur de bijoux en silicone. De plus, j'ai travaillé au laboratoire de soins créatifs Waag à Amsterdam. Ma véritable passion est la création d'art fonctionnel. En ce moment, mes matériaux préférés sont …

Cette année, j'ai fabriqué une lumière robotique qui réagit à la distance et peut se déplacer en conséquence. Elle dispose d'un sonar, de trois servomoteurs et d'un éclairage Neopixel. Pour cette conception, j'ai fabriqué une carte de circuit imprimé personnalisée pour l'électronique mais peut également être réalisée à l'aide d'arduino. J'ai programméla lumière comme étant un introverti mais vous pouvez modifier le comportement à l'aide du code arduino. Une belle introduction visuelle à l'électronique et au codage.

J'ai utilisé la fabrication numérique pour réaliser cette lumière robotique. Impression 3D, découpe laser, fraisage cnc et fraisage de circuits imprimés. Pour le bras, j'ai utilisé l'accrilic à l'aide du lasercutter. Pour la base, j'ai construit une base en bois en 3 parties pour pouvoir placerl'électronique à l'intérieur. Le couvercle du phare et du sonar est fabriqué en pla à l'aide d'imprimantes 3D.

J'ai suivi cette année la fabuleuse académie « comment faire presque tout » et c'était mon dernier devoir pour cette étude. Je pense que c'est un bon outil pour les enseignants pour introduire l'électronique et le codage et rendre ma conception entièrement open source. Sous licence: Attribution-ShareAlike 4.0 International CC BY-SA 4.0

Lorsque vous êtes intéressé à voir la documentation complète, y compris les erreurs commises dans le processus, vous pouvez vérifier

http://www.fabacademy.org/2019/labs/waag/students/...

BOM Nomenclature¶
acrifix-192-acrylaat-lijm-tube-100-gram: Dokter Plexiglas 15,95 €

Givre acrylique 5,8 mm 50 cm par 50 cm : Dokter Plexigas 40,- €

Bois multiplex 24mm 136 cm par 38 cm : Houthandel Schmidt Amsterdam 24€

3 TowerPro MG958 Servo A 12,95 €

Hobby electronica 38,85 €

2 SONAR HC SR04 A 2,95 €

Rotor radio Amsterdam 5,90 €

1 Adaptateur 5v 3A VOLTCRAFT Conrad 7,75 €

WS2812b néopixel ledkoning 22,90 €

coût : 155,35 €

Filament jaune pla Waag fablab inventaire €14.-

Inventaire fablab Atmega 328 P au Waag 1,63€

avrismpd Waag inventaire fablab 0,87 €

Entête Ftdi Waag inventaire fablab 0,53€

Capicitor 1 uF Waag fablab inventaire 0,26 €

4 X condensateur 100 uF Waag fablab inventaire

1,04€connecteur micro usb Waag fablab inventaire 0,62€

Connecteurs mâles Waag fablab inventaire 0,89€

Résonateur 20 Mhz Waag fablab inventaire 0,75 €

Led RED Waag inventaire fablab 0,14

résistance 10K Waag inventaire fablab 0,025€

Résistance 1 K Waag inventaire fablab 0,03 €

Résistance 330 OHM Waag inventaire fablab 0,02 €

Résistance 0 OHM Waag inventaire fablab 0,02 €

bouton interrupteur 6 mm Waag fablab inventaire 0,65 €

Coût fablab 21,75€

Coût total : 177,10 €

L'utilisation de différents matériaux pour la lumière robotique peut réduire considérablement le prix.

Étape 1 : fabrication des pièces en acrylique

J'ai choisi l'acrylique pour fabriquer les bras de la lumière robotique. J'aime son esthétique et grâce à sa surface lisse, la lumière est capable de tourner à l'aide de servomoteurs à couple élevé. L'acrylique utilisé est transparent au gel de 5,8 mm d'épaisseur. Le designest ajouté dans un fichier svg et prêt pour la découpe au laser. Toutes les différentes pièces sont reliées à l'aide d'acrifix. Une colle spéciale pour acrylique qui fait fondre les pièces ensemble pour une connexion solide. Il s'agit d'une colle à séchage UV qui durcit en 20 minutes environ. Dans leendroits où les servos sont installés, j'ai fait de la place pour que le câblage passe et gère la rotation des bras.La partie où le rotor du servo est placé est gravée afin que le rotor ne puisse pas bouger.Il est préférable deoptez pour un servo à couple élevé avec des engrenages métalliques. Les différents bras sont maintenus ensemble à l'aide d'une vis à travers le rotor. Avant d'ajouter de la colle aux bras, vérifiez que la rotation se fait en douceur et que les surfaces de l'acrylique sont bien serrées les unes sur les autres. Pour lela lumière a utilisé le même acrylique et graverles parties où les néopixels viendront.Cette partie devrait bien s'intégrer dans la partie de la lumière imprimée en 3D.

Étape 2 : Création de la base

Puisque le design tournera, la base doit être suffisamment lourde pour supporter la lumière. J'ai décidé de faire la base avec un triplex de 24 mm d'épaisseur. Le diamètre est de 25 cm et se compose de trois anneaux. Celui du milieu est creux duà l'intérieur pour placer l'électronique, le sonar et la plaque accrilique pour maintenir le servo inférieur en place. Les pièces sont conçues pour une connexion à ajustement serré. À l'aide d'une machine cnc, j'ai découpé et gravé les pièces. Le fichier de conception est ajouté dansf3d fusion 360

Étape 3 : Impression 3D du Headlicht.

La lumière et le couvercle pour le sonar que j'ai conçu en fusion 360. Un logiciel disponible gratuitement utilisant une licence gratuite pour les enseignants, les étudiants, les start-up et les amateurs. La base de la lumière doit être connectée à la base acrylique avec la rotationpartie du servo. La base que j'ai conçue est similaire aux parties acryliques des bras. Je voulais créer un petit coude dans la base pour donner du caractère léger.La led rgb sera installée. Pour garder cela en place, j'ai conçu la lumière en deux parties. La base et les modules complémentaires cliquables. Fait trois modules complémentaires différents pour donner à la lumière un caractère spécifique. Les fichiers stl sont prêts à être imprimés.

Étape 4 : fabrication de l'électronique

Pour cette conception, j'ai créé une carte de circuit imprimé personnalisée pour contrôler l'éclairage du servo, du sonar et du néopixel. Cela peut être fait à l'aide d'un arduino avec les composants supplémentaires. Dans ma conception, j'ai fait l'erreur de placer les boutons non sur une broche de signal.Cela signifie que les boutons n'ont pas les options programmables que j'aimerais voir comme changer la couleur ou changer le mouvement à l'aide des boutons. Gardez à l'esprit où les placer dans votre conception. De plus, j'ai commencé avec un problème de contrôle du servo en utilisant la même puissance queC'est pourquoi j'ai créé une autre carte de circuit imprimé à côté de la carte principale pour pouvoir les alimenter séparément.

Étape 5 :

Étape 6 : Programmation de la lumière robotique

Lorsque tout le matériel est terminé, il est temps de programmer la lumière. J'ai utilisé arduino IDE pour la partie programmation. C'était mon introduction au codage, j'ai donc eu du mal à créer un bon code de travail. J'ai commencé à tester toutes les pièces séparémentavant de combiner le code. Commencé avec un sonar, puis deux sonars. Un servo, deux servos, tous les servos et la led néopixel RVB. Quand je les ai fait travailler séparément, je les ai finalement combinés au code final. Maintenant, la lumière réagitle sonar et le mouvement du servo et le néo pixel changent de couleur en fonction de la distance.Dans ma version, la lumière est principalement timide et s'éloigne en se rapprochant et agressivement en se rapprochant, mais c'est à vous de reprogrammer la lumière pour un comportement différent. Pour les servos, j'ai utilisé une bibliothèque varspeedservo pour rendre le mouvement plus fluide. Pour le Neopixel, j'ai utilisé la bibliothèque adafruit. Le code que j'ai fait n'est clairement pas le moyen le plus efficace de contrôler la lumière mais il est facile de faire des ajustements dans le servo et néopixels.Curieux ce que les étudiants proposent.

Je n'ai pas pu télécharger le fichier de code ici. J'ai ajouté le code en dessous.

''

//Sonar
int rxPin = 0 ; // ceci est similaire au paramètre int =, mais il est lié à la bibliothèque int txPin = 1 ; int trig = 16 ; int echo = 17 ; int trig1 = 18; int echo1 = 19;long lecture_echo; long cm; long cm1; int timeout = 1000;

#include VarSpeedServo myservo1 ; // créer un objet servo pour contrôler un servo // un maximum de huit objets servo peut être créé VarSpeedServo myservo2 ;

VarSpeedServo myservo3; const int servoPin1 = 9; // la broche numérique utilisée pour le premier servo const int servoPin2 = 10; // la broche numérique utilisée pour le deuxième servo const int servoPin3 = 5;

#include #define PIN 3 #define NUM_LIGHTS 20

Bande Adafruit_NeoPixel = Adafruit_NeoPixelNUM_LIGHTS, PIN, NEO_GRB + NEO_KHZ800;

configuration vide {

myservo1.attachservoPin1 ; // attache le servo sur la broche 9 à l'objet servo myservo2.attachservoPin2 ; // attache le servo sur la broche 9 à l'objet servo myservo3.attachservoPin3 ; // attachele servo sur la broche 9 à l'objet servo

pinModetrig, OUTPUT; digitalWritetrig, LOW; pinModeecho, INPUT; pinModetrig1, OUTPUT; digitalWritetrig1, LOW; pinModeecho1, INPUT; Serial.begin9600;

strip.begin; strip.clear; strip.show;

}

void loop { digitalWritetrig, HIGH; delayMicroseconds10; digitalWritetrig, LOW; lecture_echo = pulseInecho, HIGH, timeout*1000; cm1 = lecture_echo / 58; Serial.print "sonar 1 en cm : " ; Serial.printlncm1 ;

digitalWritetrig1, HIGH; delayMicroseconds10; digitalWritetrig1, LOW; lecture_echo = pulseInecho1, HIGH, timeout*1000; //timeout en micro seconde cm = lecture_echo / 58;

Serial.print "sonar 2 en cm: "; Serial.printlncm; delay1000;

sicm > 110 && cm < 150 {

strip.setPixelColor0, 0, 0, 0; strip.setPixelColor1, 0, 0, 0; strip.setPixelColor2, 0, 0, 0; strip.setPixelColor3, 0, 0, 0; strip.setPixelColor4, 0, 0, 0; strip.setPixelColor5, 0, 0, 0; strip.setPixelColor6, 0, 0, 0; strip.setPixelColor7, 0, 0, 0; strip.setPixelColor8, 0, 0, 255; strip.setPixelColor9, 0, 0, 0; strip.setPixelColor10, 0, 0, 0; strip.setPixelColor11, 0, 0, 0; strip.setPixelColor12, 0, 0, 255; strip.setPixelColor13, 0, 0, 0; strip.setPixelColor14, 0, 0, 0; strip.setPixelColor15, 0, 0, 0; strip.setPixelColor16, 0, 0, 0; strip.setPixelColor17, 0, 0, 0; strip.setPixelColor18, 0, 0, 0; strip.setPixelColor19, 0, 0, 0; strip.show;

monservo1.write30,10,true; myservo3.write170,50,true; delay500; }

sicm1 > 110 && cm1 < 150 {

strip.setPixelColor0, 0, 0, 0; strip.setPixelColor1, 0, 0, 0; strip.setPixelColor2, 0, 0, 0; strip.setPixelColor3, 0, 0, 0; strip.setPixelColor4, 0, 0, 0; strip.setPixelColor5, 0, 0, 0; strip.setPixelColor6, 0, 0, 0; strip.setPixelColor7, 0, 0, 0; strip.setPixelColor8, 0, 0, 255; strip.setPixelColor9, 0, 0, 0; strip.setPixelColor10, 0, 0, 0; strip.setPixelColor11, 0, 0, 0; strip.setPixelColor12, 0, 0, 255; strip.setPixelColor13, 0, 0, 0; strip.setPixelColor14, 0, 0, 0; strip.setPixelColor15, 0, 0, 0; strip.setPixelColor16, 0, 0, 0; strip.setPixelColor17, 0, 0, 0; strip.setPixelColor18, 0, 0, 0; strip.setPixelColor19, 0, 0, 0; strip.show;

monservo1.write150,10,true; myservo3.write10,50,true; delay500; }

sicm > 80 && cm < 110 {

strip.setPixelColor0, 0, 255, 208; strip.setPixelColor1, 0, 255, 208; strip.setPixelColor2, 0, 255, 208; strip.setPixelColor3, 0, 255, 208; strip.setPixelColor4, 0, 255, 208; strip.setPixelColor5, 0, 255, 208; strip.setPixelColor6, 0, 255, 208; strip.setPixelColor7, 0, 255, 208; strip.setPixelColor8, 0, 0, 255; strip.setPixelColor9, 0, 255, 208; strip.setPixelColor10, 0, 255, 208; strip.setPixelColor11, 0, 255, 208; strip.setPixelColor12, 0, 0, 255; strip.setPixelColor13, 0, 255, 208; strip.setPixelColor14, 0, 255, 208; strip.setPixelColor15, 0, 255, 208; strip.setPixelColor16, 0, 255, 208; strip.setPixelColor17, 0, 255, 208; strip.setPixelColor18, 0, 255, 208; strip.setPixelColor19, 0, 255, 208; strip.show;

monservo1.write50,20,true; myservo2.write130,20,true; myservo3.write130,20,true; delay500; myservo3.write50,20,true; monservo1.write130,20,true; myservo2.write50,20,true; delay500; myservo1.write50,20,true; myservo2.write130,20,true;myservo3.write130,20,true; delay500; myservo3.write50,20,true; myservo1.write130,20,true; myservo2.write50,20,true; delay500; } sicm1 > 80 && cm1 < 110 {

strip.setPixelColor0, 255, 173, 196; strip.setPixelColor1, 255, 173, 196; strip.setPixelColor2, 255, 173, 196; strip.setPixelColor3, 255, 173, 196; strip.setPixelColor4, 255, 173, 196; strip.setPixelColor5, 255, 173, 196; strip.setPixelColor6, 255, 173, 196; strip.setPixelColor7, 255, 173, 196; strip.setPixelColor8, 0, 0, 255; strip.setPixelColor9, 255, 173, 196; strip.setPixelColor10, 255, 173, 196; strip.setPixelColor11, 255, 173, 196; strip.setPixelColor12, 0, 0, 255; strip.setPixelColor13, 255, 173, 196; strip.setPixelColor14, 255, 173, 196; strip.setPixelColor15, 255, 173, 196; strip.setPixelColor16, 255, 173, 196; strip.setPixelColor17, 255, 173, 196; strip.setPixelColor18, 255, 173, 196; strip..setPixelColor19, 255, 173, 196; strip.show;

monservo1.write50,20,true; myservo2.write130,20,true; myservo3.write130,20,true; delay500; myservo3.write50,20,true; monservo1.write130,20,true; myservo2.write50,20,true; delay500; myservo1.write50,20,true; myservo2.write130,20,true;myservo3.write130,20,true; delay500; myservo3.write50,20,true; myservo1.write130,20,true; myservo2.write50,20,true; delay500; } ifcm > 55 && cm < 80 { strip.setPixelColor0, 229, 142, 13; strip.setPixelColor1, 229, 142, 13; strip.setPixelColor2, 229,142, 13; strip.setPixelColor3, 229, 142, 13; strip.setPixelColor4, 229, 142, 13; strip.setPixelColor5, 229, 142, 13; strip.setPixelColor6,229, 142, 13; strip.setPixelColor7, 229, 142, 13; strip.setPixelColor8, 0, 0, 255; strip.setPixelColor9, 229, 142, 13; strip.setPixelColor10, 229, 142, 13; strip.setPixelColor11, 229, 142, 13; strip.setPixelColor12, 0, 0, 255; strip.setPixelColor13, 229, 142, 13; strip.setPixelColor14, 229, 142, 13; strip.setPixelCouleur15, 229, 142, 13;strip.setPixelColor 16, 229, 142, 13;strip.setPixelColor17, 229, 142, 13;strip.setPixelColor18, 229, 142, 13;strip.setPixelColor 19, 229, 142, 13;

strip.show;

myservo3.write135,20,true; myservo3.write45,20,true; myservo3.write135,20,true; myservo3.write45,20,true;

} ifcm1 > 55 && cm1 < 80 { strip.setPixelColor0, 229, 142, 13; strip.setPixelColor1, 229, 142, 13; strip.setPixelColor2, 229, 142,13; strip.setPixelColor3, 229, 142, 13; strip.setPixelColor4, 229, 142, 13; strip.setPixelColor5, 229, 142, 13; strip.setPixelColor6, 229,142, 13; strip.setPixelColor7, 229, 142, 13; strip.setPixelColor8, 0, 0, 255; strip.setPixelColor9, 229, 142, 13; strip.setPixelColor10,229, 142, 13; strip.setPixelColor11, 229, 142, 13; strip.setPixelColor12, 0, 0, 255; strip.setPixelColor13, 229, 142, 13; strip.setPixelColor14, 229, 142, 13; strip.setPixelColor15, 229, 142, 13; strip.setPixelColor16, 229, 142, 13; strip.setPixelColor17, 229, 142, 13; strip.setPixelColor18, 229, 142, 13; strip.setPixelColor 19, 229, 142, 13;

strip.show;

myservo3.write45,20,true; myservo3.write135,20,true; myservo3.write45,20,true; myservo3.write135,20,true;

} sicm > 30 && cm < 55 {

strip.setPixelColor0, 255, 79, 16; strip.setPixelColor1, 255, 79, 16; strip.setPixelColor2, 255, 79, 16; strip.setPixelColor3, 255, 79, 16; strip.setPixelColor4, 255, 79, 16; strip.setPixelColor5,255, 79, 16; strip.setPixelColor6, 255, 79, 16; strip.setPixelColor7, 255, 79, 16; strip.setPixelColor8, 0, 0, 255; strip.setPixelColor9, 255, 79, 16; strip.setPixelColor10,255, 79, 16; strip.setPixelColor11,255, 79, 16; strip.setPixelColor12, 0, 0, 255; strip.setPixelColor13, 255, 79, 16; strip.setPixelColor14, 255, 79, 16; strip.setPixelColor15, 255, 79, 16; strip.setPixelColor16,255, 79, 16; strip.setPixelColor17, 255, 79, 16; strip.setPixelColor18, 255, 79, 16; strip.setPixelColor19, 255, 79, 16;

strip.show;

délai1000;

myservo1.write110,10,true; // déplacer le servo à 180, vitesse rapide, exécuter en arrière-plan // écrire degrés 0-180, vitesse 1-255, attendre pour terminer vrai-faux myservo2.write130,10,true; // déplacer le servo à 180, vitesse rapide, attendre la fin

délai1000; myservo3.write10,10,true;

délai1000; myservo3.write90,50,true;

délai1000; myservo3.write10,10,true;

délai1000; myservo3.write90,50,true; }

sicm1 > 30 && cm1 < 55 {

strip.setPixelColor0, 255, 79, 16; strip.setPixelColor1, 255, 79, 16; strip.setPixelColor2, 255, 79, 16; strip.setPixelColor3, 255, 79, 16; strip.setPixelColor4, 255, 79, 16; strip.setPixelColor5,255, 79, 16; strip.setPixelColor6, 255, 79, 16; strip.setPixelColor7, 255, 79, 16; strip.setPixelColor8, 0, 0, 255; strip.setPixelColor9, 255, 79, 16; strip.setPixelColor10,255, 79, 16; strip.setPixelColor11,255, 79, 16; strip.setPixelColor12, 0, 0, 255; strip.setPixelColor13, 255, 79, 16; strip.setPixelColor14, 255, 79, 16; strip.setPixelColor15, 255, 79, 16; strip.setPixelColor16,255, 79, 16; strip.setPixelColor17, 255, 79, 16; strip.setPixelColor18, 255, 79, 16; strip.setPixelColor19, 255, 79, 16;

strip.show;

délai1000;

myservo1.write70,10,true; // déplacer le servo à 180, vitesse rapide, exécuter en arrière-plan // écrire degrés 0-180, vitesse 1-255, attendre pour terminer vrai-faux myservo2.write50,10,true; // déplacer le servo à 180, vitesse rapide, attendre la fin

délai1000; myservo3.write170,10,true;

délai1000; myservo3.write90,50,true;

délai1000; myservo3.write170,10,true;

délai1000; myservo3.write90,50,true; }

sicm > 10 && cm < 30 {

strip.setPixelColor0, 255, 37, 0; strip.setPixelColor1, 255, 37, 0; strip.setPixelColor2, 255, 37, 0; strip.setPixelColor3, 255, 37, 0; strip.setPixelColor4, 255, 37, 0; strip.setPixelColor5, 255, 37, 0; strip.setPixelColor6, 255, 37, 0; strip.setPixelColor7, 255, 37, 0; strip.setPixelColor8, 255, 255, 255; strip.setPixelColor9, 255, 37, 0; strip.setPixelColor10, 255, 37, 0; strip.setPixelColor11, 255, 37, 0; strip.setPixelColor12, 255, 255, 255; strip.setPixelColor13, 255, 37, 0; strip.setPixelColor14, 255, 37, 0; strip.setPixelColor15, 255, 37, 0; strip.setPixelColor 16, 255, 37, 0; strip.setPixelColor 17, 255, 37, 0; strip.setPixelColor18, 255, 37, 0; strip.setPixelColor19, 255, 37, 0; strip.show;

retard2000;

myservo1.write150,30,true; // déplacer le servo à 180, vitesse rapide, exécuter en arrière-plan // écrire degrés 0-180, vitesse 1-255, attendre pour terminer vrai-faux myservo2.write150,30,true; // déplacer le servo à 180, vitesse rapide, attendre la fin myservo3.write90,30,true;

retard1000;

myservo2.write60,30,true; myservo3.write10,10,true; delay1000; myservo3.write160,50,true; myservo2.write150,30,true; myservo3.write90,40,true; delay2000; } ifcm1 > 10 && cm1 < 30 {

strip.setPixelColor0, 255, 37, 0; strip.setPixelColor1, 255, 37, 0; strip.setPixelColor2, 255, 37, 0; strip.setPixelColor3, 255, 37, 0; strip.setPixelColor4, 255, 37, 0; strip.setPixelColor5, 255, 37, 0; strip.setPixelColor6, 255, 37, 0; strip.setPixelColor7, 255, 37, 0; strip.setPixelColor8, 255, 255, 255; strip.setPixelColor9, 255, 37, 0; strip.setPixelColor10, 255, 37, 0; strip.setPixelColor11, 255, 37, 0; strip.setPixelColor12, 255, 255, 255; strip.setPixelColor13, 255, 37, 0; strip.setPixelColor14, 255, 37, 0; strip.setPixelColor15, 255, 37, 0; strip.setPixelColor 16, 255, 37, 0; strip.setPixelColor 17, 255, 37, 0; strip.setPixelColor18, 255, 37, 0; strip.setPixelColor19, 255, 37, 0; strip.show;

retard2000;

myservo1.write30,30,true; // déplacer le servo à 180, vitesse rapide, exécuter en arrière-plan // écrire degrés 0-180, vitesse 1-255, attendre pour terminer vrai-faux myservo2.write30,30,true; // déplacer le servo à 180, vitesse rapide, attendre la fin myservo3.write90,30,true;

retard1000;

myservo2.write120,30,true; myservo3.write170,10,true; delay1000; myservo3.write20,50,true; myservo2.write30,30,true; myservo3.write90,40,true; delay2000; }

sicm > 0 && cm < 10 {

strip.setPixelColor0, 255, 0, 0; strip.setPixelColor1, 255, 0, 0; strip.setPixelColor2, 255, 0, 0; strip.setPixelColor3, 255, 0, 0; strip.setPixelColor4, 255, 0, 0; strip.setPixelColor5,255, 0, 0; strip.setPixelColor6, 255, 0, 0; strip.setPixelColor7, 255, 0, 0; strip.setPixelColor8, 255, 255, 255; strip.setPixelColor9, 255, 255, 255; strip.setPixelColor10,255, 0, 0; strip.setPixelColor11,255, 255, 255; strip.setPixelColor12, 255, 255, 255; strip.setPixelColor13, 255, 0, 0; strip.setPixelColor14, 255, 0, 0; strip.setPixelColor15,255, 0, 0; strip.setPixelColor16, 255, 0, 0; strip.setPixelColor17, 255, 0, 0; strip.setPixelColor18, 255, 0, 0; strip.setPixelColor19, 255, 0, 0;

strip.show;

retard2000;

myservo1.write140,30,true; // déplacer le servo à 180, vitesse rapide, exécuter en arrière-plan // écrire degrés 0-180, vitesse 1-255, attendre pour terminer vrai-faux myservo2.write40,30,true; // déplacer le servo à 180, vitesse rapide, attendre la fin myservo3.write160,30,true; myservo1.write140,30,true; // déplacer le servo à180, vitesse rapide, exécuter en arrière-plan myservo1.write40,30,true; // écriture degrés 0-180, vitesse 1-255, attendre pour terminer true-false myservo2.write160,30,true;// déplace le servo à 180, vitesse rapide, attends la fin myservo3.write40,30,true; }

sicm1 > 0 && cm1 < 10 {

strip.setPixelColor0, 0, 0, 0; strip.setPixelColor1, 255, 255, 255; strip.setPixelColor2, 255, 255, 255; strip.setPixelColor3, 0, 0, 0; strip.setPixelColor4, 0, 0, 0; strip.setPixelColor5,255, 255, 255; strip.setPixelColor6, 255, 255, 255; strip.setPixelColor7, 255, 255, 255; strip.setPixelColor8, 0, 0,0; strip.setPixelColor9, 255, 255, 255; strip.setPixelColor10,0,0,0; strip.setPixelColor11,255, 255, 255; strip.setPixelColor12, 0, 0, 0; strip.setPixelColor13, 255, 255, 255; strip.setPixelColor14, 255, 255, 255; strip.setPixelColor15,255, 255, 255; strip.setPixelColor16, 0, 0, 0; strip.setPixelColor17, 0, 0, 0; strip.setPixelColor18, 255, 255, 255; strip.setPixelColor19, 255, 255, 255 ;

strip.show;

retard2000;

// déplace le servo à 180, vitesse rapide, attends la fin myservo3.write160,60,true; myservo3.write20,60,true; myservo3.write160,60,true; myservo3.write20,60,true; myservo1.write50,10,true; // déplacer le servo à 180, vitesse rapide, exécuter en arrière-plan myservo3.write160,60,true; myservo3.write20,60,vrai; monservo3.write160,60,true; myservo3.write20,60,true; myservo1.write130,10,true; myservo3.write160,60,true;myservo3.write20,60,true; myservo3.write160,60,true; myservo3.write20,60,true; } else { // strip.begin; strip.setPixelColor0,45, 126, 6; strip.setPixelColor1, 45, 126, 6; strip.setPixelColor2, 45, 126, 6; strip.setPixelColor3, 45, 126, 6; strip.setPixelColor4, 45, 126, 6; strip.setPixelColor5, 45, 126, 6; strip.setPixelColor6, 45, 126, 6; strip.setPixelColor7, 45, 126, 6; strip.setPixelColor 8, 0, 0, 255; strip.setPixelColor 9, 45, 126, 6; strip.setPixelColor 10, 45, 126, 6; strip.setPixelColor11, 45, 126, 6;strip.setPixelColor12, 0, 0, 255;strip.setPixelColor13, 45, 126, 6;strip.setPixelColor14, 45, 126, 6;strip.setPixelColor15, 45, 126, 6;strip.setPixelColor 16, 45, 126, 6;strip.setPixelColor17, 45, 126, 6;strip.setPixelColor18, 45, 126, 6;strip.setPixelColor 19, 45, 126, 6;

strip.show;

myservo1.write75,10,true; // déplacer le servo à 180, vitesse lente, exécuter en arrière-plan myservo2.write90,10,true; myservo3.write90,10,true;

} }

''

Deuxième prix dans le
Concours de robotique

Soyez le premier à partager

    Recommandations

    • Défi d'art comestible

    • Défi Cachez-le

    • Défi de vitesse des petites choses

    9 commentaires

    0
    ertpecs

    il y a 1 an

    Froid

    0
    kenyer

    il y a 1 an

    Gaaf om een ​​"de Waag" project in de robot-finale te zien. :

    0
    Groning sauvage

    Répondre il y a 1 an

    Dank je wel. Eindresultaat van de fabacademy die ik het het fablab Waag heb gevolgd. Toffe dingen maak je overigens!

    0
    mstasiak

    il y a 1 an

    C'est tellement génial.

    0
    Groning sauvage

    Répondre il y a 1 an

    Merci. Ravi d'entendre.

    Super idée ! Bravo et merci de l'avoir partagée :-
    Maintenant en faire une "curieuse" comme la lampe Pixar ;-

    0
    Groning sauvage

    Répondre il y a 1 an

    Merci. Il y a une superbe lumière Pixar disponible mais la curiosité est toujours bonne.