Laufzeitfehler !No module named "machine" bei erstellen eines I2C Bus (Python3)

  • Hallo,

    ich bin Neueinsteiger in der RaspberryPi Welt und neu hier im Forum.

    Ich benutze einen Raspberry PI 3 B+ und möchte unter Phyton3 den Lichsensor TLS2561 über den I2C Bus lesen. i2cdetect liefert mir an der erwarteten Adresse einen Eintrag, d.h. die config scheint richtig zu sein.

    Zum Lesen des Sensors benutze ich die Library Adafruit_CircuitPython_TSL256. Um einen kurzen Schnelltest zu machen wollte ich das Beispielprogramm ausführen, welches in dem Paket dabei ist.

    Doch erstellen des i2c Bus tritt ein Laufzeitfehler auf, bei diem ich einfach nicht weiterkomme.

    Der Aufruf "i2c = busio.I2C(board.SCL, board.SDA)" in der python-Datei

    #!/usr/bin/python3

    import board

    import busio

    import adafruit_tsl2561

    # Create the I2C bus

    i2c = busio.I2C(board.SCL, board.SDA)

    für zu dem Laufzeitfehler

    Traceback (most recent call last):

    File "/home/pi/BlindControl/Test/tsl2561_simpletest.py", line 8, in <module>

    i2c = busio.I2C(board.SCL, board.SDA)

    File "/home/pi/.local/lib/python3.5/site-packages/busio.py", line 15, in __init__

    self.init(scl, sda, frequency)

    File "/home/pi/.local/lib/python3.5/site-packages/busio.py", line 24, in init

    from machine import I2C as _I2C

    File "/usr/lib/python3/dist-packages/thonny/backend.py", line 317, in _custom_import

    module = self._original_import(*args, **kw)

    ImportError: No module named 'machine'

    Ich habe das Modul machine durch pip3 install machine Python3 nachgeladen, doch ohne Erfolg.

    Benötige dringend einen Tip, was ich vergessen habe bzw. falsche gemacht habe. Bin für jeden Tip aüßerst dankbar.

    Das Reh springt hoch, das Reh springt weit, es macht ja nichts, es hat ja Zeit.

  • Laufzeitfehler !No module named "machine" bei erstellen eines I2C Bus (Python3)? Schau mal ob du hier fündig wirst!

  • Du möchtest doch die Lichtstärke messen oder?

    Denn wenn ja ich war/bin ein Anfänger und hatte ein Starterkit bei dem ein Projekt zur Lichtsstärkenmessung dabei war, dass ganze lief über einen Photowiederstand und einen Kondensator wenn du also statt dem TLS2561 als Anfang erst etwas anderes verwenden möchtest gebe ich dir dies als Tipp.

    Hast du eigentlich mal nachgeguckt ob "machine" woanders ist?

  • Hallo,

    danke für die Antwort. Habe das Modul "machine" nicht gefunden. Bin leider kein Linux Profi, dennoch fit in Elektronik und Softwareentwicklung in Python unter Windows. Daher hatte ich mir für mein Projekt u.a. diesen Sensor ausgesucht, es ist ein weiterer Sensor an diesem Bus dran, der ja auch erkannt wird.

    Wie gesagt mit pip3 install machine kann ich das Modul ja python3 auch bekannt machen, zumindest geht das ohne Fehlermeldung,

    Herzliche Grüße

    Dieter

    Das Reh springt hoch, das Reh springt weit, es macht ja nichts, es hat ja Zeit.

    Edited once, last by Swingfan (November 24, 2018 at 5:24 PM).

  • Moin Swingfan,

    erstmal: Herzlich Willkommen im Forum!!

    Ich wollte es dir schon vorhin schreiben, hatte aber gehofft das sich ein Pythonmensch meldet.

    Zum Lesen des Sensors benutze ich die Library Adafruit_CircuitPython_TSL256.

    Hier mal ein Auszug von der Adafruitseite

    Quote

    CircuitPython is a programming language designed to simplify experimenting and learning to program on low-cost microcontroller boards.

    Du solltest dich nach was anderem umsehen.

    Gruss Bernd

    Ich habe KEINE Ahnung und davon GANZ VIEL!!
    Bei einer Lösung freue ich mich über ein ":thumbup:"
    Vielleicht trifft man sich in der RPi-Plauderecke.
    Linux ist zum Lernen da, je mehr man lernt um so besser versteht man es.

  • Hallo,

    zuerst mal ganz herzlichen Dank für den Support. Werde euren Ratschlag annehmen und mir einen anderen Sensor besorgen. Da hab ich mir wohl leider einen nicht so tollen Sensor rausgesucht.

    Nochmals vielen Dank

    Herzliche Grüße Dieter

    Das Reh springt hoch, das Reh springt weit, es macht ja nichts, es hat ja Zeit.

  • Moin Swingfan,

    warum das denn??

    Hier wurde dir doch eine Lösung vorgeschlagen

    Gruss Bernd

    Ich habe KEINE Ahnung und davon GANZ VIEL!!
    Bei einer Lösung freue ich mich über ein ":thumbup:"
    Vielleicht trifft man sich in der RPi-Plauderecke.
    Linux ist zum Lernen da, je mehr man lernt um so besser versteht man es.

  • Hallo Bernd,

    habe mir das nochmals ausführlich angeschaut und ja, du hast völlig Recht, werde den Sensor für mein Projekt verwenden und wie vorgeschlagen integrieren.

    Nochmals herzlichen Dank

    Liebe Grüße Dieter

    Das Reh springt hoch, das Reh springt weit, es macht ja nichts, es hat ja Zeit.

  • War die Installation mit pip3 denn erfolgreich? Taucht machine in der Ausgabe von pip3 list auf? Funktioniert import machine und from machine import I2C in der Python-Shell?

    (mit Google Translate)

    Ich habe das gleiche Problem erreicht.

    Das Problem liegt in busio.py

    Ich habe alle Blinka-Installationsanweisungen genau für Raspberry Pi befolgt und alle Python-Module aktualisiert. Außerdem habe ich das "machine" -Modul mit pip3 installiert (nicht eines der Module in der Anleitung).

    die pip3 installationen waren erfolgreich. "import machine" und "from machine import I2C" erzeugen Ausnahmen in der Python-Shell.

    Ich vermute, Blinka wird ein Update benötigen, bevor es wieder funktioniert.

    Himbeer-Pi ist eines der Ziele von Blinka, daher sollte dieses Problem an Adafruit gemeldet werden.

    (Google Übersetzer)

    Ich habe Grund zu der Annahme, dass der Code "from machine import I2C" stattdessen "from adafruit_blinka.microcontroller.raspi_23.i2c import I2C" sein sollte.

    (Google Übersetzer)

    Nein, tut mir leid, ich bin nur teilweise richtig.

    Das Problem beginnt in "from adafruit_blinka.agnostic import board_id" in busio.py .. board_id muss "raspi_3" für unsere "Raspi3B +" - Geräte zurückgeben.

    $ diff busio.py.orig busio.py

    21c21

    < if board_id == "beaglebone_black":

    ---

    > elif board_id == "beaglebone_black":

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!