Я установил Ubuntu Server 20.04.1 LTS на свой RPi4 v1.1 и использовал этот сценарий:
from gpiozero import Button
import time
import os
stopButton = Button(26)
while True:
if stopButton.is_pressed:
time.sleep(1)
if stopButton.is_pressed:
os.system("shutdown now -h")
time.sleep(1)
для безопасного завершения работы Pi с помощью кнопки, только чтобы узнать, что это не сработает (is_pressed всегда возвращает true). Скрипт работал на Raspberry Pi OS за несколько дней до этого. После некоторого устранения неполадок я обнаружил, что внутренний подтягивающий резистор не работает, поэтому GPIO всегда читает LOW, и спадающий фронт никогда не обнаруживается. Я уже пробовал использовать GPIO 26 и 17 (нумерация BCM), и модуль i2c кажется выгруженным (с использованием lsmod). Есть идеи?
Дополнительная информация: Я дважды протестировал свою установку с ОС Raspberry Pi и с помощью осциллографа определил, что GPIO действительно читают НИЗКОЕ.