編集履歴一覧に戻る
Foopingのアイコン画像

Fooping が 2024年09月13日10時30分52秒 に編集

コメント無し

タイトルの変更

-

SPRESENSE で作る魔法の杖(準備編)

+

SPRESENSE で作る魔法の杖(準備〜推論実行)

本文の変更

本記事は以下の魔法の杖制作を少ない部材で要素技術部分ごとに解説します。 https://elchika.com/article/3e0ab04e-85bb-466b-86e5-c8a1b16c5984/ ## 準備物 | 部品 | 個数 | URL | |:---:|:---:|:---| | SPRESENSEメインボード | 1 | https://ssci.to/3900| | SPRESENSE拡張ボード | 1 | https://ssci.to/3901| | SPRESENSE6軸加速度・ジャイロセンサアドオンボード | 1 | https://ssci.to/9870 | | マイクロSDカード|1|https://amzn.asia/d/hBE4j0H | SPRESENSEとパソコンを接続するためのUSBマイクロbケーブルが別途必要です。 ## 接続 - SPRESENSE メインボードと6軸加速度・ジャイロセンサアドオンボードを組み付ける([詳細](https://github.com/fooping-tech/Spresense_6dof_add_on)) - SPRESENSE メインボードと拡張ボードを組み付ける([詳細](https://developer.sony.com/develop/spresense/docs/introduction_ja.html#_spresenseメインボードとspresense拡張ボードの接続方法)) ++メインボードと拡張ボードの嵌合が不完全だとSDカードが読み込めないなどの現象が発生します。しっかりと組み付けたことを確認してください。++ ## 開発環境を準備する 以下のセットアップ記事を参考にArduino開発環境を準備する https://developer.sony.com/spresense/development-guides/arduino_set_up_ja.html ## ソフトを書き込む 以下のソフトを書き込む https://github.com/fooping-tech/Spresense_6dof_add_on/tree/main/example/Spresense_magic_wand

+

++ソフトのダウンロードは[リポジトリのトップページ](https://github.com/fooping-tech/Spresense_6dof_add_on)で code > Download Zip でダウンロードできる++

## SDカードにmodelを書き込む - SDカードをSPRESENSE拡張ボードに差し込む - SPRESENSE拡張ボードのUSBコネクタとパソコンを接続する

-

- [mode.nnb](https://github.com/fooping-tech/Spresense_6dof_add_on/tree/main/example/Spresense_magic_wand/model)をSDカードに書き込む

+

- example/Spresense_magic_wand/modelに入っている[model.nnb](https://github.com/fooping-tech/Spresense_6dof_add_on/tree/main/example/Spresense_magic_wand/model)をSDカードに書き込む

## プログラムを実行する - SPRESENSEメインボードにUSBを接続しパソコンと接続する - USBコネクタを支点に円を描く、8の字を描く、横方向に振るとLEDが推論結果を示す - Arduinoのシリアルモニタにrを書き込むとリセットされる。 - Arduinoのシリアルモニタにpを書き込むと杖軌跡が0,1で表示される。(1が杖通過した軌跡) ```arduino:参考:シリアルモニタによるコマンド void Serial_main(){ if (Serial.available() > 0) { // シリアルバッファにデータがあるか確認 char receivedChar = Serial.read(); // 1バイト読み取り if (receivedChar == 's') { // もし受信したデータが's'なら SaveCSV(); Serial.println("Done!"); } if (receivedChar == 'l') { // もし受信したデータが'l'ならラベル+1 label++; if(label>5)label=0; Serial.print("label="); Serial.println(label); } if (receivedChar == 'p') { // もし受信したデータが'p'なら canvas4->PrintSerial28(); } if (receivedChar == 'r') { // もし受信したデータが'r'なら ResetCanvas(); } } } ```