Installieren Sie PyCall auf Raspberry PI und versuchen Sie, die GPIO-Bibliothek für Python von Ruby zu verwenden

Einführung

Ich dachte, ich würde etwas mit dem Raspeltorte machen, den ich schon lange übrig hatte, aber ich kann mir kein Thema vorstellen ... (Schweiß)

Nachdem ich eine Weile nachgedacht hatte, entschied ich mich zu versuchen, wie vielseitig PyCall verwendet werden kann. Deshalb habe ich PyCall in Raspeye platziert und eine Schaltung erstellt, um das Ein- und Ausschalten des Schalters zu erkennen und ihn mit Ruby auszuführen Sah.

[Referenzseite] Beispiel für die Eingabe / Ausgabe von Raspberry Pi GPIO (Python, C-Sprache, Shell-Skript)

Installieren Sie PyCall

Da Ruby 2.1 unmittelbar nach der Erstinstallation enthalten war, werde ich es so verwenden, wie es ist. Installieren Sie PyCall mit dem folgenden Befehl.

python


$ sudo apt install -y ruby-dev
$ sudo gem install --pre pycall

Überprüfen Sie den Quellcode für Python

Werfen wir einen Blick auf den Quellcode, der auf der oben genannten Referenzseite veröffentlicht wurde.

gpio_input.py


#!/usr/bin/python
 
import RPi.GPIO as GPIO
import time
 
IO_NO = 4
 
print("press ^C to exit program ...\n")
 
GPIO.setmode(GPIO.BCM)
GPIO.setup(IO_NO, GPIO.IN)
 
try:
 while True:
  print(GPIO.input(IO_NO))
  time.sleep(1)
except KeyboardInterrupt:
 print("detect key interrupt\n")
 
GPIO.cleanup()
print("Program exit\n")

Wenn ich es ausprobiere ...

python


$ python gpio_input.py
press ^C to exit program ...
1
1
1
0
0
1
1
1
0
1
1
^Cdetect key interrupt

Program exit
$

Wenn Sie die Taste drücken, wird sie anscheinend zu 0, und wenn Sie sie loslassen, wird 1 angezeigt. Vorerst stellte ich fest, dass die Verkabelung korrekt war.

Schreiben Sie mit PyCall neu

Wenn Sie den Beispielcode so verwenden, wie er ist, ist er etwas langweilig. Ändern Sie ihn daher so, dass er angezeigt wird, während Sie zählen, wie oft er ein- und ausgeschaltet wurde.

gpio_input.rb


require 'pycall/import'
include PyCall::Import

pyimport 'RPi.GPIO', as: 'gpio'

io_no = 4

status = 1
buff = 1

cnt = 0

puts "press ^C to exit program ...\n"

gpio.setmode.(gpio.BCM)
gpio.setup.(io_no, gpio.IN)

# 「Ctrl」+Halt bei "C"
Signal.trap(:INT) do
  puts "detect key interrupt\n"
  gpio.cleanup.()
  puts "Program exit\n"
  exit 0
end

loop do
  status = gpio.input.(io_no)
  if buff != status
    if status == 1
      puts "OFF"
    else
      cnt += 1
      puts "ON(#{cnt})"
    end
  end
  
  buff = status
  sleep 0.5
end

Übrigens können in Ruby Variablen, die mit Großbuchstaben beginnen, nicht definiert werden (das habe ich gehört ...), daher ändere ich sie in Kleinbuchstaben.

Funktionsprüfung

Führen Sie den Befehl aus und drücken Sie die Taste mehrmals ...

python


$ ruby gpio_input.rb
press ^C to exit program ...
ON(1)
OFF
ON(2)
OFF
ON(3)
OFF
^Cdetect key interrupt

Program exit
$

Es wurde gemacht (^ - ^)

Wenn Sie einen Edelstein namens PI Piper verwenden, können Sie dies problemlos mit Ruby tun, sodass Sie PyCall nicht verwenden müssen ...

Was soll ich als nächstes tun?

Recommended Posts

