本帖最后由 0xCC 于 2013-4-26 11:30 编辑
这个编程平台是给编程初学者和非专业人士设计的,下边这个是关于这个平台的一些简介,大家感兴趣的话可以看看哈~ 如果想了解更多可以访问此博客:
blog.sina.com.cn/freerobot
点击这里下载LinkBoy相关资料:
LinkBoy相关资料
下载文件的目录如下:
* LinkBoy软件开发平台
* LinkBoy.exe
* 其他系统文件
......
* LinkBoy组件测试程序集 (每个组件的测试程序文件)
......
* LinkBoy应用实例程序集 (用LinkBoy设计的一些应用实例)
......
* LinkBoy教程
* 1 前言.pdf
* 2 LinkBoy 简介.pdf
* 3 第一章 LinkBoy 入门示例.pdf
* 4 第二章 LinkBoy 基础开发.pdf
* 5 LinkBoy 底层机制介绍.pdf
* 6 LinkBoy 组件库说明.pdf
* 7 LinkBoy 应用实例.pdf
* 8 安装驱动.pdf
=========================================================
如果您是一个爱折腾的极客迷,一定接触过一些积木开发平台。比如Arduino、乐高积木、MakeBlock等等。一般每种积木都会有个侧重点,比如Arduino侧重于软件编程;乐高积木侧重于塑料机械;而MakeBlock则以金属构件为主,可以结合Arduino玩儿…… 现在,您会接触到另一种积木平台,它比较平衡地结合了其他积木的特点,简洁快速的搭建环境让您可以更专注于自己的创意——这就是LinkBoy。
LinkBoy是一套创意展示平台,它是专门为痴迷技术的极客、业余IT玩家和机器人发烧友设计的。在这个集成化的开发平台上,包含了软件、电子、机械在内的一整套设计环境,通过LinkBoy,用户只需要几分钟的时间,就能从最开始的创意萌发过渡到软件设计、电路模块连接和机械结构组装,并迅速搭建出一个实物的设计原型,比如说——下雨时自动把衣服收进来的小装置;离开你10米远就会嘀嘀响的手提包;每天晚上7点钟会自动打开电视机的神奇插座;可以用iPhone控制发光颜色的七彩梦幻吊灯;每天会自动浇花的小喷壶……
作为一套电子积木玩具,通过完全插接式的拼装,用户不再需要繁琐的底层编程、芯片飞线焊接、底板切割、钻孔…… 因为LinkBoy已经为您设计好了一系列的软件包、电子模块、机械小构件,只需要几行程序代码、简单的插接和拼装,一个个小创意作品就会在您的双手上源源不断地出现。接下来我们将会按照从创意到设计,再到实现的自然过程,讲述LinkBoy平台如何为您提供垂直一体化的解决方案。
1 简洁开发
在专业人士使用的Keil、GCC这些设置复杂的开发环境中,一个简单的闪灯程序都要复制整个的项目,包含各种名目繁多的支持文件…… 而LinkBoy给您一个简洁、轻巧的编程背景,只需要随意新建一个记事本文件就可以开始程序设计。用户的设计会分成两个部分:图形界面和代码界面,这两种界面全部保存在同一个记事本文件中,用LinkBoy编程软件打开后会解析出图形界面部分,保存时系统会把代码界面和图形界面合并到记事本文件中。因此,一个小小的记事本文件就保存了您的完整项目,包括程序代码、电路连接和机械布局。
2 图形化设计
如果一个记事本文件用LinkBoy打开,会自动解析出图形配置部分,并且用图形化的方式显示出来,可以查看有多少个电路模块以及它们之间的电路连接关系等。用户可以拖动这些模块、改变电路连接关系和添加、删除模块。LinkBoy自带一个图形化组件库,包含了常用的电子模块如各种按钮、小灯、传感器、屏幕。各个模块之间的导线连接采用“傻瓜化”的连接操作,每个电子模块上都有一些红色、蓝色或白色的小圆点,用户只需要用鼠标把相同颜色的小圆点连接起来即可。LinkBoy会自动根据用户连接生成底层的端口配置,根本不需要用户考虑这些复杂繁琐的细节。
3 中文编程
用户在图形化界面放置的每个电子模块,系统都会自动导入对应的底层驱动程序,连每个模块的初始化都会被系统自动调用,用户直接就可以用中文式的语法对各个模块进行操作,例如在图形界面中拖进来一个液晶屏幕,然后切换到代码界面就可以直接控制它,比如:
液晶屏幕 在第 34 行第 56 列显示 “欢迎使用LinkBoy!”(宋体,12),
相对于C语言的复杂编程,LinkBoy给您设计了一套最简化的编程语法,只需要学习数字分类、加减乘除运算和两种流程控制语句——“如果…”“反复执行…”,您就可以无所不能地操控所有的小模块:
如果 温度计 读取温度 < 21,小灯 发光,否则 小灯 熄灭。
如果 激光传感器 光线被遮挡,向手机号“153110120119”发送短信“有小偷”。
……
4 事件驱动模型
和其他硬件编程语言不同,LinkBoy的程序中没有“main()”开始,而是采用事件驱动模型。实际上用户“编程”的过程,就是编写各个事件的响应代码而已,而每个事件都是由系统后台自动检测触发的,如小按钮,当被人按下的时候就会触发“按键按下事件”;红外线接收器,用家里的彩电遥控器对着它按下按键会触发“红外线接收事件”等等。
LinkBoy会在后台导入一个专用的嵌入式操作系统,一方面执行各个组件的底层驱动程序,另一方面对各个组件触发的事件进行分发,用户需要做的只是补全各个事件的处理代码,例如按下按钮时让一个小喇叭发出音乐。那些不重要的事件,如按键松开事件,用户可以忽略它。实际上用户甚至可以忽略全部的事件,也就是说在图形界面拖出好多组件并连接好之后,却不编写程序。系统也会为用户生成一个完整的可运行程序,当然这个程序没有什么效果,只是控制板上的指示灯不停地闪烁,表示系统正在工作。
这也是LinkBoy的一个设计理念:允许用户不编写任何代码,仅仅代表不响应任何事件,但是系统依然可以完整运行。当然这种情况很少见,通常用户会选择一些需要的事件进行处理,以便完成某些功能。
5 纯协作式调度内核
用户编写事件响应代码时,每个事件都是分立的,而最终这些事件会由一个嵌入式操作系统进行调度。和其他常用的操作系统如UC-OS2等不同,LinkBoy内置的OS是纯协作式的,这样的话对于业余玩家和编程初学者有一个极好的优点:不需要考虑资源访问冲突。
例如用户写了一个俄罗斯方块程序在屏幕上玩儿,现在呢,需要在屏幕的右下角显示室内温度,因为温度是会变的,所以需要反复测量温度并显示出来。如果在UC-OS2中,就是创建一个定时器,然后每秒钟测量温度并显示到屏幕上。但是液晶屏是个“不可重入”资源,所以显示温度时需要申请“互斥量”,以防和其他事件代码冲突——比如可能有另一个定时器正在屏幕上处理方块下落、游戏消行等等。而且不只是液晶屏,几乎所有的硬件组件都是不可重入的,在两个独立的定时器中访问同一个硬件(如小灯,小电机、串口等)时都需要加“互斥量”访问。
不过用LinkBoy就不同了,因为它的的调度内核是纯协作式的,任何事件都不会被其他事件中断,所以就完全避免了“资源访问冲突”这个问题。用户完全可以在多个事件响应代码中随意访问其他任何电路模块,而不用担心是否有其他事件也在访问这个模块。
在LinkBoy上编程,一方面完全避免了多进程系统中常见的“资源访问冲突”问题,另一方面它“看上去”又像是多进程的——用户可以拖出多个定时器分别设置好时间间隔,在每个定时器的时间到事件中各做各的事,互不影响;或者在某个事件响应代码中调用一个10秒钟的延时,那么在这10秒钟之内,系统依然可以扫描并及时地响应其他事件。
6 硬件组件系列
当用户设计好软件部分后,就可以把程序下载到控制板上,并控制外围的电子模块。LinkBoy的电子模块按照功能可分为基础类、输入类、输出类、显示类、声音类、通信类、传感器类等若干大类,每个大类中包括一系列具体模块,如输入类中包括单个按钮、双按钮、游戏手柄等;显示类包括4位数码管、128*64液晶屏、触摸彩屏等;通信类包括串口通信组件、485通信组件、USB通信组件、无线通信组件等。
7 机械结构系列
用户连接好导线的电子模块最终都会通过若干机械结构固定,机械结构系列是LinkBoy平台的最底层,包括常见的机械连接元素:带有孔和槽的塑料板、带孔的塑料条、扎带、热缩管、螺丝螺母、螺旋丝杠、固定电机的塑料座、机械臂等等。除了这些LinkBoy自带的材料以外,用户完全可以自备小工具——小钳子、小剪刀、小锯,并且发掘身边一切可以拆解再利用的资源——废弃的快递盒、大块的泡沫板、工地上零散的小木条…… 把它们攒起来藏到你的小车间里,什么时候忽然想做个东西了——比如自动开关的小夜灯,就可以切一块泡沫塑料做底座,接好电路,写几行程序,半天就可以做成一个人体感应的小夜灯,把它挂在院子里水龙头上边,大晚上你端着洗碗盆走过去,灯就会自动点亮~ 多有成就感~~~
用LinkBoy做的智能灯:
/
|