初识Arduino

时隔若干年,重启Arduino入门教程~

Arduino自2005年推出以来,广受好评,如今已成为最热门的开源硬件之一。在全球最大的开源社区Github上,Arduino已经成为了一个语言分类;而IEEE发布的2017年编程语言流行程度排行榜上,Arduino成为了仅次于C/C++的嵌入式编程语言;近年来,国内各大高校,甚至中小学都开始使用Arduino开展教学工作。Arduino的热门程度可见一斑。

什么是Arduino

在回答Arduino是什么之前,让先来看看几个基于Arduino开发的项目。

典型项目案例

  • 温湿度计
    该设备上有温湿度传感器,可以测量出环境温湿度信息,还带有时钟芯片,可以记录时间信息,这些信息都通过设备上的显示屏呈现。其测量到温湿度历史数据,可以通过网络连接存储到云端服务器,方便日后查看历史信息。
  • 智能电灯
    该设备使用WiFi连接到网络,通过App可以远程控制其开关、设定开关时间、调整灯光亮度、色温等,还可以连接语音助手,通过语音控制其状态。
  • 教育机器人
    OTTO是一款用于教育领域的机器人,由Camilo设计,其中包含Arduino控制板、超声波传感器和舵机,可以通过编程让其做出不同的动作,还可以通过其中的超声波传感器与之交互。
  • 无人机控制器
    ArduPilot是基于Arduino开发的无人机控制系统,是目前最强大的基于惯性导航的开源飞行控制器之一。集成有陀螺仪、加速度传感器、电子罗盘传感器、大气压传感器、GPS等部件。

图1-x为使用ArduPilot制作的四轴飞行器。

  • 微型卫星
    ArduSat是美国加州的NanoSatisfi团队在众筹网站Kickstarter上推出的Arduino制作的微型人造卫星项目(见图1-4),目的是让任何人都可以用更低的成本从事有关宇宙的研究。
    它只有10立方厘米大小,将会以音速18倍的速度围绕地球飞行,并配备照相机和多达25种的感应器,搭载的感应器包括电磁波测定装置、分光器、振动传感器、光传感器、GPS、盖革计数器、陀螺仪、磁场传感器、二氧化碳检测传感器等等。

Arduino的本质

Arduino并不仅仅是一块小小的电路板,而是一个开放的电子开发平台。它包含了:

  • 硬件——电路板
  • 软件——开发环境
  • 开发者生态——众多开发者、使用者创造的代码、程序、电路、项目

开发优势

  1. 简化开发
    抛开了传统硬件开发的复杂操作:
    • 不需要了解硬件内部结构和寄存器设置
    • 不需要过多的电子知识、编程知识
    • 通过简单的学习即可开发出色项目
  1. 创意扩展
    可以与多种软件结合(如Flash、Max/Msp、VVVV、Processing)制作互动作品

开源基因

Arduino本身是多个开源项目融合的成果(图1-9为Arduino使用的部分开源项目):

组件

基于的开源项目

说明

编译器

GCC

GNU核心编译器

编程语言

Wiring/AVR libc

单片机编程架构/AVR扩展库

开发环境

Processing IDE

设计师导向的开发环境

上传工具

avrdude

AVR编程工具

可以说,没有这些开源项目,就没有今天的Arduino。

为什么使用Arduino

核心优势

跨平台
Arduino IDE支持Windows、Mac OSX、Linux三大操作系统

简单开发

  • 基于Processing IDE开发,易学易用
  • 对底层接口二次封装,降低学习门槛

完全开源
硬件原理图、电路图、IDE软件及核心库文件全部开源

强大生态

  • 活跃的开源社区(Github/Arduino.cc/Arduino.cn)
  • 丰富的第三方硬件/外设/类库支持

行业趋势

  • 全球最流行的开源硬件平台
  • 显著降低开发周期和学习成本
  • 已被专业开发者、教育机构广泛采用

应用场景

  • 专业硬件产品开发
  • 物联网项目实现
  • 高校自动化/软件/艺术课程
  • 创客教育/STEAM教育

