0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Android Things開發(fā)環(huán)境搭建案例

電子設(shè)計(jì) ? 來(lái)源:王玉成 ? 2019-01-03 10:20 ? 次閱讀

物聯(lián)網(wǎng) (IoT) 的應(yīng)用開發(fā),離不開跟開發(fā)板打交道,我們需要配置好開發(fā)板的各種環(huán)境,最后才能用 Android Studio 進(jìn)行應(yīng)用開發(fā)。

我們今天就以 Raspberry Pi 3 為例,一起來(lái)搭建 Android Things 的開發(fā)環(huán)境。

硬件準(zhǔn)備
Raspberry Pi 3 的硬件開發(fā)板就長(zhǎng)這樣:

開發(fā)板是有了,但是我們應(yīng)該怎么用開發(fā)板呢?那好,我們先進(jìn)一步了解并分析開發(fā)版的功能:

Android Things 的開發(fā)環(huán)境

玩過(guò) Raspberry Pi 3 的人可以略過(guò)這段,但是對(duì)于首次上手的玩家,有幾點(diǎn)要注意:
事項(xiàng) 1:別費(fèi)盡心思找電源了,開發(fā)板用的 Micro USB 口做供電接口。別找個(gè)電源適配器,拼命往音頻接口上塞啦,這么搞廠商也很頭疼的。
事項(xiàng) 2:做什么樣的事找什么樣的位置。每個(gè)接口有每個(gè)接口特定的作用??粗淖謱?duì)上號(hào),根據(jù)方案選擇特定的模塊就行了。

那么多 GPIO 口啊……怎么辦?我有針腳恐懼癥的。
- 沒問(wèn)題,我們就先來(lái)了解針腳的作用,就可以玩轉(zhuǎn)開發(fā)板了。

等等,我怎么知道開發(fā)板哪個(gè)地方是第一根針腳???
- 在電路板上,找到 GPIO 針腳,離 USB 接口最遠(yuǎn)的那一端,對(duì)了,開發(fā)板上應(yīng)該有一個(gè) J8 標(biāo)記, 就是那位置為 1 號(hào)針腳,只需要找到這幾根針腳就夠了。供電是引出 5V 還是 3.3V 的電源針腳,跟你自己的電路有關(guān),切記在連線之前把電壓搞清楚,不然會(huì)燒掉器件的。接下來(lái)認(rèn)出 UART, SPI, PWM, I2C 接口,依據(jù)自己的需求,找一個(gè)面包板,就可以拉線出來(lái)干活了。

硬件認(rèn)清楚了,這是第一步,還要找找開發(fā)版的外設(shè),一般說(shuō)外設(shè)就是供電,顯示,存儲(chǔ),輸入這幾大塊。
microUSB 給電源供電;
HDMI 用來(lái)顯示;
有線或者 Wi-Fi 用來(lái)連接網(wǎng)絡(luò);
microSD 卡以及讀卡器用來(lái)燒寫系統(tǒng)。

配備完這些外設(shè),搭好面包板,就可以動(dòng)手燒寫系統(tǒng)了。

下載鏡像
開始找地方下載鏡像了,鏡像鏈接在此:
developer.android.com/things/preview/download.html

上一講提到的 4 個(gè)開發(fā)版的鏡像都可以下載。

Raspberry Pi 3 最新的鏡像壓縮包名為 androidthings_rpi3_devpreview_2.zip,下載完壓縮包,解壓縮之后,只有一個(gè)文件 iot_rpi3.img,我們來(lái)看看是什么格式的文件:

這些信息好像還不足以讓我們判斷鏡像的內(nèi)容,但是可以明確的是,這是一個(gè)可以做啟動(dòng)的鏡像文件。那我們來(lái)看看鏡像內(nèi)部包含了哪些內(nèi)容?

Android Things 的開發(fā)環(huán)境

通過(guò)鏡像的內(nèi)容,我們看到鏡像的內(nèi)部結(jié)構(gòu)。其中 rpi boot 是 Raspberry Pi 的 secondary boot,后續(xù)就是 uboot,接下來(lái),就是 uboot 所引導(dǎo)的系統(tǒng)文件了。做過(guò) uboot 級(jí)別移植的人,應(yīng)該十分清楚 bl1, bl2, uboot 的一些概念,這里就不做詳細(xì)解釋了。

