共感で繋がるSNS

人気

Erispa

Erispa

My keyboard
GRAVITY
GRAVITY21
✮⋆𝑵𝑨𝑶🍓

✮⋆𝑵𝑨𝑶🍓

今日新しいkeyboard届いたの〜打鍵感とか好みすぎてもう最高でした✨

USタイプなのでJISがないのが残念やけど手頃な価格で手に入れることができて、無線と有線両方に対応しているので重宝すること間違いなし[キラッ]明日から仕事とお店と両方で使っていくアイテムなので翌日配送してくれたAmazonしゃんありがとう😊
#keyboard #打鍵感 #キーボード
GRAVITY4
GRAVITY15
Pipe

Pipe

New keyboard!
GRAVITY
GRAVITY71
ロイ

ロイ

便利なMagic Keyboard。
GRAVITY
GRAVITY6
ひろ

ひろ

1/31(土)15:10〜17:45まで

Studio内でfunk系sessionするので
そのSessionの音声ルーム開きますー。

面子は
tenor sax
gt
key
bass
drum
の5名です。

全体的に上手い人だらけですが、
Bassがjazzsessionでもホストもしてる
上手すぎな方なので個人的に楽しみ(⁠^⁠^⁠)

良かったら聴きに遊びに来てね!

#sax #drum #bass #keyboard #guitar
JAZZの星JAZZの星
GRAVITY
GRAVITY5
ひろ

ひろ

12/30(火)14:35〜17:20くらいまでの約3時間。
Studio内でメンバー固定のjazzfunk系Jamsessionの垂れ流し音声ルームを開きます!
音声ルームは放置気味なので挨拶等はコチラから出来ないかもですので、挨拶なくても大丈夫です!

面子は t-sax,鍵盤,bass,drum(もしかしたらgtも参加)
良ければ遊びに来てね(⁠^⁠^⁠)

#sax
#drum
#bass
#keyboard
#soul
GRAVITY

Chameleon

ハービー・ハンコック

JAZZの星JAZZの星
GRAVITY
GRAVITY6
もっとみる

関連検索ワード

新着

ハシオキ龍之介

ハシオキ龍之介

100 CITY POP撰 # 69

微熱少年 : 鈴木茂

W 松本隆
M・A 鈴木茂

Bass – Doug Rauch
Drums – David Garibaldi
Keyboard – Don Grusin
Vocal, Guitar – Shigeru Suzuki

from single 2017.4.5
from Al.『Band Wagon』

1975.3.25

GRAVITY

微熱少年

鈴木茂

シティポップの星シティポップの星
GRAVITY
GRAVITY10
ぴこ

ぴこ

Bluetoothのkeyboardでメールを作っていたら、文字を打つたびにどんどんどんどん画面が下がって行って、今文字を打っているところが見えなくなるの、安物だから?設定の問題??


#質問をしたら誰かが答えてくれるタグ
GRAVITY3
GRAVITY8
🦊俊之助宗十郎🦊

🦊俊之助宗十郎🦊

microsoftのあの名アシスタント
イルカのカイルが帰ってきた!

copilot keyboardをインストールしていますぐあの時の憎sh、感動を体験しよう!!
GRAVITY1
GRAVITY19
なるほどたしかにおー

なるほどたしかにおー

# Nucleo-32でUSBキーボードデバイスを構築する概要手順

## 目的

Nucleo-32をPCから通常のUSBキーボードとして認識させ、ボタン押下などをトリガにして、指定したキー入力を自動実行します。

動作例:

```text
Nucleoボタン押下

Win + R

cmd

echo Hello World

コマンドプロンプトに Hello World を表示
```

---

## 重要な前提

Nucleo-32の基板上USBコネクタは、基本的に **ST-LINK用** です。

そのため、このUSBにPCを接続しても、ターゲットMCUがUSBキーボードとして認識されるわけではありません。

USBキーボード化するには、ターゲットMCU側のUSB信号線をPCへ接続する必要があります。

---

## 1. 対象ボードの確認

まず、使用しているNucleo-32の型番を確認します。

例:

```text
NUCLEO-F042K6
NUCLEO-L432KC
NUCLEO-G431KB
```

確認ポイント:

| 項目 | 確認内容 |
|---|---|
| MCU型番 | STM32の型番 |
| USB Device機能 | USB FS / USB Device対応の有無 |
| USBピン | D+ / D- のピン |
| ピン引き出し | ヘッダやパッドから配線可能か |

USB Device機能がないMCUでは、この方式は使用できません。

---

## 2. ハードウェア接続

外付けUSBコネクタ、またはUSBブレイクアウト基板を使用します。

代表的な接続:

```text
USB D- -> PA11 / USB_DM
USB D+ -> PA12 / USB_DP
USB GND -> GND
USB 5V -> 必要に応じてVBUS検出ピン
```

注意点:

- ST-LINK用USBとは別に配線する
- D+ / D-を逆接続しない
- GNDを必ず共通にする
- VBUS sensing設定と実配線を合わせる

---

## 3. Ubuntu / PlatformIO環境準備

PlatformIOをインストールします。

```bash
python3 -m pip install --user platformio
pio --version
```

ST-LINKの書き込み権限で失敗する場合は、udev rulesを設定します。

```bash
curl -fsSL https://raw.githubusercontent.com/platformio/platformio-core/develop/platformio/assets/system/99-platformio-udev.rules | sudo tee /etc/udev/rules.d/99-platformio-udev.rules
sudo service udev restart
sudo usermod -a -G dialout $USER
sudo usermod -a -G plugdev $USER
```

