Android Things创客DIY第一课-用Android Things展示你的智能设备创意-基础篇

Android Things旨在让Android开发者可以用熟悉的工具(Android Studio)开发智能设备。

Android Things是给Android开发者开发智能设备的一个大大的福利,Android开发者熟悉移动开发和移动互联网,可以将自己的移动互联网思维注入智能设备的设计中,而传统的硬件开发者,在这方面相较于Android开发者有所欠缺,这是Android开发者的优势。

如何开发一个智能设备

然而,Android开发者对硬件、电路往往不够熟悉,这是劣势,然而通过学习,对硬件和电子电路有一些了解,就可以很方便的用Android Things开发智能设备了。如果你喜欢动手,可以很方便的设计你的智能设备,并DIY出原型产品,开发运行在设备中的Android Things APP,结合云服务和手机APP,展示你的产品创意。之后聪明的你就可以全面的展示你的智能设备,融资或是通过众筹的方式,进行智能设备的产品化。或者你只想DIY自己玩玩,或是带着你的孩子一起玩,对,给孩子开发自己专属的智能玩具,那也是很酷的事情。

一个基于Android Things的玩具小车

做Android Things,做物联网开发,就不得不说电子电路了,Android开发者可能并不熟悉,不过本文会帮你梳理一下,基本上都是初中物理的知识。首先要介绍一个非常好的工具——面包板。

树莓派和面包板

面包板可以让你不需要焊接,通过接插的方式,把电子元件连接在一起,实现所需的功能,非常省时省力。Android Things官网的开发案例,也基本上都是通过面包板连接电子元件实现的。上图就是Android Things官网的第一个例子,电灯大法(让LED灯闪烁)。虽然Android Things现在也推荐一些集成了LED、按键和一些传感器的树莓派扩展板,不过还是建议入门者选择面包板和插件元件的配件套装,这样你知道电路是怎么连接的,知道原理会有助于发展你的创意。

我们可以按上图,先连接好电路:

1. 图中从树莓派的一个GPIO引脚(Pin31-BCM6),引出线到面包板上。
2. 面包板中间每一行(标注了1~30)中下半部分的ABCDE五个孔、FGHIJ五个孔,是分别连通的。即第1列的ABCDE孔可以理解为是用一根导线连通的。
3. 如图中,导线和电阻左侧,都连在第13列下半部分的孔中,它们是接通的。
4. 连接一个电阻(可以选用300Ω~1KΩ的电阻,如果有我们的配件套装,可以使用蓝色的电阻,阻值是1KΩ的)。
5. 同样,通过面包板,电阻的另一端连接到了红色LED灯上,注意是连接LED灯的长脚。
6. 红色LED灯的短脚,通过面包板,连接一根杜邦线,连接到了面包板上面的负极插孔上。
7. 面包板上下各有一对电源正极插孔(标红线)和负极插孔(标蓝线或黑线),这些孔同一行整行都是连通的。
8. 将面包板上方的负极插孔,连接到树莓派的负极(GND)上。

这样,我们就可以通过控制GPIO产生高电平,电流通过电阻流过LED灯,使LED灯发光了。

我们在淘宝上提供了入门套装,你可以选择包含了树莓派和已烧录Android Things系统的TF的套件,如果你已经有树莓派,只购买配件即可。如果你要自己下载烧录Android Things系统,可以先读我的另一篇《Android Things入门防坑必读-硬件和系统下载安装篇》。

https://sysolve.taobao.com/

套件根据Android Things官网Samples开发案例所需的配件进行打包,精选优品,无需自己搭配,专业工程师亲自搭配测试。

Android Things开发配件套装



开发第一个Android Things APP

如果你是Android开发者,你应该已经有了Android Studio,如果没有的话,可以到官网下载一个最新版的。

https://developer.android.google.cn/studio/index.html

下载Android Studio

之后,到Github上去下载官网第一个例子(Simple PIO)的源代码。

https://github.com/androidthings/sample-simplepio

在Android Studio中打开,这里有个坑,应该是Android Studio的Bug,由于项目使用的是新的gradle-4.1进行编译,提示Failed to open zip file。没有下载成功。测试发现用浏览器是可以打开下载的,所以感觉是Android Studio的Bug。如图,打开gradle-wrapper.properties文件,看最后一行。

Android Studio提示Failed to open zip file错误

如下图红框所示,讲最后一行的https改成http,重新编译即可,第一次编译时要下载gradle-4.1-all.zip文件,需要耗费很长时间。

将https改成http

通过网络adb连上树莓派,假设树莓派的IP地址为192.168.1.100,即在命令行输入

adb connect 192.168.1.100

如果是NXP的Pico开发板,则是通过USB Type-C线,通过USB方式连接ADB,通过网络方式连接ADB会提示拒绝连接。

连接成功后,运行blink这个APP即可看到LED灯闪烁了,可以尝试换其它颜色的LED灯试试效果。

运行blink

如果你希望你的APP可以开机自动运行,那么可以修改AndroidManifest.xml文件。

让APP自动启动

如文件中的注释所述,将下面的<intent-filter>代码段的注释取消即可。主要是设置了“android.intent.category.HOME”属性,这样相当于你的APP是设备的默认启动程序了。此时你的APP将会开机自动启动,当APP意外中止时,也将会自动重启。

试想你的智能设备售卖出去了,然后程序异常退出了,你总不希望它在用户手里变砖头吧,所以Android Things发现你的APP退出之后,会帮你重新启动。(以前都要自己写异常重启的代码,现在系统帮你实现了。)

不过在调试的时候,APP因为自动重启而没办法停止就不太好,比如你先调试了A程序,然后又运行了B程序,A程序没法退出,B程序就没法申请A程序已使用的资源。所以,官网给出的方法是,调试完A程序之后,如果要调试B程序,则先通过ADB将A程序卸载掉。

adb uninstall com.example.projectA

或者,保持AndroidManifest.xml文件中,下面的<intent-filter>代码段为注释状态。

使用PWM控制舵机

在官网Simple PIO这个例子中,还有一个pwm项目,可以在启动运行的地方,将blink项目切换为pwm项目,运行这个APP,我们可以控制舵机旋转。

运行pwm项目
连接舵机示意图

如图,需要通过三根线连接舵机:

舵机接线

1. 树莓派5V电源线,如图中红线,连接到舵机红色线
2. 树莓派 GND线,如图中黑线,连接到舵机棕色线
3. 树莓派 PWM输出线,如图中黄线,连接到舵机橙色线

注意线不要接错,否则可能烧毁舵机。

更多动手实践

我在Blink代码的基础上,做了一个数字管显示数字,自动累加的例子,你可能猜到了数码管其实就是一系列LED灯组合在一起的,后面的文章中会做介绍,你也可以动手实践一下。

在Blink基础上修改的数字显示例子
数码管显示代码示例
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,293评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,604评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,958评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,729评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,719评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,630评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,000评论 3 397
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,665评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,909评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,646评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,726评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,400评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,986评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,959评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,197评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,996评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,481评论 2 342

推荐阅读更多精彩内容