第1节 我选Arduino

高大上的无人机玩过吗?智能的家庭空气检测仪见过吗?手机控制的电子体重秤、血压仪用过吗?这些“高科技”都属于智能硬件。

作为软件开发者的你,有没有想过自己开发一个智能硬件呢?

也许你会觉得硬件开发的门槛很高,作为小白或者软件开发者难以企及,那么这你就想错了。其实,现在已经有了很多专门为软件开发者设计的智能硬件开发平台。例如现在火爆的树莓派-raspberry pi、英特尔推出的爱迪生-Edison,以及本系列讲重点介绍的Arduino。

有了它们,即使你对硬件并不了解,也能开发出软硬件完美结合的智能小硬件。

这些硬件都有个共同的特点,采用主控制板+扩展板+外接硬件的方式工作。

  1. 主控制板:我们讲的平台(树莓派、爱迪生、Arduino),指的就是主控制板,它通常就是一个开发板。你可以把它想象成台式电脑上的主板,只不过这个主板已经焊接上了CPU和内存等最最主要的部件;

  2. 扩展板:主控制板上的针脚是有限的,扩展板可以把一个针脚扩展成多个针脚,让更多的设备与这个针脚连接。它们就好像是电脑主板上延伸出来的一根根USB数据线,把主板上的一个USB接口,转接成了多组不同的USB接口,放在电脑主机的前面和后面;

这里介绍下“针脚”的概念,主控板上对外提供的连线接口都是适合线头插入的凹槽,称为针脚。

  1. 外接硬件:按钮开关、传感器等器件通过扩展板与主控制板的针脚相连。它们就好像是台式电脑上的USB接口可以连接的U盘、移动硬盘、USB Wifi等等外接设备;

可以想象的到,只要使用对应平台的扩展板,外接硬件可以连接在不同的平台上,正常的使用。所以那些外接的硬件有很高的通用性。

1.1 WHY Arduino

在前面提到的智能硬件开发平台中,我们选择了Arduino, 为什么?

  1. Arduino足够的便宜,一个Arduino开发板不到100块钱(即使是意大利原装板也只要300多人民币),投入的硬件成本很低,可以花很低的代价学习智能硬件开发;

  2. 作为智能硬件的初学者,总希望从最简单的开始,能学到原理,但是又不要有太高的学习门槛,有了基础以后再循序渐进。Arduino开发只需要开发者会基本的C语言就可以了,几乎不需要任何其他的编程、硬件基础;

  3. Arduino的运算能力足够制作一些简单的智能硬件了,而它又更接近一个单片机,很多智能硬件可以用它做功能的验证;

  4. Arduino是软硬件开源的,有很多的技术资料可以参考,有庞大的社区支持,可以找到很多志同道合的人交流、快速进步;

所以,我们选择这个性价比最高的的平台来开始智能硬件开发之旅。

1.2 Arduino开发板

Arduino开发板根据体积和性能,分为了多个子系列。

其中最常见、用来做入门学习的有两种,UNO和MEGA。

这两个开发板的功能几乎一样,MEGA使用的主控制芯片性能要高一些,针脚多一些,可以同时连接的外接硬件就要多一些。

相比之下,UNO配置低一些,价格也便宜一些。
MEFGA配置高一些,价格比UNO贵二十块人民币左右(意大利原版之间相比贵二十美元左右)。

我们使用Arduino开发板主要是用来学习,可能会同时要加装各种外接设备,MEGA开发板对此更有优势。

UNO接口太少,假如要做个四驱小车,一旦使用了四个马达后,基本就不能再添加其他硬件外设了。

另外,UNO的串口控制器只有一个串口,假如你还要使用其他串口设备的时候,调试起来就比较吃力了。例如做蓝牙小车,调试时噩梦就来了:因为Uno只有一个串口,要提供给蓝牙和USB共用。你得先拔下蓝牙模块的连接线才能部署程序到开发板;部署完成后,再插上蓝牙连接线才能开始测试。

如果出于批量生产成本考虑要使用UNO开发板也没有问题,可以先在MEGA上完成开发,最后在UNO上做性能测试,只要使用的硬件接口不大于UNO开发板提供的接口就行了。

基于以上这些分析,我们的建议是选Arduino的MEGA开发板。

学习硬件开发的一个很大门槛就是要记住许多复杂的寄存器地址。Arduino的之所以被认为是给软件开发者设计的硬件,就在于它简化了硬件上的多种接口,把它们抽象成一个个可以直接控制的引脚位置。软件开发者编程时只需要对这几类引脚做操作就可以了。

Arduino开发板上的引脚数量,根据开发板的类型是不同的。例如,UNO有20多根引脚,MEGA有70多根引脚。这些引脚都有自己的名字。

