概述
做一个会旋转的广告牌,可以逐一显示字母(让某个英文单词的每个字母逐一出现),如显示mCookie时,屏幕依次显示m>mC>mCo>mCoo>mCook>mCooki>mCookie。
适合套件:mCookie102,mCookie202,mCookie302,IBC
模块清单
模块
其他设备
- USB数据线*1
- 传感器连接线*1
- 传感器外壳*1
- 乐高或其它固定结构
模块搭建
- 将模块和传感器组装起来:
- 将红色的核心模块,USB上传模块与绿色的扩展模块吸在一起;
- 将舵机转接板连接在Hub的6/7管脚;
- 将舵机连接在舵机转接板的1管脚(下面三个插针);
- 将OLED连接在Hub的IIC管脚。
- 将USB连接线一端插入USB上传模块,另一端连接电脑;
编程
使用到程序块
“舵机”程序块
“函数”程序块
编程思路
每步执行一次显示程序和舵机转动程序就行了。同学们找找有什么规律?按这种方式要重复执行好多次,能怎样简化程序。
学习新程序块:“函数”程序块
定制函数,输入要显示的内容,函数将控制OLED屏幕显示该内容,并且控制舵机转动一定角度。通过不断的调用函数并输入不同参数实现显示动作。
开始编程
1、函数准备
定义一个叫motion_a的函数,其中需要参数text。将函数的参数设置成字符串,参数名字为text。
2、定制函数内部程序
6管脚舵机转到servo角度,转速30°每秒。变量servo加10(这样下次执行本函数的时候,舵机角度就会比这次多10°)。注意函数准备不能和其他程序块连接在一起
3、执行函数
声明一个名叫servo的变量,用来储存舵机角度。servo设为60。执行motion_a函数慢慢将“mCookie”显示出来。
- 测试结果
- 上传成功后,随着舵机转动开始,OLED上逐渐显示出“mCookie” 。
Q:现在广告牌可以在转动中逐个显示mCookie字母,怎么能让广告牌往回转时将字母逐个抹掉呢?
A:可以把文字显示顺序从后往前写,这样字母就被逐个抹掉了。舵机也要往回转,变量值减少。可以新增加一个函数来控制OLED文字抹掉,使舵机往回转。
定义一个叫motion_b的函数,其中需要参数text。6管脚舵机转到servo角度,转速100°每秒。OLED显示参数text。
变量servo减10(这样下次执行本函数的时候,舵机角度就会比这次少10°)
执行motion_b函数,将“mCookie”字母逐个抹掉.
技术规范
相关案例
Q&A
|