Lesen Sie die Daten des NFC-Lesegeräts, das mit Python an Raspberry Pi 3 angeschlossen ist, und senden Sie sie mit OSC an openFrameworks

1. Übersicht

Fahren Sie mit dem vorherigen Artikel fort (Ausführen des Beispielprogramms openFrameworks auf Raspberry Pi 3 - Qiita) und ersetzen Sie den Ausstellungs-Mac durch Raspberry Pi. Es ist ein Versuch, dies zu tun.

Beim letzten Mal habe ich oF auf Raspberry Pi installiert und das Beispielprogramm ausgeführt. Dieses Mal werde ich einen NFC-Reader an Raspbery Pi anschließen und die aus dem Python-Programm gelesenen NFC-Daten an openFrameworks mit OSC senden.

2. Arbeitsumgebung

3. Referenzseite

  1. So verbinden Sie den NFC-Leser / -Schreiber RFID-RC522 der SPI-Kommunikationsmethode mit Raspberry Pi 3 Modell B und lesen das NFC-Tag (So verbinden Sie den NXP MFRC522-RFID-Leser / -Schreiber mit Raspberry 3 und lesen Sie die NFC-Karte ohne Kontakt)
  2. mxgxw/MFRC522-python: A small class to interface with the NFC reader Module MFRC522
  3. Python OSC (pyOSC) | Android Days
  4. pyOSC 0.3.5b-5294 : Python Package Index
  5. Realize ofxFaceTracker mit Raspberry Pi2 - Take's Tagebuch

4. Verwenden Sie den NFC-Reader mit Raspberry Pi 3

Ich habe es möglich gemacht, den NFC-Reader zu verwenden, indem ich mich auf die Referenzstelle 1 verlassen habe. Das Programm, das ich ausgeführt habe, ist Read.py auf Referenzseite 2. Da es sich um die Referenzseite handelt, wird es weggelassen.

Als ich es zum ersten Mal ausprobierte, führte ich das Programm aus und es reagierte nicht auf NFC-Tags. Die Site sagte, dass ich den Gerätebaum deaktivieren musste, aber ich konnte den Gerätebaum in der erweiterten Option auch nach "sudo raspi-config" nicht finden.

Ich war mir nicht sicher, aber es wurde geheilt, nachdem Raspbian neu installiert wurde. Ich habe eine Micro-SD-Karte mit vorinstalliertem Raspbian 2016-02-26 gekauft, aber die vorinstallierte war möglicherweise nicht gut.

5. Installieren Sie pyOSC

Ich habe osc verwendet, um das in 4. ausgeführte Python-Beispielprogramm auf openFrameworks zu bringen. Ich dachte, es wäre schön, wenn ich den NFC-Reader direkt von oF lesen könnte, aber ich wusste nicht, was ich tun sollte, also entschied ich mich für diese Methode.

Ich habe pyOSC ausprobiert, als ich mir die Referenzseite 3 angesehen habe. (Python OSC (pyOSC) | Android Days).

Installieren Sie pyOSC

git clone https://gitorious.org/pyosc/devel.git
cd devel
sudo python setup.py install

Fehler

Referenzstelle 3. Ich habe das Beispielprogramm ausprobiert, aber es hat nicht funktioniert.

git clone https://github.com/conanxin/Arduino-Meets-Blender-OSC.git

Starten Sie zwei Terminals und versuchen Sie, das Beispielprogramm auszuführen.

terminal1


cd Arduino-Meets-Blender-OSC/pyOSC_examples
python basic_receive.py

terminal2


cd Arduino-Meets-Blender-OSC/pyOSC_examples
python basic_send.py

Beim Ausführen von send.py wurde der folgende Fehler angezeigt.

terminal2


Traceback (most recent call last):
  File "basic_send.py", line 28, in <module>
    client.sendto(msg, ('127.0.0.1', 2014)) # note that the second arg is a tupple and not two arguments
  File "/usr/local/lib/python2.7/dist-packages/OSC.py", line 1174, in sendto
    ret = select.select([],[self._fd], [], timeout)
AttributeError: 'OSCClient' object has no attribute '_fd'

Ich habe es einfach nicht verstanden.

Erfolg

Nehmen Sie sich einen Moment Zeit und probieren Sie eine andere Probe. Führen Sie das Beispiel aus, das sich im Entwicklungsordner befand, in den Sie pyOSC heruntergeladen haben.

terminal1


cd devel/examples
python knect-rcv.py

terminal2


cd devel/examples
python knect-snd.py

Als ich knect-snd.py ausführte, wurde Folgendes auf dem Bildschirm von knect-rcv.py angezeigt.

terminal1


('Now do something with', 'user1', 3.0, 1.0, -1.0)
('Now do something with', 'user2', 4.0, 2.0, -2.0)
('Now do something with', 'user3', 3.0999999046325684, 2.0, -2.0)
('Now do something with', 'user4', 6.0, 3.200000047683716, -2.4000000953674316)

