用DHT11实践树莓派与Arduino串口通信

Arduino具有丰富的外部接口,与树莓派的IO口最大的不同在于Arduino具有模拟输入接口,可以测量IO口上的模拟值。Arduino与Raspberry通过串口(Serial)通信的方案一般有两种,一是通过树莓派GPIO串口通信,第二种是通过USB串口通信。

显然,Arduino与Raspberry通过USB串口不仅稳定,而且不用连接复杂的线缆,本篇文章介绍树莓派如何通过USB串口读取arduino获得传感器的数值。

在Arduino上连接DHT11传感器,用来获取当前的温度、湿度值,并通过串口发送出来。
阅读全文

学会阅读Datasheet的基础信息

1、本文适合的读者及申明

首先,本文适合那些菜鸟级的电子爱好者,那些希望自己操起烙铁焊接一些小玩意儿,或者购买一些电子模块来实现自己的互动创意的人们。

本文并不适合专业级别的读者,里面的有些内容的描述为了让爱好者看懂,难免做了一些并不影响原则的曲解。若去强究,则未免贻笑大方。

另外,绝大多数的Datasheet都是英文版的,因此,这也需要读者具备一定的英文阅读水平。

最后,完全读懂一份Datasheet其实是已经可以算是一门相当高超的技能,这不仅需要深厚的电子学知识,IC制造技术,电路设计知识,甚至还会跨越到各种门类的专业学科知识。在这里,作者只能做一个大致的轮廓介绍,至少让读者在未来应用时有一个基本的概念。而完全不敢指望读者读完本文就升仙为Datasheet大神。
申明:本文是一篇实用主义者的自我感悟,并非学术论文,所以,不负文责。

阅读全文

树莓派+Arduino+TensorFlow搭建图像识别小车

从买第一个Arduino套装开始,我接触机器人有好几年了,但直到最近才开始做完整的课题。期间有两项技能为我打开了新世界的大门:Python和Linux。他们背后,是强大的开源社区。掌握了这两样工具的工具(元工具),你感觉网上遍地是趁手的兵器。上周在公司内部编程培训时,有一句话深得我心:我们是软件工程师,不是程序员。我们的工作不是写程序,而是合理使用工具解决问题。在Google,如果你觉得自己不得不从零开始写某项功能,只是你还没有找到相应的工具罢了。在开源社区更是如此。

这是一个遥控小车,通过红外遥控或无线键盘可以控制小车的行动和摄像头的角度。TensorFlow实时监测摄像头拍摄到的画面,语音读出它识别出的物体。所有代码都放在我的GitHub上。

阅读全文

树莓派与Arduino间的通信实践

最近需要在Arduino之间,以及Arduino和上位机(树莓派)之间传输数据,
原有APC220设备虽然可用,使用也方便,但成本太高,不容易批量,遂寻求其他方案。

一、方案选择

根据搜索的结果和前人经验,有如下几种可行方案:

  • nRF24L01+(RF)
  • ESP8266(WIFI)
  • XBee (ZigBee)
  • ENC28J60(LAN)
  • W5100,W5500(LAN)

阅读全文

Arduino与树莓派各自有什么优缺点?

因为近两年内有家装的需求,考察了市面上的智能家居方案,要么不靠谱看不上眼,要么价格高得离谱。想着自己原来也搞过一段时间单片机,Linux 靠着 Google 和 StackOverflow 也能解决一些问题。于是开始尝试 Arduino 和 RPi 在家居控制方面的各种实践。总结一些想法给大家作为参考:

20140103220953418

  1. RPi 和 Arduino 两个完全不同运算水平的平台。毕竟 RPi 使用的是一颗运行在 700MHZ 的 ARM11 CPU;而常用的 Arduino UNO 则是一颗在工业控制领域常见的 8-bit ATmega328,最高运行频率仅 20MHz。
  2. RPi 可以运行完整的操作系统,如 Debian 等常见 Linux 发行版 – RPi Distributions。这意味着你可以使用你熟练的语言(如 Python、Java)和熟悉的库来进行开发,同时后台运行多个进程也毫无压力。而 Arduino 作为一款真正传统意义上的单片机系统,一次只能运行一个你烧进去的程序,功能也相对单一。
  3. RPi 自带的接口比较全面,USB-host、RJ45、HDMI、SD读卡器等常用接口都有;而 Arduino 比较单纯,与外部设备打交道需要另外采购接口板。
  4. RPi 因为是一个相对完整的「电脑」,其成本肯定比 Arduino 高,目前 B 版在淘宝普遍 280 元左右;而常用的 Arduino UNO 40 元搞定。
  5. RPi 拥有更完整的操作系统,这也意味着每次复电后所需的启动时间很长,而且还不能保证重启后你写的相关服务都能正常启动(Linux 大拿可能会觉得是我技术渣);但 Arduino 因为用途单一,重启速度超快,而且重启结束后立即就在运行你让它做的事。

阅读全文