POCL : Poke : Différence entre versions
(→Prototype réalisés) |
|||
Ligne 16 : | Ligne 16 : | ||
* Le deuxième prototype consiste en du bois découpé au laser pour remplacer le carton et mieux emprisonner le papier. Cette deuxième génération donnera la forme générale quasiment finale. | * Le deuxième prototype consiste en du bois découpé au laser pour remplacer le carton et mieux emprisonner le papier. Cette deuxième génération donnera la forme générale quasiment finale. | ||
* Le troisième prototype a intégré un bouton dans la structure d'un couvercle pour pouvoir interagir réellement avec les autres POCL. | * Le troisième prototype a intégré un bouton dans la structure d'un couvercle pour pouvoir interagir réellement avec les autres POCL. | ||
− | * Le quatrième et dernier prototype s'est vu | + | * Le quatrième et dernier prototype s'est vu octroyer trois boutons supplémentaires pour pouvoir envoyer plus de "pokous", ainsi que d'un "maintien d'élégance" pour permettre aux fils d'en sortir sans détériorer le papier sur la durée. |
− | === | + | ===Fabrication d'un POCL: Poke=== |
La construction d'un POCL: Poke se fera sur la base du prototype le plus à jour, c'est-à-dire le quatrième. | La construction d'un POCL: Poke se fera sur la base du prototype le plus à jour, c'est-à-dire le quatrième. | ||
Attention, les photos du montage proviennent du deuxième et du troisième prototypes | Attention, les photos du montage proviennent du deuxième et du troisième prototypes | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
====Matériel==== | ====Matériel==== | ||
* 1 D1 Mini | * 1 D1 Mini | ||
* 1 Ruban de LED ou autre objet au choix permettant un stimulus sensoriel pour l'utilisateur | * 1 Ruban de LED ou autre objet au choix permettant un stimulus sensoriel pour l'utilisateur | ||
− | * | + | * 4 Boutons poussoir |
* Fils conducteurs | * Fils conducteurs | ||
* Découpeuse laser | * Découpeuse laser | ||
Ligne 36 : | Ligne 30 : | ||
* Papier fin (des feuilles A4 font parfaitement l'affaire) | * Papier fin (des feuilles A4 font parfaitement l'affaire) | ||
* Colle à bois (optionnel) | * Colle à bois (optionnel) | ||
+ | * Connexion internet | ||
+ | * Ciseaux | ||
+ | ====Assemblage de la boite==== | ||
+ | =====Prélude===== | ||
+ | La boîte est un cylindre dont le matériau laisse passer la lumière de façon diffuse comme le papier. | ||
+ | Les extrémités du cylindre sont faites de bois découpé au laser afin de renforcer la structure. Le carton peut le remplacer si besoin. | ||
+ | Pour une meilleure apparence finale, les gravures des pièces doivent être orientées vers l'extérieur de l'objet. | ||
+ | Découper au préalable les pièces à la découpeuse laser | ||
+ | =====Étape 1===== | ||
+ | Prendre l'anneau troué, et enfoncer dedans les piliers dédiés, le côté épais orienté vers l'intérieur de la pièce | ||
+ | (Photo) | ||
+ | =====Étape 2===== | ||
+ | Découper le papier en bandes larges de 6 cm et longues de 28 cm (27.4 cm pour une feuille A4) et l'enrouler autour de l'ossature précédemment créée. | ||
+ | Un chevauchement des deux bouts est attendu, et utile pour la suite | ||
+ | (Photo) | ||
+ | =====Étape 3===== | ||
+ | Insérer les deux anneaux de renforts (les plus grands et fins) autour du papier afin de le pincer avec l'ossature. Les garder à un tier de la distance de chaque bord pour l'instant. | ||
+ | (Photo) | ||
+ | =====Étape 4===== | ||
+ | Insérer le disque troué sur les piliers pour entièrement bloquer le papier et fermer le cylindre d'un côté. | ||
+ | Il s'agit de l'étape la plus délicate du montage, prendre son temps et y aller par petits pas est vivement recommandé. | ||
+ | Note: la photo montre un anneau troué, mais la pièce est bien pleine dans le plan. | ||
+ | Note: Il est conseillé pour des raisons de simplification de la tâche d'insérer préalablement les boutons poussoir dans les 4 trous centraux et de les raccorder à des fils pour faciliter les connexions futures. | ||
+ | (Photo) | ||
+ | |||
+ | ====Électronique==== | ||
====MQTT==== | ====MQTT==== | ||
L'interaction entre les POCL passe par un serveur MQTT (Message Queuing Telemetry Transport) | L'interaction entre les POCL passe par un serveur MQTT (Message Queuing Telemetry Transport) |
Version du 11 décembre 2021 à 00:18
Sommaire
Résumé du Projet
Le POCL communautaire.
Ce POCL est interactif, on peut agir sur lui :
- tapoter
- appuyer
...
Le projet a été réalisé par Alma, Wing-Anh, Tony, Antony, Gaelle
Il envoie un message à la communauté de ses homomorphes, qui réagissent par une ou des actions perceptibles par leurs possesseurs (signal lumineux, vibration etc...)
Prototype réalisés
4 prototypes différents ont été réalisés, chacun apportant une évolution/modification supplémentaire.
- Le premier prototype est fait, en plus de l'électronique, de carton et de papier.
- Le deuxième prototype consiste en du bois découpé au laser pour remplacer le carton et mieux emprisonner le papier. Cette deuxième génération donnera la forme générale quasiment finale.
- Le troisième prototype a intégré un bouton dans la structure d'un couvercle pour pouvoir interagir réellement avec les autres POCL.
- Le quatrième et dernier prototype s'est vu octroyer trois boutons supplémentaires pour pouvoir envoyer plus de "pokous", ainsi que d'un "maintien d'élégance" pour permettre aux fils d'en sortir sans détériorer le papier sur la durée.
Fabrication d'un POCL: Poke
La construction d'un POCL: Poke se fera sur la base du prototype le plus à jour, c'est-à-dire le quatrième. Attention, les photos du montage proviennent du deuxième et du troisième prototypes
Matériel
- 1 D1 Mini
- 1 Ruban de LED ou autre objet au choix permettant un stimulus sensoriel pour l'utilisateur
- 4 Boutons poussoir
- Fils conducteurs
- Découpeuse laser
- Planches de bois de 5mm d'épaisseur (ou carton facile à découper)
- Papier fin (des feuilles A4 font parfaitement l'affaire)
- Colle à bois (optionnel)
- Connexion internet
- Ciseaux
Assemblage de la boite
Prélude
La boîte est un cylindre dont le matériau laisse passer la lumière de façon diffuse comme le papier. Les extrémités du cylindre sont faites de bois découpé au laser afin de renforcer la structure. Le carton peut le remplacer si besoin. Pour une meilleure apparence finale, les gravures des pièces doivent être orientées vers l'extérieur de l'objet. Découper au préalable les pièces à la découpeuse laser
Étape 1
Prendre l'anneau troué, et enfoncer dedans les piliers dédiés, le côté épais orienté vers l'intérieur de la pièce (Photo)
Étape 2
Découper le papier en bandes larges de 6 cm et longues de 28 cm (27.4 cm pour une feuille A4) et l'enrouler autour de l'ossature précédemment créée. Un chevauchement des deux bouts est attendu, et utile pour la suite (Photo)
Étape 3
Insérer les deux anneaux de renforts (les plus grands et fins) autour du papier afin de le pincer avec l'ossature. Les garder à un tier de la distance de chaque bord pour l'instant. (Photo)
Étape 4
Insérer le disque troué sur les piliers pour entièrement bloquer le papier et fermer le cylindre d'un côté. Il s'agit de l'étape la plus délicate du montage, prendre son temps et y aller par petits pas est vivement recommandé. Note: la photo montre un anneau troué, mais la pièce est bien pleine dans le plan. Note: Il est conseillé pour des raisons de simplification de la tâche d'insérer préalablement les boutons poussoir dans les 4 trous centraux et de les raccorder à des fils pour faciliter les connexions futures. (Photo)
Électronique
MQTT
L'interaction entre les POCL passe par un serveur MQTT (Message Queuing Telemetry Transport)
- Service proposé par https://cloud.shiftr.io/welcome
- voir MQTT
Montage
Découpe du bois
Découpe papier
Arduino
///////////////////////// // POCL Poke // ///////////////////////// /* * Un POCL imaginé et réalisé au Hackathon POCL à l'édulab Rennes 2 les 9 et 10 décembre 2021. * * BROCHAGE _________________ / D1 mini \ - |[ ]RST TX[ ]| - - |[ ]A0 -GPIO RX[ ]| - |[ ]D0-16 5-D1[ ]| - |[ ]D5-14 4-D2[ ]| - Bouton - |[X]D6-12 0-D3[X]| - ruban de leds - |[ ]D7-13 2-D4[ ]| LED_BUILTIN - |[ ]D8-15 GND[X]| - GND (Bouton, MP3-TF-16P) - |[ ]3V3 . 5V[X]| - ruban de Led | +---+ | |_______|USB|_______| Matériel : - des fils dupont. - un ruban de led RGB WS28B12 - D1 mini (Wemos, LOLIN,...) - bouton poussoir - une alimentation 5V */ /* * Un travail d'équipe de : * Alma Oskouei * Gaëlle Bescond * Tony Vanpoucke * Wing-Anh Luy * Antony Le Goïc-Auffret ___ / ___ \ |_| | | /_/ _ ___ _ |_| |___|_| |_ ___|_ _| |___| |_| Les petits Débrouillards - décembre 2021 CC-By-Sa http://creativecommons.org/licenses/by-nc-sa/3.0/ // Programme inspiré de celui par Joël Gähwiler // https://github.com/256dpi/arduino-mqtt */ #include <ConditionalPrinter.h> #include <EncryptedConnectionData.h> #include <EncryptedConnectionLog.h> #include <ESP8266WiFiMesh.h> #include <EspnowConnectionManager.h> #include <EspnowDatabase.h> #include <EspnowEncryptionBroker.h> #include <EspnowMeshBackend.h> #include <EspnowNetworkInfo.h> #include <EspnowProtocolInterpreter.h> #include <EspnowTransmitter.h> #include <ExpiringTimeTracker.h> #include <FloodingMesh.h> #include <HeapMonitor.h> #include <JsonTranslator.h> #include <MeshBackendBase.h> #include <MeshCryptoInterface.h> #include <MessageData.h> #include <MutexTracker.h> #include <NetworkInfo.h> #include <NetworkInfoBase.h> #include <PeerRequestLog.h> #include <RequestData.h> #include <ResponseData.h> #include <Serializer.h> #include <TcpIpMeshBackend.h> #include <TcpIpNetworkInfo.h> #include <TimeTracker.h> #include <TransmissionOutcome.h> #include <TransmissionResult.h> #include <TypeConversionFunctions.h> #include <UtilityFunctions.h> #include <ESP8266WiFi.h> #include <MQTT.h> #include <Adafruit_NeoPixel.h> const char ssid[] = "iPhone de Antony"; const char pass[] = "12345678"; WiFiClient net; MQTTClient client; unsigned long lastMillis = 0; //=============élément pour le ruban de led et le bouton=============== // Broche de connexion du ruban de LED #define PIN D3 // int brocheBouton = 12; //GPIO de la broche D6 // Nombre de Led RDGB dans votre ruban #define NUMPIXELS 13 // on configurer un riban nommé "pixels" Adafruit_NeoPixel pixels(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800); #define T 1 // temps pour gérer le fade du ruban //============================================================== void connect() { Serial.print("checking wifi..."); while (WiFi.status() != WL_CONNECTED) { Serial.print("."); delay(1000); } Serial.print("\nconnecting..."); //connection au serveur MQTT : identifiant, canal, mot de passe while (!client.connect("GAWELLE", "pocl21", "BauhTg9l28jam1lR")) { Serial.print("."); delay(1000); } Serial.println("\nconnected!"); // on s'abonne au sujet (topic) "Poke" client.subscribe("/Poke"); // client.unsubscribe("/hello"); } void messageReceived(String &topic, String &payload) { digitalWrite(LED_BUILTIN, HIGH); fade(); Serial.println("incoming: " + topic + " - " + payload); if (payload == "pokou"){ Serial.println("clic !"); digitalWrite(LED_BUILTIN, LOW); delay(100); digitalWrite(LED_BUILTIN, HIGH); } // Note: Do not use the client in the callback to publish, subscribe or // unsubscribe as it may cause deadlocks when other things arrive while // sending and receiving acknowledgments. Instead, change a global variable, // or push to a queue and handle it in the loop after calling `client.loop()`. } void fade() { for (int sig=0; sig<3; sig++){ for (int b=0; b<255; b++){ pixels.setBrightness(b); for(int i=0; i<NUMPIXELS; i++) { pixels.setPixelColor(i, pixels.Color(150, b, 200)); } pixels.show(); // On allume les rubans delay(T); } for (int b=255; b>1; b--){ //boucle de gestion de la brillance pixels.setBrightness(b); // n'oubliez pas que le premier pixel porte le Numéro 0 for(int i=0; i<NUMPIXELS; i++) { // Pour chaque pixel... // pixels.Color() prends les valeurs RGB de 0,0,0 jusqu'à 255,255,255 pixels.setPixelColor(i, pixels.Color(b, 100, 100)); } pixels.show(); // on affiche les pixels delay(T); } } } void setup() { Serial.begin(115200); pixels.begin(); //on initialise le ruban "pixels" pinMode(brocheBouton,INPUT_PULLUP); pinMode(LED_BUILTIN, OUTPUT); digitalWrite(LED_BUILTIN, HIGH); WiFi.begin(ssid, pass); // on se connecte au client client.begin("pocl21.cloud.shiftr.io", net); client.onMessage(messageReceived); connect(); } void loop() { pixels.clear(); // Set all pixel colors to 'off' pixels.show(); client.loop(); delay(10); // <- fixes some issues with WiFi stability if (!client.connected()) { connect(); } // publish a message roughly every second. if ( digitalRead(brocheBouton) == LOW ){ Serial.println("Appuis Bouton"); client.publish("/Poke", "pokou"); delay(250); } }
premier diaporama : Alors ? Comment ça se passe ?
Diaporama type Alors ?: Téléchargez et adaptez-le !
second diaporama : Et voilà !
Diaporama type Et Voilà ! : Téléchargez et adaptez-le !