6. Fügen Sie dem RFID-Programm die OSC-Verarbeitung hinzu

Ich habe das Programm knect-snd.py in Dump.py eingefügt.

Dump_osc.py


#!/usr/bin/env python
# -*- coding: utf8 -*-

import RPi.GPIO as GPIO
import MFRC522
import signal

# OSC setting
from OSC import OSCClient, OSCMessage
client = OSCClient()
client.connect(("localhost", 7110))

continue_reading = True

# Capture SIGINT for cleanup when the script is aborted
def end_read(signal,frame):
    global continue_reading
    print "Ctrl+C captured, ending read."
    continue_reading = False
    GPIO.cleanup()

# Hook the SIGINT
signal.signal(signal.SIGINT, end_read)

# Create an object of the class MFRC522
MIFAREReader = MFRC522.MFRC522()

# This loop keeps checking for chips. If one is near it will get the UID and authenticate
while continue_reading:

    # Scan for cards    
    (status,TagType) = MIFAREReader.MFRC522_Request(MIFAREReader.PICC_REQIDL)

    # If a card is found
    if status == MIFAREReader.MI_OK:
        print "Card detected"

    # Get the UID of the card
    (status,uid) = MIFAREReader.MFRC522_Anticoll()

    # If we have the UID, continue
    if status == MIFAREReader.MI_OK:

        # Print UID
        print "Card read UID: "+str(uid[0])+","+str(uid[1])+","+str(uid[2])+","+str(uid[3])

        # Send OSC
        client.send( OSCMessage("/user/1", [uid[0], uid[1], uid[2], uid[3]] ) )

        # This is the default key for authentication
        key = [0xFF,0xFF,0xFF,0xFF,0xFF,0xFF]

        # Select the scanned tag
        MIFAREReader.MFRC522_SelectTag(uid)

7. Erstellen Sie ein Programm zum Empfangen von OSC mit openFrameworks

Auch hier wird das Beispielprogramm verwendet. Kopieren Sie das Beispielprogramm oscReceiveExample nach openFrameworks / apps / myApps /.

cd openFrameworks/examples/addons
cp -r oscReceiveExample /home/pi/openFrameworks/apps/myApps/

Öffnen Sie ofApp.h.

cd /home/pi/openFrameworks/apps/myApps/oscReceiveExample/src
vim ofApp.h

Ändern Sie `# define PORT 12345``` in der 7. Zeile, in der die Portnummer auf` # define PORT 7110``` gesetzt ist, und speichern Sie.

Gehen Sie einen Ordner zurück und machen Sie make. Wenn die Kompilierung abgeschlossen ist, machen Sie make run.

cd ..
make
make run

In der oberen rechten Ecke des Bildschirms wird ein blaues Fenster geöffnet. Starten Sie ein anderes Terminal und starten Sie Dump_osc.py, das in 6 erstellt wurde.

cd MFRC522-python
python Dump_osc.py

Wenn Sie den am NFC-Lesegerät angebrachten NFC-Schlüsselhalter halten, wird die NFC-UID auch auf dem blauen Bildschirm angezeigt.

スクリーンショット 2016-10-25 00.03.14.png

Das Video sieht so aus. (Klicken Sie auf das Bild, um zu YouTube zu gelangen.) IMAGE ALT TEXT HERE

Nachdem wir dies bisher getan haben, sollten wir gemäß der von oF erhaltenen UID vorgehen.

Recommended Posts

