最近参加了DFRobot搞的活动:义教信息科技教学活动实践案例征集 DF创客社区。前面已经对行空板K10进行了介绍,今天来安装一下软件环境,并做些简单的测试。
编程环境的构建
行空板K10是基于ESP32的,已经有网友测试过,使用任何支持ESP32的开发工具都是可以用的,比如官方的MicroPython固件。
官方的编程环境是行空板K10公测版Mind+,在本文写作的时候不能用正式版本的,而只能从其wiki下载公测版:行空板K10快速使用教程。整个文件包很大,要1.4G。
Mind+是一款拥有自主知识产权的国产青少年编程软件,集成各种主流主控板及上百种开源硬件,支持人工智能(AI)与物联网(IoT)功能,既可以拖动图形化积木编程,还可以使用Python/C/C++等高级编程语言,让大家轻松体验创造的乐趣。有关Mind+的使用,可以参考:Mind+官方教程-Mind+图形化编程软件。Mind+可以支持micro:bit、Arduino和ESP32等3个最流行的平台。现在采用这种类似Scratch的积木编程界面,再结合MicroPython代码的方式,在青少年编程领域很常见。
第一个程序的设计
切换到上传模式(K10开发板只在这个模式才会看到),点击”扩展“,在扩展页面中,点击”主控板“,选择”行空板K10“,点击”返回“,完成加载。
使用USB线将行空板K10的Type-C口接到电脑USB口,在mind+中点击“连接设备”,找到对应的UNIHIKER K10设备并点击,完成设备连接。
下面的程序会在屏幕上显示当前的摄氏度。记得加“将缓存更新”那句,我刚开始忘了,所以啥也没有看到。
程序上传
写完程序,点击“上传到设备”,Mind+就开始编译程序,并将程序通过串口传到开发板上。我们只需要等待程序上传完成
从右下侧的小黑窗里面可以看到命令行:
- <font face="微软雅黑" size="3">om.newlib-time.ld -T esp32s3.peripherals.ld -mlongcalls -Wl,--cref -Wl,--gc-sections -fno-rtti -fno-lto -Wl,--wrap=esp_log_write -Wl,--wrap=esp_log_writev -Wl,--wrap=log_printf -u _Z5setupv -u _Z4loopv -u esp_app_desc -u pthread_include_pthread_impl -u pthread_include_pthread_cond_impl -u pthread_include_pthread_local_storage_impl -u pthread_include_pthread_rwlock_impl -u include_esp_phy_override -u ld_include_highint_hdl -u start_app -u start_app_other_cores -u __ubsan_include -Wl,--wrap=longjmp -u __assert_func -u vfs_include_syscalls_impl -Wl,--undefined=uxTopUsedPriority -u app_main -u newlib_include_heap_impl -u newlib_include_syscalls_impl -u newlib_include_pthread_impl -u newlib_include_assert_impl -u __cxa_guard_dummy -DESP32 -DCORE_DEBUG_LEVEL=0 -DARDUINO_RUNNING_CORE=1 -DARDUINO_EVENT_RUNNING_CORE=1 -DBOARD_HAS_PSRAM -DARDUINO_USB_MODE=1 -DARDUINO_USB_CDC_ON_BOOT=1 -DARDUINO_USB_MSC_ON_BOOT=0 -DARDUINO_USB_DFU_ON_BOOT=0 -Wl,--start-group C:\Users\haili_10137664\AppData\Local\DFScratch\cache\dfrobot.ino.cpp.o D:\Mind+1.8.0_RC1.0_20241127\Arduino\static\hardware\dfrobot\esp32s3\libraries\DFRobot_AHT20\esp32s3bit\DFRobot_AHT20.cpp.o D:\Mind+1.8.0_RC1.0_20241127\Arduino\static\hardware\dfrobot\esp32s3\libraries\Wire\src\esp32s3bit\Wire.cpp.o D:\Mind+1.8.0_RC1.0_20241127\Arduino\static\hardware\dfrobot\esp32s3\libraries\FS\src\esp32s3bit\FS.cpp.o D:\Mind+1.8.0_RC1.0_20241127\Arduino\static\hardware\dfrobot\esp32s3\libraries\FS\src\esp32s3bit\vfs_api.cpp.o D:\Mind+1.8.0_RC1.0_20241127\Arduino\static\hardware\dfrobot\esp32s3\libraries\SPI\src\esp32s3bit\SPI.cpp.o D:\Mind+1.8.0_RC1.0_20241127\Arduino\static\hardware\dfrobot\esp32s3\libraries\TFT_eSPI\esp32s3bit\TFT_eSPI.cpp.o D:\Mind+1.8.0_RC1.0_20241127\Arduino\static\hardware\dfrobot\esp32s3\libraries\SPIFFS\src\esp32s3bit\SPIFFS.cpp.o D:\Mind+1.8.0_RC1.0_20241127\Arduino\static\hardware\dfrobot\esp32s3\libraries\lv_lib_qrcode\esp32s3bit\lv_qrcode.c.o D:\Mind+1.8.0_RC1.0_20241127\Arduino\static\hardware\dfrobot\esp32s3\libraries\lv_lib_qrcode\esp32s3bit\qrcodegen.c.o D:\Mind+1.8.0_RC1.0_20241127\Arduino\static\core\esp32s3bit\core.a -lesp_ringbuf -lefuse -lesp_ipc -ldriver -lesp_pm -lmbedtls -lapp_update -lbootloader_support -lspi_flash -lnvs_flash -lpthread -lesp_gdbstub -lespcoredump -lesp_phy -lesp_system -lesp_rom -lhal -lvfs -lesp_eth -ltcpip_adapter -lesp_netif -lesp_event -lwpa_supplicant -lesp_wifi -lconsole -llwip -llog -lheap -lsoc -lesp_hw_support -lxtensa -lesp_common -lesp_timer -lfreertos -lnewlib -lcxx -lapp_trace -lasio -lbt -lcbor -lunity -lcmock -lcoap -lnghttp -lesp-tls -lesp_adc_cal -lesp_hid -ltcp_transport -lesp_http_client -lesp_http_server -lesp_https_ota -lesp_https_server -lesp_lcd -lprotobuf-c -lprotocomm -lmdns -lesp_local_ctrl -lsdmmc -lesp_serial_slave_link -lesp_websocket_client -lexpat -lwear_levelling -lfatfs -lfreemodbus -ljsmn -ljson -llibsodium -lmqtt -lopenssl -lperfmon -lspiffs -lusb -lulp -lwifi_provisioning -lrmaker_common -ljson_parser -ljson_generator -lesp_schedule -lesp_rainmaker -lgpio_button -lqrcode -lws2812_led -lesp_diagnostics -lrtc_store -lesp_insights -lespressif__esp-dsp -lespressif__esp-sr -lesp32-camera -lesp_littlefs -lfb_gfx -lbtdm_app -larduino_tinyusb -lcat_face_detect -lhuman_face_detect -lcolor_detect -lmfn -ldl -lhufzip -lesp_audio_front_end -lesp_audio_processor -lwakenet -ldl_lib -lc_speech_features -lesp_tts_chinese -lvoice_set_xiaole -lmbedtls_2 -lmbedcrypto -lmbedx509 -lcoexist -lcore -lespnow -lmesh -lnet80211 -lpp -lsmartconfig -lwapi -lphy -lbtbb -lxt_hal -lm -lstdc++ -lgcc -lgcov -lc -lmodules -lscreen -lbus -lmultinet -lfst -lesp-code-scanner -lnewlib_iconv -llvgl -lSD -lasr -lDFRobot_ESPASR -lAdafruit_NeoPixel -lunihiker_k10 -lflite_g2p -lESP32_IO_Expander -lESP32_Display_Panel -Wl,--end-group -Wl,-EL -o C:\Users\haili_10137664\AppData\Local\DFScratch\build\dfrobot.ino.elf
- D:\Mind+1.8.0_RC1.0_20241127\Arduino\hardware\tools\esp32s3\esptool\esptool --chip esp32s3 elf2image --flash_mode dio --flash_freq 80m --flash_size 16MB --elf-sha256-offset 0xb0 -o "C:\Users\haili_10137664\AppData\Local\DFScratch\build\dfrobot.ino.bin" "C:\Users\haili_10137664\AppData\Local\DFScratch\build\dfrobot.ino.elf"
- 项目使用了583053字节,占用了(11%)程序存储空间,余留4659827字节,最大为5242880字节。
- 全局变量使用了22348字节,(7%)的动态内存,余留305332字节局部变量,最大为327680字节。
- D:\Mind+1.8.0_RC1.0_20241127\Arduino\hardware\tools\esp32s3\esptool\esptool --chip esp32s3 --port COM5 --baud 921600 --before default_reset --after hard_reset write_flash -z --flash_mode dio --flash_freq 80m --flash_size 16MB 0x0 D:\Mind+1.8.0_RC1.0_20241127\Arduino\hardware\dfrobot\esp32s3\tools\partitions\dfrobot.ino.bootloader.bin 0x8000 D:\Mind+1.8.0_RC1.0_20241127\Arduino\hardware\dfrobot\esp32s3\tools\partitions\dfrobot.ino.partitions.bin 0xe000 D:\Mind+1.8.0_RC1.0_20241127\Arduino\hardware\dfrobot\esp32s3\tools\partitions\boot_app0.bin 0x10000 C:\Users\haili_10137664\AppData\Local\DFScratch\build\dfrobot.ino.bin
- esptool.py v4.7.0
- Serial port COM5
- Connecting............................</font>
复制代码
如果下载过程中出现问题,可以从这里看到。
测试结果
程序的运行结果如下图显示。不过温度不是我家的室温,北方有暖气,但是没有那么热。
结语
今天完成了行空板K10的环境搭建和第一个程序的测试。总体感觉不错。
|