<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="fr">
	<id>https://wikifab.org/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Masterglob</id>
	<title>Wikifab - Contributions de l’utilisateur [fr]</title>
	<link rel="self" type="application/atom+xml" href="https://wikifab.org/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Masterglob"/>
	<link rel="alternate" type="text/html" href="https://wikifab.org/wiki/Sp%C3%A9cial:Contributions/Masterglob"/>
	<updated>2026-04-29T08:05:48Z</updated>
	<subtitle>Contributions de l’utilisateur</subtitle>
	<generator>MediaWiki 1.31.3</generator>
	<entry>
		<id>https://wikifab.org/w/index.php?title=Brancher_des_p%C3%A9riph%C3%A9riques_USB_sur_un_ESP8266&amp;diff=103247</id>
		<title>Brancher des périphériques USB sur un ESP8266</title>
		<link rel="alternate" type="text/html" href="https://wikifab.org/w/index.php?title=Brancher_des_p%C3%A9riph%C3%A9riques_USB_sur_un_ESP8266&amp;diff=103247"/>
		<updated>2020-10-25T14:10:03Z</updated>

		<summary type="html">&lt;p&gt;Masterglob : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Tuto Details&lt;br /&gt;
|Main_Picture=Brancher_des_périphériques_USB_sur_un_ESP8266_usbhost_wiki.jpg&lt;br /&gt;
|Description=&amp;lt;translate&amp;gt;&amp;lt;!--T:64--&amp;gt;&lt;br /&gt;
Saviez vous que vous pouvez brancher des périphériques USB sur un Arduino ou un ESP ?&lt;br /&gt;
Que ce soit un clavier, une souris, un manette de jeu ou un contrôleur MIDI, c'est possible !&amp;lt;/translate&amp;gt;&lt;br /&gt;
|Area=Electronics, Music and Sound, Play and Hobbies&lt;br /&gt;
|Type=Technique&lt;br /&gt;
|Difficulty=Medium&lt;br /&gt;
|Duration=2&lt;br /&gt;
|Duration-type=hour(s)&lt;br /&gt;
|Cost=6&lt;br /&gt;
|Currency=EUR (€)&lt;br /&gt;
|Tags=arduino, esp8266, esp32, usb host, clavier, souris, manette, xbox, MIDI&lt;br /&gt;
|SourceLanguage=none&lt;br /&gt;
|Language=fr&lt;br /&gt;
|IsTranslation=0&lt;br /&gt;
}}&lt;br /&gt;
{{Introduction&lt;br /&gt;
|Introduction=&amp;lt;translate&amp;gt;&amp;lt;!--T:65--&amp;gt;&lt;br /&gt;
Je jouais avec '''Mozzi''', une '''bibliothèque de synthèse audio''' (https://sensorium.github.io/Mozzi/), quand je me suis rendu compte que si je voulais vraiment pouvoir exploiter tout le potentiel de cette bibliothèque, j'allais devoir faire un contrôleur.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:66--&amp;gt;&lt;br /&gt;
Si seulement, je pouvais brancher un '''clavier''' ou un '''contrôleur midi''', ça serait carrément plus simplement ! Mais attends ?! C'est possible en fait!&amp;lt;/translate&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
{{TutoVideo&lt;br /&gt;
|VideoType=Youtube&lt;br /&gt;
|VideoURLYoutube=https://www.youtube.com/watch?v=CeLYOu-UGXA&lt;br /&gt;
}}&lt;br /&gt;
{{Materials&lt;br /&gt;
|Step_Picture_00=Contrôler_des_neopixels_comme_un_DJ_Envoyer_un_message_sur_discord_wemos.png&lt;br /&gt;
|Step_Picture_01=Brancher_des_périphériques_USB_sur_un_ESP8266_usbhost_mini_def.png&lt;br /&gt;
|Material=&amp;lt;translate&amp;gt;&amp;lt;!--T:67--&amp;gt;&lt;br /&gt;
* Un microcontrôleur 3.3v (par ex: Wemos Mini)&lt;br /&gt;
* Un USB Host Mini&amp;lt;/translate&amp;gt;&lt;br /&gt;
|Tools=&amp;lt;translate&amp;gt;&amp;lt;!--T:68--&amp;gt; Un petit tournevis plat / Un cutter fin&amp;lt;/translate&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
{{Tuto Step&lt;br /&gt;
|Step_Title=&amp;lt;translate&amp;gt;&amp;lt;!--T:69--&amp;gt;&lt;br /&gt;
Choisir l'USB Host&amp;lt;/translate&amp;gt;&lt;br /&gt;
|Step_Content=&amp;lt;translate&amp;gt;&amp;lt;!--T:70--&amp;gt;&lt;br /&gt;
Merci à CircuitatHome pour la création de l'USB Host&lt;br /&gt;
https://www.circuitsathome.com/usb-host-shield-hardware-manual/&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:71--&amp;gt;&lt;br /&gt;
Dans ce tutoriel nous allons utilisé un clone de l''''USB Host Mini'''.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:72--&amp;gt;&lt;br /&gt;
La puce sur celle-ci est un MAX3421E qui ne fonctionne quand 3.3v&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:73--&amp;gt;&lt;br /&gt;
{{Idea|Si vous voulez utiliser un microcontrôleur en 5v (comme l'Arduino Uno / Nano) utiliser plutôt le Shield USB Host.}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:74--&amp;gt;&lt;br /&gt;
Malheureusement avant de pouvoir brancher notre USB Host, il va nous falloir '''régler plusieurs problèmes''' sinon '''cela ne marchera pas.'''&amp;lt;/translate&amp;gt;&lt;br /&gt;
|Step_Picture_00=Brancher_des_périphériques_USB_sur_un_ESP8266_3V3_only.png&lt;br /&gt;
|Step_Picture_01=Brancher_des_périphériques_USB_sur_un_ESP8266_usbhost_mini.jpg&lt;br /&gt;
|Step_Picture_02=Brancher_des_périphériques_USB_sur_un_ESP8266_usbhost_shield.jpg&lt;br /&gt;
}}&lt;br /&gt;
{{Tuto Step&lt;br /&gt;
|Step_Title=&amp;lt;translate&amp;gt;&amp;lt;!--T:75--&amp;gt;&lt;br /&gt;
Régler le problème d'alimentation&amp;lt;/translate&amp;gt;&lt;br /&gt;
|Step_Content=&amp;lt;translate&amp;gt;&amp;lt;!--T:76--&amp;gt;&lt;br /&gt;
Si vous avez acheté '''un clone de l'USB Host Mini''', il n'y a pas de '''jumper pour le VBUS'''.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:77--&amp;gt;&lt;br /&gt;
Cela veut dire que les périphériques USB '''seront alimentés en 3.3v'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:78--&amp;gt;&lt;br /&gt;
Malheureusement, '''aucun de mes périphériques ne marche,''' car ils '''nécessitent tous du 5v.'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:79--&amp;gt;&lt;br /&gt;
Vous pouvez en apprendre plus sur ce lien (en japonais)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:80--&amp;gt;&lt;br /&gt;
https://ht-deko.com/arduino/shield_usbhost_mini.html&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:81--&amp;gt;&lt;br /&gt;
Il va falloir couper une trace sur le circuit pour régler ce problème.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:82--&amp;gt;&lt;br /&gt;
J'ai utilisé un '''petit tournevis plat''', mais si vous avez un '''cutter fin c'est surement mieux.'''&amp;lt;/translate&amp;gt;&lt;br /&gt;
|Step_Picture_00=Brancher_des_périphériques_USB_sur_un_ESP8266_usbhost_mini_fix.jpg&lt;br /&gt;
}}&lt;br /&gt;
{{Tuto Step&lt;br /&gt;
|Step_Title=&amp;lt;translate&amp;gt;&amp;lt;!--T:83--&amp;gt;&lt;br /&gt;
Brancher l'USB Host&amp;lt;/translate&amp;gt;&lt;br /&gt;
|Step_Content=&amp;lt;translate&amp;gt;&amp;lt;!--T:84--&amp;gt;&lt;br /&gt;
OK, j'espère que vous n'avez pas cassé votre carte! Maintenant il est temps de la brancher !&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:85--&amp;gt;&lt;br /&gt;
J'ai utilisé un Wemos Mini D1 avec mon USB Host Mini, voici comment le brancher.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:86--&amp;gt;&lt;br /&gt;
{{Info|Je n'ai pas relié la broche INT, car celle-ci ne semble pas nécessaire au fonctionnement}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:87--&amp;gt;&lt;br /&gt;
*D3 -- SS&lt;br /&gt;
*D7 -- MOSI&lt;br /&gt;
*D6 -- MISO&lt;br /&gt;
*D5 -- SCK&lt;br /&gt;
*RST -- RST&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:88--&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;/translate&amp;gt;&lt;br /&gt;
|Step_Picture_00=Brancher_des_périphériques_USB_sur_un_ESP8266_usbhost_esp.jpg&lt;br /&gt;
}}&lt;br /&gt;
{{Tuto Step&lt;br /&gt;
|Step_Title=&amp;lt;translate&amp;gt;&amp;lt;!--T:89--&amp;gt;&lt;br /&gt;
Régler le problème avec la bibliothèque USB Host&amp;lt;/translate&amp;gt;&lt;br /&gt;
|Step_Content=&amp;lt;translate&amp;gt;&amp;lt;!--T:90--&amp;gt;&lt;br /&gt;
Vous avez peut-être remarqué que pour la broche SS (Chip Select / CS) j'ai utilisé la '''broche D3''' au lieu de la '''broche par défaut D8.'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:91--&amp;gt;&lt;br /&gt;
J'ai eu un problème avec l'USB Host qui mettait mon Wemos Mini en mode programmation et bloqué l'exécution du sketch.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:92--&amp;gt;&lt;br /&gt;
https://github.com/felis/USB_Host_Shield_2.0/issues/457&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:93--&amp;gt;&lt;br /&gt;
Afin de '''changer la broche SS''', il va falloir changer une ligne dans la bibliothèque.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:94--&amp;gt;&lt;br /&gt;
Télécharger '''USB Host Shield Library 2.0'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:95--&amp;gt;&lt;br /&gt;
Ouvrez le fichier '''UsbCore.h''' dans '''libraries/USB_Host_Shield_Library_2.0''' et changer cette ligne&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;code&amp;gt;#elif defined(ESP8266)typedef MAX3421e&amp;lt;P15, P5&amp;gt; MAX3421E; // ESP8266 boards &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:96--&amp;gt;&lt;br /&gt;
Avec cette ligne&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:97--&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;#elif defined(ESP8266)typedef MAX3421e&amp;lt;P0, P5&amp;gt; MAX3421E; // ESP8266 boards&amp;lt;/code&amp;gt;&lt;br /&gt;
{{Info|Pourquoi P0 au lieu de D3 ? c'est parce que le GPIO0 est le D3 sur le Wemos Mini.}}&lt;br /&gt;
https://escapequotes.net/esp8266-wemos-d1-mini-pins-and-diagram/&amp;lt;/translate&amp;gt;&lt;br /&gt;
|Step_Picture_00=Brancher_des_périphériques_USB_sur_un_ESP8266_image_Ky517r0vQa.jpg&lt;br /&gt;
}}&lt;br /&gt;
{{Tuto Step&lt;br /&gt;
|Step_Title=&amp;lt;translate&amp;gt;&amp;lt;!--T:98--&amp;gt;&lt;br /&gt;
Downgrader ESP8266&amp;lt;/translate&amp;gt;&lt;br /&gt;
|Step_Content=&amp;lt;translate&amp;gt;&amp;lt;!--T:99--&amp;gt;&lt;br /&gt;
On y est presque, si vous essayez de compiler un exemple dans la bibliothèque, '''il ne marchera pas!'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:100--&amp;gt;&lt;br /&gt;
{{Info|Ce problème a été réglé récemment, cette étape n'est nécessaire que si vous utilisez la version 1.3.2 de cette bibliothèque}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:101--&amp;gt;&lt;br /&gt;
Il y a une incompatibilité entre la bibliothèque et la version 2.5 d'ESP8266 sur le logiciel Arduino.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:102--&amp;gt;&lt;br /&gt;
'''Il va falloir downgrader celle-ci à 2.4.2'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:103--&amp;gt;&lt;br /&gt;
https://github.com/felis/USB_Host_Shield_2.0/issues/449&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:104--&amp;gt;&lt;br /&gt;
Aller dans '''Outils''' / '''Type de carte''' / '''Gestionnaire de carte''' et changer la version à '''2.4.2'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:105--&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;/translate&amp;gt;&lt;br /&gt;
|Step_Picture_00=Brancher_des_périphériques_USB_sur_un_ESP8266_esp8266_lib.jpg&lt;br /&gt;
}}&lt;br /&gt;
{{Tuto Step&lt;br /&gt;
|Step_Title=&amp;lt;translate&amp;gt;&amp;lt;!--T:106--&amp;gt;&lt;br /&gt;
Test l'USB Host&amp;lt;/translate&amp;gt;&lt;br /&gt;
|Step_Content=&amp;lt;translate&amp;gt;&amp;lt;!--T:107--&amp;gt;&lt;br /&gt;
Il y a beaucoup d'exemples dans l''''USB Host Shield Library 2.0.'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:108--&amp;gt;&lt;br /&gt;
Afin de tester si tout marche correctement, je vous conseille de commencer par '''USB_desc'''.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:109--&amp;gt;&lt;br /&gt;
*'''Téléverser''' USB_desc&lt;br /&gt;
*Ouvrez le  '''Moniteur Série''' (115200)&lt;br /&gt;
*'''Brancher votre périphérique USB'''&lt;br /&gt;
*'''Redémarrer la carte''' (ESP8266)&lt;br /&gt;
{{Info|Il n'est pas possible de brancher &amp;quot;à chaud&amp;quot; le périphérique USB (du moins dans les exemples)&lt;br /&gt;
Vous devez redémarrer votre carte à chaque fois que vous débrancher et rebrancher un périphérique.}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:110--&amp;gt;&lt;br /&gt;
Vous devriez voir un long message décrivant votre périphérique.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:111--&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;/translate&amp;gt;&lt;br /&gt;
|Step_Picture_00=Brancher_des_périphériques_USB_sur_un_ESP8266_usbhost_ex.jpg&lt;br /&gt;
}}&lt;br /&gt;
{{Tuto Step&lt;br /&gt;
|Step_Title=&amp;lt;translate&amp;gt;&amp;lt;!--T:112--&amp;gt;&lt;br /&gt;
Exemple : Manette XBOX360&amp;lt;/translate&amp;gt;&lt;br /&gt;
|Step_Content=&amp;lt;translate&amp;gt;&amp;lt;!--T:113--&amp;gt;&lt;br /&gt;
Si vous avez une manette de '''XBOX360 pour PC''', vous pouvez tester l'exemple : X'''BOX/XBOXUSB'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:114--&amp;gt;&lt;br /&gt;
*'''L2/R2''' vibre quand vous appuyez dessus.&lt;br /&gt;
*L2/R2 : 0/255&lt;br /&gt;
*Stick (Hat) X/Y : -32768 / 32768&lt;br /&gt;
*Les LED peuvent aussi être contrôlées ! (appuyer sur '''pad''' / '''back''' / '''start''' / '''xbox''' pour essayer)&amp;lt;/translate&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
{{Tuto Step&lt;br /&gt;
|Step_Title=&amp;lt;translate&amp;gt;&amp;lt;!--T:115--&amp;gt;&lt;br /&gt;
Exemple : Souris&amp;lt;/translate&amp;gt;&lt;br /&gt;
|Step_Content=&amp;lt;translate&amp;gt;&amp;lt;!--T:116--&amp;gt;&lt;br /&gt;
Je n'ai pas réussi à utiliser ma souris. L'exemple se trouve ici : '''HID/USBHIDBootMouse'''&amp;lt;/translate&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
{{Tuto Step&lt;br /&gt;
|Step_Title=&amp;lt;translate&amp;gt;&amp;lt;!--T:117--&amp;gt;&lt;br /&gt;
Exemple : Contrôleur Midi&amp;lt;/translate&amp;gt;&lt;br /&gt;
|Step_Content=&amp;lt;translate&amp;gt;&amp;lt;!--T:118--&amp;gt;&lt;br /&gt;
Ouvrez l'exemple '''USBH_MIDI/USBH_MIDI_dump'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:119--&amp;gt;&lt;br /&gt;
La plupart des périphériques MIDI n'utilisent qu'une petite partie du buffer ('''bufMidi''')&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:120--&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;00001679: 64: 09 90 2F 13 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:121--&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;0000174A: 64: 08 80 2F 7F 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:122--&amp;gt;&lt;br /&gt;
*bufMidi[0] : Note ON (9) / Note OFF (8)&lt;br /&gt;
*bufMidi[2] : Note&lt;br /&gt;
*bufMidi[3] : Velocity&amp;lt;/translate&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
{{Tuto Step&lt;br /&gt;
|Step_Title=&amp;lt;translate&amp;gt;&amp;lt;!--T:123--&amp;gt;&lt;br /&gt;
Conclusion&amp;lt;/translate&amp;gt;&lt;br /&gt;
|Step_Content=&amp;lt;translate&amp;gt;&amp;lt;!--T:124--&amp;gt;&lt;br /&gt;
Utiliser des périphériques USB ouvre la porte à énormément de possibilités avec nos microcontrôleurs&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:125--&amp;gt;&lt;br /&gt;
Nous n'avons vu qu'une infime partie de ce qu'il est possible de faire.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:126--&amp;gt;&lt;br /&gt;
*Vous pouvez utiliser un '''Hub USB''' pour contrôler plusieurs périphériques USB.&lt;br /&gt;
*Il y a plein de broches sur l'USB Host, c'est parce qu’elle sont utilisables comme des GPIO ! Il est possible de brancher des boutons / LED même un écran LCD dessus.&lt;br /&gt;
*Il est même possible d'utiliser des '''clés''' '''USB.'''&amp;lt;/translate&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
{{Tuto Step&lt;br /&gt;
|Step_Title=&amp;lt;translate&amp;gt;&amp;lt;!--T:127--&amp;gt;&lt;br /&gt;
Adaptation ESP32&amp;lt;/translate&amp;gt;&lt;br /&gt;
|Step_Content=&amp;lt;translate&amp;gt;&amp;lt;!--T:128--&amp;gt;&lt;br /&gt;
Le branchement sur ESP32 (testé sur DOIT ESP32 DEVKIT V1):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:129--&amp;gt;&lt;br /&gt;
SS : GPIO5&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:130--&amp;gt;&lt;br /&gt;
INT : GPIO17&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:131--&amp;gt;&lt;br /&gt;
SCK : GPIO18&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:132--&amp;gt;&lt;br /&gt;
MISO: GPIO19&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:133--&amp;gt;&lt;br /&gt;
MOSI:  GPIO23&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:134--&amp;gt;&lt;br /&gt;
RST : 3.3V&amp;lt;/translate&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
{{Notes&lt;br /&gt;
|Notes=&amp;lt;translate&amp;gt;&amp;lt;/translate&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
{{PageLang&lt;br /&gt;
}}&lt;br /&gt;
{{Tuto Status&lt;br /&gt;
|Complete=Published&lt;br /&gt;
}}&lt;br /&gt;
{{Separator}}&lt;/div&gt;</summary>
		<author><name>Masterglob</name></author>
		
	</entry>
	<entry>
		<id>https://wikifab.org/w/index.php?title=Brancher_des_p%C3%A9riph%C3%A9riques_USB_sur_un_ESP8266&amp;diff=103235</id>
		<title>Brancher des périphériques USB sur un ESP8266</title>
		<link rel="alternate" type="text/html" href="https://wikifab.org/w/index.php?title=Brancher_des_p%C3%A9riph%C3%A9riques_USB_sur_un_ESP8266&amp;diff=103235"/>
		<updated>2020-10-25T14:08:39Z</updated>

		<summary type="html">&lt;p&gt;Masterglob : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Tuto Details&lt;br /&gt;
|Main_Picture=Brancher_des_périphériques_USB_sur_un_ESP8266_usbhost_wiki.jpg&lt;br /&gt;
|Description=&amp;lt;translate&amp;gt;&amp;lt;!--T:64--&amp;gt;&lt;br /&gt;
Saviez vous que vous pouvez brancher des périphériques USB sur un Arduino ou un ESP ?&lt;br /&gt;
Que ce soit un clavier, une souris, un manette de jeu ou un contrôleur MIDI, c'est possible !&amp;lt;/translate&amp;gt;&lt;br /&gt;
|Area=Electronics, Music and Sound, Play and Hobbies&lt;br /&gt;
|Type=Technique&lt;br /&gt;
|Difficulty=Medium&lt;br /&gt;
|Duration=2&lt;br /&gt;
|Duration-type=hour(s)&lt;br /&gt;
|Cost=6&lt;br /&gt;
|Currency=EUR (€)&lt;br /&gt;
|Tags=arduino, esp8266, esp32, usb host, clavier, souris, manette, xbox, MIDI&lt;br /&gt;
|SourceLanguage=none&lt;br /&gt;
|Language=fr&lt;br /&gt;
|IsTranslation=0&lt;br /&gt;
}}&lt;br /&gt;
{{Introduction&lt;br /&gt;
|Introduction=&amp;lt;translate&amp;gt;&amp;lt;!--T:65--&amp;gt;&lt;br /&gt;
Je jouais avec '''Mozzi''', une '''bibliothèque de synthèse audio''' (https://sensorium.github.io/Mozzi/), quand je me suis rendu compte que si je voulais vraiment pouvoir exploiter tout le potentiel de cette bibliothèque, j'allais devoir faire un contrôleur.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:66--&amp;gt;&lt;br /&gt;
Si seulement, je pouvais brancher un '''clavier''' ou un '''contrôleur midi''', ça serait carrément plus simplement ! Mais attends ?! C'est possible en fait!&amp;lt;/translate&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
{{TutoVideo&lt;br /&gt;
|VideoType=Youtube&lt;br /&gt;
|VideoURLYoutube=https://www.youtube.com/watch?v=CeLYOu-UGXA&lt;br /&gt;
}}&lt;br /&gt;
{{Materials&lt;br /&gt;
|Step_Picture_00=Contrôler_des_neopixels_comme_un_DJ_Envoyer_un_message_sur_discord_wemos.png&lt;br /&gt;
|Step_Picture_01=Brancher_des_périphériques_USB_sur_un_ESP8266_usbhost_mini_def.png&lt;br /&gt;
|Material=&amp;lt;translate&amp;gt;&amp;lt;!--T:67--&amp;gt;&lt;br /&gt;
* Un microcontrôleur 3.3v (par ex: Wemos Mini)&lt;br /&gt;
* Un USB Host Mini&amp;lt;/translate&amp;gt;&lt;br /&gt;
|Tools=&amp;lt;translate&amp;gt;&amp;lt;!--T:68--&amp;gt; Un petit tournevis plat / Un cutter fin&amp;lt;/translate&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
{{Tuto Step&lt;br /&gt;
|Step_Title=&amp;lt;translate&amp;gt;&amp;lt;!--T:69--&amp;gt;&lt;br /&gt;
Choisir l'USB Host&amp;lt;/translate&amp;gt;&lt;br /&gt;
|Step_Content=&amp;lt;translate&amp;gt;&amp;lt;!--T:70--&amp;gt;&lt;br /&gt;
Merci à CircuitatHome pour la création de l'USB Host&lt;br /&gt;
https://www.circuitsathome.com/usb-host-shield-hardware-manual/&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:71--&amp;gt;&lt;br /&gt;
Dans ce tutoriel nous allons utilisé un clone de l''''USB Host Mini'''.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:72--&amp;gt;&lt;br /&gt;
La puce sur celle-ci est un MAX3421E qui ne fonctionne quand 3.3v&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:73--&amp;gt;&lt;br /&gt;
{{Idea|Si vous voulez utiliser un microcontrôleur en 5v (comme l'Arduino Uno / Nano) utiliser plutôt le Shield USB Host.}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:74--&amp;gt;&lt;br /&gt;
Malheureusement avant de pouvoir brancher notre USB Host, il va nous falloir '''régler plusieurs problèmes''' sinon '''cela ne marchera pas.'''&amp;lt;/translate&amp;gt;&lt;br /&gt;
|Step_Picture_00=Brancher_des_périphériques_USB_sur_un_ESP8266_3V3_only.png&lt;br /&gt;
|Step_Picture_01=Brancher_des_périphériques_USB_sur_un_ESP8266_usbhost_mini.jpg&lt;br /&gt;
|Step_Picture_02=Brancher_des_périphériques_USB_sur_un_ESP8266_usbhost_shield.jpg&lt;br /&gt;
}}&lt;br /&gt;
{{Tuto Step&lt;br /&gt;
|Step_Title=&amp;lt;translate&amp;gt;&amp;lt;!--T:75--&amp;gt;&lt;br /&gt;
Régler le problème d'alimentation&amp;lt;/translate&amp;gt;&lt;br /&gt;
|Step_Content=&amp;lt;translate&amp;gt;&amp;lt;!--T:76--&amp;gt;&lt;br /&gt;
Si vous avez acheté '''un clone de l'USB Host Mini''', il n'y a pas de '''jumper pour le VBUS'''.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:77--&amp;gt;&lt;br /&gt;
Cela veut dire que les périphériques USB '''seront alimentés en 3.3v'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:78--&amp;gt;&lt;br /&gt;
Malheureusement, '''aucun de mes périphériques ne marche,''' car ils '''nécessitent tous du 5v.'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:79--&amp;gt;&lt;br /&gt;
Vous pouvez en apprendre plus sur ce lien (en japonais)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:80--&amp;gt;&lt;br /&gt;
https://ht-deko.com/arduino/shield_usbhost_mini.html&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:81--&amp;gt;&lt;br /&gt;
Il va falloir couper une trace sur le circuit pour régler ce problème.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:82--&amp;gt;&lt;br /&gt;
J'ai utilisé un '''petit tournevis plat''', mais si vous avez un '''cutter fin c'est surement mieux.'''&amp;lt;/translate&amp;gt;&lt;br /&gt;
|Step_Picture_00=Brancher_des_périphériques_USB_sur_un_ESP8266_usbhost_mini_fix.jpg&lt;br /&gt;
}}&lt;br /&gt;
{{Tuto Step&lt;br /&gt;
|Step_Title=&amp;lt;translate&amp;gt;&amp;lt;!--T:83--&amp;gt;&lt;br /&gt;
Brancher l'USB Host&amp;lt;/translate&amp;gt;&lt;br /&gt;
|Step_Content=&amp;lt;translate&amp;gt;&amp;lt;!--T:84--&amp;gt;&lt;br /&gt;
OK, j'espère que vous n'avez pas cassé votre carte! Maintenant il est temps de la brancher !&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:85--&amp;gt;&lt;br /&gt;
J'ai utilisé un Wemos Mini D1 avec mon USB Host Mini, voici comment le brancher.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:86--&amp;gt;&lt;br /&gt;
{{Info|Je n'ai pas relié la broche INT, car celle-ci ne semble pas nécessaire au fonctionnement}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:87--&amp;gt;&lt;br /&gt;
*D3 -- SS&lt;br /&gt;
*D7 -- MOSI&lt;br /&gt;
*D6 -- MISO&lt;br /&gt;
*D5 -- SCK&lt;br /&gt;
*RST -- 3.3V&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:88--&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;/translate&amp;gt;&lt;br /&gt;
|Step_Picture_00=Brancher_des_périphériques_USB_sur_un_ESP8266_usbhost_esp.jpg&lt;br /&gt;
}}&lt;br /&gt;
{{Tuto Step&lt;br /&gt;
|Step_Title=&amp;lt;translate&amp;gt;&amp;lt;!--T:89--&amp;gt;&lt;br /&gt;
Régler le problème avec la bibliothèque USB Host&amp;lt;/translate&amp;gt;&lt;br /&gt;
|Step_Content=&amp;lt;translate&amp;gt;&amp;lt;!--T:90--&amp;gt;&lt;br /&gt;
Vous avez peut-être remarqué que pour la broche SS (Chip Select / CS) j'ai utilisé la '''broche D3''' au lieu de la '''broche par défaut D8.'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:91--&amp;gt;&lt;br /&gt;
J'ai eu un problème avec l'USB Host qui mettait mon Wemos Mini en mode programmation et bloqué l'exécution du sketch.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:92--&amp;gt;&lt;br /&gt;
https://github.com/felis/USB_Host_Shield_2.0/issues/457&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:93--&amp;gt;&lt;br /&gt;
Afin de '''changer la broche SS''', il va falloir changer une ligne dans la bibliothèque.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:94--&amp;gt;&lt;br /&gt;
Télécharger '''USB Host Shield Library 2.0'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:95--&amp;gt;&lt;br /&gt;
Ouvrez le fichier '''UsbCore.h''' dans '''libraries/USB_Host_Shield_Library_2.0''' et changer cette ligne&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;code&amp;gt;#elif defined(ESP8266)typedef MAX3421e&amp;lt;P15, P5&amp;gt; MAX3421E; // ESP8266 boards &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:96--&amp;gt;&lt;br /&gt;
Avec cette ligne&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:97--&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;#elif defined(ESP8266)typedef MAX3421e&amp;lt;P0, P5&amp;gt; MAX3421E; // ESP8266 boards&amp;lt;/code&amp;gt;&lt;br /&gt;
{{Info|Pourquoi P0 au lieu de D3 ? c'est parce que le GPIO0 est le D3 sur le Wemos Mini.}}&lt;br /&gt;
https://escapequotes.net/esp8266-wemos-d1-mini-pins-and-diagram/&amp;lt;/translate&amp;gt;&lt;br /&gt;
|Step_Picture_00=Brancher_des_périphériques_USB_sur_un_ESP8266_image_Ky517r0vQa.jpg&lt;br /&gt;
}}&lt;br /&gt;
{{Tuto Step&lt;br /&gt;
|Step_Title=&amp;lt;translate&amp;gt;&amp;lt;!--T:98--&amp;gt;&lt;br /&gt;
Downgrader ESP8266&amp;lt;/translate&amp;gt;&lt;br /&gt;
|Step_Content=&amp;lt;translate&amp;gt;&amp;lt;!--T:99--&amp;gt;&lt;br /&gt;
On y est presque, si vous essayez de compiler un exemple dans la bibliothèque, '''il ne marchera pas!'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:100--&amp;gt;&lt;br /&gt;
{{Info|Ce problème a été réglé récemment, cette étape n'est nécessaire que si vous utilisez la version 1.3.2 de cette bibliothèque}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:101--&amp;gt;&lt;br /&gt;
Il y a une incompatibilité entre la bibliothèque et la version 2.5 d'ESP8266 sur le logiciel Arduino.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:102--&amp;gt;&lt;br /&gt;
'''Il va falloir downgrader celle-ci à 2.4.2'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:103--&amp;gt;&lt;br /&gt;
https://github.com/felis/USB_Host_Shield_2.0/issues/449&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:104--&amp;gt;&lt;br /&gt;
Aller dans '''Outils''' / '''Type de carte''' / '''Gestionnaire de carte''' et changer la version à '''2.4.2'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:105--&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;/translate&amp;gt;&lt;br /&gt;
|Step_Picture_00=Brancher_des_périphériques_USB_sur_un_ESP8266_esp8266_lib.jpg&lt;br /&gt;
}}&lt;br /&gt;
{{Tuto Step&lt;br /&gt;
|Step_Title=&amp;lt;translate&amp;gt;&amp;lt;!--T:106--&amp;gt;&lt;br /&gt;
Test l'USB Host&amp;lt;/translate&amp;gt;&lt;br /&gt;
|Step_Content=&amp;lt;translate&amp;gt;&amp;lt;!--T:107--&amp;gt;&lt;br /&gt;
Il y a beaucoup d'exemples dans l''''USB Host Shield Library 2.0.'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:108--&amp;gt;&lt;br /&gt;
Afin de tester si tout marche correctement, je vous conseille de commencer par '''USB_desc'''.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:109--&amp;gt;&lt;br /&gt;
*'''Téléverser''' USB_desc&lt;br /&gt;
*Ouvrez le  '''Moniteur Série''' (115200)&lt;br /&gt;
*'''Brancher votre périphérique USB'''&lt;br /&gt;
*'''Redémarrer la carte''' (ESP8266)&lt;br /&gt;
{{Info|Il n'est pas possible de brancher &amp;quot;à chaud&amp;quot; le périphérique USB (du moins dans les exemples)&lt;br /&gt;
Vous devez redémarrer votre carte à chaque fois que vous débrancher et rebrancher un périphérique.}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:110--&amp;gt;&lt;br /&gt;
Vous devriez voir un long message décrivant votre périphérique.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:111--&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;/translate&amp;gt;&lt;br /&gt;
|Step_Picture_00=Brancher_des_périphériques_USB_sur_un_ESP8266_usbhost_ex.jpg&lt;br /&gt;
}}&lt;br /&gt;
{{Tuto Step&lt;br /&gt;
|Step_Title=&amp;lt;translate&amp;gt;&amp;lt;!--T:112--&amp;gt;&lt;br /&gt;
Exemple : Manette XBOX360&amp;lt;/translate&amp;gt;&lt;br /&gt;
|Step_Content=&amp;lt;translate&amp;gt;&amp;lt;!--T:113--&amp;gt;&lt;br /&gt;
Si vous avez une manette de '''XBOX360 pour PC''', vous pouvez tester l'exemple : X'''BOX/XBOXUSB'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:114--&amp;gt;&lt;br /&gt;
*'''L2/R2''' vibre quand vous appuyez dessus.&lt;br /&gt;
*L2/R2 : 0/255&lt;br /&gt;
*Stick (Hat) X/Y : -32768 / 32768&lt;br /&gt;
*Les LED peuvent aussi être contrôlées ! (appuyer sur '''pad''' / '''back''' / '''start''' / '''xbox''' pour essayer)&amp;lt;/translate&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
{{Tuto Step&lt;br /&gt;
|Step_Title=&amp;lt;translate&amp;gt;&amp;lt;!--T:115--&amp;gt;&lt;br /&gt;
Exemple : Souris&amp;lt;/translate&amp;gt;&lt;br /&gt;
|Step_Content=&amp;lt;translate&amp;gt;&amp;lt;!--T:116--&amp;gt;&lt;br /&gt;
Je n'ai pas réussi à utiliser ma souris. L'exemple se trouve ici : '''HID/USBHIDBootMouse'''&amp;lt;/translate&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
{{Tuto Step&lt;br /&gt;
|Step_Title=&amp;lt;translate&amp;gt;&amp;lt;!--T:117--&amp;gt;&lt;br /&gt;
Exemple : Contrôleur Midi&amp;lt;/translate&amp;gt;&lt;br /&gt;
|Step_Content=&amp;lt;translate&amp;gt;&amp;lt;!--T:118--&amp;gt;&lt;br /&gt;
Ouvrez l'exemple '''USBH_MIDI/USBH_MIDI_dump'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:119--&amp;gt;&lt;br /&gt;
La plupart des périphériques MIDI n'utilisent qu'une petite partie du buffer ('''bufMidi''')&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:120--&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;00001679: 64: 09 90 2F 13 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:121--&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;0000174A: 64: 08 80 2F 7F 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:122--&amp;gt;&lt;br /&gt;
*bufMidi[0] : Note ON (9) / Note OFF (8)&lt;br /&gt;
*bufMidi[2] : Note&lt;br /&gt;
*bufMidi[3] : Velocity&amp;lt;/translate&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
{{Tuto Step&lt;br /&gt;
|Step_Title=&amp;lt;translate&amp;gt;&amp;lt;!--T:123--&amp;gt;&lt;br /&gt;
Conclusion&amp;lt;/translate&amp;gt;&lt;br /&gt;
|Step_Content=&amp;lt;translate&amp;gt;&amp;lt;!--T:124--&amp;gt;&lt;br /&gt;
Utiliser des périphériques USB ouvre la porte à énormément de possibilités avec nos microcontrôleurs&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:125--&amp;gt;&lt;br /&gt;
Nous n'avons vu qu'une infime partie de ce qu'il est possible de faire.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:126--&amp;gt;&lt;br /&gt;
*Vous pouvez utiliser un '''Hub USB''' pour contrôler plusieurs périphériques USB.&lt;br /&gt;
*Il y a plein de broches sur l'USB Host, c'est parce qu’elle sont utilisables comme des GPIO ! Il est possible de brancher des boutons / LED même un écran LCD dessus.&lt;br /&gt;
*Il est même possible d'utiliser des '''clés''' '''USB.'''&amp;lt;/translate&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
{{Tuto Step&lt;br /&gt;
|Step_Title=&amp;lt;translate&amp;gt;Adaptation ESP32&amp;lt;/translate&amp;gt;&lt;br /&gt;
|Step_Content=&amp;lt;translate&amp;gt;Le branchement sur ESP32 (testé sur DOIT ESP32 DEVKIT V1):&lt;br /&gt;
&lt;br /&gt;
SS : GPIO5&lt;br /&gt;
&lt;br /&gt;
INT : GPIO17&lt;br /&gt;
&lt;br /&gt;
SCK : GPIO18 &lt;br /&gt;
&lt;br /&gt;
MISO: GPIO19&lt;br /&gt;
&lt;br /&gt;
MOSI:  GPIO23&lt;br /&gt;
&lt;br /&gt;
RST : 3.3V&amp;lt;/translate&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
{{Notes&lt;br /&gt;
|Notes=&amp;lt;translate&amp;gt;&amp;lt;/translate&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
{{PageLang&lt;br /&gt;
}}&lt;br /&gt;
{{Tuto Status&lt;br /&gt;
|Complete=Published&lt;br /&gt;
}}&lt;br /&gt;
{{Separator}}&lt;/div&gt;</summary>
		<author><name>Masterglob</name></author>
		
	</entry>
</feed>