用VBArduino开展创客式教学_第1页
用VBArduino开展创客式教学_第2页
用VBArduino开展创客式教学_第3页
用VBArduino开展创客式教学_第4页
用VBArduino开展创客式教学_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、用 VB + Arduino 开展创客式教学普通高中信息技术课程的总目标是提升学生的信息素养, 培养信息时代的合格公民。浙江省普通高中信息技术必修模块 信息技术基础 和选修模块 算法与程序设计 都选用 Visual Basic 作为算法教学语言。在学习 Visual Basic 语言时,怎样 激发学生的学习兴趣,并使其长久保持学习的热情 ; 开发校本选 修课时,能开出一门既有深度又能吸引学生的 Visual Basic 课 程 ; 学习 Visual Basic语言时还能培养动手能力和创新能力 ; 学有余力的学生在学习完 Visual Basic 语言后能顺利自学 C 语言。 基于这些思考,笔

2、者提出用 Visual Basic 6 + Arduino 开展创 客式教学。所谓创客式教学是指用创客的理念和方式来改造日常的教 学,形成新的教学模式。 创客理念主要指: 将创意变成实物 ; 做中学; 持续分享; 协作学习 ; 跨学科; 运用信息技术。 Arduino 是一款便捷灵活、方便上手的开源电子原型平台,包含 硬件(各种型号的 Arduino板)和软件(Arduino IDE)。Arduino 硬件都非常便宜,购买也非常方便,适合开展低成本的教学。 Arduino 通过各种各样的传感器来感知环境,通过控制灯光、马 达和其他的装置来反馈、影响环境。在 Arduino IDE 中,通过 A

3、rduino 语言编写程序,并将编译后的二进制文件烧录进微控制 器,实现传感器和执行器的协同工作。在开展 Visual Basic 教 学时, Visual Basic 程序可以扮演执行器、控制器等角色。下面以游戏摇杆操控 VB窗体中图像实现自由移动为例,介 绍如何实现 VB和Arduino 协同工作,为开展 VB + Arduino 教 学抛砖引玉。连接游戏摇杆和 Arduino 板图 1 为游戏摇杆和 Arduino 板连接实物图, 各针脚对应连接 如表1所示。摇杆由Arduino板的5V输出电压供电,原始状态 下S-X,S-Y读出电压约2.5V。当沿板上X和Y箭头方向按下, 读出电压值随

4、着增加,最大到 5V;当沿X和Y箭头反方向按下, 读出电压值随着减少,最小为OV。Arduino板上的A0和A1为模 拟量输入脚,读取时05V电压值已被转换为数值 01023。安装 Arduino 驱动程序将连接Arduino的USB口插入到计算机后,Windows会提示 “发现新硬件”。 Arduino 板本身将作为计算机的一个串口设备, 由于计算机中没有相应的驱动程序,会显示安装失败。进入 Windows设备管理器,在端口( COM和 LPT)下找到带黄色感叹 号的USB Device,通过手动指定驱动程序文件夹位置来安装驱 动程序(具体参考网上教程)。对于 Windows7 以上操作系统

5、可 通过在线搜索安装驱动程序。安装好驱动程序后, Arduino 板在 设备管理器中显示如图 2所示,在笔者计算机中 Arduino 作为串 口 6 设备。配置 Arduino IDE登录网址 https :/arduino/en/Main/Software,下载最新的Arduino开发环境IDE。运行Arduino IDE :进入工具菜单 选择开发板型号,基础版选择“ Arduino/Genuino Uno”; 选择 Arduino 所在的串行端口号(参考设备管理器提示),这里选择 “COM”6 ,如图 3 所示。编写 Arduino 程序根据当前连接的感应器和执行器协同工作需要,为 Ard

6、uino 编写相应的程序。 Arduino 程序主要的功能:设置连接外接设备 针脚模式和参数,读取外接设备数据,控制外接设备等。作为授 课老师, 这些程序是需要了解或会编写的, 学有余力的学生可以 自学和编写, 普通学生只需能将程序编译和上传 (烧录进微控制 器)。Arduino编程语言是建立在 C语言基础上的,有 C语言基 础的能很快上手。图4是进入Arduino IDE后默认建立的程序框 架。Arduino 语言以 setup 函数作程序开头, loop 函数作程序框 架主体。 setup 函数用来初始化变量、 管脚模式, 调用库函数等, 只运行一次。 loop 函数在 setup 函数运

7、行后,被周而复始的循 环执行。 Arduino 语言参考网址 http : /arduino/reference/ 。 为摇杆编写的代码如图 5 所示。Serial.begin (9600) :将串口通信速率设置为 9600bps 。 通信的两端要保持相同的传输速率, Arduino将通过USB与计算 机连接的接口定义为 Serial 对象。Serial.flush ():等待串口数据传输完成,并将缓冲区清 空。analogRead 函数的功能是读取指定模拟针脚的值,A0、A1是模拟针脚0和1的别名。模拟针脚上的电压值(05V)经模/ 数转换后变为一个整数值(01023)。Serial.pri

