文档章节

嵌入式开发——关于Arduino开发的一些思考

gc87
 gc87
发布于 2015/07/07 23:00
字数 1303
阅读 77
收藏 0

    上学的时候有一门课叫——微机原理与接口技术,课程主线主要是以MCS-51(8051)单片机来讲解,它拥有一个8位的cpu、256B的RAM、8KB的ROM、4x8位并行IO接口……当时老师讲课是先从硬件结构开始的,各种时序振荡器、各种标志位、各种指令周期、各种听不懂...于是不知出于什么心理,那段相当重要的课程被我落下了,但接着转机出现了,老师的讲课的节奏很快(大家都在混,我不想这样说,但事实如此),在讲过指令系统和寻址方式之后,我们进入了"写的阶段"——用汇编写一些简单的小程序,起初写的很high,但基础不牢固导致的问题出现了,设计并焊接外围电路的事情一直困扰着我,但还好,我们小组(共6个人)有一个电子电路比较牛的小伙包揽了这方面的任务,汇编程序则由我来写,当时写的都不太复杂,作为例子程序,一个让4个一排的LED顺序点亮又顺序熄灭的控制程序不会超过20行汇编代码,最复杂的是在两块组合在一起的液晶上显示倒计时,然后,我们就考试了,这门课就结束了,而课程的教材(只有一本)还剩2/5的内容没讲!然而自己已经消化不了这些知识了,对我来说电路设计是最大的障碍,别人可以在面包板上随意摆弄各种元器件,但这方面自己太衰了,也曾尝试过自学,但短期不可能掌握,就放弃了。


        我想说的是——有没有其他方法让我们不必自己设计(制作)电路或是进行很少的设计(制作)进而达到目的呢?这个目的可以是前边说过的点亮LED的应用,当然,我们的需求不止于此,我们还想让某些设备达到预想的自动控制的功能。说到自动控制,绕不开的——传感器和执行器,同样绕不开的还有外围电路,在一个普通编程人员的眼里,从传感器到控制芯片引脚之间的里程是多么复杂与神奇?而且对于不同的传感器或者执行器,他们所需要的外围电路也不尽相同,编程人员会说——我们需要通用的接口!


        是的,给我们通用的硬件接口,让我们用代码来控制电路的行为,“我需要一个模拟的输入”——“好的,这是模拟信号,给你,不不!那个不能动,那个是数字的”。跟软件做的事情一样,将各种复杂的电路抽象,放到一个盒子里边,盖上盖子,留下输入和输出的引脚,然后在盒子上按需编程。
这种盒子早已存在,比如说Arduino——用AVR芯片和少量(注意:确实是少量的)外围电路搭建出来的通用计算平台,它从某种角度解除了上述困扰,释放了(编程人员的)想象空间。像这样的需求——你需要从n个的传感器读数据还要向n个执行器(比方说马达)写数据,可以用一块计算能力稍微强大一点的ARM11板作为上位机,毕竟Arduino的计算能力太弱,但作为数据中转站再适合不过。这样考虑:在ARM的板上加上一个zigbee模块。Arduino上也接上zigbee,同时接上传感器或者执行器,这样ARM的上位机可以通过zigbee与所有连接至Arduino上的传感器和执行器通讯。而且现在的好多ARM板子上面都可以预装可稳定运行的嵌入式操作系统,还有各种的通讯协议,这样我们可以很容易的在上边进行数据处理系统和决策系统的开发。同样的,数据转化的操作以及执行器的控制功能在Arduino上边也能很容易的进行开发(C或者Processing语言)。


        这种结构能做些什么?容我慢慢去想,无论如何,它打破了想法上的一些桎梏。更重要的是在这个过程中收获的一些想法。
    关于主从机器之间的通讯,也许zigbee可能成本太高,而且没有完全发挥zigbee的全部能力,可以考虑更加经济的方法,比如红外通讯(十米以内)、RF、蓝牙等,其中我对RF比较感兴趣,通过射频来通讯,带宽可达2Mbit/s,可一对多组网,与Arduino集成相对zigbee容易,可以用usb接口与arm板集成,最重要的是成本低廉。

