はじめに
秋葉原ロボット部の有志で、milk-v duoを購入し、個々人が様々な実験を行って、勉強会内で報告しています。
Milk-v duoは9ドルのrisc-vコンピュータとして知られています。
ハードウェアは以下の通りです。
- CPUはCVITEKのCV1800B (C906@1Ghz + C906@700MHz)
- 最高1 GHzで動作するデュアルRV64コア
- 64 MBのラム
- オプションのアドオンボードを接続すると10/100Mbpsの速度でイーサーネットに接続可能
pythonでpinpongライブラリを利用可能で、シリアルポート経由で書き込み可能なボードにMicrobitがあります。
本記事では、Mind+で作成したプルグラムをMicrobitで実行します。
Arduino Cでビジュアルプログラミング
右上の「Offline」が白地にオレンジ色の文字出ることを確認します。
左下の「Extensons」をクリックすると、ボード選択画面が表示されます。
左上の「micro:bit」をクリックして、オレンジ色の枠で囲まれているのを確認して、「Back」をクリックします。
プログラムを行う画面に戻ると、左のブロック選択画面に、青色のアイコンの「micro:bit」が表示されていることを確認します。
また、中央のウィンドウに「microbit:starts」のブロックが表示されていることも確認します。
プログラムが完成したら、オレンジ色に白い文字の「Connect Device」をクリックして、「Microbit」を選びます。
右上の「Upload」横の上向きの矢印をクリックします。
右下のウィンドウの表示は以下の通りです。
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の点滅が始まります。