我正在使用最近购买的运行 Android 5.1 操作系统的 DragonBoard 410C 并使用带有 Kotlin 的 Android Studio 生成一个示例应用程序,该应用程序探索了一些硬件,例如 40 针低功耗连接器。
我的问题是如何使用 Kotlin 和 Android Studio 使用 GPIO 引脚访问 40 引脚低功耗连接器。
从我目前的研究来看,mraa 库似乎是通往成功的道路,但是我一直无法找到任何关于在 Kotlin 中使用该库的文档。
如何开始使用带有 Kotlin 的 mraa 库来访问 40 针低功耗连接器?
还是有不同的方法?
我的第一个示例是一个简单的 LED 闪烁应用程序,但是我不知道如何使用 Kotlin 访问低功耗连接器的引脚。
笔记和资源
Libmraa 是一个 C/C++ 库,绑定到 Python、Javascript 和 Java,以与 Galileo、Edison 和其他平台上的 I/O 接口,具有结构化和健全的 API,其中端口名称/编号与您所在的板相匹配。使用 libmraa 不会将您绑定到特定硬件,并在运行时完成板检测,您可以创建可跨受支持平台工作的可移植代码。
UPM 存储库为各种常用传感器和执行器提供软件驱动程序。这些软件驱动程序通过调用 MRAA API 与底层硬件平台(或微控制器)以及连接的传感器进行交互。
哪个 Android 运行哪个 Linux 内核?https://android.stackexchange.com/questions/51651/which-android-runs-which-linux-kernel
Android Version |API Level |Linux Version in AOSP |Header Version
----------------------------------------------------------------------------------------
4.4 Kit Kat |19, 20 |(3.10) |2.6.18
5.x Lollipop |21, 22 |(3.16.1) |3.14.0
6.0 Marshmallow |23 |(3.18.10) |3.18.10
sysfs 死了!libgpiod 万岁!(用于 linux 和 CircuitPython 的 libgpiod)
这基本上是将替换我们的 Python DHT 驱动程序的代码,并且具有与任何其他运行 4.8+ 内核的 Linux 板前向兼容的好处。我们将慢慢替换其他 CircuitPython 代码以使用 libgpiod,以便我们可以在 Raspberry Pi、BeagleBone 或 Onion.io 上广泛支持 CircuitPython。
那里没有很多 libgpiod 代码,而且 libgpiod 还没有在 Linux 发行版上上市,这可能是它需要一段时间才能流行起来的原因。有 C 和 Python 的绑定。这是一个脚本,可以通过为您编译它来帮助您入门 https://github.com/adafruit/Raspberry-Pi-Installer-Scripts/blob/master/libgpiod.sh
GitHub https://github.com/IOT-410c/DragonBoard410c_GpioLibrary上的 DragonBoard 410C GPIO 库,它是用 Java 编写的,使用 Linux 的“/sys/class/gpio”方法访问 GPIO 引脚。这看起来像是用于 Coursera 物联网课程的一组存储库中的一个存储库,其中一些使用的是 DragonBoard 410C。
这提供了 Linux 上 GPIO 访问约定的概述。
这些调用使用 gpio_* 命名前缀。其他调用不应使用该前缀或相关的_gpio * 前缀。
Android Studio 和 adb
Android Studio 是用于开发 Android 应用程序的应用程序。可以从https://developer.android.com/studio/releases下载安装
此外还有单独下载的 Android 平台工具。adb
shell 应用程序是这些工具的一部分。可以从SDK 平台工具发行说明下载这些工具以进行安装。选择您的操作系统(Windows、Linux、MacOS)所需的特定版本。
安卓的东西
虽然 Android Things 看起来很有帮助,但实际上只支持几块板,而 DragonBoard 410C 不是其中之一。而且我不确定 Android Things 是否可以与 Android 5.1 一起使用。
https://developer.android.com/things/get-started
然而,DragonBoard 410C 有一个 Brillo(现在是 Android Things)端口https://discuss.96boards.org/t/android-things-on-the-dragonboard/1128
Android 开发者 > 文档 > Android Things > 指南 > GPIO
为了打开到 GPIO 端口的连接,您需要知道唯一的端口名称。在开发的初始阶段,或将应用程序移植到新硬件时,通过
PeripheralManager
使用发现所有可用的端口名称会很有帮助getGpioList()
:
Android Things GitHub 存储库https://github.com/androidthings/
另请参阅以下有关此主题的 stackoverflow 帖子。请参阅 stackoverflow 中的标签 [android-things]。