问题描述
我正在使用最近购买的运行Android 5.1操作系统的DragonBoard 410C,并将Android Studio与Kotlin结合使用,以生成用于探索某些硬件(例如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 library for mraa GitHub repository
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 is dead! long live libgpiod! (libgpiod for linux & CircuitPython)
这基本上是代码,它将取代我们的Python DHT驱动程序,并且 具有与任何其他Linux板向前兼容的优势 运行4.8+内核。我们将逐步替换其他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。
The Linux Kernel: Legacy GPIO Interfaces
这概述了Linux上的GPIO访问约定。
这些调用使用gpio_ *命名前缀。没有其他电话可以使用 该前缀,或相关的_ gpio *前缀。
Android Studio和adb
Android Studio是用于开发Android应用程序的应用程序。可以从https://developer.android.com/studio/releases
下载该文件以进行安装此外,还有单独下载的Android平台工具。 adb
Shell应用程序是这些工具的一部分。可以从SDK Platform Tools release notes下载工具进行安装。选择操作系统所需的特定版本(Windows,Linux,MacOS)。
Android Things
虽然Android Things很有帮助,但实际上似乎仅支持两块板,而DragonBoard 410C并不是其中之一。而且我不确定Android Things是否仍能与Android 5.1配合使用。
https://developer.android.com/things/get-started
但是,DragonBoard 410C https://discuss.96boards.org/t/android-things-on-the-dragonboard/1128有一个Brillo(现在为Android Things)端口
Android Developers > Docs > Android Things > Guides > GPIO
要打开与GPIO端口的连接,您需要了解 唯一的端口名称。在开发的初始阶段,或何时 将应用程序移植到新硬件上,发现所有
PeripheralManager
使用getGpioList()
可用的端口名称:
Android Things GitHub存储库https://github.com/androidthings/
另请参阅以下关于该主题的stackoverflow帖子。另请参见stackoverflow中的[android-things]标签。
How can a GpioCallback register "false" twice in a row?
Android Things Pin naming convention
PeripheralManagerService throws NoClassDefFoundError
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)