8、nt函数的功能为将数据以字符串方式输出到串口。 Serial.println 函数在 输出时数据的同时在后面增加回车符( ASCII 13 )和换行符( ASCII 10 )。 delay 函数为让程序等待多少毫秒,然后往下执 行。由于 loop 函数是被循环执行的, 因此整个程序的功能为首先设置端口传输速率为 9600 位/秒,然后每隔 0.1 秒读取 模拟针脚 0和 1 上的数值, 并将这二个数值用分号分隔, 再连接 回车换行符,最后输出到串口。 当然程序还可以更完善或更精炼。单击工具栏上第一个按钮对程序进行验证 (编译) ,如图 6。 在程序通过验证后, 单击工具栏上的第二个按钮, 将程

9、序重新编 译并上传给 Arduino 板,如图 7 所示。 Arduino 在有程序上传后, 首先进行初始化,然后按上传程序指令重新开始工作。为了验证程序是否有效,单击工具菜单中“串口监视器”, 打开监视窗口。 如图 8 所示,监视窗口中不断收到 Arduino 发送 过来的数据。按动游戏摇杆,数据会变化,如图 9 所示。编写VB程序运行VB6,新建一个工程文件。在工程中添加MSCom控件,如图10所示。MSCom是一个串行通信控件,它提供了一系列标准通信命令的接口,允许建立串口连接。MSCom采用事件驱动通信,当有字符到达或发生了改变,On Com事件就被触发。在窗体中添加二个 Comman

10、dButtonJ空件,一个Image控件, 一个MSCom控件。工程属性、窗体属性和窗体内各控件属性设 置如表 2 所示,窗体界面设计如图 11所示。MSCom控件的CommPort属性值要设置为 6,也就是Arduino 板所在的串口号。 RThreshold 的属性值设置为 1,也就是每当接 收到一个字符时就触发 MSCom控件的On Com事件。因为Ardui no 的数据传输速率已设置为 9600bps,所以Settings属性值无需 修改。在窗体代码窗口输入以下代码:Private Sub CStart_Click ()MSCom.PortOpen = TrueEnd SubPriv

11、ate Sub CStop_Click ()MSCom.PortOpen = FalseEnd SubPrivate Sub MSCom_OnComm()Debug.PrintMSCom.InputEnd Sub运行工程,单击窗体中“开始”按钮。VB6立即窗口显示如图 12 所示虽然设置 RThreshold 为 1,即每接收到一个字符时触发On Com事件,但读取时缓冲区内容可能已经有好几个字符了。因此,需要根据回车换行符进行重组。窗口代码如下:Private SBuffer As String 增加一个窗体变量,作为接收缓冲区Private Sub MSCom_OnComm()Dim I

12、As ByteDim STmpAsString , SLeft As String , SChar As StringSTmp = MSCom.InputSBuffer = SBuffer&STmpSLeft = For I = 1 To Len (SBuffer )SChar = Mid ( SBuffer , I , 1 )Select Case Asc (SChar)Case 10 检测到换行符不做什么作丢弃Case 13 检测到回车符时Call OnComing (SLeft ) 调用过程SLeft = Case Else 其他任何字符作加入输出内容SLeft = SLeft&

13、amp;SCharEnd SelectNextSBuffer = SLeft 剩余内容保留给下一次End SubPrivate Sub OnComing ( ByValSStr As String)Debug.PrintSStrEnd SubCStart_Click 和 CStop_Click 过程代码保持不变。运行工 程,单击窗体上“开始”按钮。 此时立即窗口显示如图 13 所示。在MSCom_OnCo事件处理过程中,每接收到一组正确的数据时On Comi ng过程就被调用一次。将On Comi ng过程修改为如下:Private Sub On Comi ng ( ByValSStr As

14、Stri ng)Dim L As Integer , T As Integer , Tmp() As String Tmp = Split (SStr, ; )L = Tmp(0): T = Tmp (1)If L < 411 Then ITurtle.Left = ITurtle.Left -( 511- L)If L > 611 Then ITurtle.Left = ITurtle.Left +( L- 511 )If T < 411 Then ITurtle = ITurtle -(511 - T )If T > 611 Then ITurtle = ITurtle +(T - 511 )End Sub运行工程, 单击窗体上“开始”按钮。 上下、左右按下摇杆, 窗体中的小乌龟图片将上下、 左右移动, 按力越大移动速度也越 快。在摇杆初始状态下,读出数据约为513516,而程序中41 611 间的数据不作移动处理, 因此初始状态下图片不会自己移动。小结在小学阶段,可以利用 S4A(Scratch For Arduino)开展创客式教学。对于浙江的中学生来说,在学习完VB后,开展VB+ Arduino 创客式教学是很有必要和很有前景的。 由于篇幅关

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论