Arduino从零开始的高手之路——初识Arduino的更多相关文章

  1. Arduino学习笔记① 初识Arduino

    1.前言     近段时间,博主陆续更新了ESP8266学习笔记,主要开发平台是Arduino.但是,对于很多无基础的初学者来说,甚至不了解Arduino是什么.因此,博主决定加入一个Arduino学 ...

  2. 王家林的“云计算分布式大数据Hadoop实战高手之路---从零开始”的第十一讲Hadoop图文训练课程:MapReduce的原理机制和流程图剖析

    这一讲我们主要剖析MapReduce的原理机制和流程. “云计算分布式大数据Hadoop实战高手之路”之完整发布目录 云计算分布式大数据实战技术Hadoop交流群:312494188,每天都会在群中发 ...

  3. 初识Arduino

    Arduino是一款便捷灵活.方便上手的开源电子原型平台.包含硬件(各种型号的Arduino板)和软件(Arduino IDE).由一个欧洲开发团队于2005年冬季开发.其成员包括Massimo Ba ...

  4. [js高手之路]Node.js实现简易的爬虫-抓取博客文章列表信息

    抓取目标:就是我自己的博客:http://www.cnblogs.com/ghostwu/ 需要实现的功能: 抓取文章标题,超链接,文章摘要,发布时间 需要用到的库: node.js自带的http库 ...

  5. Arduino入门笔记(2):Arduino的开发和virtualbreadboard仿真环境

    欢迎加入讨论群 64770604 1.开发环境 (1)下载开发环境 Arduino的开发环境从http://arduino.cc/en/Main/Software官网下载即可,分为windows版本. ...

  6. [js高手之路]Node.js实现简易的爬虫-抓取博客所有文章列表信息

    抓取目标:就是我自己的博客:http://www.cnblogs.com/ghostwu/ 需要实现的功能: 抓取博客所有的文章标题,超链接,文章摘要,发布时间 需要用到的库: node.js自带的h ...

  7. 云计算分布式大数据Hadoop实战高手之路第七讲Hadoop图文训练课程:通过HDFS的心跳来测试replication具体的工作机制和流程

    这一讲主要深入使用HDFS命令行工具操作Hadoop分布式集群,主要是通过实验的配置hdfs-site.xml文件的心跳来测试replication具体的工作和流程. 通过HDFS的心跳来测试repl ...

  8. 安卓高手之路之 ClassLoader

    我不喜欢那些泛泛而谈的去讲那些形而上学的道理,更不喜欢记那些既定的东西.靠记忆去弥补思考的人,容易陷入人云亦云的境地,最后必定被记忆所围困,而最终消亡的是创造力.希望这个高手之路系列能够记录我学习安卓 ...

  9. ClassLoader使用记录《安卓高手之路》

    我不喜欢那些泛泛而谈的去讲那些形而上学的道理,更不喜欢记那些既定的东西.靠记忆去弥补思考的人,容易陷入人云亦云的境地,最后必定被记忆所围困,而最终消亡的是创造力.希望这个高手之路系列能够记录我学习安卓 ...

  10. 云计算分布式大数据Hadoop实战高手之路第八讲Hadoop图文训练课程:Hadoop文件系统的操作实战

    本讲通过实验的方式讲解Hadoop文件系统的操作. “云计算分布式大数据Hadoop实战高手之路”之完整发布目录 云计算分布式大数据实战技术Hadoop交流群:312494188,每天都会在群中发布云 ...

随机推荐

  1. 如何利用 PostgreSQL 的 JSONB API 作为扩展的轻量级 JSON 解析器

    前言 在基于 C 语言的 PostgreSQL 扩展开发中,您可能会遇到需要处理 JSON 等结构化数据的情况.通常,您可能会在扩展中引入第三方 JSON 解析库,例如 cJSON 或 libjans ...

  2. nginx + lua脚本

    Nginx配合Lua 案例 今天实现一个非常简单的例子. 云服务器上部署的了一个很通用的应用程序(它没有保护策略),其端口是a,但是我想使用他,就要通过公网ip:端口去访问它.暴露在外面很不安全. 那 ...

  3. Python提取pdf文字信息

    目录 Python提取pdf文字信息 需求 代码 总结 Python提取pdf文字信息 需求 今天教务处导出来我们全年级的成绩,一看吓一跳,我们的名字怎么不在文件名里,只能一个个找吗.事情开始变得离谱 ...

  4. 一文速通Python并行计算:04 Python多线程编程-多线程同步(上)—基于条件变量、事件和屏障

    一文速通 Python 并行计算:04 Python 多线程编程-多线程同步(下)-基于条件变量.事件和屏障 摘要: 本文介绍了 Python 多线程同步的三种机制:条件变量(Condition).事 ...

  5. Supergateway:MCP服务器的远程调试与集成工具

    Supergateway 是一款专为 MCP(Model Context Protocol)服务器设计的远程调试与集成工具,通过 SSE(Server-Sent Events)或 WebSocket( ...

  6. String类的三种常见构造方法

    1.根据构造方法创建字符串对象 1.public String() 创建一个空字符串,里面不包含任何内容 2.public String(char[] chs) 创建一个字符数组,将其拼接成字符串对象 ...

  7. CH182的ESP32驱动

    CH182的ESP32驱动需要自取 https://files.cnblogs.com/files/blogs/745523/esp-eth.zip?t=1739322979&download ...

  8. 记一次 .NET某云HIS系统 CPU爆高分析

    一:背景 1. 讲故事 年前有位朋友找到我,说他们的系统会偶发性的CPU爆高,有时候是爆高几十秒,有时候高达一分多钟,自己有一点分析基础,但还是没找到原因,让我帮忙看下怎么回事? 二:CPU爆高分析 ...

  9. 《数组》--DAY1--二分查找

    分治算法--二分查找(返回下标) 1.定义:在有序列表中,每次查找范围折半 列表若存在重复元素,返回下标不唯一 优点:比较次数少,速度快,性能好:缺点:要求列表有序 注意区分while(left &l ...

  10. 校验获取数据或者返回值的方法,should contain的用法

    如上图,验证"首页"是否添加成功,我们就通过验证页面上是否存在"首页"这个关键字,来确认数据是否添加成功 RB的写法如上图,原理是以文本输出"首页&q ...