这些引脚可以被分成3类,

  1. 电源引脚。利用电源引脚,可以为外界的扩展板或者硬件提供3.3V(引脚3V3) 5V(引脚5V)的电压,以及接地(引脚GND)的功能;也能通过引脚VIN接受外部提供的电压;

    在MEGA开发板中,电源引脚的位置大致如下,

  2. 模拟引脚。区别于数字引脚只能输出0,1两种状态,模拟引脚可以输出0与1之间的中间状态。开发板有若干个模拟引脚,它们接收模拟量:0~1023,输出模拟量:’0-255’。
    输入输出范围不同应该是硬件设备的精度造成的。

    它们被编成了0~N的数字号码,用A0~AN来表示。例如MEGA开发板上的模拟引脚有16个,就是A0~A15

  3. 数字引脚。只能输出0和1两种状态的引脚。开发板有若干个数字引脚,它们只接收或输出高低电平两个值:HIGH或者LOW。

    它们被编成了0~N的数字号码,用D0~DN来表示。例如MEGA开发板上的数字引脚有54个,就是D0~D53

    这些数字引脚中,有的引脚还可以提供别的复用功能,

    1. PWM(Plus Width Module)。通过控制脉冲信号周期的方式,来调节数字引脚输出的电压大小;

    2. 通信引脚。作为串口输入和输出的接口;

不同的Arduino开发板,它们的引脚位置是不相同的,这里只是用MEGA开发板来做一个示例。目前我们只要知道有这些引脚的存在就可以了。今后要使用到这些引脚的时候,我们再来做详细的介绍。

*关于Arduino UNO开发板的详细介绍请参考官网。

*关于Arduino MEGA开发板的详细介绍请参考官网。

1.3 Arduino扩展板

1.3.1 官方扩展板

Arduino官方目前总共推出了5款扩展板。
分别是,
Arduino Motor Shield

Arduino Proto Shield

Arduino Ethernet Shield

Arduino GSM Shield

Arduino WiFi Shield 101

1.3.2 第三方扩展板

Arduino是开放平台,有不少的第三方扩展板。根据开发者的需要,扩展出提供不同功能的接口。对于有能力的硬件开发者来说,可以随心所欲的设计适合自己的扩展板。

例如下面这款双L293D芯片的马达扩展板,

1.4 外接硬件

Arduino可以外接多种硬件。这些硬件可以,

  1. 直接接到开发板上;

  2. 接到扩展板上,然后通过扩展板连接到主控制板上;

1.4.1 传感型硬件

用来感知、测量某种环境数据的硬件。例如光线传感器、温湿度传感器、超声波探测器、粉尘传感器等等。

1.4.2 控制型硬件

用来发出指令、改变硬件某个特性的硬件。例如开关、直流马达、步进马达、舵机、LED灯等等。


关于这些传感器详细的原理和用法,我们将在以后的章节详细的介绍。


/*******************************************************************/

本系列课程使用到的Arduino开发板、扩展板以及其他相关的传感器,各位可以根据我们文章中介绍的硬件在淘宝网选购。
您也可以在我们的网店跟我学Arduino编程中购买,这些相关硬件都由我们为您把关购买,为大家节省选择的精力与时间。同时也感谢大家对我们这些码农的支持。

最后再次感谢各位读者对安豆的支持,谢谢:)

/*******************************************************************/

