導語
當全球開發(fā)者默認將Python視為樹莓派的"母語"時,一個顛覆認知的工具鏈正在Java開發(fā)者群體中口口相傳——Pi4J讓Java代碼直接操控GPIO、I2C、SPI等硬件接口,而JBang更將開發(fā)門檻壓到不可思議的"單文件即運行",方便易用程度堪比Python腳本。
從2012年與初代樹莓派同步誕生,到如今擁抱Java 21甚至劍指JEP 454黑科技。當Java的跨平臺基因注入電子元件,當主流嵌入式開發(fā)框架集體轉身LTS版本之爭,一場屬于JVM的硬件革命正悄然改寫開發(fā)者的工具鏈認知...
Pi4J的歷史
Pi4J 項目于2012 年啟動,同年推出 Raspberry Pi,作為一種工具,為 Java 開發(fā)人員提供一個簡單、熟悉的面向對象接口庫,以訪問 Raspberry Pi 的低級 I/O 功能,包括GPIO、I2C、 SPI、PWM和串行通信。
項目使命/目標
Pi4J 項目的使命是提供一個豐富、強大但使用簡單、Java 友好的 API 庫,實現(xiàn)對 Raspberry Pi 等嵌入式平臺的低級硬件 I/O 功能進行編程訪問。
項目狀態(tài)
隨著整個 Java 生態(tài)系統(tǒng)和 Raspberry Pi 系統(tǒng)的發(fā)展,Pi4j 項目這些年來也在不斷發(fā)展。
由此產(chǎn)生了以下主要版本:
- 版本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 庫的開發(fā)面臨一個決策點……:“我們是否應該在現(xiàn)有項目和舊 Raspberry Pi 上堅持使用 Java 11(使用 ARMv6),還是繼續(xù)使用最新長期支持 (LTS) 版本中更好、性能更高的 Java 代碼? “
我們實際上想轉向 Java 22,因為它帶來了一種與 C 代碼交互的新方式,這要歸功于JEP 454:外部函數(shù)和內存 API。由于這是 Pi4J 與 GPIO 交互的核心行為,因此可以更輕松地實現(xiàn)控制電子設備的新方法,這一點已得到證實第一個測試由 Robert “Eitch” 完成。但由于 Java 22 不是 LTS 版本,我們暫時不會采取此舉措。
我們詢問我們的用戶我們應該使用哪個最小 Java 版本,但正如預期的那樣,沒有一個明確的答案 ;-) 因此,我們與核心團隊一起做出了一些決定,這些決定使我們能夠將項目提升到“下一個水平”并且...... Java 21!。
- 我們將 Pi4J V2+ 的源代碼存儲庫重命名為pi4j-v2因為pi4j它包含所有 V2 以及未來 V3、V4……版本的源代碼。
- 未來版本(V3 及更新版本)支持的最低 Java 版本為 21。
開始上手
想要在 Raspberry Pi 上開始 Java 編程嗎?
JBang 是創(chuàng)建第一個程序來控制連接到 GPIO 引腳的電子元件的絕佳方式。
GITHUB 項目:github.com/Pi4J/pi4j-jbang
JBang 是什么?
JBang 讓學生、教育工作者和專業(yè)開發(fā)人員能夠以前所未有的輕松方式創(chuàng)建、編輯和運行獨立的 Java 程序。
想要無需設置即可立即學習、探索或使用 Java 嗎?
您是否喜歡 Java,但使用 python、groovy、kotlin 或類似語言進行腳本、實驗和探索?
您是否曾經(jīng)想過無需任何設置或只需極少的設置就能在任何地方運行 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 網(wǎng)站上進行了解釋。
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,我們可以擁有一個可以執(zhí)行的單源 Java 文件,而無需完整的 Maven 或 Gradle 項目。我們甚至不需要編譯任何東西!
JBang 是一種簡單運行 Java 文件的好方法,可以幫助您在 Raspberry Pi 上快速開始使用 Pi4J,并且可以成為嘗試電子產(chǎn)品和 Java 的理想入門方法。
結語
當腳本語言的便捷遇上Java的類型安全,當傳統(tǒng)嵌入式語言的控制力碰撞JVM的生態(tài)紅利,這場工具鏈的范式轉移究竟會走向何方?
-
JAVA
+關注
關注
19文章
2982瀏覽量
106079 -
GPIO
+關注
關注
16文章
1230瀏覽量
52969 -
樹莓派
+關注
關注
118文章
1881瀏覽量
106243
發(fā)布評論請先 登錄
相關推薦
如何快速使用C/C++開發(fā)樹莓派的GPIO功能
怎樣去解決RK3588 GPIO的開發(fā)問題呢
樹莓派gpio接口及編程方法
樹莓派的gpio有什么用_怎么用
樹莓派使用C/C++基于Bcm2835操作GPIO學習記錄

評論