0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

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

上海晶珩电子科技有限公司 ? 2025-03-25 09:21 ? 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

导语

当全球开发者默认将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 功能进行编程访问。

7d3bb00c-0917-11f0-9434-92fbcf53809c.png

项目状态

随着整个 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:

$gitclonehttps://github.com/Pi4J/pi4j-jbang$cdpi4j-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的生态红利,这场工具链的范式转移究竟会走向何方?

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

    关注

    20

    文章

    2989

    浏览量

    110749
  • GPIO
    +关注

    关注

    16

    文章

    1283

    浏览量

    54275
  • 树莓派
    +关注

    关注

    122

    文章

    2031

    浏览量

    107663
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    树莓电脑能玩网游吗?

    其实接触之初就想问了。树莓电脑连接七寸屏能玩网游吗?比如说什么QQ自由幻想。LOL什么的。
    发表于 09-09 17:41

    树莓pico入门学习笔记(一)相关资料推荐

    树莓pico入门学习笔记选择自己熟悉的编程语言树莓pico提供C/C++和micropyth
    发表于 07-01 09:28

    如何快速使用C/C++开发树莓GPIO功能

    1.前言借助Bcm2835库可以快速使用C/C++开发树莓GPIO功能,像玩单片机一样玩树莓
    发表于 02-08 07:15

    怎样去解决RK3588 GPIO的开发问题呢

      问题描述及复现步骤:gpio开发,没有找到教程中的头文件rockchip.h,以及/rk3588-firefly-demo.dtsi  个人 只用过树莓
    发表于 09-13 17:18

    树莓gpio应用

    树莓现在越来越火,网上树莓的资料也越来越多。树莓源自英国,国外嵌入式开源领域具有良好的分享
    发表于 11-09 15:10 ?4383次阅读

    树莓gpio接口及编程方法

    树莓现在越来越火,网上树莓的资料也越来越多。树莓源自英国,国外嵌入式开源领域具有良好的分享
    发表于 11-22 11:54 ?6.6w次阅读

    如何玩转树莓

    技术大拿带你玩转树莓,聊聊树莓的那些事!
    的头像 发表于 05-30 15:03 ?4026次阅读
    如何<b class='flag-5'>玩转</b><b class='flag-5'>树莓</b><b class='flag-5'>派</b>

    树莓是什么树莓的简单介绍

    要想玩转树莓,首先得知道树莓是什么。在本节中,作者将带领大家揭开树莓
    发表于 05-15 18:09 ?31次下载
    <b class='flag-5'>树莓</b><b class='flag-5'>派</b>是什么<b class='flag-5'>树莓</b><b class='flag-5'>派</b>的简单介绍

    树莓使用C/C++基于Bcm2835操作GPIO学习记录

    1.前言借助Bcm2835库可以快速使用C/C++开发树莓GPIO功能,像玩单片机一样玩树莓
    发表于 12-04 18:51 ?8次下载
    <b class='flag-5'>树莓</b><b class='flag-5'>派</b>使用<b class='flag-5'>C</b>/<b class='flag-5'>C++</b>基于Bcm2835操作<b class='flag-5'>GPIO</b>学习记录

    树莓pico入门学习笔记(一)

    树莓pico入门学习笔记选择自己熟悉的编程语言树莓pico提供C/C++和micropyth
    发表于 12-17 18:42 ?21次下载
    <b class='flag-5'>树莓</b><b class='flag-5'>派</b>pico入门学习笔记(一)

    超实用!玩转树莓攻略!

    如果你使用树莓派来开发的话,C语言或者Python语言都是一个比较不错的选择。在开始玩转你的树莓前,可以先看看如何快速入门; Raspbe
    的头像 发表于 11-01 20:30 ?3051次阅读
    超实用!<b class='flag-5'>玩转</b><b class='flag-5'>树莓</b><b class='flag-5'>派</b>攻略!

    树莓和单片机的优缺点是什么

    )接口,树莓可以连接各种传感器、执行器和其他外围设备。 易于编程 :树莓支持多种编程语言,如Python、C++
    的头像 发表于 08-30 18:21 ?3055次阅读

    树莓gpio有什么用,树莓gpio接口及编程方法

    一、树莓GPIO的用途 树莓(Raspberry Pi)是一款小巧、功能强大的单板计算机,广泛应用于编程教育、物联网项目、家庭媒体中心等
    的头像 发表于 10-22 18:09 ?2790次阅读

    GPIO树莓中的应用

    树莓(Raspberry Pi)是一款由英国树莓基金会开发的信用卡大小的单板计算机,它具有强大的功能和灵活性,可以用于各种项目和应用。通用输入输出(
    的头像 发表于 01-09 09:41 ?900次阅读

    C++ 与 Python:树莓派上哪种语言更优

    Python是树莓派上的首选编程语言,我们的大部分教程都使用它。然而,C++在物联网项目中同样广受欢迎且功能强大。那么,在树莓项目中选择哪种语言更合适呢?Python因其简洁性、丰富
    的头像 发表于 07-24 15:32 ?157次阅读
    <b class='flag-5'>C++</b> 与 Python:<b class='flag-5'>树莓</b>派上哪种语言<b class='flag-5'>更优</b>?