智能小车,小小码农的速成玩具
个人认为,Arduino, sketch和苹果的swift playground是对小小码农或小白码农进行软件编程入门培训的三大神器。
sketch是麻省理工研发的编程平台。通过图形化界面,像搭积木一样简单,用户只需用鼠标来拖曳现成的组件,如移动,变色,旋转,缩放等来实现各种功能,如移动到某个地方,或者碰到墙壁后反弹等等。通过短时间的练习,用户很快会掌握循环,条件判断等编程基本知识,从而轻易入门。利用现成的组件,无数来自全球的用户设计出极其专业的软件,游戏以及动画。感兴趣的朋友请自行百度。
花一点点时间弄明白了单步,循环,条件判断,就可以开始编程了。就像学会了与、或、非再加上个触发器就可以开始设计CPU一样。万丈高楼平地起。再复杂的软件,再复杂的集成电路都是这有限几种积木堆起来的。
Swift playground 则更强调基本编程常识的培养,通过游戏来达到编程学习的目的。
Arduino
Arduino是一种开源软件开源硬件的智能设备开发平台。其主要特点是资源丰富,有多种不同的Arduino主板,以及各种功能的盾板,也就是扩展板。另一个重要特点是开发简单,基本可以实现即插即用。Arduino是为艺术家快速演示自己的创意而设计的。
暑假趁儿子有空,从某宝买了基于Arduino的智能小车套件,陪他从一堆零件开始,一步一步组装成一个遥控的小车。通过遥控器可以控制小车前进倒后拐弯,同时小车会自动避障。
超声传感器,智能小车的眼晴
插拔式设计
智能小车需要遥控功能,怎么办?容易,买现成的红外接收模块,插上去就是了。
红外接收模块有三根线,电源,地和信号输入。好办,儿子自己将三根线连到正确的位置,然后我帮忙将相应的软件挎贝进去,儿子就开始自己调试。
他很快就弄明白不同按键其实对应不同值,通过信号线Arduino 可以分辨出是哪个键被按下。然后只需要加入简单的判断就可以实现不同的控制。
智能小车的大脑,Arduino UNO 蛛网一样的线是连各种扩展板的
极简的软件开发
Arduino 主板提供了二十一个信号管脚。Arduino 的软件开发主要就只需要控制每个管脚是输入还是输出,输出是高还是低,输入是高还是低。
我们的智能小车是前驱,前面两个轮子各由一个电机。每个电机有两个控制信号,分别控制轮子是正转还是反转。
连接到设定的Arduino 信号管脚后,Arduino 可以控制左右电机都正转,刚小车前进;控制左右电机都反转则小车倒退;右电机正转左电机反转则左转。
通过分别控制四根信号线的高低就可以实现车辆的各种运行状态。初学者此时的学习重点是这几个信号如何相互配合,这也是编程的重点,难点。
开源资源,站在巨人的肩膀上
只有你想不到,没有你买不到。
无以计数的Arduino 扩展板可以将各种复杂的功能简化为简单的控制,如无线连接,如摄像,声音采集。初学者可以学习如何通过各种渠道,获得源码,并集成到自己的软件中去。
短短几天,儿子在一步步扩展智能小车功能的过程中,学习了不同的扩展板,编写了实现不同扩展功能的代码,亲自实践了小车一步步演进的过程。通过这个过程,增长了知识,培养了兴趣。培养了动手能力,软件编程能力,也培养了一般智能系统的开发技巧。
感兴趣的朋友可以评论提问。