© 著作权归作者所有

gc87
粉丝 1
博文 7
码字总数 4099
作品 1
昆明
程序员
私信 提问
北京开源硬件大爬梯之Arduino Day

如果《Wired》前总编辑 Chris Anderson 是 Maker 界的众所关注的创业新秀,那 Chris Anderson 又该关注谁呢?我认为是 Maker 神器(Arduino)的设计鼻祖们 Massimo Banzi、David Cuartielles...

文洁洁洁
2015/03/17
8
0
PHP 控制 树莓派 gpio 高低电平

PHP 控制 树莓派 gpio 高低电平 Love冥天个人博客-关注IT|PHP|互联网|php个人博客交流2017-12-146 阅读 linux PHP 控制 树莓派 gpio 高低电平 安装wiringpi 库 和 php扩展 【 wiringPi 】 【...

Love冥天个人博客-关注IT|PHP|互联网|php个人博客交流
2017/12/14
0
0
Arduino 全新无线 Linux 版 —— Arduino Yun

Arduino 刚刚发布了新系列的无线产品,合并了 Arduino 架构和 Linux 系统 —— Ardunio Yun。Ardunio Yun 是 Wifi 产品的首个成员,Arduino 希望借此产品整合 Linux 强大的功能和 Arduino 的...

oschina
2013/05/20
10.3K
21
Arduino 创始人谈硬件为什么也要开源

本文自arstechnica对Arduino创始人Massimo Banzi的采访。 软件的开源在科技界有着悠久的历史。开放源码让安全漏洞更易暴露,迭代快速满足用户需求,同时第三方还可以用它来开发新产品。但开源...

oschina
2013/10/16
10.7K
21
北京开源硬件大爬梯之Arduino Day

如果《Wired》前总编辑 Chris Anderson 是 Maker 界的众所关注的创业新秀,那 Chris Anderson 又该关注谁呢?我认为是 Maker 神器(Arduino)的设计鼻祖们 Massimo Banzi、David Cuartielles...

文洁洁洁
2015/03/17
526
0

没有更多内容

加载失败,请刷新页面

加载更多

教你玩转Linux—添加批量用户

添加和删除用户对每位Linux系统管理员都是轻而易举的事,比较棘手的是如果要添加几十个、上百个甚至上千个用户时,我们不太可能还使用useradd一个一个地添加,必然要找一种简便的创建大量用户...

xiangyunyan
37分钟前
6
0
返回提示信息,如:xxx创建成功!

【服务端】在输出的方法块中,加入要输出的字段(qcm_batch_id) QCMUserType.cs: public struct QCM_Custom_Create_Batch_Out_Tag { public BASCoreType.Cmn_Out_T......

_Somuns
37分钟前
6
0
Aliyun Serverless VSCode Extension v1.12.0 发布

Aliyun Serverless VSCode Extension 是阿里云 Serverless 产品 函数计算 Function Compute 的 VSCode 插件,该插件结合了函数计算 Fun 工具以及函数计算 SDK ,是一款 VSCode 图形化开发调试...

阿里云官方博客
37分钟前
6
0
程序员如何培养解决复杂问题的能力?

今天在上网时候,突然看到了这篇文章,感觉非常的适合现在的自己去思考下,可能也适用在座的读者。程序员不仅仅是敲代码,更是一个复合能力的结合体,也不仅仅停留在技术和代码阶段。你想要成...

哥本哈根的小哥
41分钟前
8
0
市场变化驱动产品思维升级

宜信科技中心财富管理产品部负责人Bob,与大家一起聊聊个性化推荐产品功能的设计和B端产品的功能策划方式。 拓展阅读:回归架构本质,重新理解微服务 智慧金融时代,大数据和AI如何为业务赋能...

宜信技术学院
41分钟前
8
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部