0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Android Things开发环境搭建案例

电子设计 来源:王玉成 2019-01-03 10:20 次阅读

物联网 (IoT) 的应用开发,离不开跟开发板打交道,我们需要配置好开发板的各种环境,最后才能用 Android Studio 进行应用开发。

我们今天就以 Raspberry Pi 3 为例,一起来搭建 Android Things 的开发环境。

硬件准备
Raspberry Pi 3 的硬件开发板就长这样:

开发板是有了,但是我们应该怎么用开发板呢?那好,我们先进一步了解并分析开发版的功能:

Android Things 的开发环境

玩过 Raspberry Pi 3 的人可以略过这段,但是对于首次上手的玩家,有几点要注意:
事项 1:别费尽心思找电源了,开发板用的 Micro USB 口做供电接口。别找个电源适配器,拼命往音频接口上塞啦,这么搞厂商也很头疼的。
事项 2:做什么样的事找什么样的位置。每个接口有每个接口特定的作用。看着文字对上号,根据方案选择特定的模块就行了。

那么多 GPIO 口啊……怎么办?我有针脚恐惧症的。
- 没问题,我们就先来了解针脚的作用,就可以玩转开发板了。

等等,我怎么知道开发板哪个地方是第一根针脚啊?
- 在电路板上,找到 GPIO 针脚,离 USB 接口最远的那一端,对了,开发板上应该有一个 J8 标记, 就是那位置为 1 号针脚,只需要找到这几根针脚就够了。供电是引出 5V 还是 3.3V 的电源针脚,跟你自己的电路有关,切记在连线之前把电压搞清楚,不然会烧掉器件的。接下来认出 UART, SPI, PWM, I2C 接口,依据自己的需求,找一个面包板,就可以拉线出来干活了。

硬件认清楚了,这是第一步,还要找找开发版的外设,一般说外设就是供电,显示,存储,输入这几大块。
microUSB 给电源供电;
HDMI 用来显示;
有线或者 Wi-Fi 用来连接网络
microSD 卡以及读卡器用来烧写系统。

配备完这些外设,搭好面包板,就可以动手烧写系统了。

下载镜像
开始找地方下载镜像了,镜像链接在此:
developer.android.com/things/preview/download.html

上一讲提到的 4 个开发版的镜像都可以下载。

Raspberry Pi 3 最新的镜像压缩包名为 androidthings_rpi3_devpreview_2.zip,下载完压缩包,解压缩之后,只有一个文件 iot_rpi3.img,我们来看看是什么格式的文件:

这些信息好像还不足以让我们判断镜像的内容,但是可以明确的是,这是一个可以做启动的镜像文件。那我们来看看镜像内部包含了哪些内容?

Android Things 的开发环境

通过镜像的内容,我们看到镜像的内部结构。其中 rpi boot 是 Raspberry Pi 的 secondary boot,后续就是 uboot,接下来,就是 uboot 所引导的系统文件了。做过 uboot 级别移植的人,应该十分清楚 bl1, bl2, uboot 的一些概念,这里就不做详细解释了。

这里再啰嗦几句,我们看一下 Developer Preview 1 版本的镜像,以 Edison 开发版的镜像为例:

Android Things 的开发环境

可以看到,在 Developer Preview 1 这一版中,分成了许多文件,并且提供了烧写脚本,还提供了 fastboot 和 ADB 工具。但是,对于初学者来说,如何正确使用这些工具成了一个难题。所以在 Dev Preview 2 的版本中,把这些文件合并成一个 image 文件,烧写就变的很简单了。还是要为 Google 的贴心赞一赞,每一版的改进都会让开发者用起来更方便。

细心的读者会发现,两个开发版的镜像文件中,有些文件内容是不同的,主要是 bootloader 及之前的可执行代码。有兴趣的读者可以对比一下 x86 和 arm 的架构的 bootloader 的不同的地方及作用。

Edision 的镜像文件中间,还包括一个文件,似乎在回顾着某种历史,如果你找出来了,就请在下方留言吧。