設定後、ログアウト・ログインします。

---

## 4. PlatformIOプロジェクト作成

例として `NUCLEO-L432KC` の場合です。

```bash
mkdir nucleo32_usb_keyboard
cd nucleo32_usb_keyboard
pio project init --board nucleo_l432kc
```

`platformio.ini` 例:

```ini
[env:nucleo_l432kc]
platform = ststm32
board = nucleo_l432kc
framework = stm32cube
upload_protocol = stlink
debug_tool = stlink
```

使用ボードに応じて `board` 名を変更します。

---

## 5. STM32CubeMXでUSB HIDを生成

CubeMXで対象Nucleo-32を選択し、以下を設定します。

```text
USB Device / USB_OTG_FS : Device有効
USB_DEVICE Middleware : HID Class有効
USB Clock : 48MHz設定
VBUS sensing : 実配線に合わせて設定
```

コード生成後、PlatformIOプロジェクトへ以下を移植します。

```text
Core/Src
Core/Inc
USB_DEVICE/App
USB_DEVICE/Target
Middlewares/ST/STM32_USB_Device_Library
```

---

## 6. HIDをKeyboard用に変更

CubeMX標準のHIDはMouse扱いの場合があるため、`usbd_hid.c` を修正します。

主な修正内容:

```text
HID Report DescriptorをKeyboard用に変更
bInterfaceClass = 0x03
bInterfaceSubClass = 0x01
bInterfaceProtocol = 0x01
Report Descriptorサイズを63に設定
```

これにより、PC側からHIDキーボードとして認識されます。

---

## 7. キー送信処理を実装

`main.c` にHIDレポート送信用の処理を追加します。

基本的な送信データは8バイトです。

```text
[0] 修飾キー
[1] 予約
[2] キーコード1
[3] キーコード2
[4] キーコード3
[5] キーコード4
[6] キーコード5
[7] キーコード6
```

例:

```c
extern USBD_HandleTypeDef hUsbDeviceFS;

#define MOD_LGUI 0x08

static void HID_SendKey(uint8_t modifier, uint8_t keycode)
{
uint8_t report[8] = {0};

report[0] = modifier;
report[2] = keycode;

USBD_HID_SendReport(&hUsbDeviceFS, report, sizeof(report));
HAL_Delay(30);

memset(report, 0, sizeof(report));
USBD_HID_SendReport(&hUsbDeviceFS, report, sizeof(report));
HAL_Delay(30);
}
```

---

## 8. Hello World入力シーケンス

ボタン押下時に以下の流れを実行します。

```text
Win + R
cmd
Enter
echo Hello World
Enter
```

実装イメージ:

```c
while (1)
{
if (HAL_GPIO_ReadPin(B1_GPIO_Port, B1_Pin) == GPIO_PIN_RESET)
{
HAL_Delay(50);

HID_SendKey(MOD_LGUI, 0x15); // Win + R
HAL_Delay(700);

HID_TypeString("cmd");
HID_TypeChar('\n');
HAL_Delay(1500);

HID_TypeString("echo Hello World");
HID_TypeChar('\n');

HAL_Delay(3000);
}
}
```

---

## 9. ビルドと書き込み

```bash
pio run
pio run -t upload
```

書き込みはST-LINK用USB経由で実施します。

---

## 10. 動作確認

1. ST-LINK経由でファームを書き込む
2. ターゲットMCU側USB信号線をPCへ接続する
3. PCでHIDキーボードとして認識されることを確認する
4. Nucleoのボタンを押す
5. コマンドプロンプトに `Hello World` が表示されることを確認する

---

## 11. トラブルシュート要点

| 症状 | 主な確認点 |
|---|---|
| PCに認識されない | D+ / D-配線、GND、USB 48MHz、VBUS設定 |
| Mouseとして認識される | HID DescriptorがMouse用のまま |
| 文字が化ける | US配列 / JIS配列の違い |
| 最初のキーが入力されない | USB認識完了前に送信している |
| ボタンなしで入力される | GPIO Pull-up / Pull-down設定 |

---

## 12. 推奨開発ステップ

```text
1. PlatformIOでLチカ確認
2. CubeMX生成のUSB HIDを移植
3. PCにHIDデバイスとして認識されるか確認
4. HID DescriptorをKeyboard用に変更
5. 1文字だけ送信
6. 文字列送信
7. Win + R → cmd → echo Hello Worldを実装
8. ボタン押下時のみ実行にする
```

---

## まとめ

Nucleo-32でUSBキーボード化するには、以下が必須です。

```text
MCUがUSB Device対応
USB D+ / D-にアクセス可能
USB 48MHzクロック設定が正しい
ST-LINK用USBとは別にターゲットUSBを配線
HID DescriptorをKeyboard用に変更
```

この条件を満たせば、Ubuntu + PlatformIO + STM32Cube構成でUSB HIDキーボードを実装できます。
GRAVITY4
GRAVITY4
伊藤

伊藤

PCMK 3 HE TKL Gaming Keyboard
最近買いました。
値段に見合ったクオリティはしてる。
ライティングだけちょっとダサい。
梱包が凄すぎてびっくりした。
GRAVITY
GRAVITY132
Stupid

Stupid

お写真は、STAXRecordsのHouse Band
Booker T & the MGS
Keyboard Booker T Jones Piano Isaac Hayes
Guitar 故Steve Cropper Bass Donald〝Duck〝Dunn Drums Al Jackson Jr
GRAVITY

Melting Pot

Booker T. & The M.G.'s

GRAVITY
GRAVITY6
もっとみる

おすすめのクリエーター