Himbeerkuchen (im Folgenden als Himbeerkuchen bezeichnet) kann von Mathematica kostenlos verwendet werden. Mit Razzpie 4 hat sich die Rechenleistung der CPU erhöht, sodass Sie nicht endlos auf 3D-Zeichnungen warten müssen. Raspeye ist ein Linux-Computer, der sich durch den Zugriff auf Hardware wie GPIO, I2C und SPI auszeichnet. Raspbian Buster ist ab Juni 2019 erhältlich.
Führen Sie sudo Mathematica aus, um Mathematica mit Root-Rechten zu starten. Normalerweise können pi-Benutzer ohne Root-Rechte auf GPIO, I2C und SPI zugreifen. Hier liest Mathematica die Temperatur aus dem BME280 des MEMS-Sensors und stellt sie grafisch dar.
Raspai verfügt über viele vorkompilierte Sensorgerätetreiber. Details finden Sie in / boot / Overlays / README. Es ist nur eine kurze Erklärung. Die meisten Treiber sind iio. Aktivieren Sie zunächst die I2C-Schnittstelle, indem Sie im Hauptmenü in den Einstellungen auf Raspberry Pi-Konfiguration klicken, die Registerkarte Schnittstelle auswählen, I2C überprüfen und OK drücken. Ab Buster ist kein Neustart erforderlich.
sudo nano /boot/config.txt
Öffnen Sie dann die Konfigurationsdatei config.txt und in der letzten Zeile
dtoverlay = i2c-sensor,bme280,param=0x76
Hinzufügen, Speichern durch Überschreiben, Beenden, Neustarten, BME280 wird auf der I2C-Schnittstelle aktiviert. Die Bestätigung ist in Ordnung, wenn i2cdetect -y 1 ausgeführt wird und die UU bei 0x76 angezeigt wird. Schließen Sie vorher den Sensor an.
Es war 820 Yen und es wurde am nächsten Tag geliefert.
"HiLetgo BME280 Temperatursensor Feuchtigkeitssensor Druckdrucksensor Arduino-Sensor Atmosphärendrucksensor Temperatur- und Feuchtigkeitssensor Breakout Arduino-kompatibel [Parallelimportware]"
Verbinden Sie sich wie folgt mit I2C. Das BME280 selbst unterstützt sowohl SPI als auch I2C. Diese Karte ist jedoch für I2C vorgesehen, und der Gerätetreiber ist auch für I2C vorgesehen.
Wenn der Gerätetreiber installiert ist, handelt es sich bei den unter / sys gelesenen Daten um eine Textdatei, die von Zeit zu Zeit aktualisiert wird.
Lesen Sie wie folgt: Es ist eine Ganzzahl und hat den 1000-fachen Wert.
cat /sys/bus/i2c/devices/1-0076/iio:device0/in_temp_input
In Python
f = open('/sys/bus/i2c/devices/1-0076/iio:device0/in_temp_input')
Temp = round(int(f.read()) / 1000.0, 1)
f.close
print(Temp)
Sie können es mit lesen.
Verwenden Sie die Funktion Externe Sitzungen, um Python-Programme von Mathematica zu verwenden. Python-Programme sind Funktionen. Rufen Sie diese Funktion mit ExternalValue auf und erhalten Sie den Wert.
dataList = {};
Do[
session = StartExternalSession["Python"];
ExternalEvaluate[session, "def temp():
f = open('/sys/bus/i2c/devices/1-0076/iio:device0/in_temp_input');
Temp = round(int(f.read()) / 1000.0, 1);
f.close;
return Temp
"];
v = ExternalValue[session, "temp()"];
DeleteObject[session];
AppendTo[dataList, v]
, {v, 1, 10}
]
dataList
ListLinePlot[dataList]
Es sieht so aus, als würde es laufen. Ich habe es 10 Mal gelesen und eine Grafik gezeichnet.
Unter https://www.denshi.club/pc/raspi/linux-3-mathematicabme280.html finden Sie das Programm, mit dem das Diagramm in Echtzeit aktualisiert wird.
Recommended Posts