我只会Java,凭什么不能玩转树莓派?GPIO操控竟比C++更优雅~

描述

导语

当全球开发者默认将Python视为树莓派的"母语"时,一个颠覆认知的工具链正在Java开发者群体中口口相传——Pi4J让Java代码直接操控GPIO、I2C、SPI等硬件接口,而JBang更将开发门槛压到不可思议的"单文件即运行",方便易用程度堪比Python脚本。

从2012年与初代树莓派同步诞生,到如今拥抱Java 21甚至剑指JEP 454黑科技。当Java的跨平台基因注入电子元件,当主流嵌入式开发框架集体转身LTS版本之争,一场属于JVM的硬件革命正悄然改写开发者的工具链认知...

Pi4J的历史

Pi4J 项目于2012 年启动,同年推出 Raspberry Pi,作为一种工具,为 Java 开发人员提供一个简单、熟悉的面向对象接口库,以访问 Raspberry Pi 的低级 I/O 功能,包括GPIO、I2C、 SPI、PWM和串行通信。

项目使命/目标

Pi4J 项目的使命是提供一个丰富、强大但使用简单、Java 友好的 API 库,实现对 Raspberry Pi 等嵌入式平台的低级硬件 I/O 功能进行编程访问。

树莓派

项目状态

随着整个 Java 生态系统和 Raspberry Pi 系统的发展,Pi4j 项目这些年来也在不断发展。

由此产生了以下主要版本:

- 版本1.X:已弃用,基于 Java 8,更高版本是 Java 11。

https://www.pi4j.com/about/info-v1/

- 版本2.XX:基于 Java 11,完全重新设计的代码库。

https://www.pi4j.com/about/info-v2/

- 版本 3.XX:基于最新的V2和Java 21。

https://www.pi4j.com/about/info-v3/

2025-02-11 核心作者:Frank Delporte在他的Blog中提到

Pi4J 库的开发面临一个决策点……:“我们是否应该在现有项目和旧 Raspberry Pi 上坚持使用 Java 11(使用 ARMv6),还是继续使用最新长期支持 (LTS) 版本中更好、性能更高的 Java 代码? “

我们实际上想转向 Java 22,因为它带来了一种与 C 代码交互的新方式,这要归功于JEP 454:外部函数和内存 API。由于这是 Pi4J 与 GPIO 交互的核心行为,因此可以更轻松地实现控制电子设备的新方法,这一点已得到证实第一个测试由 Robert “Eitch” 完成。但由于 Java 22 不是 LTS 版本,我们暂时不会采取此举措。

我们询问我们的用户我们应该使用哪个最小 Java 版本,但正如预期的那样,没有一个明确的答案 ;-) 因此,我们与核心团队一起做出了一些决定,这些决定使我们能够将项目提升到“下一个水平”并且...... Java 21!。

- 我们将 Pi4J V2+ 的源代码存储库重命名为pi4j-v2因为pi4j它包含所有 V2 以及未来 V3、V4……版本的源代码。

- 未来版本(V3 及更新版本)支持的最低 Java 版本为 21。

开始上手

想要在 Raspberry Pi 上开始 Java 编程吗?

JBang 是创建第一个程序来控制连接到 GPIO 引脚的电子元件的绝佳方式。

GITHUB 项目:github.com/Pi4J/pi4j-jbang

JBang 是什么?

JBang 让学生、教育工作者和专业开发人员能够以前所未有的轻松方式创建、编辑和运行独立的 Java 程序。

想要无需设置即可立即学习、探索或使用 Java 吗?

您是否喜欢 Java,但使用 python、groovy、kotlin 或类似语言进行脚本、实验和探索?

您是否曾经想过无需任何设置或只需极少的设置就能在任何地方运行 Java?

是否曾尝试过 Java 11+ 支持直接在 shell 中运行 .java 文件,但觉得有点太麻烦?

JBang 让您做到这一切!

在 Raspberry Pi 上开始使用 JBang

1.先决条件

- 带有最新 Raspberry Pi OS 的 Raspberry Pi。

- 按照说明安装 JBangjbang.dev/下载. 如果尚未安装 Java,JBang 将安装它。

https://www.jbang.dev/download/

  •  
  •  

# Install JBang$ curl -Ls https://sh.jbang.dev | bash -s - app setup# Check JBang by requesting its version$ jbang --version        0.109.0

- 可选:使用Visual Studio 代码,免费的 IDE。

https://code.visualstudio.com/

  •  

# Install Visual Studio Code$ sudo apt install code

- 可选:在 Visual Studio Code 中安装以下扩展:

  - Language Support for Java(TM) by Red Hat

  - JBang

https://marketplace.visualstudio.com/items?itemName=redhat.java

https://marketplace.visualstudio.com/items?itemName=jbangdev.jbang-vscode

2.示例脚本

GitHub 上的 Pi4J JBang 项目包含几个示例来演示 JBang 和 Pi4J。每个java文件都是一个完整的可运行 JBang 应用程序。这意味着您不需要 Maven、Gradle 或其他 Java 构建工具。

https://github.com/Pi4J/pi4j-jbang

为了告诉 JBang 必须将该文件作为 Java 应用程序处理并做一些前期准备工作,每个文件的第一行是:///usr/bin/env jbang "$0" "$@" ; exit $?。

当应用程序需要依赖项时,它们在文件本身中以以下行开头进行定义://DEPS。例如,要使用 Pi4J Core 库://DEPS com.pi4j2.3.0。

每个提供的示例都包含有关文件本身内部接线的更多信息,并且也在 Pi4J 网站上进行了解释。

3.从 GitHub 获取示例

您可以使用以下命令在终端中将包含示例的项目克隆到您的 Raspberry Pi:

  •  
  •  

$ git clone https://github.com/Pi4J/pi4j-jbang$ cd pi4j-jbang

GitHub 项目中的示例有:

- 最小示例

https://www.pi4j.com/examples/jbang/jbang_minimal_example/

- 8x8 LED 矩阵

https://www.pi4j.com/examples/jbang/jbang_pi4j_spi_led_matrix/

- BME280 传感器

https://www.pi4j.com/examples/jbang/bme280_temperature_humidity_pressure/

- Pixelblaze 输出扩展器

https://www.pi4j.com/examples/jbang/pixelblaze_output_expander/

- 控制 LED 矩阵

https://www.pi4j.com/examples/jbang/pixelblaze_output_expander_image/

- 带有 JavaFX UI 的 LED 灯带

https://www.pi4j.com/examples/jbang/pixelblaze_output_expander_javafx/

使用 JBang,我们可以拥有一个可以执行的单源 Java 文件,而无需完整的 Maven 或 Gradle 项目。我们甚至不需要编译任何东西!

JBang 是一种简单运行 Java 文件的好方法,可以帮助您在 Raspberry Pi 上快速开始使用 Pi4J,并且可以成为尝试电子产品和 Java 的理想入门方法。

结语

当脚本语言的便捷遇上Java的类型安全,当传统嵌入式语言的控制力碰撞JVM的生态红利,这场工具链的范式转移究竟会走向何方?

 

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

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分