手把手教你智能硬件开发(一) 我选Arduino相关推荐

  1. 手把手教你智能硬件开发(四) 蓝牙传输

    第4节 蓝牙传输 智能硬件基本上都需要和手机相连,然后让手机控制这些硬件的工作.相连的方式不外乎以下三种, 数据线有线连接,通过一根数据线把智能硬件和手机连接起来.采用这种方式,需要一个特殊的带USB ...

  2. 手把手教你智能硬件开发(六)直流马达

    第6节 直流马达 马达是我们经常使用到的电动装置,它可以将电能转化成动能,驱动其他东西的运动.听起来很抽象,举几个例子吧. 我们小时候玩的四驱车,带动轮子转动的那个小装置就是马达:夏天让风扇旋转带给我 ...

  3. 手把手教你智能硬件开发(三) 控制LED灯

    第3节 控制LED灯 现在我们开始尝试用代码控制一个真正的直观的硬件设备. 第一个例子:让Arduino开发板上的一个LED小灯周期性的打开.关闭. 第二个例子:让LED灯亮度逐渐的变亮变暗. 3.1 ...

  4. clion浏览linux代码,手把手教你使用 Clion 开发 Linux C++ 项目

    手把手教你使用 Clion 开发 Linux C++ 项目 关于CLion CLion是一款专为开发C及C++所设计的跨平台IDE.它是以IntelliJ为基础设计的,包含了许多智能功能来提高开发人员 ...

  5. 手把手教你使用 Clion 开发 Linux C++ 项目

    手把手教你使用 Clion 开发 Linux C++ 项目 关于CLion CLion是一款专为开发C及C++所设计的跨平台IDE.它是以IntelliJ为基础设计的,包含了许多智能功能来提高开发人员 ...

  6. 软硬整合技术、智能硬件开发与顶层设计应用_课程

    来自台湾的高焕堂老师,和来自美国硅谷的柯博文老师,共同指导... 课程名称:软硬整合技术.智能硬件开发与顶层设计应用 指导老师:高焕堂.柯博文 课程说明: 在智能&大数据时代,系统开发不仅仅攸 ...

  7. 手把手教你搭建Linux开发环境(VMware+Ubuntu)(一)——安装VMware虚拟机和Ubuntu

    前言 近期好多小伙伴都开始学习Linux内核了,那么如何搭建一个Linux运行环境,变成Linux内核初学者的拦路虎,今天我就一步步详细解说一下,如何使用虚拟机VMware安装Ubuntu,跟我一起开 ...

  8. 手把手教你搭建Linux开发环境(VMware+Ubuntu)(二)——安装VMwareTools并设置共享文件夹

    刚刚装好了Ubuntu,安装VMware Tools会让我们有更好的体验,那么为什么要安装VMware Tools?该如何安装呢?本篇博客将手把手教你安装VMware Tools,并设置共享文件夹. ...

  9. python numpy安装教程_手把手教你搭建机器学习开发环境—Python与NumPy的超简安装教程...

    手把手教你搭建机器学习开发环境Python语言是机器学习的基础,所以,想要入门机器学习,配置好Python的开发环境是第一步.本文就手把手的教你配置好基于Python的机器学习开发环境.超简单!第一步 ...

  10. HarmonyOS硬件创新合作伙伴,【HarmonyOS】HarmonyOS智能硬件开发学习指南 - HDC2020

    2020年9月10日,华为HarmonyOS 2.0版本正式官宣!这一次,借助 HarmonyOS 全场景分布式系统和设备生态,将定义全新的硬件.交互和服务体验,打开焕然一新的全场景世界,不愧是Har ...

最新文章

  1. 代码规范之华为公司代码规范
  2. cmake (0)简介
  3. 使用CSDN的Markdown编辑器
  4. git 改了一段代码不想要了_初识Git
  5. 使用NetBeans 7.4 beta提示进行更好的基于JUnit的单元测试
  6. linux主频限制服务,linux抵御DDOS攻击 通过iptables限制TCP连接和频率
  7. ASP.NET Core 基于SignalR实时通讯的前后端分离技术
  8. bzoj4600 [Sdoi2016]硬币游戏 sg函数+结论
  9. 年龄是计数还是计量_电子皮带秤是静态称重还是动态称重?
  10. Linux下rz/sz安装及使用方法_上传和下载文件
  11. Spring Cloud Ribbon 负载均衡客户端调用示例
  12. 新员工入职表_入职培训流程,五大步骤让员工顺利上岗,来之能战战之能胜
  13. element 输入框点击事件_Element Input输入框的使用方法
  14. 每天2小时,吃透 985博士总结的这份目标检测、卷积神经网络和OpenCV学习资料笔记(20G高清/PPT/代码)...
  15. 错误提示 - WPS Office 文字 正在运行
  16. jenkins集成sonar问题记录
  17. python在excel中的应用:freeze_panes冻结不是第一行的问题,其实可能是一个小细节。
  18. mysql jdbc密码密文_druid配置数据库连接使用密文密码
  19. 社区团购小程序+界面diy+分销+附近团长+供应商+拼团+菜谱+秒杀+预售+配送+直播
  20. java导出excel文件名乱码_Poi生成excel文件名乱码问题的解决方案

热门文章

  1. 流量卡之家:物联网资产跟踪可以实现绿色包装并关闭物流系统循环
  2. 诛仙3饮马江南服务器信息,12月29日全服停机更新维护公告
  3. LOL英雄联盟搞笑段子
  4. 如果让markdown的图片变清晰/改变大小
  5. oracle vm virtualbox增强功能,VirtualBox增强功能包下载
  6. oracle导出excel数据变成科学计数法
  7. 人,应慎言慎行——读某些贴后感
  8. C#录制声卡声音喇叭声音音箱声音
  9. 小孔子内容管理系统V2.0测试
  10. 70 个数据分析常用网址!