【虚谷号】虚谷号的入门教程——2、U盘模式
## **虚谷号的入门教程——2、U盘模式**
虚谷号可以通过U盘模式进行编程和设置。不需要接上显示器和鼠标键盘,即可对虚谷号编程,这是虚谷号在教学应用方面的最大特色。
U盘模式也称DAP虚拟磁盘烧录模式,是指虚谷号通过USB线将OTG口(两个USB口中间的那个micro usb口)和电脑USB口连接后,电脑上将出现一个虚拟的U盘。将Arduino、Python代码复制到U盘的相应目录后,按下RST键,U盘的盘符将暂时消失,当再次出现盘符时,程序已经成功执行。
![](https://vvboard.readthedocs.io/zh_CN/latest/_images/u-driver07.jpg)
## **1. 应用场景**
虚谷号是为大班教学设计的。在机房里,如果虚谷号要接上鼠标键盘显示器才能使用,这样的实施条件是非常高的。首先机房中要准备原数量一倍以上的显示器,这几乎是不可能的。哪怕两人为一组,这些显示器也没有地方摆放。加一个视频分配器吗?看起来也不可行,因为机房的管理工作将非常混乱。其次,机房中还要准备大量的鼠标键盘,这也是做不到的。正是这样的因素,导致树莓派为代表的Pi系列开源硬件难以在中小学推广。
![](https://vvboard.readthedocs.io/zh_CN/latest/_images/u-driver01.jpg)
由此可见,不需要接上显示器和鼠标键盘,即可使用虚谷号,这是很重要的教学功能。借助这一功能,虚谷号成为和Arduino、micro:bit和掌控板一样的,即插即用、使用方便的开源硬件了。
### **场景1:**
大班教学应用。教师不需要改变现有的机房条件和教学习惯,把虚谷号作为类似掌控板的智能终端来教学。但是虚谷号的CUP算力又远超常见的开源硬件,可以运行标准版本的Python程序。
### **场景2:**
快速移植应用。当用户在电脑上调试好Python或者Ardunio代码后,用U盘模式可以快速将代码移植(部署)到虚谷号上。毕竟在迷你电脑上编程是一件很痛苦的事情。
## **2. 功能介绍**
+ 设置虚谷号的系统参数。
* 设置虚谷号的Wi-Fi参数,查看IP地址;
- 设置是否启动Jupyter、SIoT等系统服务。
+ 编程。可以给虚谷号编程。
* 编写Arduino代码;
- 编写Python代码。
## **3. 操作流程**
### **(1)设置Wi-Fi参数**
更改U盘vvboard文件夹的”vvBoard_config.ini”中,SSID和SSID_PSD。短按RST键重启U盘服务,然后在U盘vvboard文件夹的“wifi_log.txt”中,找到IP地址。
- 注1:目前虚谷号仅支持2.4GHz的Wi-Fi。
+ 注2:如果Wi-Fi需要二次身份认证(如校园网等),只能通过主机模式连接,不能用U盘模式配置。
* 注3:在修改完vvBoard_config文件后,如果短按RST键后没有连接成功,可以多尝试几次。如果还不行,请仔细检查vvBoard_config文件中的内容是否被正确地修改,可以尝试将虚谷号断电重启,或长按RST键10秒重启。
![](https://vvboard.readthedocs.io/zh_CN/latest/_images/u-driver02.jpg)
### **(2)烧录Arduino代码**
复制标准arduino代码(例:Blink.ino)到U盘的Arduino文件夹下,命名为“arduino.ino”,按下RST键,U盘的盘符将暂时消失,约十秒钟左右,板子上有LED快速闪烁,表示虚谷号将代码写入板载Arduino。
![](https://vvboard.readthedocs.io/zh_CN/latest/_images/u-driver04.jpg)
如果没有发现板子上的LED快速闪烁,请查看arduino.ino是否移动到04.bak,没有则说明程序没有去写入,请查看你的文件命名是否正确。
![](https://vvboard.readthedocs.io/zh_CN/latest/_images/u-driver05.jpg)
如果led灯快闪闪烁后,没有亮一秒灭一秒,说明写入失败,打开log文件检查原因。烧录成功则led灯亮一秒熄灭一秒。
### **(3)运行Python文件**
进入到Python目录下新建一个test.py文件
![](https://vvboard.readthedocs.io/zh_CN/latest/_images/u-driver08.jpg)
打开此文件编辑一个python代码(也可在其它编辑器上写完后粘贴过来)保存
![](https://vvboard.readthedocs.io/zh_CN/latest/_images/u-driver09.jpg)
打开python_config.ini文件,修改Python=test.py和Run_time=5并保存
注:python_config.ini中有个Run_time参数,表示等待多少时间再出现U盘(出现U盘后,就不能输出调试信息了),参数为0时不会打印log,只会打印代码格式报错信息。
![](https://vvboard.readthedocs.io/zh_CN/latest/_images/u-driver10.jpg
)
短按rst键,待vvBoard刷新后进入到Python文件夹下会看到一个python_log文件,python程序的输出内容还有错误信息全都保存在此文件中,打开此文件会发现python程序打印的hello world保存在了此文件中
![](https://vvboard.readthedocs.io/zh_CN/latest/_images/u-driver11.jpg)
注:python_config.ini中有个Run_time参数,表示等待多少时间再出现U盘(出现U盘后,就不能输出调试信息了),参数为0时不会打印log,只会打印代码格式报错信息。
虚谷号内置的Python版本是3.5,已经内置了常见的Python库,具体请参考“软件介绍”的Python部分。
## **4. U盘资源简介**
介绍几个重要的文件:
- arduino_config.ini:配置运行的arduino程序(当运行的程序不是Arduino.ino或者arduino.ino形式命名则需配置)
+arduino_log.txt:arduino代码的编译、烧录的回写日志
* Arduino/04.bak:存放刚运行完的程序,下次运行新的程序将会被替换
* python_config.ini:配置运行的python程序(当运行的程序不是main.py或者Main.py形式命名则需配置)
* python_log.txt:python程序检测发现代码格式错误的回写日志
* vvBoard_config.ini:配置WiFi连接及打开jupyter和siot服务
* wifi_log.txt:wifi连接上回写的连接日志
* Notepad2查看代码的文本编辑器,如果电脑打开代码没有换行可以使用这个工具打开
关于U盘文件的详细介绍,请浏览本文档的第八部分。
## **5. U盘烧录的说明**
### **(1)、Python是如何实现与Arduino互动的?**
虚谷号开发了一个xugu库,用来与Arduino互动。如果Python代码中调用了xugu库,虚谷号系统将判断板载Arduino是否已经写入firmata协议(如果没有则自动写入,要延时一定的时间,并且可以看到板子上的LED闪烁),然后运行代码。
关于这一方面的内容,请参考GPIO部分。
### **(2)、如何实现python和Arduino的自定义互动?**
- 先复制标准Arduino代码,虚谷号将代码写入板载Arduino。
+ 再复制标准python代码,虚谷号开始运行Python代码。
* 如果标准的Arduino和python代码都复制了,虚谷号会先运行Arduino代码,再运行Python代码。
注意:如果Arduino和Python文件有管脚定义冲突,最终python会覆盖Arduino,导致实现结果不理想。有时发现Arduino程序没有正常运行,可能是由于在python文件夹内有多余的py文件(上一次运行后没有删除),导致覆盖了Arduino程序。
### **(3)、如何实现用Python代码与板载Arduino做更复杂的互动?比如在“厚物”的OLED屏上显示文字等。**
需要另外编写Arduino程序,通过串口和板载Arduino交互。很多虚谷号的爱好者在开发这方面的范例程序。其实在网上能够找到很多关于电脑(Python)和Arduino互动的例子,都可以移植到虚谷号上。
页:
[1]