# USB モジュール {docsify-ignore-all}
***
:memo:**[概要](#概要)** :octocat:**[サンプルコード](#サンプルコード)** :electric_plug:**[回路図](#回路図)** 🛒**[購入リンク](https://www.aliexpress.com/item/M5Stack-New-USB-Module-USB-HOST-HID-with-MAX3421E-SPI-Interface-Output-5-Input-5-Compatible/32961627365.html)** :clapper:**[関連動画](#関連動画)**
## 概要
**USB**モジュールは**MAX3421E**を内蔵したUSBコントローラです。このモジュールはM5Coreと最大通信速度26MHzのSPIインターフェースで接続され、USBホストやUSBペリフェラルとして使用できます。
## 特徴
- 最大通信速度26MHz SPIインターフェース
- 8-way GPIO入出力
- 内蔵リチウム電池コネクタ
## パッケージ内容
- 1x USBモジュール
## アプリケーション
- USBキーロガー
- USBメモリのリードライト
## 関連リンク
- **[公式ビデオ](https://www.youtube.com/channel/UCozgFVglWYQXbvTmGyS739w)**
- **[フォーラム](http://forum.m5stack.com/)**
- **データシート**
- [MAX3421E](https://www.sparkfun.com/datasheets/DevTools/Arduino/MAX3421E.pdf)
## サンプルコード
*完全なソースコードは[こちら](https://github.com/m5stack/M5-ProductExampleCodes/tree/master/Module/USB/Arduino)。*
**NOTE:** このサンプルを実行する前に、対応USBライブラリを[こちら](https://github.com/m5stack/M5-ProductExampleCodes/tree/master/Module/USB/Arduino/Library)からダウンロードします。次にArduino IDE のメニューから `スケッチ` → `ライブラリをインクルード` → `.ZIP形式のライブラリをインストール...`を選択後、ダウンロードしたファイルを選択し、取り込みます。
`usb_mouse.ino`をM5Coreに書き込みます。USBマウスをモジュールに接続します。マウスの左ボタンを押して緑色の線を描き、右ボタンで白色の線を描きます。中央のボタンを押すと画面をクリアします。
```arduino
#include
#include
#include
#include
#include
#include
#include "M5Mouse.h"
// new objects
USB Usb;
USBHub Hub(&Usb);
HIDBoot HidMouse(&Usb);
MouseRptParser Prs;
// 初期化
M5.begin();
Usb.Init();
HidMouse.SetReportParser(0,(HIDReportParser*)&Prs);
// handle event coming from usb device
Usb.Task();
if(Usb.getUsbTaskState() == USB_STATE_RUNNING)
{
Mouse_Pointer(mou_px, mou_py);
mou_px = 0;
mou_py = 0;
/* left button pressed: draw white point */
if (mou_button == 1)
M5.Lcd.drawCircle(StaPotX, StaPotY, 1, WHITE);
/* right button pressed: draw green point */
if (mou_button == 2)
M5.Lcd.drawCircle(StaPotX, StaPotY, 1, GREEN);
/* middle button pressed: clear screen */
if (mou_button == 4)
M5.Lcd.fillScreen(BLACK);
}
```
## 回路図
## 関連動画
**USB デモ - USBデバイを読み込む**