搜索
bottom↓
回复: 45

LinkBoy——我设计的一款AVR单片机编程开发环境,欢迎试用

[复制链接]

出0入0汤圆

发表于 2013-4-25 19:31:33 | 显示全部楼层 |阅读模式
本帖最后由 小燕子神飞 于 2013-4-26 11:25 编辑

        这是一个用C#写的AVR单片机编程开发平台(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



        这个编程平台是给编程初学者和非专业人士设计的,下边这个是关于这个平台的一些简介,大家感兴趣的话可以看看哈~ 如果想了解更多可以访问此博客:blog.sina.com.cn/freerobot


===================================================================


        如果您是一个爱折腾的极客迷,一定接触过一些积木开发平台。比如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做的一个小东西——智能灯:




















本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

发表于 2013-4-25 20:32:12 | 显示全部楼层
有点意思,单片机启蒙,不过学会这种编程,C还能习惯不?

出0入90汤圆

发表于 2013-4-25 20:34:28 | 显示全部楼层
学会了这种编程,就会发现,想进一步深入的时候这种就不满足了,不够灵活。最后,还是去学C语言了

出0入0汤圆

发表于 2013-4-25 20:38:38 | 显示全部楼层
对  arduino之流    没有好感啊      如果小时候有兴趣  还能玩一玩                                                                       

出0入0汤圆

 楼主| 发表于 2013-4-25 21:24:31 | 显示全部楼层
cqfeiyuxmj 发表于 2013-4-25 20:32
有点意思,单片机启蒙,不过学会这种编程,C还能习惯不?

跟C的语法有好多出入,比如逻辑与或非优先级高于加减乘除等。其实这个编程平台不适合专业人士使用(就像我们这个论坛呵呵),因为跟C的编程习惯有冲突。

出0入0汤圆

 楼主| 发表于 2013-4-25 21:28:11 | 显示全部楼层
honami520 发表于 2013-4-25 20:34
学会了这种编程,就会发现,想进一步深入的时候这种就不满足了,不够灵活。最后,还是去学C语言了 ...

这个编程平台确实不适合专业人士,主要是面向初中、高中学生和不懂编程的业余玩家,让他们写几行代码就能做出一些好玩的东西。

出0入0汤圆

 楼主| 发表于 2013-4-25 21:29:24 | 显示全部楼层
Name_006 发表于 2013-4-25 20:38
对  arduino之流    没有好感啊      如果小时候有兴趣  还能玩一玩                                      ...

这就是设计来给小孩儿玩儿的嘛。

出0入76汤圆

发表于 2013-4-25 21:40:52 | 显示全部楼层
嗯,不错,支持楼主...

出0入0汤圆

发表于 2013-4-25 22:25:41 | 显示全部楼层
很好奇的说,研究研究楼主的东西。

出0入0汤圆

发表于 2013-4-25 22:27:57 | 显示全部楼层
才毕业半年吧,年轻人有想法,厉害啊

出0入0汤圆

 楼主| 发表于 2013-4-25 22:35:28 | 显示全部楼层
cyr_hongfeng 发表于 2013-4-25 22:27
才毕业半年吧,年轻人有想法,厉害啊

嗯差不多快一年了。这一年也没找工作,就做这个东西了。从大二开始设计,写了四年终于现在全部做好了。打算推广一下,主要是面向初中高中学生的中文编程,类似于Arduino面向的人群。

出0入0汤圆

发表于 2013-4-25 22:38:33 | 显示全部楼层
支持下LZ,希望国人的开发环境也有流行的。

出0入0汤圆

发表于 2013-4-25 23:50:57 | 显示全部楼层
不错啊,加油!

出0入0汤圆

 楼主| 发表于 2013-4-26 11:23:03 | 显示全部楼层
一个电子温度计:









本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

发表于 2013-4-30 17:15:52 | 显示全部楼层
有想法,加油

出0入0汤圆

发表于 2013-5-5 13:51:54 | 显示全部楼层
我觉得 挺好的  
技术是一方面 吸引更多的人进入到这个圈子 中国的电子开发才会有前景~

出0入0汤圆

 楼主| 发表于 2013-5-5 14:13:24 | 显示全部楼层
用LinkBoy设计的电子表:










本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

发表于 2013-5-5 14:24:46 | 显示全部楼层
很好,坚持自己的梦想

出0入0汤圆

发表于 2013-5-6 01:19:21 | 显示全部楼层
小燕子神飞 发表于 2013-4-25 22:35
嗯差不多快一年了。这一年也没找工作,就做这个东西了。从大二开始设计,写了四年终于现在全部做好了。打 ...


楼主可以和易语言联系一下,用他们的集成开发环境,集合你的硬件系统。


http://bbs.eyuyan.com/

出0入0汤圆

 楼主| 发表于 2013-5-6 08:39:01 | 显示全部楼层
dzahz666 发表于 2013-5-6 01:19
楼主可以和易语言联系一下,用他们的集成开发环境,集合你的硬件系统。

嗯易语言我也试用过。不过我的这套平台已经包括了它自己的语言和编译器,再改过去难度比较大,而且会涉及到好些商业上的事情的。

出0入0汤圆

发表于 2013-5-6 08:58:07 | 显示全部楼层
支持楼主。虽然用途不广,但现在就是市场细分的年代,完善后在中小学大有市场。

出0入0汤圆

发表于 2013-5-6 09:02:06 | 显示全部楼层
  牛b!

出0入0汤圆

发表于 2013-5-6 09:33:28 | 显示全部楼层
不错!

出0入0汤圆

