Attribut:Step Content

This is a property of type Text.

Affichage de 20 pages utilisant cette propriété.
A
Le Makey-makey va nous permettre de transformer notre affiche en “clavier”. Les “touches” de notre affiche seront reliées au Makey makey et permettront de déclencher des évènements (son, lumière, affichage écran…). Pour cet exemple nous choisissons de travailler uniquement avec les touches haut, bas, droite, gauche. Ici elles ne serviront pas à se déplacer mais à déclencher un évènement. Pour que l'évènement puisse se déclencher il faut être en contact à la fois avec la “terre” (ground ou masse) et la touche utilisée (par exemple la touche haut, droite, bas ou gauche…).  +, Réaliser un code sur le logiciel scratch pour mettre en place l'interaction.   +, Une fois le code réaliser : • Prendre le makey-makey le brancher sur la prise universelle et l'usb de l'ordinateur • Brancher une pince crocodile sur votre bande de cuivre terre • En branche une autre sur votre "touche" "Flèche haut" et faite de même pour la touche "flèche bas"  +,
Vous pouvez essayer de faire fonctionner l'écran avec les '''exemples disponibles''' dans tft_eSPI ou '''utiliser mon code''' pour afficher une image.  +, Dans mon code (https://github.com/maditnerd/st7789_bitmap), l'image est sauvegardée dans '''bitmap.h'''. Pour pouvoir afficher une image, Il nous faut la '''convertir en code''' et le '''copier''' dans un '''tableau.''' Pour cela, nous allons utiliser '''LCD image converter''', vous pouvez trouver ce programme ici: https://sourceforge.net/projects/lcd-image-converter/ *'''Redimensionner''' l'image à la taille de votre écran (240x240) *Cliquer sur '''New Image''' *Aller sur '''Image / Import''' et sélectionner votre image *Aller dans '''Options / Conversion''' *Choisissez le '''Preset''' : '''Color R5G6B5''' *Aller dans l'onglet '''Image''' *Changer '''Block Size''' à '''16bit''' *Cliquer sur '''Show Preview''' *Copier le code *Copier-coller le '''dans le tableau''' <code>const uint16_t mercy [] PROGMEM = {// --> PASTE HERE}; </code> Et voilà, téléverser le code et vous devriez voir l'image s'affichait sur l'écran. Note: Il y a un exemple dans TFT_eSPI pour décoder des fichiers JPEG ('''128x128/TFT_flash_jpg'''), l'affichage est plus lent, mais cela permet de ne pas avoir à faire de conversion.<br/>  +, Vous pouvez trouver les fichiers STL ici : https://www.thingiverse.com/thing:3509423 ''Merci à Olivier Sarrailh pour le boitier''. *Afin de réduire au plus la taille, j'ai retiré les broches de l'écran. *Je l'ai est remplacé par du '''Wrapping Cable 30 AWG''' *Après ça j'ai soudé l'écran à mon clone de wemos mini pro *Ensuite, j'ai ajouté du '''ruban électrique''' pour éviter les '''courts-circuits''' *Pour finir, j'ai '''imprimé le boitier'''  +,
Vous pouvez essayer de faire fonctionner l'écran avec les '''exemples disponibles''' dans tft_eSPI ou '''utiliser mon code''' pour afficher une image.  +, Dans mon code (https://github.com/maditnerd/st7789_bitmap), l'image est sauvegardée dans '''bitmap.h'''. Pour pouvoir afficher une image, Il nous faut la '''convertir en code''' et le '''copier''' dans un '''tableau.''' Pour cela, nous allons utiliser '''LCD image converter''', vous pouvez trouver ce programme ici: https://sourceforge.net/projects/lcd-image-converter/ *'''Redimensionner''' l'image à la taille de votre écran (240x240) *Cliquer sur '''New Image''' *Aller sur '''Image / Import''' et sélectionner votre image *Aller dans '''Options / Conversion''' *Choisissez le '''Preset''' : '''Color R5G6B5''' *Aller dans l'onglet '''Image''' *Changer '''Block Size''' à '''16bit''' *Cliquer sur '''Show Preview''' *Copier le code *Copier-coller le '''dans le tableau''' <code>const uint16_t mercy [] PROGMEM = {// --> PASTE HERE}; </code> Et voilà, téléverser le code et vous devriez voir l'image s'affichait sur l'écran. Note: Il y a un exemple dans TFT_eSPI pour décoder des fichiers JPEG ('''128x128/TFT_flash_jpg'''), l'affichage est plus lent, mais cela permet de ne pas avoir à faire de conversion.<br/>  +, Vous pouvez trouver les fichiers STL ici : https://www.thingiverse.com/thing:3509423 ''Merci à Olivier Sarrailh pour le boitier''. *Afin de réduire au plus la taille, j'ai retiré les broches de l'écran. *Je l'ai est remplacé par du '''Wrapping Cable 30 AWG''' *Après ça j'ai soudé l'écran à mon clone de wemos mini pro *Ensuite, j'ai ajouté du '''ruban électrique''' pour éviter les '''courts-circuits''' *Pour finir, j'ai '''imprimé le boitier'''  +,
Maintenant que vous avez tout les éléments en main vous allez pouvoir assembler le boîtier avec ses capteurs. Pour se faire suivez les croquis et photos explicatifs.  +, Attention, avant de commencer à câbler ! Étant donné que la arduino n’a qu’une sortie +5v, vous allez devoir fabriquer des câbles Y qui vont permettre d’alimenter les deux composants avec une seule pin 5v. Pour cela munissez vous de 3 jumpers femelle-femelle pour réaliser 2 "Y" et suivez les photos. Une fois les Y formés, faites un point de soudure pour fixer les fils. Puis, pour finir, munissez-vous d'un rouleau de chatterton pour isoler les soudures (attention aux court-circuits, qui dans un espace aussi réduit seront inévitable)  +, ... en faisant bien attention aux câbles.  +,
تُعد شركة تنظيف مكيفات بالدمام من الشركات الرائدة في مجال تنظيف وصيانة جميع أنواع المكيفات، بما في ذلك سبليت والشباك، والوحدات المركزية، والمكيفات المخفية. تأسست شركتنا منذ سنوات عديدة، ونمتلك خبرة واسعة في هذا المجال، مما يجعلنا الخيار الأمثل لضمان كفاءة وأداء مكيفاتك.  +
'''مؤسسة بديل الرخام الشرقية:''' رحلتنا مع الإبداع في عالم الديكورات لا تنتهي، حيث نقدم لكم حلولًا عصرية وفريدة من نوعها باستخدام بديل الرخام. يضم '''<u>مبلط سيراميك بالدمام</u>''' فريقنا نخبة من الخبراء والمصممين المبدعين الذين يمتلكون خبرة واسعة في تصميم وتركيب بديل الرخام بأحدث التقنيات ودقة متناهية.  +
'''مقاولات'''  +
<nowiki>Téléchargez ce fichier:<div class="mw-highlight mw-content-ltr" dir="ltr"><pre>pieces.svg</pre></div>Si vous avez une découpe laser, vous pouvez passer a l'étape suivante.<br /><br />En revanche, si vous disposé d'une imprimante:<br /><br />Vous pouvez choisir la taille que vous voulez, en imprimant celle ci en A3 par exemple, ou en modifiant le fichier directement.<div class="icon-instructions info-icon"><br /><div class="icon-instructions-icon"><i class="fa fa-info-circle"></i></div><br /><div class="icon-instructions-text">Prenez en compte la taille du bois requise pour ce projet</div><br /></div></nowiki>  +, ====Découpe laser==== Si vous possédé une découpe laser, vous aurez alors juste a lancer le découpage via votre logiciel prévue pour (a imprimer 2x fois).<br/> <div class="icon-instructions info-icon"> <div class="icon-instructions-icon"><i class="fa fa-info-circle"></i></div> <div class="icon-instructions-text">N'oubliez pas de prendre les mesures de la planche, et de bien paramètrer la machine !</div> </div> ====Découpe a la scie==== Une fois vos formes imprimées, vous pouvez les disposer sur la planche en bois, et une fois que la disposition vous plait, les coller a l'aide d'une colle simple (UHU). Vous découperez ensuite les formes en suivant les lignes.  +, Si vous n'avez pas de tube (PVC, bois, carton '''solide'''), vous pouvez découper un rectangle dans le bois, et poncer les bords afin de l'arrondire. Vous pouvez maintenant noter le diamètre de celui ci sur le coté. Saisissez 2 socles (héxagones), et tracer des lignes partant de chaque point vers le point opposé. ===='''Si votre manche est creux:'''==== Avec votre compas, faites un cercle avec un diamètre similaire a celui du manche (rayon/2). Creuser avec scie en cloche de diamètre similaire au manche ou inferieur, et faites les finitions a la lime si besoin. ===='''A l'inverse:'''==== Faites un pré trou a partir du centre, puis visser avec une visse de taille adéquates les deux partie ensemble. Répetez cette action pour le deuxième socle pour la prochaine étape.  +,
Amazon Music Autoplay is a feature designed to keep the music playing continuously, providing an uninterrupted listening experience. With autoplay enabled, Amazon Music will automatically queue up and play similar songs, albums, or playlists once your current track or playlist ends. This feature aims to keep the music going without requiring you to manually select the next song, making it perfect for parties, road trips, or background music during work or chores.  +, Enabling autoplay on Amazon Music is straightforward. Follow these steps: '''Open the Amazon Music App:''' Launch the Amazon Music app on your preferred device, whether it's your smartphone, tablet, or computer. '''Log In:''' Ensure you're logged in to your Amazon Music account. '''Start Playing Music:''' Begin playing a song, album, or playlist of your choice. '''Autoplay Activation:''' Once your current music selection concludes, Amazon Music will automatically start playing a song that is related to your previous choice. This is achieved through algorithms that analyze your listening habits, genre preferences, and the mood of the music you've been enjoying. '''Customization:''' You can customize your autoplay settings by going to the app's settings. Here, you can toggle autoplay on or off, adjust the transition time between songs, and even specify whether you want explicit content to be included or excluded from autoplay selections.  +, '''Seamless Listening:''' Autoplay ensures there are no awkward gaps or pauses in your music, providing a continuous and enjoyable listening experience. '''Discover New Music:''' Autoplay introduces you to new tracks and artists based on your musical tastes, helping you discover music you might not have come across otherwise. '''Perfect for Parties:''' Whether you're hosting a party or just want background music during a gathering, autoplay keeps the music going without interruption. '''Hands-Free Convenience:''' With autoplay active, you can enjoy your music without needing to reach for your device to select the next song continually.  +,
Découper et graver les pièces de PMMA Découpe : Puissance : 100_ Vitesse : 0.3 Gravure : Puissance : 55_ Vitesse : 100 1000 Dpi  +, Emboîter de force les aimants dans les trous correspondant (faire attention au sens d’attraction des aimants) Assembler les pièces ensembles à l’aide des barres, suivant les numéros correspondants : A 1 2 3 4 5 6 7 B 8 9 10 11 12 13 L’objet se compose en deux parties.  +
Découper et graver les pièces de PMMA Découpe : Puissance : 100_ Vitesse : 0.3 Gravure : Puissance : 55_ Vitesse : 100 1000 Dpi  +, Emboîter de force les aimants dans les trous correspondant (faire attention au sens d’attraction des aimants) Assembler les pièces ensembles à l’aide des barres, suivant les numéros correspondants : A 1 2 3 4 5 6 7 B 8 9 10 11 12 13 L’objet se compose en deux parties.  +
You will need to draw 10 pulleys in total. To draw the pulleys, just place them on the board and draw their contour. Place de pulleys marked with “1” at 2cm from the sides of the board, and 5cm from the bottom of the board (the bottom of the board is the longest side).  +, Use 3 bolts in total for the small pulleys (the blue ones) and 5 bolts plus 2 washers for the big pulleys (the control pulleys -in red)  +, Watch[https://www.youtube.com/watch?v=4AfN5Bm2BRc <u> this</u>] video to learn how You can also watch [https://www.youtube.com/watch?v=hq3Et9gOISI&t=116s <u>this</u>] video if you struggle with the wiring. Use a piece of cardboard to place two wooden skewers at 90° angles with respect to one another. The skewers need to be long enough to reach the nylon wire on the top bottom left and right of the pad. Alternatively, you can use straws to accomplish this step.  +,
You will need to draw 10 pulleys in total. To draw the pulleys, just place them on the board and draw their contour. Place de pulleys marked with “1” at 2cm from the sides of the board, and 5cm from the bottom of the board (the bottom of the board is the longest side).  +, Use 3 bolts in total for the small pulleys (the blue ones) and 5 bolts plus 2 washers for the big pulleys (the control pulleys -in red)  +, Watch[https://www.youtube.com/watch?v=4AfN5Bm2BRc <u> this</u>] video to learn how You can also watch [https://www.youtube.com/watch?v=hq3Et9gOISI&t=116s <u>this</u>] video if you struggle with the wiring. Use a piece of cardboard to place two wooden skewers at 90° angles with respect to one another. The skewers need to be long enough to reach the nylon wire on the top bottom left and right of the pad. Alternatively, you can use straws to accomplish this step.  +,
<br/> <table class="wikitable"> <tr> <th>Matériel </th><th>Liens </th><th>Prix </th></tr><tr> <td>Capteur d'analyse de qualité d'air </td><td>[https://www.gotronic.fr/art-capteur-de-qualite-d-air-grove-101020078-23838.htm Grove – Air quality sensor] </td><td>8,70€ </td></tr><tr> <td>Capteur de poussière </td><td>[https://www.gotronic.fr/art-detecteur-de-poussiere-grove-101020012-18980.htm Grove - Dust Sensor] </td><td>13,25€ </td></tr><tr> <td>Capteur température- humidité </td><td>[https://www.gotronic.fr/art-capteur-d-humidite-et-de-t-grove-101020019-18964.htm Grove - Temperature&Humidity Sensor Pro(DHT22)] </td><td>11,40€ </td></tr><tr> <td>Interface Arduino-capteurs </td><td>[https://www.gotronic.fr/art-module-grove-base-shield-103030000-19068.htm Grove Base Shield] </td><td>4,80€ </td></tr><tr> <td>Ecran </td><td>[https://nextion.tech/datasheets/nx4832k035/ Nextion NX4832K035] </td><td>34,85€ </td></tr><tr> <td>Câble 4 contacts </td><td>[https://www.gotronic.fr/art-lot-de-5-cables-grove-20-cm-19054.htm Câble Grove 4 contacts] </td><td>3,20 </td></tr><tr> <td>Jumper </td><td>[https://www.kubii.fr/site-entier/1593-fils-jumper-male-femelle-200mm-40-fils-kubii-3272496003989.html?search_query=jumper&results=24 Câble Jumper Mâle/Femelle] </td><td>2,90€ </td></tr><tr> <td>Panneau de bois </td><td>[https://www.leroymerlin.fr/produits/menuiserie/panneau-bois-tablette-etagere-tasseau-moulure-et-plinthe/panneau-bois-agglomere-mdf/panneau-bois-recoupable/panneau-medium-mdf-naturel-ep-3-mm-x-l-244-x-l-122-cm-67458552.html Panneau MDF 3mm] </td><td>4,32€ </td></tr></table>  +, ====='''Grove – Air quality sensor''' V1.3===== Ce capteur est compatible 5v et 3,3v, il est relié sur une entrée analogique et va donner une valeur entre 0 et 700. La librairie constructeur interprète la mesure du capteur et nous renvoie 4 états de 0 à 3 : Etat 0 : Mesure au dessus de 700  « Pollution alert » Etat 1 : Mesure au dessus de 400  « High pollution » Etat 2 : Mesure au dessus de 200  « Low pollution» Etat 3 : Mesure en dessous de 200  « Air fresh»<br/> S’il n’est pas possible d’afficher dans le détail les mesures pour chaque gaz, ce capteur Grove offre des données qualitatives en indiquant le niveau de qualité d’air. Et ainsi nous permet de savoir '''le degré de pollution global dégagé''' par les principaux composants de notre intérieur. Plus d'infos sur le [https://wiki.seeedstudio.com/Grove-Air_Quality_Sensor_v1.3/ Wiki] du constructeur. <br/> ====='''Grove - Dust Sensor'''===== Ce capteur permet de mesurer la '''quantité de particules de poussière''' de plus de 1 µm présentes dans l'air. Le signal de sortie est à modulation de largeur d'impulsion. Il fonctionne en 5V, il est relié sur une entrée numérique. Le taux de particules de poussière ou PM (acronyme de Particulate Matter en anglais) dans l'air est mesuré en comptant le temps du niveau bas de faible impulsion (temps LPO) dans une unité de temps donnée. Le temps LPO est proportionnel à la concentration de poussière. Il va nous donner une mesure entre '''0 et 8000''' pcs/0.01cf (1/100 de pied cube). Sachant qu'un air correct se situe en dessous de 1000, et que lors d'un pic de pollution à Paris le taux peut monter jusqu'à 7000. J'ai donc choisi pour mon programme de découper les ranges comme suit : Range 1 : Air correct entre 0 et 1000 Range 2 : Aérer pièce entre 1000 et 2000 Range 3 : Alerte pollution au dessus de 2000 J'ai volontairement paramétré les ranges pour que le capteur soit sensible. Cependant, les ranges peuvent être modifiés dans le programme pour être adaptés à chaque situation. Plus d'infos sur le [https://wiki.seeedstudio.com/Grove-Dust_Sensor/ Wiki] du constructeur. <br/> ====='''Grove Temp & Humi Sensor Pro'''===== Il fonctionne en 5 V. Il est relié à une entrée numérique. Ce capteur va mesurer '''la température et le taux d’humidité''' avec une précision de ±0.5°C pour la température, et ±2% pour l’humidité. Deux données importantes pour la qualité de vie l’intérieur. La température idéale reconnue par tous les spécialistes se situe pour une pièce à vivre entre 20°C et 21°C. Le taux d'humidité optimal se situe entre 40% et 50%. Plus d'infos sur le [https://wiki.seeedstudio.com/Grove-Temperature_and_Humidity_Sensor_Pro/ Wiki] du constructeur. <br/> ====='''Grove Base Shield'''===== Le module Grove Base Shield de Seeedstudio est une carte d''''interface''' permettant de raccorder facilement, rapidement et sans soudure les capteurs et les actionneurs '''Grove''' de Seeedstudio sur une carte compatible '''Arduino'''. Ce module vient s'enficher sur l'Arduino et ajoute des fiches supplémentaires qui vont permettre de connecter les capteurs. On conserve l'ensemble des input/output de l'Arduino qui sont répliquées sur le module. Le gros avantage également et d'avoir pour chaque fiche un + et un gnd qui d'habitude manquent rapidement. Plus d'infos sur le [https://wiki.seeedstudio.com/Base_Shield_V2/ Wiki] du constructeur.  , Le projet VigiAir va nous permettre, de manière simple et à faible coût, de fabriquer un analyseur d'air ambiant. Grâce à ses capteurs performants, on va pouvoir analyser les principaux facteurs qui influencent la qualité de l’air de nos habitations : le taux de polluant dégagé par nos produits ménagés, nos peintures ou nos meubles. Le taux de particules fines : diesel, fumés, poussières diverses. Le taux d’humidité et la température. VigiAir va nous indiquer lorsqu'il devient nécessaire d'aérer une pièce. Il permet une analyse complémentaire et plus fine qu'une simple analyse de CO2.  +,
Préparer des [https://www.thingiverse.com/thing:3524957 <u>impressions de minecraft </u>]et des supports de téléphone banc titre  +, Introduire le fonctionnement d’une imprimante 3D, faire une démo lancer une impression et montrer un [https://www.youtube.com/watch?v=-KPUaTQo4-M&t=206s <u>exemple de stop motion d’animation</u>] montrer le fonctionnement de l’application  +, Exporter votre montage par mail <u>[[Mailto:votremail|Votremail,]]</u> faire une projection collective et cérémonie des oscars, demander une note de 1 à 5 sur l’atelier et ce qui faut modifier. Autoévaluation  +,
'''... Jusqu'à ce que ça marche...''' Ou qu'on abandonne (à un moment, il faut)  +, * Comment ça s'est passé ? * La météo de l'humeur de chacun * Les réussites, * Les échecs, * Les frustrations * Ce qu'on a appris / confirmé / maitrisé. '''C'est la Fin !'''   +, '''Tout ça, faut que ça marche ensemble...''' <br/> *Aller voir les copains *Piquer des idées *Mutualiser du matériel *Pensez à plusieurs pôles ? *Dire les problèmes, pas les planquer...  +,
utiliser les fichiers STL https://gitlab.com/norbertwalter67/Windsensor_WiFi_1000/-/tree/master/CAD-Files/3D-Parts/STL?ref_type=heads  +, ESP 8266-12E(attention bien prendre la même référence) avant d'effectuer le câblage il faut programmer le circuit ESP 8266-12E Ce procurer un boitier de programmation d'ESP (12€) Josenidny ESP8266 Carte de Développements de Brûleur de Cadre de Test Prise en Charge Module Wifi pour ESP-12F ESP-07S ESP-12E ESP-01S ESP12S <span class="edp-feature-declaration" data-edp-feature-name="title" data-edp-asin="B0BHYNKVD5" data-data-hash="1882912644" data-defects="[{"id":"defect-mismatch-info","value":"Different du produit"},{"id":"defect-missing-information","value":"Informations manquantes"},{"id":"defect-unessential-info","value":"Informations non indispensables incluses"},{"id":"defect-incorrect-information","value":"Information incorrecte"},{"id":"defect-other-productinfo-issue","value":"Autre question de I\u2019information du produit"}]" data-metadata="CATALOG" data-feature-container-id="productTitle" data-custom-event-handler="productTitleEDPCustomEventHandler" data-display-name="Nom du produit" data-edit-data-state="productTitleEDPEditData" data-position="1" data-resolver="CQResolver"></span>Télécharger le programme '''firmware_V1.18.wsb''' avec l'utilitaire '''ESP-Flasher-x86.exe''' dans l'ESP 8266-12E attention de bien faire reset (RST)et ensuite maintenir le bouton programme (PROG)pendant la programme <br/>  +, attention le câblage est un montage de surface il faut utiliser la pâte adapter pour ce type de soudure attention basculer le capteur IC2 vers le haut (parallèle à la plaque Utiliser la liste des composants et le plan de câblage Composants électronique sonde effet hall (Hal501 n'est plus fabriqué, remplacé par le HAL 5001) attention une erreur sur la doc le capteur effet hall de direction indiqué SM541R est en fait SMR451 <br/>  +,
You must check out [https://www.pcbway.com/ PCBWAY] for ordering PCBs online for cheap! You get 10 good-quality PCBs manufactured and shipped to your doorstep for cheap. You will also get a discount on shipping on your first order. Upload your Gerber files onto [https://www.pcbway.com/ PCBWAY] to get them manufactured with good quality and quick turnaround time. PCBWay now could provide a complete product solution, from design to enclosure production. Check out their online Gerber viewer function. With reward points, you can get free stuff from their gift shop.  +, <nowiki>First, we need to build our controller. We already know how to get the MAC address of our receiver node. Use the sketch below to get the MAC Address of the receiver.<div class="mw-highlight mw-content-ltr" dir="ltr"><pre>#include "WiFi.h"<br /> <br />void setup(){<br /> Serial.begin(115200);<br /> WiFi.mode(WIFI_MODE_STA);<br /> Serial.println(WiFi.macAddress());<br />}<br /> <br />void loop(){<br />}</pre></div>Just upload this Arduino sketch to the transmitter node, and make sure that you have modified the MAC address in the sketch.<div class="mw-highlight mw-content-ltr" dir="ltr"><pre>#include <esp_now.h><br />#include <WiFi.h><br />//----------------------------------------Defines PIN Button and PIN LED.<br />#define LED_Pin 4<br />#define BTN_Pin 15<br />//----------------------------------------<br />int BTN_State; //--> Variable to hold the button state.<br /><br />uint8_t broadcastAddress[] = {xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx}; <br />int LED_State_Send = 0; <br />int LED_State_Receive; <br /><br />String success; <br />//Must match the receiver structure<br />typedef struct struct_message {<br /> int led;<br />} struct_message_send;<br /><br />struct_message send_Data; // Create a struct_message to send data.<br />struct_message receive_Data; // Create a struct_message to receive data.<br /><br />//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Callback when data is sent<br />void OnDataSent(const uint8_t *mac_addr, esp_now_send_status_t status) {<br /> Serial.print("\r\nLast Packet Send Status:\t");<br /> Serial.println(status == ESP_NOW_SEND_SUCCESS ? "Delivery Success" : "Delivery Fail");<br /> if (status ==0){<br /> success = "Delivery Success :)";<br /> }<br /> else{<br /> success = "Delivery Fail :(";<br /> }<br /> Serial.println(">>>>>");<br />}<br /><br />//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Callback when data is received<br />void OnDataRecv(const uint8_t * mac, const uint8_t *incomingData, int len) {<br /> memcpy(&receive_Data, incomingData, sizeof(receive_Data));<br /> Serial.println();<br /> Serial.println("<<<<< Receive Data:");<br /> Serial.print("Bytes received: ");<br /> Serial.println(len);<br /> LED_State_Receive = receive_Data.led;<br /> Serial.print("Receive Data: ");<br /> Serial.println(LED_State_Receive);<br /> Serial.println("<<<<<");<br /><br /> digitalWrite(LED_Pin, LED_State_Receive);<br />}<br /><br />//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++<br /><br />void setup() {<br /> Serial.begin(115200);<br /><br /> pinMode(LED_Pin, OUTPUT);<br /> pinMode(BTN_Pin, INPUT);<br /> <br /> WiFi.mode(WIFI_STA); //--> Set device as a Wi-Fi Station<br /><br /> //----------------------------------------Init ESP-NOW<br /> if (esp_now_init() != ESP_OK) {<br /> Serial.println("Error initializing ESP-NOW");<br /> return;<br /> }<br /><br /> //--------------------------------------<br /> // get the status of Trasnmitted packet<br /> esp_now_register_send_cb(OnDataSent);<br /> <br /> //----------------------------------------Register peer<br /> esp_now_peer_info_t peerInfo;<br /> memcpy(peerInfo.peer_addr, broadcastAddress, 6);<br /> peerInfo.channel = 0; <br /> peerInfo.encrypt = false<br /> <br /> //----------------------------------------Add peer <br /> if (esp_now_add_peer(&peerInfo) != ESP_OK){<br /> Serial.println("Failed to add peer");<br /> return;<br /> }<br /> //----------------------------------------<br /> <br /> esp_now_register_recv_cb(OnDataRecv); //--> Register for a callback function that will be called when data is received<br />}<br />//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++<br />void loop() {<br /> BTN_State = digitalRead(BTN_Pin); //--> Reads and holds button states.<br /> <br /> //----------------------------------------When the button is pressed it will send data to control the LED on the ESP32 Target.<br /> if(BTN_State == 1) {<br /> LED_State_Send = !LED_State_Send;<br /> send_Data.led = LED_State_Send;<br /><br /> Serial.println();<br /> Serial.print(">>>>> ");<br /> Serial.println("Send data");<br /> <br /> //----------------------------------------Send message via ESP-NOW<br /> esp_err_t result = esp_now_send(broadcastAddress, (uint8_t *) &send_Data, sizeof(send_Data));<br /> <br /> if (result == ESP_OK) {<br /> Serial.println("Sent with success");<br /> }<br /> else {<br /> Serial.println("Error sending the data");<br /> }<br /> <br /> //----------------------------------------Wait for the button to be released. Release the button first to send the next data.<br /> while(BTN_State == 1) {<br /> BTN_State = digitalRead(BTN_Pin);<br /> delay(10);<br /> }<br /> }<br />}</pre></div><br/></nowiki>  , <nowiki>We have already built our transmitter; next, we need to set up our receiver node. Just upload the below Arduino sketch to build a receiver to get data from the transmitter and based on the input data it will glow the led.<div class="mw-highlight mw-content-ltr" dir="ltr"><pre>#include <esp_now.h><br />#include <WiFi.h><br />//----------------------------------------Defines PIN Button and PIN LED.<br />#define LED_Pin 4<br />#define BTN_Pin 15<br />//----------------------------------------<br /><br />int BTN_State; //--> Variable to hold the button state.<br /><br />uint8_t broadcastAddress[] = {xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx}; //--> REPLACE WITH THE MAC Address of your transmitter. ESP32 A<br /><br />int LED_State_Send = 0; //--> Variable to hold the data to be transmitted to control the LEDs on the paired ESP32.<br /><br />int LED_State_Receive; //--> Variable to receive data to control the LEDs on the ESP32 running this code.<br /><br />String success; //--> Variable to store if sending data was successful<br /><br />//----------------------------------------Structure example to send data<br />//Must match the receiver structure<br />typedef struct struct_message {<br /> int led;<br />} struct_message_send;<br /><br />struct_message send_Data; // Create a struct_message to send data.<br /><br />struct_message receive_Data; // Create a struct_message to receive data.<br />//----------------------------------------<br />void OnDataSent(const uint8_t *mac_addr, esp_now_send_status_t status) {<br /> Serial.print("\r\nLast Packet Send Status:\t");<br /> Serial.println(status == ESP_NOW_SEND_SUCCESS ? "Delivery Success" : "Delivery Fail");<br /> if (status ==0){<br /> success = "Delivery Success :)";<br /> }<br /> else{<br /> success = "Delivery Fail :(";<br /> }<br /> Serial.println(">>>>>");<br />}<br />//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++<br />void OnDataRecv(const uint8_t * mac, const uint8_t *incomingData, int len) {<br /> memcpy(&receive_Data, incomingData, sizeof(receive_Data));<br /> Serial.println();<br /> Serial.println("<<<<< Receive Data:");<br /> Serial.print("Bytes received: ");<br /> Serial.println(len);<br /> LED_State_Receive = receive_Data.led;<br /> Serial.print("Receive Data: ");<br /> Serial.println(LED_State_Receive);<br /> Serial.println("<<<<<");<br /><br /> digitalWrite(LED_Pin, LED_State_Receive);<br />}<br />//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++<br />void setup() {<br /> Serial.begin(115200);<br /><br /> pinMode(LED_Pin, OUTPUT);<br /> pinMode(BTN_Pin, INPUT);<br /> <br /> WiFi.mode(WIFI_STA); //--> Set device as a Wi-Fi Station<br /><br /> if (esp_now_init() != ESP_OK) {<br /> Serial.println("Error initializing ESP-NOW");<br /> return;<br /> }<br /> //----------------------------------------<br /> <br /> // get the status of Trasnmitted packet<br /> esp_now_register_send_cb(OnDataSent);<br /> //----------------------------------------<br /> <br /> esp_now_peer_info_t peerInfo;<br /> memcpy(peerInfo.peer_addr, broadcastAddress, 6);<br /> peerInfo.channel = 0; <br /> peerInfo.encrypt = false;<br /> //----------------------------------------<br /> <br /> //----------------------------------------Add peer <br /> if (esp_now_add_peer(&peerInfo) != ESP_OK){<br /> Serial.println("Failed to add peer");<br /> return;<br /> }<br /> //----------------------------------------<br /> <br />}<br /><br />void loop() {<br /> BTN_State = digitalRead(BTN_Pin); //--> Reads and holds button states.<br /> <br /> //----------------------------------------When the button is pressed it will send data to control the LED on the ESP32 Target.<br /> if(BTN_State == 1) {<br /> LED_State_Send = !LED_State_Send;<br /> send_Data.led = LED_State_Send;<br /><br /> Serial.println();<br /> Serial.print(">>>>> ");<br /> Serial.println("Send data");<br /> <br /> //----------------------------------------Send message via ESP-NOW<br /> esp_err_t result = esp_now_send(broadcastAddress, (uint8_t *) &send_Data, sizeof(send_Data));<br /> <br /> if (result == ESP_OK) {<br /> Serial.println("Sent with success");<br /> }<br /> else {<br /> Serial.println("Error sending the data");<br /> }<br /> //----------------------------------------<br /> <br /> while(BTN_State == 1) {<br /> BTN_State = digitalRead(BTN_Pin);<br /> delay(10);<br /> }<br /> }</pre></div><br/></nowiki>  ,
Privilégier '''un fournisseur qui garantisse un contreplaqué compatible avec une découpe laser.''' (Il parait que certaines colles utilisées pour fabriquer le contreplaqué peuvent être source de problèmes, voire de dangers lors de la découpe.) Je me suis approvisionné jusqu'à présent par l'intermédiaire du Fablab que je fréquente.  +, L'abat jour est constitué de '''31 pièces''' : *29 "lamelles" verticales, toutes différentes *2 "peignes" horizontaux, identiques, dans lesquels s'emboîtent ces lamelles Ces pièces sont réparties dans deux fichiers *.svg Chaque pièce est identifiée par un nombre ou une lettre, qui sont tracés sur le bois par la découpeuse laser.<br/> #Ouvrir le fichier avec un [https://inkscape.org/fr/release/inkscape-1.0.1/ logiciel de dessin vectoriel] pour visualiser les pièces. #S'il manque des pièces ou si rien n'est visible, augmenter l'épaisseur du trait dans votre logiciel, elles devraient apparaître. Dans chaque fichier, visualiser : *les '''coupes''' en '''rouge''', *les '''tracés''' en '''bleu'''. *un '''rectangle rose''' , de format 50 x 45 cm, qui encadre les pièces. Ce rectangle ne sert qu'à redimensionner les pièces rapidement en cas de besoin, et devra être retiré avant la découpe *'''Mes logos''', qui devront être retirés avant la découpe  +, #'''Incorporer''' le premier fichier dans le logiciel de pilotage de la découpeuse laser #'''Redimensionner''' l'ensemble des pièces de manière à ce que le rectangle rose soit au format 50 cm x 45 cm, puis supprimer le rectangle rose et les logos #'''Définir les valeurs de coupe''' pour les chemins rouges, '''et de tracé''' pour les chemins bleus (puissance, vitesse...) #'''Paramétrer la découpeuse laser''' pour qu'elle procède aux tracés ''<u>avant</u>'' d'effectuer les découpes #'''Positionner l'origine''' du faisceau laser sur la plaque de contreplaqué #'''Réaliser un contour test''' pour vous assurer que la découpe se fera bien sur le bois (et pas à côté :-) ) #'''Régler la jauge''' de votre laser #'''Lancer la découpe''' du premier fichier et '''surveiller''' jusqu'au bout #'''Examiner le résultat''' pour procéder à d'éventuels ajustements des valeurs de découpe / tracé #'''Procéder de même''' pour le deuxième fichier Vous devrez définir vos paramètres de coupe et de tracé (vitesse, puissance...) selon la machine que vous allez utiliser. Pour information, les paramètres que j'ai utilisés sont : - Tracé : Puissance Max : 15, Puissance Min : 8, Vitesse : 480 - Coupe : Puissance Max : 60, Puissance Min : 20, Vitesse : 20   +,
Tout d'abord, j'ai choisi sur Wikifab, le tutoriel [[Applique Abat-Jour Mural Volcano]]  +, J'ai ouvert les deux fichiers "Abat-jour mural volcano 01 plaques peignes tranches 1 à 15.svg", "Abat-jour mural volcano 01 plaques tranches 16 à 29.svg". Je les ai modifié en rétrécissant les dimensions car nous n'avions pas de contre-plaqué de 5mm.  +, Pour la découpe, j'ai commencé par faire des tests au niveau des créneaux avec une dimension de 4,2 mm. Pour cela, j'ai divisé la longueur de départ par 5 car c'est ce qui était demandé dans le tutoriel et j'ai multiplié par 4,2 car c'est la dimension que j'ai choisi.  +,