人気

Erispa


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



Pipe


ロイ


ひろ
Studio内でfunk系sessionするので
そのSessionの音声ルーム開きますー。
面子は
tenor sax
gt
key
bass
drum
の5名です。
全体的に上手い人だらけですが、
Bassがjazzsessionでもホストもしてる
上手すぎな方なので個人的に楽しみ(^^)
良かったら聴きに遊びに来てね!
#sax #drum #bass #keyboard #guitar

ひろ
Studio内でメンバー固定のjazzfunk系Jamsessionの垂れ流し音声ルームを開きます!
音声ルームは放置気味なので挨拶等はコチラから出来ないかもですので、挨拶なくても大丈夫です!
面子は t-sax,鍵盤,bass,drum(もしかしたらgtも参加)
良ければ遊びに来てね(^^)
#sax
#drum
#bass
#keyboard
#soul
Chameleon
もっとみる 
関連検索ワード
新着
ハシオキ龍之介
微熱少年 : 鈴木茂
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


微熱少年
ぴこ
#質問をしたら誰かが答えてくれるタグ

🦊俊之助宗十郎🦊
イルカのカイルが帰ってきた!
copilot keyboardをインストールしていますぐあの時の憎sh、感動を体験しよう!!



なるほどたしかにおー
## 目的
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キーボードを実装できます。

伊藤
最近買いました。
値段に見合ったクオリティはしてる。
ライティングだけちょっとダサい。
梱包が凄すぎてびっくりした。



Stupid
Booker T & the MGS
Keyboard Booker T Jones Piano Isaac Hayes
Guitar 故Steve Cropper Bass Donald〝Duck〝Dunn Drums Al Jackson Jr





Melting Pot
もっとみる 
おすすめのクリエーター

Stupid
59歳、初老の男性です。パーキンソン病持ち
フォロワー
0
投稿数
14287

🦊俊之助宗十郎🦊
旅人。仕事より筋トレ。
172cm、61.0kg
逆立ち腕立て4回
ベンチ107kg
レッグプレス200kg
富士山弾丸
高尾山15kg重りつき登山
ママチャリ200km
ハーフマラソン1.5時間
両利き
フォロワー
0
投稿数
1913
ハシオキ龍之介
趣味は読書・音楽鑑賞・評論文筆・エアチェック📼📀💿・別アカにて音声ルームで音楽ルーム~岸辺🏝~を挙行中です。納豆とチャーハンが大好物ですが、納豆チャーハンは好きではありません。長芋は好きですがとろろは苦手です。
フォロワー
0
投稿数
1274

ひろ
ほそぼそとテキトーに楽しく愚痴る(^^)
フォロワー
0
投稿数
1099

ロイ
INFP-Aの40代。未婚。
O型の獅子座。東京在住。
フォロワー
343
投稿数
972