這里再啰嗦幾句,我們看一下 Developer Preview 1 版本的鏡像,以 Edison 開發(fā)版的鏡像為例:

Android Things 的開發(fā)環(huán)境

可以看到,在 Developer Preview 1 這一版中,分成了許多文件,并且提供了燒寫腳本,還提供了 fastboot 和 ADB 工具。但是,對(duì)于初學(xué)者來(lái)說(shuō),如何正確使用這些工具成了一個(gè)難題。所以在 Dev Preview 2 的版本中,把這些文件合并成一個(gè) image 文件,燒寫就變的很簡(jiǎn)單了。還是要為 Google 的貼心贊一贊,每一版的改進(jìn)都會(huì)讓開發(fā)者用起來(lái)更方便。

細(xì)心的讀者會(huì)發(fā)現(xiàn),兩個(gè)開發(fā)版的鏡像文件中,有些文件內(nèi)容是不同的,主要是 bootloader 及之前的可執(zhí)行代碼。有興趣的讀者可以對(duì)比一下 x86 和 arm 的架構(gòu)的 bootloader 的不同的地方及作用。

Edision 的鏡像文件中間,還包括一個(gè)文件,似乎在回顧著某種歷史,如果你找出來(lái)了,就請(qǐng)?jiān)谙路搅粞园伞?/p>

燒寫鏡像到 SD
Raspberry Pi 的外接存儲(chǔ)設(shè)備是 microSD 卡,以下簡(jiǎn)稱 SD 卡。由于 Linux, Windows, Mac 的燒寫的工具也不盡相同,我們以 Linux 為例說(shuō)一下燒寫步驟,燒寫的命令只要是 dd,但是千萬(wàn)不要 dd 到你的硬盤上去了!

最安全的燒寫流程如下:
$ df -h 命令,查看一下當(dāng)前有哪些設(shè)備,如果電腦不能識(shí)別 SD 卡,那么開始第 2 步,如果電腦已經(jīng)識(shí)別 SD 卡,記下來(lái) SD 卡是哪個(gè)設(shè)備,就可以走第 3 步了;
把 SD 卡插上,重復(fù)第一步;
$ sudo dd bs=4M if=iot_rpi3.img of=/dev/sdx 命令,確定自己的 SD 卡的設(shè)備號(hào),然后把下載的 img 文件燒寫到 SD 卡上 ,這一步需要 root 權(quán)限哦。這兒要提醒一句,不是燒寫到 SD 卡的某個(gè)分區(qū),而是燒寫到這個(gè) SD 卡所在的設(shè)備上。
$ sync 命令,同步數(shù)據(jù)到 SD 卡。

Windows 系統(tǒng)下,用 Win32DiskImager 工具,用管理員權(quán)限,燒寫 img 文件到 SD 卡即可。

Mac 系統(tǒng)下也是用 Linux 下的命令:
$ sudo dd bs=1m if=image.img of=/dev/rdisk

啟動(dòng)開發(fā)板
把已經(jīng)燒寫過(guò) Android Things 的 mciroSD 卡插到 Raspberry Pi 3 的對(duì)應(yīng)位置,就可以啟動(dòng)開發(fā)板了。

按以下的步驟去啟動(dòng)開發(fā)板:

用 microUSB 供電;
插入網(wǎng)線;
插入 HDMI 接口。

大概第一次系統(tǒng)啟動(dòng)要一到兩分鐘,耐心等待就行。

系統(tǒng)啟動(dòng)完之后,顯示器顯示了當(dāng)前有線網(wǎng)的的 IP 地址,以及 Wi-Fi 還沒有連接上的狀態(tài)。那么,我們可以借助有線網(wǎng)的 IP,去連接 ADB:
$ adb connect
connected to :5555

由于 Raspberry Pi 是支持 DNS 廣播的,如果你的電腦支持 MDNS 功能,運(yùn)行命令:
$ adb connect Android.local

連接成功后,會(huì)返回:
connected to :5555

這樣我們的 ADB 就正常連上Raspberry Pi 3了。借助 ADB ,我們可以連接 Wi-Fi 了。

Android Things 的開發(fā)環(huán)境

其中包含了用戶名和密碼,如果你的密碼為空,不加 -e passphrase 這個(gè)參數(shù)即可。

