(Cette version a été marquée pour être traduite) |
|||
(4 révisions intermédiaires par 3 utilisateurs non affichées) | |||
Ligne 1 : | Ligne 1 : | ||
− | {{ | + | {{Tuto Details |
− | |||
− | |||
− | |||
|Main_Picture=Brancher_des_périphériques_USB_sur_un_ESP8266_usbhost_wiki.jpg | |Main_Picture=Brancher_des_périphériques_USB_sur_un_ESP8266_usbhost_wiki.jpg | ||
− | |||
|Description=<translate><!--T:64--> | |Description=<translate><!--T:64--> | ||
Saviez vous que vous pouvez brancher des périphériques USB sur un Arduino ou un ESP ? | Saviez vous que vous pouvez brancher des périphériques USB sur un Arduino ou un ESP ? | ||
Ligne 16 : | Ligne 12 : | ||
|Currency=EUR (€) | |Currency=EUR (€) | ||
|Tags=arduino, esp8266, esp32, usb host, clavier, souris, manette, xbox, MIDI | |Tags=arduino, esp8266, esp32, usb host, clavier, souris, manette, xbox, MIDI | ||
+ | |SourceLanguage=none | ||
+ | |Language=fr | ||
+ | |IsTranslation=0 | ||
}} | }} | ||
− | {{ | + | {{Introduction |
|Introduction=<translate><!--T:65--> | |Introduction=<translate><!--T:65--> | ||
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. | 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. | ||
<!--T:66--> | <!--T:66--> | ||
− | Si seulement, je pouvais brancher un '''clavier''' ou un '''contrôleur midi''', ça serait carrément plus | + | Si seulement, je pouvais brancher un '''clavier''' ou un '''contrôleur midi''', ça serait carrément plus simple !</translate> |
}} | }} | ||
− | {{ | + | {{TutoVideo |
|VideoType=Youtube | |VideoType=Youtube | ||
|VideoURLYoutube=https://www.youtube.com/watch?v=CeLYOu-UGXA | |VideoURLYoutube=https://www.youtube.com/watch?v=CeLYOu-UGXA | ||
}} | }} | ||
− | {{ | + | {{Materials |
|Step_Picture_00=Contrôler_des_neopixels_comme_un_DJ_Envoyer_un_message_sur_discord_wemos.png | |Step_Picture_00=Contrôler_des_neopixels_comme_un_DJ_Envoyer_un_message_sur_discord_wemos.png | ||
|Step_Picture_01=Brancher_des_périphériques_USB_sur_un_ESP8266_usbhost_mini_def.png | |Step_Picture_01=Brancher_des_périphériques_USB_sur_un_ESP8266_usbhost_mini_def.png | ||
Ligne 36 : | Ligne 35 : | ||
|Tools=<translate><!--T:68--> Un petit tournevis plat / Un cutter fin</translate> | |Tools=<translate><!--T:68--> Un petit tournevis plat / Un cutter fin</translate> | ||
}} | }} | ||
− | {{ | + | {{Tuto Step |
− | + | |Step_Title=<translate><!--T:69--> | |
− | |Step_Title=<translate><!--T:69--> Choisir l'USB Host</translate> | + | Choisir l'USB Host</translate> |
|Step_Content=<translate><!--T:70--> | |Step_Content=<translate><!--T:70--> | ||
Merci à CircuitatHome pour la création de l'USB Host | Merci à CircuitatHome pour la création de l'USB Host | ||
Ligne 51 : | Ligne 50 : | ||
<!--T:73--> | <!--T:73--> | ||
{{Idea|Si vous voulez utiliser un microcontrôleur en 5v (comme l'Arduino Uno / Nano) utiliser plutôt le Shield USB Host.}} | {{Idea|Si vous voulez utiliser un microcontrôleur en 5v (comme l'Arduino Uno / Nano) utiliser plutôt le Shield USB Host.}} | ||
− | |||
<!--T:74--> | <!--T:74--> | ||
Ligne 59 : | Ligne 57 : | ||
|Step_Picture_02=Brancher_des_périphériques_USB_sur_un_ESP8266_usbhost_shield.jpg | |Step_Picture_02=Brancher_des_périphériques_USB_sur_un_ESP8266_usbhost_shield.jpg | ||
}} | }} | ||
− | {{ | + | {{Tuto Step |
− | |Step_Title=<translate><!--T:75--> Régler le problème d'alimentation</translate> | + | |Step_Title=<translate><!--T:75--> |
+ | Régler le problème d'alimentation</translate> | ||
|Step_Content=<translate><!--T:76--> | |Step_Content=<translate><!--T:76--> | ||
Si vous avez acheté '''un clone de l'USB Host Mini''', il n'y a pas de '''jumper pour le VBUS'''. | Si vous avez acheté '''un clone de l'USB Host Mini''', il n'y a pas de '''jumper pour le VBUS'''. | ||
Ligne 74 : | Ligne 73 : | ||
<!--T:80--> | <!--T:80--> | ||
− | https://ht-deko.com/arduino/shield_usbhost_mini.html | + | https://ht-deko.com/arduino/shield_usbhost_mini.html |
<!--T:81--> | <!--T:81--> | ||
Ligne 83 : | Ligne 82 : | ||
|Step_Picture_00=Brancher_des_périphériques_USB_sur_un_ESP8266_usbhost_mini_fix.jpg | |Step_Picture_00=Brancher_des_périphériques_USB_sur_un_ESP8266_usbhost_mini_fix.jpg | ||
}} | }} | ||
− | {{ | + | {{Tuto Step |
− | |Step_Title=<translate><!--T:83--> Brancher l'USB Host</translate> | + | |Step_Title=<translate><!--T:83--> |
+ | Brancher l'USB Host</translate> | ||
|Step_Content=<translate><!--T:84--> | |Step_Content=<translate><!--T:84--> | ||
OK, j'espère que vous n'avez pas cassé votre carte! Maintenant il est temps de la brancher ! | OK, j'espère que vous n'avez pas cassé votre carte! Maintenant il est temps de la brancher ! | ||
Ligne 96 : | Ligne 96 : | ||
<!--T:87--> | <!--T:87--> | ||
*D3 -- SS | *D3 -- SS | ||
− | *D7 -- | + | *D7 -- MOSI |
− | *D6 -- | + | *D6 -- MISO |
*D5 -- SCK | *D5 -- SCK | ||
*RST -- RST | *RST -- RST | ||
Ligne 105 : | Ligne 105 : | ||
|Step_Picture_00=Brancher_des_périphériques_USB_sur_un_ESP8266_usbhost_esp.jpg | |Step_Picture_00=Brancher_des_périphériques_USB_sur_un_ESP8266_usbhost_esp.jpg | ||
}} | }} | ||
− | {{ | + | {{Tuto Step |
− | |Step_Title=<translate><!--T:89--> Régler le problème avec la bibliothèque USB Host</translate> | + | |Step_Title=<translate><!--T:89--> |
+ | Régler le problème avec la bibliothèque USB Host</translate> | ||
|Step_Content=<translate><!--T:90--> | |Step_Content=<translate><!--T:90--> | ||
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.''' | 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.''' | ||
Ligne 130 : | Ligne 131 : | ||
Avec cette ligne | Avec cette ligne | ||
− | + | <!--T:97--> | |
<code>#elif defined(ESP8266)typedef MAX3421e<P0, P5> MAX3421E; // ESP8266 boards</code> | <code>#elif defined(ESP8266)typedef MAX3421e<P0, P5> MAX3421E; // ESP8266 boards</code> | ||
{{Info|Pourquoi P0 au lieu de D3 ? c'est parce que le GPIO0 est le D3 sur le Wemos Mini.}} | {{Info|Pourquoi P0 au lieu de D3 ? c'est parce que le GPIO0 est le D3 sur le Wemos Mini.}} | ||
Ligne 136 : | Ligne 137 : | ||
|Step_Picture_00=Brancher_des_périphériques_USB_sur_un_ESP8266_image_Ky517r0vQa.jpg | |Step_Picture_00=Brancher_des_périphériques_USB_sur_un_ESP8266_image_Ky517r0vQa.jpg | ||
}} | }} | ||
− | {{ | + | {{Tuto Step |
− | |Step_Title=<translate><!--T:98--> Downgrader ESP8266</translate> | + | |Step_Title=<translate><!--T:98--> |
+ | Downgrader ESP8266</translate> | ||
|Step_Content=<translate><!--T:99--> | |Step_Content=<translate><!--T:99--> | ||
On y est presque, si vous essayez de compiler un exemple dans la bibliothèque, '''il ne marchera pas!''' | On y est presque, si vous essayez de compiler un exemple dans la bibliothèque, '''il ne marchera pas!''' | ||
Ligne 160 : | Ligne 162 : | ||
|Step_Picture_00=Brancher_des_périphériques_USB_sur_un_ESP8266_esp8266_lib.jpg | |Step_Picture_00=Brancher_des_périphériques_USB_sur_un_ESP8266_esp8266_lib.jpg | ||
}} | }} | ||
− | {{ | + | {{Tuto Step |
− | |Step_Title=<translate><!--T:106--> Test l'USB Host</translate> | + | |Step_Title=<translate><!--T:106--> |
+ | Test l'USB Host</translate> | ||
|Step_Content=<translate><!--T:107--> | |Step_Content=<translate><!--T:107--> | ||
Il y a beaucoup d'exemples dans l''''USB Host Shield Library 2.0.''' | Il y a beaucoup d'exemples dans l''''USB Host Shield Library 2.0.''' | ||
Ligne 183 : | Ligne 186 : | ||
|Step_Picture_00=Brancher_des_périphériques_USB_sur_un_ESP8266_usbhost_ex.jpg | |Step_Picture_00=Brancher_des_périphériques_USB_sur_un_ESP8266_usbhost_ex.jpg | ||
}} | }} | ||
− | {{ | + | {{Tuto Step |
− | |Step_Title=<translate><!--T:112--> Exemple : Manette XBOX360</translate> | + | |Step_Title=<translate><!--T:112--> |
+ | Exemple : Manette XBOX360</translate> | ||
|Step_Content=<translate><!--T:113--> | |Step_Content=<translate><!--T:113--> | ||
Si vous avez une manette de '''XBOX360 pour PC''', vous pouvez tester l'exemple : X'''BOX/XBOXUSB''' | Si vous avez une manette de '''XBOX360 pour PC''', vous pouvez tester l'exemple : X'''BOX/XBOXUSB''' | ||
Ligne 194 : | Ligne 198 : | ||
*Les LED peuvent aussi être contrôlées ! (appuyer sur '''pad''' / '''back''' / '''start''' / '''xbox''' pour essayer)</translate> | *Les LED peuvent aussi être contrôlées ! (appuyer sur '''pad''' / '''back''' / '''start''' / '''xbox''' pour essayer)</translate> | ||
}} | }} | ||
− | {{ | + | {{Tuto Step |
− | |Step_Title=<translate><!--T:115--> Exemple : Souris</translate> | + | |Step_Title=<translate><!--T:115--> |
− | |Step_Content=<translate><!--T:116--> Je n'ai pas réussi à utiliser ma souris. L'exemple se trouve ici : '''HID/USBHIDBootMouse'''</translate> | + | Exemple : Souris</translate> |
+ | |Step_Content=<translate><!--T:116--> | ||
+ | Je n'ai pas réussi à utiliser ma souris. L'exemple se trouve ici : '''HID/USBHIDBootMouse'''</translate> | ||
}} | }} | ||
− | {{ | + | {{Tuto Step |
− | |Step_Title=<translate><!--T:117--> Exemple : Contrôleur Midi</translate> | + | |Step_Title=<translate><!--T:117--> |
+ | Exemple : Contrôleur Midi</translate> | ||
|Step_Content=<translate><!--T:118--> | |Step_Content=<translate><!--T:118--> | ||
Ouvrez l'exemple '''USBH_MIDI/USBH_MIDI_dump''' | Ouvrez l'exemple '''USBH_MIDI/USBH_MIDI_dump''' | ||
Ligne 217 : | Ligne 224 : | ||
*bufMidi[3] : Velocity</translate> | *bufMidi[3] : Velocity</translate> | ||
}} | }} | ||
− | {{ | + | {{Tuto Step |
− | |Step_Title=<translate><!--T:123--> Conclusion</translate> | + | |Step_Title=<translate><!--T:123--> |
+ | Conclusion</translate> | ||
|Step_Content=<translate><!--T:124--> | |Step_Content=<translate><!--T:124--> | ||
Utiliser des périphériques USB ouvre la porte à énormément de possibilités avec nos microcontrôleurs | Utiliser des périphériques USB ouvre la porte à énormément de possibilités avec nos microcontrôleurs | ||
Ligne 230 : | Ligne 238 : | ||
*Il est même possible d'utiliser des '''clés''' '''USB.'''</translate> | *Il est même possible d'utiliser des '''clés''' '''USB.'''</translate> | ||
}} | }} | ||
− | {{ {{ | + | {{Tuto Step |
+ | |Step_Title=<translate><!--T:127--> | ||
+ | Adaptation ESP32</translate> | ||
+ | |Step_Content=<translate><!--T:128--> | ||
+ | Le branchement sur ESP32 (testé sur DOIT ESP32 DEVKIT V1): | ||
+ | |||
+ | <!--T:129--> | ||
+ | SS : GPIO5 | ||
+ | |||
+ | <!--T:130--> | ||
+ | INT : GPIO17 | ||
+ | |||
+ | <!--T:131--> | ||
+ | SCK : GPIO18 | ||
+ | |||
+ | <!--T:132--> | ||
+ | MISO: GPIO19 | ||
+ | |||
+ | <!--T:133--> | ||
+ | MOSI: GPIO23 | ||
+ | |||
+ | <!--T:134--> | ||
+ | RST : 3.3V</translate> | ||
+ | }} | ||
+ | {{Notes | ||
|Notes=<translate></translate> | |Notes=<translate></translate> | ||
}} | }} | ||
− | {{ {{ | + | {{PageLang |
+ | }} | ||
+ | {{Tuto Status | ||
|Complete=Published | |Complete=Published | ||
}} | }} | ||
+ | {{Separator}} |
Auteur Rémi Sarrailh (µsini) | Dernière modification 9/11/2020 par Madnerd
arduino, esp8266, esp32, usb host, clavier, souris, manette, xbox, MIDI Brancher_des_périphériques_USB_sur_un_ESP8266_usbhost_wiki.jpg fr none Technique 0
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.
Si seulement, je pouvais brancher un clavier ou un contrôleur midi, ça serait carrément plus simple !
Youtube
Merci à CircuitatHome pour la création de l'USB Host https://www.circuitsathome.com/usb-host-shield-hardware-manual/
Dans ce tutoriel nous allons utilisé un clone de l'USB Host Mini.
La puce sur celle-ci est un MAX3421E qui ne fonctionne quand 3.3v
Malheureusement avant de pouvoir brancher notre USB Host, il va nous falloir régler plusieurs problèmes sinon cela ne marchera pas.
Si vous avez acheté un clone de l'USB Host Mini, il n'y a pas de jumper pour le VBUS.
Cela veut dire que les périphériques USB seront alimentés en 3.3v
Malheureusement, aucun de mes périphériques ne marche, car ils nécessitent tous du 5v.
Vous pouvez en apprendre plus sur ce lien (en japonais)
https://ht-deko.com/arduino/shield_usbhost_mini.html
Il va falloir couper une trace sur le circuit pour régler ce problème.
J'ai utilisé un petit tournevis plat, mais si vous avez un cutter fin c'est surement mieux.
OK, j'espère que vous n'avez pas cassé votre carte! Maintenant il est temps de la brancher !
J'ai utilisé un Wemos Mini D1 avec mon USB Host Mini, voici comment le brancher.
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.
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.
https://github.com/felis/USB_Host_Shield_2.0/issues/457
Afin de changer la broche SS, il va falloir changer une ligne dans la bibliothèque.
Télécharger USB Host Shield Library 2.0
Ouvrez le fichier UsbCore.h dans libraries/USB_Host_Shield_Library_2.0 et changer cette ligne
#elif defined(ESP8266)typedef MAX3421e<P15, P5> MAX3421E; // ESP8266 boards
Avec cette ligne
#elif defined(ESP8266)typedef MAX3421e<P0, P5> MAX3421E; // ESP8266 boards
https://escapequotes.net/esp8266-wemos-d1-mini-pins-and-diagram/
On y est presque, si vous essayez de compiler un exemple dans la bibliothèque, il ne marchera pas!
Il y a une incompatibilité entre la bibliothèque et la version 2.5 d'ESP8266 sur le logiciel Arduino.
Il va falloir downgrader celle-ci à 2.4.2
https://github.com/felis/USB_Host_Shield_2.0/issues/449
Aller dans Outils / Type de carte / Gestionnaire de carte et changer la version à 2.4.2
Il y a beaucoup d'exemples dans l'USB Host Shield Library 2.0.
Afin de tester si tout marche correctement, je vous conseille de commencer par USB_desc.
Vous devriez voir un long message décrivant votre périphérique.
Si vous avez une manette de XBOX360 pour PC, vous pouvez tester l'exemple : XBOX/XBOXUSB
Je n'ai pas réussi à utiliser ma souris. L'exemple se trouve ici : HID/USBHIDBootMouse
Ouvrez l'exemple USBH_MIDI/USBH_MIDI_dump
La plupart des périphériques MIDI n'utilisent qu'une petite partie du buffer (bufMidi)
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
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
Utiliser des périphériques USB ouvre la porte à énormément de possibilités avec nos microcontrôleurs
Nous n'avons vu qu'une infime partie de ce qu'il est possible de faire.
Le branchement sur ESP32 (testé sur DOIT ESP32 DEVKIT V1):
SS : GPIO5
INT : GPIO17
SCK : GPIO18
MISO: GPIO19
MOSI: GPIO23
RST : 3.3V
Published
Vous avez entré un nom de page invalide, avec un ou plusieurs caractères suivants :
< > @ ~ : * € £ ` + = / \ | [ ] { } ; ? #