Passerelle.infini: Totem : Différence entre versions

De Les Fabriques du Ponant
Aller à : navigation, rechercher
(Les créatures)
(nénuphar)
Ligne 269 : Ligne 269 :
 
===La Goule à facette===
 
===La Goule à facette===
  
===nénuphar===
+
===Nénuphar===
 +
 
 +
https://www.thingiverse.com/thing:1805365
  
 
==Sources==
 
==Sources==

Version du 26 février 2022 à 19:09

Les petites créatures sensorielles

L'historique

L'idée est de réaliser des petites créatures sensorielles en utilisant les sens. En premier abord, la vue et le toucher !

HackathonPasserelleTotem.jpg

Recherche de surprises, d'inattendu et de fun. L'objet va produire quelque chose de nouveau quand il sera manipulé. Un jeu de manipulation d'objets: seul mais aussi plusieurs objets assemblés.

En bref des créatures vivantes qui nous emportent dans le monde de nos sens.

Les objectifs

Découvrir ou redécouvrir un langage, avec nos sens. Pouvoir manipuler les objets (se donner le droit) Créer tout seul ou à plusieurs. Apporter de la vie, du fun

Le public

Tous le monde est concerné, des enfants aux séniors, chacun peut découvrir de nouvelles expériences en accueillant ses émotions. Les familles ou les structures d'accueil pourront utiliser ces oeuvres.

Les créatures

cube

TOUFFU