烧写镜像到 SD
Raspberry Pi 的外接存储设备是 microSD 卡,以下简称 SD 卡。由于 Linux, Windows, Mac 的烧写的工具也不尽相同,我们以 Linux 为例说一下烧写步骤,烧写的命令只要是 dd,但是千万不要 dd 到你的硬盘上去了!

最安全的烧写流程如下:
$ df -h 命令,查看一下当前有哪些设备,如果电脑不能识别 SD 卡,那么开始第 2 步,如果电脑已经识别 SD 卡,记下来 SD 卡是哪个设备,就可以走第 3 步了;
把 SD 卡插上,重复第一步;
$ sudo dd bs=4M if=iot_rpi3.img of=/dev/sdx 命令,确定自己的 SD 卡的设备号,然后把下载的 img 文件烧写到 SD 卡上 ,这一步需要 root 权限哦。这儿要提醒一句,不是烧写到 SD 卡的某个分区,而是烧写到这个 SD 卡所在的设备上。
$ sync 命令,同步数据到 SD 卡。

Windows 系统下,用 Win32DiskImager 工具,用管理员权限,烧写 img 文件到 SD 卡即可。

Mac 系统下也是用 Linux 下的命令:
$ sudo dd bs=1m if=image.img of=/dev/rdisk

启动开发板
把已经烧写过 Android Things 的 mciroSD 卡插到 Raspberry Pi 3 的对应位置,就可以启动开发板了。

按以下的步骤去启动开发板:

用 microUSB 供电;
插入网线;
插入 HDMI 接口。

大概第一次系统启动要一到两分钟,耐心等待就行。

系统启动完之后,显示器显示了当前有线网的的 IP 地址,以及 Wi-Fi 还没有连接上的状态。那么,我们可以借助有线网的 IP,去连接 ADB:
$ adb connect
connected to :5555

由于 Raspberry Pi 是支持 DNS 广播的,如果你的电脑支持 MDNS 功能,运行命令:
$ adb connect Android.local

连接成功后,会返回:
connected to :5555

这样我们的 ADB 就正常连上Raspberry Pi 3了。借助 ADB ,我们可以连接 Wi-Fi 了。

Android Things 的开发环境

其中包含了用户名和密码,如果你的密码为空,不加 -e passphrase 这个参数即可。

接下来就要检查 Wi-Fi 是否正确连上了:

出现上面的消息,表明 Wi-Fi 是正常启动了。那 DNS 是否通呢?拨下网线,然后 ping 一下试试。

连接串口用于调试
现在虽然 ADB 连上去了,网络也通了,但是事情才刚刚开始。我们在工作前期,引入一种比较方便的调试方法,那就是嵌入式开发中骨灰级的调试方式:串口调试:

对着上图,拿着 USB 转 TTL 的线,找到 GPIO 的针脚上的 UART 的 TXD 和 RXD 两根针。然后再找到地线,连接相应的杜邦线就可以了。稍等,四个针脚,为啥有一个针脚不连呢,那个不是供电线吗?由于 USB 转 TTL 线,在 USB 这端已经供电了,所以 VCC 接口不需要连了。

这儿需要注意的是,RX 和 TX 是交叉的,不是直连的。因为开发板上的 TX 就是 USB 这边的 RX。RS-232 和 TTL 的区别,这儿就略过了。

然后就要开始用 PC 机上的串口调试软件来连接 USB 转串口了。三大系统的工具又不太一样。Windows下有 putty, secruCRT 等,Linux 下有 Mimicom, Mac 下有 Serial。根据自己的操作系统来选用吧。不过记各把波特率设为 115200, 8N1, 然后不要用流控,不管硬流控也好,还是软流控也好,统统的不选。以前看过太多的血一般的教训,选了流控,结果花好长时间跟踪,串口什么打印也没有,但是示波器上却能看到串口数据……这时间不值。

关掉开发板电源,然后拨出 SD 卡。用 PC 机读 SD 卡。然后把 cmdline.txt 这个文件中的这一行:

删掉即可。不过作为嵌入式开发人员,谁舍得关串口呢?是么?当然,如果你的开发中,有串口设备做其它用途,是可以关掉串口输出的。

