打印

我设计了一款AVR单片机编程开发平台(LinkBoy),欢迎试用

[复制链接]
8840|26
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
0xCC|  楼主 | 2013-4-25 20:03 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 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做的智能灯:














/

















相关帖子

沙发
lu0754| | 2013-4-25 20:43 | 只看该作者
只能靠作者程序封装,实用性不强,不是真正编程软件

使用特权

评论回复
板凳
0xCC|  楼主 | 2013-4-25 22:19 | 只看该作者
本帖最后由 0xCC 于 2013-6-7 12:48 编辑
lu0754 发表于 2013-4-25 20:43
只能靠作者程序封装,实用性不强,不是真正编程软件

嗯,因为这个编程开发平台就是给小孩儿和中学生玩儿的,封装好了让他们几行代码就可以控制各种硬件设备。


(6月7日)再补充一下:你说的“不是真正编程软件”我理解,就是这套东西不能做底层的工业设计。事实也是这样,我也不会鼓励用户用这个设计一些复杂的专业性底层产品,它就是一个玩具,随手搭建,随手拆掉。

另外呢,去掉软件的图形化界面,它本质上就是一个编译器,如果它的稳定性经过测试的话,完全就是“真正编程软件”,功能和keil是一样的,当然可以承担工业设计的任务。只是我没有往那个方面去发展,因为和Keil、GCC、IAR这些专业软件去竞争工业产品设计市场,必败无疑~

使用特权

评论回复
地板
0xCC|  楼主 | 2013-4-26 11:32 | 只看该作者
温度计:










使用特权

评论回复
5
logokfu| | 2013-5-6 00:57 | 只看该作者
创意挺好,呵呵

使用特权

评论回复
6
疯子8972| | 2013-5-6 23:37 | 只看该作者
看了楼主的博客,是个挺厉害的小伙子
做的东西很有想法,也非常有趣,应该是个天生的技术型天才
但是要用这个核心的技术赚钱的话,还需要宣传以及包装
所谓产品的“质感”
希望楼主的项目能顺利啊:)
楼主也看看我做的产品呗
https://bbs.21ic.com/icview-542007-1-1.html

使用特权

评论回复
7
wzt19910506| | 2013-5-7 08:28 | 只看该作者
mark

使用特权

评论回复
8
lj10506236| | 2013-6-3 18:00 | 只看该作者
我的人体感应模块为什么工作不正常呢,一直输出是低???请问你有没有遇到过这种问题呀!?

使用特权

评论回复
9
garin223| | 2013-6-3 18:52 | 只看该作者
lj10506236 发表于 2013-6-3 18:00
我的人体感应模块为什么工作不正常呢,一直输出是低???请问你有没有遇到过这种问题呀!? ...

贴出你的放大电路来,我帮你看看。

使用特权

评论回复
10
From_the_UESTC| | 2013-6-3 19:52 | 只看该作者
中文的程序设计语言,有意思。不过我觉得您应该搞成一个开源项目,让广大网友来不断完善才有可能不断发展壮大,闭门造车被证明通常是行不通的。

使用特权

评论回复
11
0xCC|  楼主 | 2013-6-4 14:25 | 只看该作者
From_the_UESTC 发表于 2013-6-3 19:52
中文的程序设计语言,有意思。不过我觉得您应该搞成一个开源项目,让广大网友来不断完善才有可能不断发展壮 ...

嗯,我计划也是让它开源,但是不知道该如何实施……

使用特权

评论回复
12
蓝魔大师弟| | 2013-6-5 07:43 | 只看该作者
学习

使用特权

评论回复
13
From_the_UESTC| | 2013-6-5 17:01 | 只看该作者
0xCC 发表于 2013-6-4 14:25
嗯,我计划也是让它开源,但是不知道该如何实施……

其实我也不清楚,不过应该就是把你的源代码和原理图的原文件啊啥的发布到网上供大家下载研究,然后总会遇到一些感兴趣的人,为这个系统添加新的功能,修复BUG。关键还是您的这个系统在设计之初就有比较好的可扩展性。

使用特权

评论回复
14
lcdi| | 2013-6-5 17:15 | 只看该作者
本帖最后由 lcdi 于 2013-6-5 17:21 编辑

这个创意不错,我也想过,不过与arduino很像。
你可以了解一下,现在arduino很热,也有图形编程器。做出类似的东西就没意义了。

我觉得这个作为学习套件不合适,因为学完了还是不会设计电路也不会真正编程。
但是作为玩具套件可能有很广阔的市场,给小学生做逻辑练习和兴趣启蒙。需要更完善一些,更有趣一些。

使用特权

评论回复
15
宇容创行| | 2013-6-5 21:55 | 只看该作者
个人以为,这个比直接编程还复杂。

使用特权

评论回复
16
江枫渔火| | 2013-6-6 11:21 | 只看该作者
中文编程不好

使用特权

评论回复
17
redcar| | 2013-6-6 14:37 | 只看该作者
小朋友的小玩具,笑笑路过

使用特权

评论回复
18
pang7| | 2013-6-6 22:27 | 只看该作者
楼主的东西不错 希望能**  你这东西 跟陈涛的易语言类似 刚开始大家都觉得是个玩具 他一直** 十几年过去了 现在玩易语言的很多了 玩具也能做不少事情 如果你能一直** 也一定会弄出个名堂  不过你这个 比易语言难度更大

使用特权

评论回复
评论
江枫渔火 2013-6-7 12:41 回复TA
易语言,就是玩儿~ 而对于玩儿,花太多力气去钻研,就是浪费,所以定位在玩儿的层次,就要简单,把所有的复杂都封装成简单,玩易语言都不入流~ 
19
0xCC|  楼主 | 2013-6-7 11:52 | 只看该作者
lcdi 发表于 2013-6-5 17:15
这个创意不错,我也想过,不过与arduino很像。
你可以了解一下,现在arduino很热,也有图形编程器。做出类 ...

Arduino没有和我这个类似的图形化编程。每个开发环境的图形化侧重点都是不一样的。我想做的就是一个适合儿童玩的玩具,几行代码和拖拖拽拽就搭建出一个小东西。

使用特权

评论回复
20
0xCC|  楼主 | 2013-6-7 11:58 | 只看该作者
宇容创行 发表于 2013-6-5 21:55
个人以为,这个比直接编程还复杂。

为什么会比直接编程还要复杂呢?能具体说明一下吗? 这套平台出发点就是简化编程,不需要用户处理各个模块的引脚配置(各种#define等等),因为在图形界面用户连接好之后自动生成了这些配置;也不需要用户编写每个模块的底层驱动,甚至不需要写一个#include指令,因为图形界面拖进来每个模块就自动生成了#include 指令,并且配置好,让用户可以直接使用。

欢迎您和我探讨~~~ 关于这套平台的各种意见和想法~

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

8

主题

45

帖子

8

粉丝