接下來(lái)就要檢查 Wi-Fi 是否正確連上了:

出現(xiàn)上面的消息,表明 Wi-Fi 是正常啟動(dòng)了。那 DNS 是否通呢?撥下網(wǎng)線,然后 ping 一下試試。

連接串口用于調(diào)試
現(xiàn)在雖然 ADB 連上去了,網(wǎng)絡(luò)也通了,但是事情才剛剛開始。我們?cè)诠ぷ髑捌冢胍环N比較方便的調(diào)試方法,那就是嵌入式開發(fā)中骨灰級(jí)的調(diào)試方式:串口調(diào)試:

對(duì)著上圖,拿著 USB 轉(zhuǎn) TTL 的線,找到 GPIO 的針腳上的 UART 的 TXD 和 RXD 兩根針。然后再找到地線,連接相應(yīng)的杜邦線就可以了。稍等,四個(gè)針腳,為啥有一個(gè)針腳不連呢,那個(gè)不是供電線嗎?由于 USB 轉(zhuǎn) TTL 線,在 USB 這端已經(jīng)供電了,所以 VCC 接口不需要連了。

這兒需要注意的是,RX 和 TX 是交叉的,不是直連的。因?yàn)殚_發(fā)板上的 TX 就是 USB 這邊的 RX。RS-232 和 TTL 的區(qū)別,這兒就略過(guò)了。

然后就要開始用 PC 機(jī)上的串口調(diào)試軟件來(lái)連接 USB 轉(zhuǎn)串口了。三大系統(tǒng)的工具又不太一樣。Windows下有 putty, secruCRT 等,Linux 下有 Mimicom, Mac 下有 Serial。根據(jù)自己的操作系統(tǒng)來(lái)選用吧。不過(guò)記各把波特率設(shè)為 115200, 8N1, 然后不要用流控,不管硬流控也好,還是軟流控也好,統(tǒng)統(tǒng)的不選。以前看過(guò)太多的血一般的教訓(xùn),選了流控,結(jié)果花好長(zhǎng)時(shí)間跟蹤,串口什么打印也沒有,但是示波器上卻能看到串口數(shù)據(jù)……這時(shí)間不值。

關(guān)掉開發(fā)板電源,然后撥出 SD 卡。用 PC 機(jī)讀 SD 卡。然后把 cmdline.txt 這個(gè)文件中的這一行:

刪掉即可。不過(guò)作為嵌入式開發(fā)人員,誰(shuí)舍得關(guān)串口呢?是么?當(dāng)然,如果你的開發(fā)中,有串口設(shè)備做其它用途,是可以關(guān)掉串口輸出的。

