Ein Hinweis zum Schreiben von Python-Code in Raspeye ・ Erstellt mit IDLE auf dem Desktop von Raspeye (Benötigt Anzeige und Tastatur) ・ Vi-Befehl mit Raspeltorte (Benötigt Anzeige und Tastatur, keine Maus erforderlich) ・ Erstellt mit Remotedesktop und IDLE auf Raspeye (Benötigen Sie ein Mittel, um die Netzwerkverbindung und IP von Raspeye zu überprüfen) ・ Vi von der SSH-Verbindung zum Raspeltorte (Wenn Sie die Internetverbindung und IP bestätigen können) ・ Senden Sie eine Python-Datei per FTP an Raspeye (Wenn Sie die Internetverbindung und IP bestätigen können Sie können auch in Ihrer eigenen PC-Entwicklungsumgebung schreiben, großartigen Text usw.)
Ich benutze es flexibel Grundsätzlich Fernverbindung Es gibt einen "arp -a" -Befehl innerhalb desselben Netzwerks, um die IP zu bestätigen Ich benutze nicht so oft Mac-FTP-Software, aber ich denke nicht, dass es gut ist. Zum Zeitpunkt des Gewinns war Winscp + Putty sehr schön, und ich mochte auch Teraterm. Ich mag das Terminal
Ich werde vorerst einen der einfachsten Codes setzen Ich verwende die I2C-Adresse aus der vorherigen "Bestätigung des Analogeingangs". Zunächst sehe ich den Wert jedes Mal, wenn ich ihn ausführe
sample1.py
import smbus
I2C_ADDRESS = 0x48
bus = smbus.SMBus(1)
bus.write_byte(I2C_ADDRESS, 0xFF)
value=bus.read_byte(I2C_ADDRESS)
print value
Machen Sie es in sich wiederholenden Aussagen immer sichtbar
sample2.py
import smbus
import time
I2C_ADDRESS = 0x48
bus = smbus.SMBus(1)
while True:
bus.write_byte(I2C_ADDRESS, 0xFF)
value=bus.read_byte(I2C_ADDRESS)
print value
time.sleep(0.1)
Da der Zweck darin besteht, endlich den Impuls zu erfassen, werden wir alle 1 Millisekunde Threads verwenden, um zu verarbeiten.
sample3.py
import threading
import smbus
import time
I2C_ADDRESS = 0x48
bus = smbus.SMBus(1)
def loop():
bus.write_byte(I2C_ADDRESS, 0xFF)
value=bus.read_byte(I2C_ADDRESS)
print value
t=threading.Timer(0.1, loop)
t.start()
t=threading.Thread(target=loop)
t.start()
Dieses Mal möchte ich nur 10 Sekunden messen und beenden, also schreibe ich einen Prozess, der endet, wenn der Thread 100 Mal ausgeführt wird. Der Wert, der dem Argument des Threads gegeben wird, wird stetig erhöht. Ich dachte an einen einfacheren Weg, aber ich konnte nicht daran denken. Wenn Sie etwas wissen, kommentieren Sie bitte. (Da Dateivorgänge später ausgeführt werden, muss die Datei am Ende der Verarbeitung geschlossen werden, daher habe ich sie hinzugefügt.)
sample4.py
import smbus
import time
import threading
import csv
I2C_ADDRESS = 0x48
bus = smbus.SMBus(1)
f = open('data.csv', 'w')
def loop(count):
# count = count+1
bus.write_byte(I2C_ADDRESS, 0xFF)
value = bus.read_byte(I2C_ADDRESS)
print value
writer = csv.writer(f, lineterminator='\n')
writer.writerow([value])
if count < 100 :
t = threading.Timer(0.1, loop, [count])
t.start()
else :
f.close()
print 'finish'
t = threading.Thread(target=loop, args=(0,))
t.start()
Nächstes Mal werde ich den letzten Beispielcode verwenden
Recommended Posts