Ich hoffe es ist in Ordnung wenn ich mich hier in den Faden kurz einklinke, ich habe ein Problem, dass da vielleicht anknüpft:
Torsten hat geschrieben: ↑28 Jun 2020, 21:59
PS: Falls Du mit der cfw 0.9.4 arbeitest, musst Du für den i2c-Support auch noch eine aktuelle ftrobopy-Version (>1.88) in das Verzeichnis Deiner App kopieren.
Ich scheine die CFW auf dem o.g. Wege nicht überreden zu können ftrobopy 1.94 zu verwenden, weder online noch offline, obwohl sie mir verspricht sie täte es. Ich schilder mal kurz was ich versucht habe:
Versuch 1:
Wenn ich mit der original FW dein Demo Programm (s.u) abgekürzt laufen lasse und eine Versionsabfrage vorher mache:
Code: Alles auswählen
txt=ftrobopy.ftrobopy('192.168.178.51')
print("Noch eine schnelle FTROBOPY Versionsabfrage: ", ftrobopy.version())
time.sleep(0.5)
print("Jetzt starten wir I2c")
time.sleep(0.5)
res = txt.i2c_read(0x18, 0x00)
if res[0] == 250:
print("Found BMX055 Acceleration Sensor at address 0x18")
txt.i2c_write(0x18, 0x11, 0x00) # set normal power mode
txt.i2c_write(0x18, 0x3e, 0x80) # set fifo stream mode
txt.i2c_write(0x18, 0x0f, 0x05) # set g-range to +-4g
txt.i2c_write(0x18, 0x10, 0x0a) # set filter to 15.63 Hz
for i in range(10):
fifo_status = txt.i2c_read(0x18, 0x0e)[0]
# temperature=txt.i2c_read(0x18, 0x08)[0]
if fifo_status > 0: # and fifo_status < 128:
res = txt.i2c_read(0x18, 0x3f, data_len=6)
x, y, z = struct.unpack('<hhh', res)
print(i, fifo_status, x >> 4, y >> 4, z >> 4)
# elif fifo_status > 128: # fifo overflow
# res=txt.i2c_read(0x18, 0x3f, data_len=6)
# time.sleep(0.01)
else:
print("no bmx055 acceleration sensor found at address 0x18")
bekomme ich als Ausgabe:
Connected to TX2013 firmware version 4.6.6
Noch eine schnelle FTROBOPY Versionsabfrage: 1.94 beta
Jetzt starten wir I2c
Found BMX055 Acceleration Sensor at address 0x18
0 21 -50 -38 1009
1 21 -56 -37 1007
2 21 -65 -33 1001
3 21 -58 -36 1000
4 20 -63 -37 1009
5 20 -57 -36 1002
6 20 -60 -41 1004
7 20 -53 -33 1005
8 19 -58 -30 1003
9 19 -75 -1 886
Process finished with exit code 0
Ich vermute mal so soll das auch aussehen. Also scheint alles richtig zu laufen.
Versuch 2:
Alles so wie bei Versuch 1, wieder mit Pycharm aber statt original FW jetzt in der CFW mit laufender FTGUI und gleichem Code wie oben:
(bei mir lokal ist mit pip3 ftrobopy 1.94 beta installiert)
Connected to TX2013 firmware version 4.6.6
Noch eine schnelle FTROBOPY Versionsabfrage: 1.94 beta
Jetzt starten wir I2c
WARNING: ResponseID 0x0 of I2C read command does not match
Traceback (most recent call last):
File "C:/Users/Dennis/PycharmProjects/ftSensortest/hello.py", line 14, in <module>
if res[0] == 250:
TypeError: 'NoneType' object is not subscriptable
Process finished with exit code 1
Ich vermute, dass deutet darauf hin, dass anders als angegeben lokal noch ftrobopy 1.88 verwendet wird oder? res dürfte ja eigentlich jetzt nur deswegen 'none' enthalten weil die Kommunikation über i2c nicht klappt.
Versuch 3:
Gleicher Code, aber jetzt offline mit installierter App, gestartet vom Touchscreen. Verbindung über "127.0.0.1", als Adresse und vorher per SSH die FTGUI gestartet wie hier im Faden erklärt. Im Ordner der App dann den Ordner ftrobopy angelegt (s. Bild). Gleicher Fehler wie bei Versuch 2.
Er meldet auch wieder ftrobopy Version 1.94 beta
Versuch 4:
ftrobopy Ordner gelöscht, ansonsten so wie Versuch 3.
Gleicher Fehler wie Versuch 3, meldet jedoch jetzt ftrobopy 1.88.
Hast du/jemand vielleicht eine Idee was ich falsch mache, bzw. was ich mal versuchen könnte? Daran dass, auf der cfw eine minimal neuere Python Version läuft als auf der ft FW, dürfte es ja eigentlich nicht liegen..?
VG, Dennis