下一講就開始 Android Things 的 SDK 的分析了。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • Android
    +關(guān)注

    關(guān)注

    12

    文章

    3903

    瀏覽量

    126612
  • 物聯(lián)網(wǎng)
    +關(guān)注

    關(guān)注

    2894

    文章

    43312

    瀏覽量

    366404
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    Android SDK開發(fā)環(huán)境搭建

    基于SDK進(jìn)行Android應(yīng)用的開發(fā),首先需要進(jìn)行基于SDK的開發(fā)環(huán)境搭建開發(fā)者安裝Ecl
    發(fā)表于 09-03 14:08

    android開發(fā)環(huán)境搭建

    android開發(fā)環(huán)境搭建
    發(fā)表于 09-10 13:58

    基于高通Vuforia SDK搭建Android版移動(dòng)AR應(yīng)用開發(fā)環(huán)境

    Android-Vuforia SDK 環(huán)境搭建高通公司提供關(guān)于游戲、多媒體以及效能等三方面的SDK,關(guān)于其詳細(xì)的SDK相關(guān)情況的介紹,請(qǐng)見高通開發(fā)者專區(qū):http
    發(fā)表于 09-20 10:13

    搭建Android AR技術(shù)開發(fā)環(huán)境

    Android-Vuforia SDK解壓的目錄點(diǎn)擊OK至結(jié)束。 Android AR技術(shù)開發(fā)環(huán)境就已經(jīng)搭建好了。那么下面就讓我們一起來(lái)編
    發(fā)表于 09-20 16:53

    adrod 開發(fā)環(huán)境搭建及基本使用

    ,Google以Apache免費(fèi)開源許可證的授權(quán)方式,發(fā)布了Android的源代碼。 ? ? ? ? 2.關(guān)于Android開發(fā)環(huán)境搭建 ?
    發(fā)表于 07-09 08:35

    開發(fā)環(huán)境搭建教程

    android Windows系統(tǒng)下開發(fā)環(huán)境搭建
    發(fā)表于 03-22 17:42 ?0次下載

    Android 開發(fā)環(huán)境搭建步驟詳細(xì)圖解

    Android 開發(fā)環(huán)境搭建步驟詳細(xì)圖解
    發(fā)表于 10-24 08:49 ?11次下載
    <b class='flag-5'>Android</b> <b class='flag-5'>開發(fā)</b><b class='flag-5'>環(huán)境</b><b class='flag-5'>搭建</b>步驟詳細(xì)圖解

    如何搭建移動(dòng)物聯(lián)網(wǎng)Android開發(fā)環(huán)境

    開發(fā)平臺(tái)之一。Android應(yīng)用開發(fā)是軟件、硬件協(xié)同設(shè)計(jì) 的一個(gè)過(guò)程,在開發(fā) Android 應(yīng)用程序之前,首先需要
    發(fā)表于 11-13 08:00 ?1次下載
    如何<b class='flag-5'>搭建</b>移動(dòng)物聯(lián)網(wǎng)<b class='flag-5'>Android</b>的<b class='flag-5'>開發(fā)</b><b class='flag-5'>環(huán)境</b>

    谷歌將關(guān)閉Android Things

    谷歌計(jì)劃關(guān)閉 Android Things,它是面向智能家居設(shè)備的 Android 特別版本。這個(gè)智能家居項(xiàng)目于 2015 年以 Brillo 名稱啟動(dòng),旨在提供 “物聯(lián)網(wǎng)的底層操作系統(tǒng)”。2016
    的頭像 發(fā)表于 12-18 11:30 ?1794次閱讀

    如何搭建鴻蒙開發(fā)環(huán)境

    開發(fā)某一個(gè)平臺(tái)的程序,那么首先要搭建出本地開發(fā)環(huán)境,那么如何搭建鴻蒙開發(fā)
    的頭像 發(fā)表于 02-24 11:25 ?3567次閱讀
    如何<b class='flag-5'>搭建</b>鴻蒙<b class='flag-5'>開發(fā)</b><b class='flag-5'>環(huán)境</b>

    以 Raspberry Pi 3 為例,搭建 Android Things 開發(fā)環(huán)境資料下載

    電子發(fā)燒友網(wǎng)為你提供以 Raspberry Pi 3 為例,搭建 Android Things 開發(fā)環(huán)境資料下載的電子資料下載,更有其他相關(guān)
    發(fā)表于 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'>開發(fā)</b><b class='flag-5'>環(huán)境</b>資料下載

    Android Things IR遠(yuǎn)程黑客

    電子發(fā)燒友網(wǎng)站提供《Android Things IR遠(yuǎn)程黑客.zip》資料免費(fèi)下載
    發(fā)表于 12-05 10:03 ?0次下載
    <b class='flag-5'>Android</b> <b class='flag-5'>Things</b> IR遠(yuǎn)程黑客

    西蒙說(shuō)游戲使用Android Things

    電子發(fā)燒友網(wǎng)站提供《西蒙說(shuō)游戲使用Android Things.zip》資料免費(fèi)下載
    發(fā)表于 12-12 14:19 ?0次下載
    西蒙說(shuō)游戲使用<b class='flag-5'>Android</b> <b class='flag-5'>Things</b>

    帶有Android Things的MATRIX語(yǔ)音

    電子發(fā)燒友網(wǎng)站提供《帶有Android Things的MATRIX語(yǔ)音.zip》資料免費(fèi)下載
    發(fā)表于 01-05 09:40 ?0次下載
    帶有<b class='flag-5'>Android</b> <b class='flag-5'>Things</b>的MATRIX語(yǔ)音

    TLT507-Android開發(fā)環(huán)境搭建

    TLT507-Android開發(fā)環(huán)境搭建
    的頭像 發(fā)表于 01-26 17:03 ?493次閱讀
    TLT507-<b class='flag-5'>Android</b><b class='flag-5'>開發(fā)</b><b class='flag-5'>環(huán)境</b><b class='flag-5'>搭建</b>