Installieren Sie PyCall auf Raspberry PI und versuchen Sie, die GPIO-Bibliothek für Python von Ruby zu verwenden
Installieren Sie pyenv auf Raspberry Pi, um Python zu verwalten
Ich habe versucht, die Python-Bibliothek von Ruby mit PyCall zu verwenden
Zugriff auf Google Spreadsheets Verwenden von Python mit Himbeer-Pi (für sich selbst)
Versuchen Sie es mit ArUco mit Raspberry Pi
Erkennen Sie "Helligkeit" mit Python auf Raspberry Pi 3!
Installieren Sie die Python-Bibliothek auf Lambda mit [/ tmp]
Lassen Sie einen Servomotor mit Python auf Raspberry Pi 3 laufen
Ermitteln Sie die Temperatur mit Python auf Raspberry Pi 3!
Versuchen Sie, den RSS-Feed von arXiv mit Python von Raspeye auf Twitter zu twittern
Grundeinstellungen für die Verwendung des Grove Pi + Starterkits und der Kamera mit Raspberry Pi
Erkennen Sie Schiebeschalter mit Python auf Raspberry Pi 3!
Versuchen Sie, QR-Code mit Raspberry Pi zu verwenden
Erkennen Sie Magnetschalter mit Python auf Raspberry Pi 3!
Lassen Sie den Summer mit Python auf Raspberry Pi 3 erklingen!
Installieren Sie Python und Bibliotheken für Python unter MacOS Catalina
Verwendung des digitalen 1-Draht-Temperatursensors DS18B20 mit Raspberry Pi von Python
Grundeinstellungen für die Verwendung von Python3.8 und pip unter CentOS8
Installieren Sie psycopg2 (pgsql-Bibliothek für Python3) auf Apple Silicon
Installieren Sie Selenium auf Ihrem Mac und probieren Sie es mit Python aus
Versuchen Sie, Python auf Raspberry Pi mit Visual Studio zu debuggen.
Ubuntu 20.04 auf Himbeer-Pi 4 mit OpenCV und mit Python verwenden
Kompilieren und installieren Sie MySQL-Python für Python2.7 unter Amazon Linux
Ausgabe auf "7 Segment LED" mit Python mit Raspberry Pi 3!
Versuchen Sie, Videos und Websites von Raspeye mit CATT in Chromecast oder Nest Hub zu übertragen
Verwenden Sie das Kintone API SDK für Python mit Raspberry Pi (speichern Sie Daten einfach in Kintone von Raspberry Pi).
Python auf Ruby und wütend Ruby auf Python
Installieren Sie OpenCV4 auf Raspberry Pi 3
Installieren Sie TensorFlow 1.15.0 auf Raspberry Pi
Führen Sie das AWS IoT Device SDK für Python auf Raspberry Pi aus
Cross-Compilierung für Raspberry Pi Zero unter Debian-Try unter Verwendung einer gemeinsam genutzten Bibliothek
Verwenden Sie Python auf Raspberry Pi 3, um "Temperatur (mit A / D-Wandler)" zu erkennen!
MQTT auf Raspberry Pi und Mac
Himbeer Pi 4 Centos7 auf Docker installieren
Installieren Sie mecab auf dem gemeinsam genutzten Sakura-Server und rufen Sie es von Python aus auf
Hinweise zur Verwendung von MeCab aus Python
Installieren Sie ghoto2 auf Raspberry Pi (Hinweis)
Installieren Sie OpenCV2.4 (+ Python) schnell unter OS X und probieren Sie das Beispiel aus
Cross-Compiling für Raspberry Pi Zero unter Debian-Versuchen Sie, Ihre eigene gemeinsam genutzte Bibliothek zu erstellen
Wiegeinstrument mit Himbeer-Pi und hx711 (GUI-Anzeige in Tkinter)
Installieren Sie Fabric unter Ubuntu und versuchen Sie es
Installieren Sie Python unter CentOS mit Pyenv
Installieren Sie Confluent-Kafka für Python unter Ubuntu
[Hinweis] Verwenden eines 16x2-stelligen LCD-Zeichens (1602A) von Python mit Raspeye
Installieren Sie OpenMedia Vault 5 auf Raspberry Pi 4
Installieren Sie Python unter CentOS mit pyenv
Versuchen Sie es mit Amazon DynamoDB von Python
Verwenden Sie den Temperatur- / Feuchtigkeits- / Drucksensor BME280 von Python mit Raspberry Pi 2
Erkennen Sie analoge Signale mit dem A / D-Wandler mithilfe von Python auf Raspberry Pi 3!
Installieren Sie das ROS- und ROS-Modul für Roomba auf Raspberry Pi 3 und versuchen Sie, es auszuführen
Stream-Verarbeitung von Python und SensorTag, Kafka, Spark Streaming - Teil 1: Raspberry Pi 3
Hinweise zur Verwendung von OpenCV mit Windows 10 Python 3.8.3.
Versuchen Sie, mit Raspberry Pi nach Wakasagi zu fischen
Installieren Sie das 64-Bit-Betriebssystem (Bate) auf Raspberry Pi
Installieren Sie Docker-Compose unter 64-Bit-Raspberry-Pi-Betriebssystem
Versuchen Sie, Python von Ruby aus mit Sparsamkeit aufzurufen
Installieren Sie pyenv und Python 3.6.8 unter Ubuntu 18.04 LTS
So installieren Sie NumPy auf Raspeye
Arbeiten mit GPS in Python für Raspberry Pi 3
Die Temperatur wird automatisch mit Raspberry Pi 3 gemessen und automatisch zur Anzeige auf den Server (Docker Python3 + Flasche + MySQL) hochgeladen!
Ich habe versucht, Flask auf Raspberry Pi 3 Model B + mit Nginx und uWSGI auszuführen