下一讲就开始 Android Things 的 SDK 的分析了。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Android
    +关注

    关注

    12

    文章

    3851

    浏览量

    125646
  • 物联网
    +关注

    关注

    2870

    文章

    41656

    浏览量

    358421
收藏 人收藏

    评论

    相关推荐

    Android SDK开发环境搭建

    基于SDK进行Android应用的开发,首先需要进行基于SDK的开发环境搭建开发者安装Ecl
    发表于 09-03 14:08

    android开发环境搭建

    android开发环境搭建
    发表于 09-10 13:58

    [分享]4412开发Android教程——Android开发环境搭建

    `分享视频链接:http://pan.baidu.com/s/1o6tgEeQ 下载和安装Android应用的开发环境新建Android虚拟环境
    发表于 10-21 17:10

    基于高通Vuforia SDK搭建Android版移动AR应用开发环境

    Android-Vuforia SDK 环境搭建高通公司提供关于游戏、多媒体以及效能等三方面的SDK,关于其详细的SDK相关情况的介绍,请见高通开发者专区:http
    发表于 09-20 10:13

    搭建Android AR技术开发环境

    Android-Vuforia SDK解压的目录点击OK至结束。 Android AR技术开发环境就已经搭建好了。那么下面就让我们一起来编
    发表于 09-20 16:53

    adrod 开发环境搭建及基本使用

    ,Google以Apache免费开源许可证的授权方式,发布了Android的源代码。         2.关于Android开发环境搭建  
    发表于 07-09 08:35

    怎样去搭建android 9.0的编译环境

    飞凌有没有android 9.0的开发板?想先搭建一下android 9.0的编译环境,还能用虚拟机吗,电脑的配置要求多少
    发表于 01-12 06:47

    怎样去搭建一种基于Ubuntu14.04的PopMetal Android开发环境

    怎样去搭建一种基于Ubuntu14.04的PopMetal Android开发环境?有哪些搭建步骤呢?
    发表于 03-10 09:29

    开发环境搭建教程

    android Windows系统下开发环境搭建
    发表于 03-22 17:42 0次下载

    Android 开发环境搭建步骤详细图解

    Android 开发环境搭建步骤详细图解
    发表于 10-24 08:49 11次下载
    <b class='flag-5'>Android</b> <b class='flag-5'>开发</b><b class='flag-5'>环境</b><b class='flag-5'>搭建</b>步骤详细图解

    如何搭建移动物联网Android开发环境

    开发平台之一。Android应用开发是软件、硬件协同设计 的一个过程,在开发 Android 应用程序之前,首先需要
    发表于 11-13 08:00 1次下载
    如何<b class='flag-5'>搭建</b>移动物联网<b class='flag-5'>Android</b>的<b class='flag-5'>开发</b><b class='flag-5'>环境</b>

    谷歌将关闭Android Things

    谷歌计划关闭 Android Things,它是面向智能家居设备的 Android 特别版本。这个智能家居项目于 2015 年以 Brillo 名称启动,旨在提供 “物联网的底层操作系统”。2016
    的头像 发表于 12-18 11:30 1686次阅读

    如何搭建鸿蒙开发环境

    开发某一个平台的程序,那么首先要搭建出本地开发环境,那么如何搭建鸿蒙开发
    的头像 发表于 02-24 11:25 3230次阅读
    如何<b class='flag-5'>搭建</b>鸿蒙<b class='flag-5'>开发</b><b class='flag-5'>环境</b>

    以 Raspberry Pi 3 为例,搭建 Android Things 开发环境资料下载

    电子发烧友网为你提供以 Raspberry Pi 3 为例,搭建 Android Things 开发环境资料下载的电子资料下载,更有其他相关
    发表于 04-18 08:54 24次下载
    以 Raspberry Pi 3 为例,<b class='flag-5'>搭建</b> <b class='flag-5'>Android</b> <b class='flag-5'>Things</b> <b class='flag-5'>开发</b><b class='flag-5'>环境</b>资料下载

    西蒙说游戏使用Android Things

    电子发烧友网站提供《西蒙说游戏使用Android Things.zip》资料免费下载
    发表于 12-12 14:19 0次下载
    西蒙说游戏使用<b class='flag-5'>Android</b> <b class='flag-5'>Things</b>