发表于 2013-5-6 13:35:05 | 显示全部楼层
不错的东西,楼主加油!

出0入0汤圆

发表于 2013-5-6 13:54:48 来自手机 | 显示全部楼层
和纳英特的差不多。

出0入0汤圆

发表于 2013-5-6 14:18:31 | 显示全部楼层
不错。支持。

但是中文编程效果行吗?怎么转换呢?最好还得转成英文吧?
感觉没必要用中文,有好的编辑环境,英文也可以。
用中文的话,编译器特定词都要定义好,毕竟还有方言,说话方式等等不同。

个人意见。。

出0入0汤圆

 楼主| 发表于 2013-5-6 14:42:48 | 显示全部楼层
Excellence 发表于 2013-5-6 14:18
不错。支持。

但是中文编程效果行吗?怎么转换呢?最好还得转成英文吧?


其实底层可以看成英文的,这是LinkBoy中的宏定义:



@define VT A.#.VTYPE
@define 类型 A.#.STRUCT

@define 如果 A.#.IF
@define 否则 A.#.ELSE
@define 反复执行 A.#.REPEAT
@define 单次执行 A.#.ONCE
@define 返回 A.#.RETURN
@define 跳转到 A.#.GOTO
@define 终止 A.#.BREAK
@define 重做 A.#.GOTO_START
@define 跳过 A.#.GOTO_END
@define 首先 A.#.START
@define 每次 A.#.EACH
@define 直到 A.#.UNTIL
@define 次 A.#.TIMES
@define 结束 A.#.END
@define 公开的 PUBLIC
@define 私有的 PRIVATE
@define LINK LINK
@define REAL REAL
@define 并且 &&
@define 或者 ||


出0入0汤圆

发表于 2013-5-6 14:50:37 | 显示全部楼层
虽然用不上了,但是强烈支持,这种东西对于启蒙教育还是很有帮助的。

出0入0汤圆

发表于 2013-5-6 17:08:08 | 显示全部楼层
小燕子神飞 发表于 2013-5-6 14:42
其实底层可以看成英文的,这是LinkBoy中的宏定义:

呵呵。谢谢回复,有点意思,加油。

出0入0汤圆

发表于 2013-5-7 11:09:19 | 显示全部楼层
mark,good.

出0入0汤圆

发表于 2013-7-14 18:52:27 | 显示全部楼层
支持楼主啊,太牛了,膜拜中

出100入18汤圆

发表于 2013-7-15 10:43:23 | 显示全部楼层
支持一下~~~~~~~~~~~~~

出0入0汤圆

发表于 2013-7-15 12:37:51 | 显示全部楼层
想法不错..

出0入0汤圆

发表于 2013-7-15 20:35:22 | 显示全部楼层
楼主 牛逼

出0入0汤圆

发表于 2013-7-18 17:15:30 | 显示全部楼层
楼主  牛逼

出0入0汤圆

发表于 2013-7-18 18:19:44 | 显示全部楼层

出0入0汤圆

发表于 2013-7-18 19:11:13 | 显示全部楼层
做的不错。
但是时钟那一部分我觉得不妥。
都封装成这样了,就没有必要让用户自己分离数字,转换成ASCII码了。

出0入0汤圆

发表于 2013-7-19 09:20:22 | 显示全部楼层
顶,中国有未来了

出0入0汤圆

发表于 2013-7-27 17:42:02 | 显示全部楼层
支持楼主。

出0入0汤圆

发表于 2013-7-27 18:45:44 | 显示全部楼层
国内好像有个“易语言”,是中文编译器。不知道这个是中文“编译器”,还是中文“解释器”。如果是一个人做了中文编译器,那是够牛X的。

一般能用中文编程的,用英文应该也不是什么困难事。所以我感觉要么就做成像delphi开发那样,很多组件做成属性来选,然后自动生成C代码或者什么的,这样有利于单片机学习;否则就直接做成属性选择的那种,用户想用时,直接选一些属性,然后买你的模块,直接一组装就可以用了。

出0入0汤圆

发表于 2013-7-27 19:18:25 | 显示全部楼层
有点意思,顶一个

出0入0汤圆

 楼主| 发表于 2013-7-28 20:21:08 | 显示全部楼层
jetlib 发表于 2013-7-27 18:45
国内好像有个“易语言”,是中文编译器。不知道这个是中文“编译器”,还是中文“解释器”。如果是一个人做 ...

算是一个类似于C语言的编译器吧。目前正在试着去掉文字代码程序部分,把全部的编程代码用图形化方式实现(但是不想做成图形化流程图那种),想设计成一种纯图形化编程的东西,应该会更适合小孩子玩。总的设计原则是小孩子用起来 “够直观“,”够简单”。

出0入0汤圆

发表于 2013-7-29 12:50:07 | 显示全部楼层
厉害!支持!

出0入0汤圆

发表于 2013-7-29 17:24:40 | 显示全部楼层
小燕子神飞 发表于 2013-7-28 20:21
算是一个类似于C语言的编译器吧。目前正在试着去掉文字代码程序部分,把全部的编程代码用图形化方式实现 ...

請問是類似 labview 那種設計嗎

出0入0汤圆

 楼主| 发表于 2013-7-29 18:16:00 | 显示全部楼层
xiaolaba 发表于 2013-7-29 17:24
請問是類似 labview 那種設計嗎

有点像那个方向发展的。不过目前还在构思中,没什么头绪呢。而且最近在忙着找工作,等以后安定了,要好好把这个软件升级下。

出0入0汤圆

发表于 2013-7-30 10:23:10 | 显示全部楼层
想法很好!支持下!
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-5-6 07:37

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表