• Arduino入门初体验
  • 雪峰 发表于 2018年2月13日 标签:
  • 第一次听到arduino这个名字是在查阅树莓派相关问题时看到的,起初还以为是单片机,后来才知道是一个很流行的开源电子平台。什么时候有了想体验arduino的想法呢?大概是觉得整天都在闭门造车的学习一些技术知识,然而并不知道怎么去运用到实际中去,觉得很不爽,想找个东西去实现一下自己的想法(后来发现单纯的将arduino当做实践平台还是有点稚嫩……)。

    在网上了解一番后,然后去淘宝上搜索了一番,发现arduino uno r3的新手入门套件不是很有必要,于是决定按照知乎上有个答案的建议去单独买一些必要的配件和传感器。我的购买清单如下:

    arduino uno r3开发板 *1

    杜邦线(公对公,母对母,公对母)若干

    红外遥控模块 + 红外遥控器

    DHT11数字式温湿度传感器

    入门实验套件:LED若干,开关若干,各种阻值电阻若干

    面包板 *1

    双轴按键摇杆

    RGB全彩LED

    HC-SR04超声波测距模块

    人体红外感应模块

    24格收纳盒

    arduino到手后还是有点惊讶的,感觉尺寸比想象中的要小的多,只有手掌的一半大小,跟在网上看到别人拍出的实物有点不太一样……


    关于Arduino

    arduino的电路板其实并不复杂,对于小白的我来说,看一会操作几个实例就明白了。只需要搞清楚几个概念就行了,如:数字,模拟,输入,输出,GND,输出电压。因为arduino的引脚基本就是由这些相互组合起来的,比如模拟输入输出,数字输入输出,因此只需要了解每个引脚可以做什么就行了;而且在中国生产的uno r3板上标有中文标志,已经很清楚的标明了引脚的功能,更清楚的引脚说明图可以看看这个:https://www.w3cschool.cn/arduino/arduino_board_description.html;其实Arduino的程序结构跟processing差不多,语法虽说接近于c,但只需要弄清楚setup和loop函数的作用就基本够用了,引脚的控制和输入输出的传值也只需要了解几个常用的函数即可:

    pinMode:声明引脚的属性,即输入(INPUT)还是输出(OUTPUT)

    digitalWrite:在某一引脚进行数字输出写入,同理digitalRead读入

    analogWrite:在某一引脚进行模拟输出写入

    一般常用的传感器模块都会有相应的库文件,因此只需引入相应的库,然后根据其提供的函数进行读取或者相应的操作即可。


    Arduino与processing通信

    由于arduino ide本身只能进行简单的输入输出控制,想要进一步对数据进行复杂的处理(如可视化,交互等)就需要将数据传送到其他软件进行处理,processing是比较常用的与arduino进行通信的软件,而且processing软件语法简单操作简便(个人比较喜欢processing的js版本——p5.js)。使用processing与arduino通信处理一般使用serial库,用serial库对端口进行监控读取即可,读取有两种方式:一种是将端口数据作为二进制输入(范围为0-255的整数)进行读取,另一种就是将端口数据作为字符串进行读取。

    如果输出的数据是8位二进制内的整数,可以在arduino使用Serial.write()函数在端口进行写入,然后在processing使用serial对象的read函数进行读取;而其他的数据,比如浮点数、多个数据同时传输等等,可以在arduino使用Serial.println或者Serial.print函数进行打印,然后在processing使用serial对象的readStringreadStringUntil函数进行读取。


    后话

    说一下对于这些传感器的使用后的一些体会:

    1. DTH11温湿度传感器的精度可行,比较稳定;温度的精度为0.1℃,湿度的精度为1%RH。

    2. HC-SR04超声波测距模块的稳定性太差

    3. 红外遥控的稳定性太差,使用起来无法达到一一匹配的程度,经常出错,尤其是连续按键的时候;便宜没好货,买点贵点的使用!!!

    4. 双轴按键摇杆的变化幅度太大,需要配套的放置装置,不然操作不方便,下面全是针脚的焊接!

    发表评论