Lesen Sie die Daten des NFC-Lesegeräts, das mit Python an Raspberry Pi 3 angeschlossen ist, und senden Sie sie mit OSC an openFrameworks
Geben Sie die Bilddaten mit Flask of Python zurück und zeichnen Sie sie in das Canvas-Element von HTML
Holen Sie sich zusätzliche Daten zu LDAP mit Python (Writer und Reader)
Ich habe die Daten von Raspberry Pi an GCP gesendet (kostenlos)
Es war großartig, die Python-Datei in Raspberry Pi mit der Remote-Funktion von Atom zu bearbeiten
Ich habe versucht, die Bewässerung des Pflanzgefäßes mit Raspberry Pi zu automatisieren
Verschieben Sie Daten mit Python Change / Delete (Writer und Reader) nach LDAP.
Verarbeiten Sie die mit Redshift entladene gzip-Datei mit Python of Lambda, gzipen Sie sie erneut und laden Sie sie in S3 hoch
Senden Sie die mit SensorTag gemessene Temperatur, Luftfeuchtigkeit usw. über Raspberry Pi 3 an Ambient und zeichnen Sie sie grafisch auf.
Messen Sie Temperatur, Luftfeuchtigkeit usw. mit SensorTag und senden Sie es über Raspberry Pi 3 an Ambient, um es Teil 2 grafisch darzustellen
CSV-Ausgabe von Pulsdaten mit Raspberry Pi (Analogeingang mit Python prüfen)
Verwenden Sie Python auf Raspberry Pi 3, um die LED mit Schaltersteuerung zu beleuchten!
Senden und Empfangen von Bilddaten als JSON in Python über das Netzwerk
Lesen Sie die CSV-Datei mit Python und konvertieren Sie sie unverändert in DataFrame
[Python] Senden Sie das von der Webkamera aufgenommene Bild an den Server und speichern Sie es
Geben Sie den Bericht mit Python aus DB in PDF aus, hängen Sie ihn automatisch an eine E-Mail an und senden Sie ihn
So fügen Sie OpenCV in Raspberry Pi ein und sammeln mit Python ganz einfach Bilder von Gesichtserkennungsergebnissen
Ich habe versucht, die statistischen Daten der neuen Corona mit Python abzurufen und zu analysieren: Daten der Johns Hopkins University
Ich habe ein npm-Paket erstellt, um die ID der IC-Karte mit Raspberry Pi und PaSoRi zu erhalten
Laden Sie Daten mit einem Befehl und einer Aktualisierung auf s3 von aws hoch und löschen Sie die verwendeten Daten (unterwegs).
Machen Sie ein Thermometer mit Raspberry Pi und machen Sie es im Browser Teil 3 sichtbar
Stellen Sie eine Verbindung zur Raspberry PI-Konsole her und zeigen Sie lokale IP- und SD-Informationen an
Zusammenfassung zum Lesen numerischer Daten mit Python [CSV, NetCDF, Fortran Binary]
Ich habe die Beleuchtungsstärke des Raumes mit Raspberry Pi, Arduino und einem optischen Sensor getwittert
[Python] Lesen von Daten aus CIFAR-10 und CIFAR-100
Benachrichtigen Sie regelmäßig den Verarbeitungsstatus von Raspberry Pi mit Python → Google Spreadsheet → LINE
CSV-Ausgabe von Impulsdaten mit Raspberry Pi (CSV-Ausgabe)
Holen Sie sich CPU-Informationen von Raspberry Pi mit Python
(Tagebuch 1) Erstellen, Durchsuchen und Registrieren von Daten in der SQL-Datenbank des Microsoft Azure-Dienstes mit Python
GAE - Drehen Sie mit Python das Bild basierend auf den Rotationsinformationen von EXIF und laden Sie es in den Cloud-Speicher hoch.
Verwenden Sie Python auf Raspberry Pi 3, um die LED zu beleuchten, wenn es dunkel wird!
Stellen Sie mit Python auf Raspberry Pi eine Verbindung zu MySQL her
Ich habe versucht, die Literatur des neuen Corona-Virus mit Python automatisch an LINE zu senden
[Einführung in Python] So erhalten Sie den Datenindex mit der for-Anweisung
Messen Sie die CPU-Temperatur von Raspeye mit Python
Eine Geschichte darüber, wie man das Atomfeld (XML-Telegramm) der Meteorologischen Agentur mit einem Raspeltorte bekommt und twittert
[Python Data Frame] Wenn der Wert leer ist, füllen Sie ihn mit dem Wert einer anderen Spalte.
Steuern Sie die Musikwiedergabe auf einem Smartphone, das mit Raspberry Pi 3 und Bluetooth mit AVRCP verbunden ist
Extrahieren Sie Bilder und Tabellen mit Python aus PDF, um die Berichtslast zu verringern
Ich habe versucht, das Artikel-Update des Livedoor-Blogs mit Python und Selen zu automatisieren.
Erstellen Sie mit Streamlit schnell ein Python-Datenanalyse-Dashboard und stellen Sie es in AWS bereit
Ich wollte nur die Daten des gewünschten Datums und der gewünschten Uhrzeit mit Django extrahieren
Lesen Sie die CSV-Datei mit dem Jupiter-Notizbuch und schreiben Sie die Grafik übereinander
Ich habe versucht, die Verarbeitungsgeschwindigkeit mit dplyr von R und pandas von Python zu vergleichen
Es ist einfach, SQL mit Python auszuführen und das Ergebnis in Excel auszugeben
Memo mit Python mit HiveServer2 von EMR verbunden
Vorlage des Python-Skripts zum Lesen des Inhalts der Datei
Einfaches IoT, um mit Raspeye und MESH zu beginnen
Stellen wir uns den Raum mit Raspeltorte vor, Teil 1
Verwendung von Raspeye Relay Module Python
Nehmen Sie den Wert des SwitchBot-Thermo-Hygrometers mit Raspberry Pi
Umschalten der Bot-Thermo-Hygrometer-Werte mit Raspberry Pi
Ubuntu 20.04 auf Himbeer-Pi 4 mit OpenCV und mit Python verwenden
Lesen Sie die json-Datei mit Python, formatieren Sie sie und geben Sie json aus
Lassen Sie uns GPIO von Raspeye mit Python CGI betreiben
Python - Lesen Sie Daten aus einer numerischen Datendatei, um die verteilte, gemeinsam verteilte Matrix, Eigenwerte und Eigenvektoren zu finden
Notieren Sie sich, was Sie in Zukunft mit Razpai machen möchten