Code TOUFFU

  1  
  2 ///////////////
  3 //  TOUFFU   //
  4 ///////////////
  5 // TOUFFU est une créature réalisée dans le cadre du hackathon "Passerelle.infini" les 24 & 25 février 2022.
  6 // Le hackathon "Passerelle.infini" est organisé par le Centre d'Art Passerelle, Les petits débrouillards.
  7 // Avec la participation de Tyfenn Leluc - designeuse et Thibault Beugin formateur.
  8 
  9 // Ce programme est inspiré du petit bot, un programme pédagogique 
 10 // des petits débrouillards ?=+ pour gérer le robot "Petit Bot" 
 11 // Voir sur http://wikidebrouillard.org/index.php?title=Petit_Bot_un_robot_controlable_en_Wifi
 12 // Ce programme est inspire de : http://www.esp8266.com/viewtopic.php?f=29&t=6419#sthash.gd1tJhwU.dpuf
 13 // Sous licence CC-By-Sa - Les petits débrouillards.
 14 
 15 ////////////////////////////////////////////////////////////////////////////////
 16 //                           /!\   ATTENTION   /!\                            //
 17 //        Le code n'est pas terminé, il faut ajouter la gestion du HC-SR04    //
 18 //                                                                            //
 19 ////////////////////////////////////////////////////////////////////////////////
 20 /*
 21  *                                      D1 mini
 22                                      BROCHAGE                            
 23                                 _________________                        
 24                                /     D1 mini     \                       
 25                               |[ ]RST        TX[ ]|                   
 26                               |[ ]A0  -GPIO  RX[ ]|                    
 27                 TRIG  HC-SR04 |[X]D0-16    5-D1[X]| SCL - servogauche                  
 28                 ECHO  HC-SR04 |[X]D5-14    4-D2[X]| SDA - servodroit               
 29                               |[ ]D6-12    0-D3[ ]|               
 30                               |[ ]D7-13    2-D4[ ]| LED_BUILTIN          
 31                               |[ ]D8-15     GND[X]|             
 32                               |[ ]3V3 .      5V[X]|          
 33                               |       +---+       |                     
 34                               |_______|USB|_______|   
 35 
 36                             _________________________
 37                            |   ___     (__)    ___   |
 38                            | //   \\ HC-SR04 //   \\ |
 39                            ||(     )|       |(     )||
 40                            | \\___//         \\___// |
 41                            |    VCC TRIG ECHO GND    |
 42                            |------[X][X][X][X]-------|   
 43                                       |  |
 44                                      D0  D5
 45 
 46 Matériel :
 47 - des fils dupont.
 48 - un shield petit bot
 49 - un Wemos D1 mini
 50 - 2 servo à rotation continue
 51 - un capteur de distance HC-SR04
 52 - un shield batterie 18650
 53 - une batterie 18650
 54 - un cable USB
 55 
 56 Schéma de l'Arduino en ASCII-ART CC-By http://busyducks.com/ascii-art-arduinos
 57 Sous licence CC-By-Sa (http://creativecommons.org/licenses/by-nc-sa/3.0/)
 58 */
 59 /*
 60    ___
 61  / ___ \
 62 |_|   | |
 63      /_/ 
 64      _   ___   _ 
 65     |_| |___|_| |_
 66          ___|_   _|
 67         |___| |_|
 68 Les petits Débrouillards - CC-By-Sa http://creativecommons.org/licenses/by-nc-sa/3.0/
 69 Antony Le Goïc-Auffret 25 février 2022
 70 */
 71 
 72 // on appelle la bibliothèque qui gère le Wemos D1 mini
 73 #include <ESP8266WiFi.h> 
 74 
 75 // Gestion du Wifi
 76 #include <ESP8266WebServer.h>
 77 #include <DNSServer.h>
 78 #include <ESP8266mDNS.h>
 79 #include <WiFiClient.h> 
 80 
 81 //  Definition du WiFi 
 82 const char *nomDuReseau = "TOUFFU";     // Nom du réseau wifi du petit bot
 83 const char *motDePasse = "";    // Mot de passe du réseau wifi du petit bot
 84 // ATTENTION - le mot de passe doit faire soit 0 caractères soit 8 ou plus sinon
 85 // La configuration de votre réseau wifi ne se fera pas (ni mot de passe, ni nom de réseau !).
 86 //création du monServeur
 87 ESP8266WebServer monServeur(80);               // Création de l'objet monServeur
 88 
 89 //Gestion des servomoteurs
 90 #include <Servo.h>   //appel de la bibliothèque qui gère les servomoteurs
 91 // création des servomoteurs 
 92 Servo servogauche;   // Nom du servo qui gère la première roue
 93 Servo servodroit;    // Seconde roue
 94 
 95 //déclaration des Variables
 96 //int --- en cours 
 97 int val = -1; // Val nous sert à stocker la commande de l'utilisateur (stop, avance, ...).
 98 
 99 void setup(){
100   delay(1000);
101   Serial.begin(9600); // Ouvre une connexion série pour monitorer le fonctionnement du code quand on reste branché a l'ordinateur
102   Serial.println();
103   Serial.println();  
104   configDuWifi();
105   servodroit.detach();  // Place les servos hors tension
106   servogauche.detach(); 
107   pinMode(LED_BUILTIN, OUTPUT);    //met la led du Wemos en sortie
108   digitalWrite(LED_BUILTIN, LOW);  //met la led du Wemos sur le niveau bas ce qui l'allume.
109 }
110 
111 void loop(){
112     val = -1;
113     monServeur.handleClient();
114 }
115 
116 ///////////////////////GESTION DES INSTRUCTIONS///////////////////////////
117 void GestionDesClics() {
118   monServeur.on("/avance", HTTP_GET, []() {
119   val = 1;
120   Serial.println("avance");    
121   redactionPageWeb();
122   });
123 
124   monServeur.on("/recule", HTTP_GET, []() {
125   val = 2;
126   Serial.println("recule");
127   redactionPageWeb();
128   });
129 
130   monServeur.on("/droite", HTTP_GET, []() {
131   val = 4;
132   Serial.println("droite");
133   redactionPageWeb();
134   });
135   
136   monServeur.on("/gauche", HTTP_GET, []() {
137   val = 3;
138   Serial.println("gauche");
139   redactionPageWeb();
140   });
141 
142   monServeur.on("/stop", HTTP_GET, []() {
143   val = 0;
144   Serial.println("stop");
145   redactionPageWeb();
146   });
147   
148   monServeur.on("/", HTTP_GET, []() {
149   val = -1;
150   redactionPageWeb();
151   });
152 
153 }
154 
155 ///////////////////////////LA PAGE WEB DE CONROLE DU PETIT BOT/////////////////////////////////////////
156 void redactionPageWeb(){
157   // Prépare la page web de réponse (le code HTML sera écrit dans la chaine de caractère "pageWeb").
158   String pageWeb = "<!DOCTYPE HTML>\r\n";
159   pageWeb += "<html>\r\n";
160   pageWeb += "<center>";    //On ouvre la balise qui va centrer les boutons
161   pageWeb += "<h1 style=\"font-size:300%;\"\> Le petit bot ";
162   pageWeb += "<style type=\"text/css\">  body { color: #212121; background-color: #CC0C59 } </style>";
163 
164   // On finalise l'écriture de la page Web et on donne les instructions aux servos
165   pageWeb += instruction(val); // pour cela on appelle la fonction "instruction"
166 
167   // On termine l'écriture de la page Web
168   pageWeb += "</h1>";
169   pageWeb += "<br>"; //aller à la ligne
170   pageWeb += "<br>"; //aller à la ligne
171   pageWeb += "<a href=\"/stop\"\"><button style=\"font-size:200%; width: 18%; background-color:#0CCC16; border-radius: 12px\"\>Stop </button></a>\r\n";      // créer un bouton "Stop", qui envoie sur l'URL /stop
172   pageWeb += "<a href=\"/avance\"\"><button style=\"font-size:200%; width: 18%; background-color:#0CCC16; border-radius: 12px\"\>Avance </button></a>\r\n";  // créer un bouton "Avance"...
173   pageWeb += "<a href=\"/recule\"\"><button style=\"font-size:200%; width: 18%; background-color:#0CCC16; border-radius: 12px\"\>Recule </button></a>\r\n";
174   pageWeb += "<a href=\"/droite\"\"><button style=\"font-size:200%; width: 18%; background-color:#0CCC16; border-radius: 12px\"\>Droite </button></a>\r\n";
175   pageWeb += "<a href=\"/gauche\"\"><button style=\"font-size:200%; width: 18%; background-color:#0CCC16; border-radius: 12px\"\>Gauche </button></a><br />\r\n";
176   pageWeb += "</center>"; // tout est centré sur la page
177   pageWeb += "</html>\n"; //Fin de la page Web
178 
179   // On envoie la page web
180   monServeur.send(200, "text/html", pageWeb);
181   delay(1);
182 }
183 
184 ///////////////////INSTRUCTIONS/////////////////////////////////////////////////////////
185 String instruction(int valeur){ //Cette fonction traite les instructions qui sont reçues
186   int gauche;                           // Variable dont la valeur 180 ou 0 fera tourner le servo gauche dans un sens ou l'autre
187   int droite;                           // Idem pour le servo droit
188   String completePage;                  // Déclaration de la chaine de caractère qui sera renvoyée par cette fonction pour compléter la page web 
189   switch(valeur){                       // En fonction de la variable valeur on va donner un ordre aux servos 
190     case 0 :                            // et un texte à la chaine de caractère "completePage"
191     completePage = " est a l&rsquo;arr&ecirc;t ";
192     droite = 90;
193     gauche = 90;
194     break;
195     case 1 :
196     completePage = " avance ";
197     droite = 180;
198     gauche = 0;
199     break;
200     case 2 :
201     completePage = " recule ";
202     droite = 0;
203     gauche = 180;
204     break;
205     case 3 :
206     completePage = " tourne a gauche ";
207     droite = 180;
208     gauche = 180;
209     break;
210     case 4 :
211     completePage = " tourne a droite ";
212     droite = 0;
213     gauche = 0;
214     break;
215     // que faire du cas ou val = -1 ? marquer ici ce qui doit être fait.
216   }
217   servogauche.attach(5);     // Broche D1
218   servodroit.attach(4);      // Broche D2
219   servogauche.write(gauche); 
220   servodroit.write(droite);
221   return completePage;        // on renvoie la chaine de caractère pour compléter la page web
222 }
223 ////////////////////////CONFIGURATION WIFI///////////////////////////////////////////////
224 void configDuWifi(){  // Fonction de configuratio du Wifi
225   WiFi.mode(WIFI_AP); // le wemos est en mode "Point d'Accès" (il déploie un réseau wifi)
226   WiFi.softAP(nomDuReseau, motDePasse, 2); // on démarre le "Point d'Accès".
227   MDNS.begin(nomDuReseau);                 // gérer les DNS ce qui rendra votre petit bot accessible
228   MDNS.addService("http", "tcp", 80);      // via http://nomDuReseau.local
229   IPAddress monIP = WiFi.softAPIP();       // on récupère l'adresse IP du petit Bot
230   Serial.print("Adresse IP de ce Point d'Accès : ");
231   Serial.println(monIP);                   // on l'écrit sur le moniteur série
232   GestionDesClics();
233   monServeur.begin();                      //Démarrage du monServeur
234   Serial.println("Serveur HTTP démarré");
235   return;                                  // on retourne à l'endroit ou la fonction a été appelée.
236 }

La Goule à facette

Nénuphar

https://www.thingiverse.com/thing:1805365

Sources

pour la fleur : https://www.instructables.com/Blooming-Marvelous-Flower-Lamp/

Catégories