Milk-v duo用ビジュアルプログラミング環境を妄想してMind+を使ってみる。Microbit編

## はじめに
秋葉原ロボット部の有志で、milk-v duoを購入し、個々人が様々な実験を行って、勉強会内で報告しています。

Milk-v duoは9ドルのrisc-vコンピュータとして知られています。
ハードウェアは以下の通りです。

1. CPUはCVITEKのCV1800B (C906@1Ghz + C906@700MHz)
1. 最高1 GHzで動作するデュアルRV64コア
1. 64 MBのラム
1. オプションのアドオンボードを接続すると10/100Mbpsの速度でイーサーネットに接続可能

pythonでpinpongライブラリを利用可能で、シリアルポート経由で書き込み可能なボードにMicrobitがあります。
本記事では、Mind＋で作成したプルグラムをMicrobitで実行します。

## Arduino Cでビジュアルプログラミング

右上の「Offline」が白地にオレンジ色の文字出ることを確認します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/693019/86402842-a331-d6cd-6988-5ee7cb20a355.png)
左下の「Extensons」をクリックすると、ボード選択画面が表示されます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/693019/b2868a46-9d9f-cb1d-766d-db5ec41f9fd6.png)
左上の「micro:bit」をクリックして、オレンジ色の枠で囲まれているのを確認して、「Back」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/693019/ee339d3d-b120-a996-f0ac-abf7ce83874c.png)
プログラムを行う画面に戻ると、左のブロック選択画面に、青色のアイコンの「micro:bit」が表示されていることを確認します。
また、中央のウィンドウに「microbit:starts」のブロックが表示されていることも確認します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/693019/69bd5887-6418-1546-81a4-fbaaa3480ee3.png)
プログラムが完成したら、オレンジ色に白い文字の「Connect Device」をクリックして、「Microbit」を選びます。
右上の「Upload」横の上向きの矢印をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/693019/1e84686f-baf8-13a2-d907-36721d9be632.png)
右下のウィンドウの表示は以下の通りです。

```
ET_NORDIC\TARGET_MCU_NRF51822\Lib\nordic_sdk\components -I C:\Program Files (x86)\Mind+\Arduino\hardware\dfrobot\nRF5\cores\nRF5\mbed-classic\targets\hal\TARGET_NORDIC\TARGET_MCU_NRF51822\Lib\nordic_sdk\components\libraries -I C:\Program Files (x86)\Mind+\Arduino\hardware\dfrobot\nRF5\cores\nRF5\mbed-classic\targets\hal\TARGET_NORDIC\TARGET_MCU_NRF51822\Lib\nordic_sdk\components\libraries\crc16 -I C:\Program Files (x86)\Mind+\Arduino\hardware\dfrobot\nRF5\cores\nRF5\mbed-classic\targets\hal\TARGET_NORDIC\TARGET_MCU_NRF51822\Lib\nordic_sdk\components\libraries\scheduler -I C:\Program Files (x86)\Mind+\Arduino\hardware\dfrobot\nRF5\cores\nRF5\mbed-classic\targets\hal\TARGET_NORDIC\TARGET_MCU_NRF51822\Lib\nordic_sdk\components\libraries\util -I C:\Program Files (x86)\Mind+\Arduino\hardware\dfrobot\nRF5\cores\nRF5\mbed-classic\targets\hal\TARGET_NORDIC\TARGET_MCU_NRF51822\Lib\s110_nrf51822_8_0_0 -I C:\Program Files (x86)\Mind+\Arduino\hardware\dfrobot\nRF5\cores\nRF5\mbed-classic\targets\hal\TARGET_NORDIC\TARGET_MCU_NRF51822\Lib\s130_nrf51822_1_0_0 -I C:\Program Files (x86)\Mind+\Arduino\hardware\dfrobot\nRF5\cores\nRF5\mbed-classic\targets\hal\TARGET_NORDIC\TARGET_MCU_NRF51822\TARGET_NRF51_MICROBIT -I C:\Program Files (x86)\Mind+\Arduino\hardware\dfrobot\nRF5\cores\nRF5\DFmicrobit -I C:\Program Files (x86)\Mind+\Arduino\hardware\dfrobot\nRF5\cores\nRF5\microbit-dal -I C:\Program Files (x86)\Mind+\Arduino\hardware\dfrobot\nRF5\cores\nRF5\mbed-classic -I C:\Program Files (x86)\Mind+\Arduino\hardware\dfrobot\nRF5\cores\nRF5\ble -I C:\Program Files (x86)\Mind+\Arduino\hardware\dfrobot\nRF5\cores\nRF5\ble-nrf51822 -I C:\Program Files (x86)\Mind+\Arduino\hardware\dfrobot\nRF5\cores\nRF51-sdk -I C:\Program Files (x86)\Mind+\Arduino\hardware\dfrobot\nRF5\cores\nRF5\DFmicrobit\inc -I C:\Program Files (x86)\Mind+\Arduino\hardware\dfrobot\nRF5\cores\nRF5\microbit-dal\inc\core -I C:\Program Files (x86)\Mind+\Arduino\hardware\dfrobot\nRF5\cores\nRF5\microbit-dal\inc\types -I C:\Program Files (x86)\Mind+\Arduino\hardware\dfrobot\nRF5\cores\nRF5\microbit-dal\inc\drivers -I C:\Program Files (x86)\Mind+\Arduino\hardware\dfrobot\nRF5\cores\nRF5\microbit-dal\inc\bluetooth -I C:\Program Files (x86)\Mind+\Arduino\hardware\dfrobot\nRF5\cores\nRF5\microbit-dal\inc\platform -I C:\Program Files (x86)\Mind+\Arduino\hardware\dfrobot\nRF5\cores\nRF5\mbed-classic\api -I C:\Program Files (x86)\Mind+\Arduino\hardware\dfrobot\nRF5\cores\nRF5\mbed-classic\hal -I C:\Program Files (x86)\Mind+\Arduino\hardware\dfrobot\nRF5\cores\nRF5\mbed-classic\targets\hal -I C:\Program Files (x86)\Mind+\Arduino\hardware\dfrobot\nRF5\cores\nRF5\mbed-classic\targets\cmsis -I C:\Program Files (x86)\Mind+\Arduino\hardware\dfrobot\nRF5\cores\nRF5\ble-nrf51822\source\btle -I C:\Program Files (x86)\Mind+\Arduino\hardware\dfrobot\nRF5\cores\nRF5\ble-nrf51822\source\btle\custom -I C:\Program Files (x86)\Mind+\Arduino\hardware\dfrobot\nRF5\cores\nRF5\ble-nrf51822\source\common -DUSE_LFRC -I C:\Program Files (x86)\Mind+\Arduino\hardware\dfrobot\nRF5\cores\nRF5 -I C:\Program Files (x86)\Mind+\Arduino\hardware\dfrobot\nRF5\variants\BBCmicrobit -I C:\Program Files (x86)\Mind+\Arduino\hardware\dfrobot\nRF5\cores\nRF5 -I C:\Program Files (x86)\Mind+\Arduino\hardware\dfrobot\nRF5\variants\BBCmicrobit -I C:\Program Files (x86)\Mind+\Arduino\libraries\Microbit_Matrix C:\Users\ueda_\AppData\Local\DFScratch\cache\dfrobot.ino.cpp -o C:\Users\ueda_\AppData\Local\DFScratch\cache\dfrobot.ino.cpp.o
C:\Program Files (x86)\Mind+\Arduino\hardware\tools\nRF5\gcc-arm-none-eabi\bin\arm-none-eabi-g++ -L C:\Users\ueda_\AppData\Local\DFScratch\build -Os -Wl,--gc-sections -save-temps -L C:\Program Files (x86)\Mind+\Arduino\hardware\dfrobot\nRF5\cores\nRF5\mbed-classic\targets\cmsis\TARGET_NORDIC\TARGET_MCU_NRF51822\TOOLCHAIN_GCC_ARM -TNRF51822.ld -Wl,-Map,C:\Users\ueda_\AppData\Local\DFScratch\build\dfrobot.ino.map --specs=nano.specs --specs=nosys.specs -mcpu=cortex-m0 -mthumb -Wl,--cref -Wl,--check-sections -Wl,--gc-sections -Wl,--unresolved-symbols=report-all -Wl,--warn-common -Wl,--warn-section-align -o C:\Users\ueda_\AppData\Local\DFScratch\build\dfrobot.ino.elf C:\Users\ueda_\AppData\Local\DFScratch\cache\dfrobot.ino.cpp.o C:\Program Files (x86)\Mind+\Arduino\static\libraries\Microbit_Matrix\microbit\Microbit_Matrix.cpp.o -Wl,--start-group -lm C:\Program Files (x86)\Mind+\Arduino\static\core\microbit\core.a -Wl,--end-group
c:/program files (x86)/mind+/arduino/hardware/tools/nrf5/gcc-arm-none-eabi/bin/../lib/gcc/arm-none-eabi/10.2.1/../../../../arm-none-eabi/bin/ld.exe: warning: start of section .heap changed by 4
c:/program files (x86)/mind+/arduino/hardware/tools/nrf5/gcc-arm-none-eabi/bin/../lib/gcc/arm-none-eabi/10.2.1/../../../../arm-none-eabi/bin/ld.exe: warning: start of section .stack_dummy changed by 4
"C:\Program Files (x86)\Mind+\Arduino\hardware\tools\nRF5\gcc-arm-none-eabi\bin\arm-none-eabi-objcopy" -O ihex "C:\Users\ueda_\AppData\Local\DFScratch\build\dfrobot.ino.elf" "C:\Users\ueda_\AppData\Local\DFScratch\build\dfrobot.ino.hex"
"C:\Program Files (x86)\Mind+\Arduino\hardware\tools\nRF5\gcc-arm-none-eabi\bin\arm-none-eabi-objcopy" -O binary "C:\Users\ueda_\AppData\Local\DFScratch\build\dfrobot.ino.elf" "C:\Users\ueda_\AppData\Local\DFScratch\build\dfrobot.ino.bin"
The project uses 35172 bytes, occupies (13%) program memory space, leaving 226972 bytes, up to 262144 bytes.
Global variables use 1764 bytes, (11%) of dynamic memory, leaving 14620 byte local variables, up to 16384 bytes. 
upload success
```

「Uploading」の表示が消えたら、LEDの点滅が始まります。