PiFace unter Raspbian Stretch

    Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

    Da in jedem Forum ein paar Regeln eingehalten werden müssen, möchte ich diese auch vorher hier festlegen und niederschreiben. Die grundsätzliche Netiquette setze ich bei Jedem voraus. Darüber hinaus möchte ich nur spezielle Regeln ansprechen:
    - Unterlasse FullQuote sondern nutze Alternativen wie Inline-Quoting
    -> siehe auch https://de.wikipedia.org/wiki/Fullquote vs. https://de.wikipedia.org/wiki/TOFU#Alternativen_zu_TOFU
    - Unterlasse nichtssagende Antworten wie "Danke" oder "werde ich mal testen" oder ähnliches, sofern Du nicht der Threadersteller bist und einen Lösungsvorschlag angeboten bekommen hast.
    - Vermeide Doppel-Posts (zwei Beiträge von Dir hintereinander) sondern editiere wenn möglich Deine Posts.

    Danke...

    • PiFace unter Raspbian Stretch

      Guten Morgen,
      nachdem ich zwei Tage des Suchens darauf verwendet habe das PiFace Digital 2 unter Raspbian Stretch zum laufen zu bekommen,
      möchte ich Euch meinen Lösungsweg hier mal beschreiben.

      Als erstes setze ich vorraus das SPI in der raspi-config auf "Enabled" gesetzt ist.

      Nun erstmal PyPi installieren, falls noch nicht bei der Installation von DoorPi geschehen.

      Shell-Script

      1. sudo apt-get install python{,3}-pip


      Jetzt holen wir uns die Piface-Dateien.
      Für Python 2.7, würde für DoorPi reichen.

      Shell-Script

      1. sudo pip install pifacecommon
      2. sudo pip install pifacedigitalio

      Und wer möchte auch für Python 3.5

      Shell-Script

      1. sudo pip3 install pifacecommon
      2. sudo pip3 install pifacedigitalio

      Nun müssen wir die spi.py noch anpassen.

      Shell-Script

      1. cd /usr/local/lib/python2.7/dist-packages/pifacecommon
      2. sudo nano spi.py
      Und zwar suchen wir uns die Zeilen:

      Python-Quellcode

      1. # create the spi transfer struct
      2. transfer = spi_ioc_transfer(
      3. tx_buf=ctypes.addressof(wbuffer),
      4. rx_buf=ctypes.addressof(rbuffer),
      5. len=ctypes.sizeof(wbuffer)
      6. )
      und ersetzen sie durch:

      Python-Quellcode

      1. # create the spi transfer struct
      2. transfer = spi_ioc_transfer(
      3. tx_buf=ctypes.addressof(wbuffer),
      4. rx_buf=ctypes.addressof(rbuffer),
      5. len=ctypes.sizeof(wbuffer),
      6. speed_hz=ctypes.c_uint32(15000)
      7. )
      Es wird ein Komma und "speed_hz=ctypes.c_uint32(15000)" eingefügt, damit wird die SPI Geschwindigkeit angepasst.



      Wer das auch für Python 3.5 machen möchte macht das Gleiche nur hier:

      Shell-Script

      1. cd /usr/local/lib/python3.5/dist-packages/pifacecommon
      2. sudo nano spi.py
      Nun sollte das PiFace mit DoorPi laufen. :thumbup:
    • hmmm, habe heute auch ein Update von Debian 8.x auf Debian 9.x gemacht und seit dem funktioniert leider bei mir auch Doorpi nicht mehr weil er der Meinung ist das er kein Piface2 board findet.

      Jedenfalls gibt es bei mir weder den Ordner

      Quellcode

      1. /usr/local/lib/python2.7/dist-packages/pifacecommon
      (es gibt den Ordner pifacecommon nicht) und auch keine spi.py Datei irgendwo anders.


      Hat dazu noch jemand Ideen?
    • Quellcode

      1. pi@doorpi:~/py-spidev $ sudo pip install pifacedigitalio
      2. Requirement already satisfied: pifacedigitalio in /usr/local/lib/python2.7/dist-packages/pifacedigitalio-3.0.5-py2.7.egg
      3. pi@doorpi:~/py-spidev $ sudo pip install pifacecommon
      4. Requirement already satisfied: pifacecommon in /usr/local/lib/python2.7/dist-packages/pifacecommon-4.1.2-py2.7.egg
      Hatte ich schon gemacht, bringt weder das Verzeichnis noch das spi.py file.
    • Danke @Wal damit habe ich jetzt das spi.py file bekommen.

      Quellcode

      1. pi@doorpi:~ $ sudo pip uninstall pifacedigitalio
      2. Uninstalling pifacedigitalio-3.0.5:
      3. /usr/local/lib/python2.7/dist-packages/pifacedigitalio-3.0.5-py2.7.egg
      4. Proceed (y/n)? y
      5. Successfully uninstalled pifacedigitalio-3.0.5
      6. Traceback (most recent call last):
      7. File "/usr/local/bin/pip", line 11, in <module>
      8. load_entry_point('pip==9.0.1', 'console_scripts', 'pip')()
      9. File "/usr/local/lib/python2.7/dist-packages/pip/__init__.py", line 233, in main
      10. return command.main(cmd_args)
      11. File "/usr/local/lib/python2.7/dist-packages/pip/basecommand.py", line 252, in main
      12. pip_version_check(session)
      13. File "/usr/local/lib/python2.7/dist-packages/pip/utils/outdated.py", line 102, in pip_version_check
      14. installed_version = get_installed_version("pip")
      15. File "/usr/local/lib/python2.7/dist-packages/pip/utils/__init__.py", line 838, in get_installed_version
      16. working_set = pkg_resources.WorkingSet()
      17. File "/usr/local/lib/python2.7/dist-packages/pip/_vendor/pkg_resources/__init__.py", line 644, in __init__
      18. self.add_entry(entry)
      19. File "/usr/local/lib/python2.7/dist-packages/pip/_vendor/pkg_resources/__init__.py", line 700, in add_entry
      20. for dist in find_distributions(entry, True):
      21. File "/usr/local/lib/python2.7/dist-packages/pip/_vendor/pkg_resources/__init__.py", line 1949, in find_eggs_in_zip
      22. if metadata.has_metadata('PKG-INFO'):
      23. File "/usr/local/lib/python2.7/dist-packages/pip/_vendor/pkg_resources/__init__.py", line 1463, in has_metadata
      24. return self.egg_info and self._has(self._fn(self.egg_info, name))
      25. File "/usr/local/lib/python2.7/dist-packages/pip/_vendor/pkg_resources/__init__.py", line 1823, in _has
      26. return zip_path in self.zipinfo or zip_path in self._index()
      27. File "/usr/local/lib/python2.7/dist-packages/pip/_vendor/pkg_resources/__init__.py", line 1703, in zipinfo
      28. return self._zip_manifests.load(self.loader.archive)
      29. File "/usr/local/lib/python2.7/dist-packages/pip/_vendor/pkg_resources/__init__.py", line 1643, in load
      30. mtime = os.stat(path).st_mtime
      31. OSError: [Errno 2] Datei oder Verzeichnis nicht gefunden: '/usr/local/lib/python2.7/dist-packages/pifacedigitalio-3.0.5-py2.7.egg'
      32. pi@doorpi:~ $ sudo pip uninstall pifacecommon
      33. Uninstalling pifacecommon-4.1.2:
      34. /usr/local/lib/python2.7/dist-packages/pifacecommon-4.1.2-py2.7.egg
      35. Proceed (y/n)? y
      36. Successfully uninstalled pifacecommon-4.1.2
      37. Traceback (most recent call last):
      38. File "/usr/local/bin/pip", line 11, in <module>
      39. load_entry_point('pip==9.0.1', 'console_scripts', 'pip')()
      40. File "/usr/local/lib/python2.7/dist-packages/pip/__init__.py", line 233, in main
      41. return command.main(cmd_args)
      42. File "/usr/local/lib/python2.7/dist-packages/pip/basecommand.py", line 252, in main
      43. pip_version_check(session)
      44. File "/usr/local/lib/python2.7/dist-packages/pip/utils/outdated.py", line 102, in pip_version_check
      45. installed_version = get_installed_version("pip")
      46. File "/usr/local/lib/python2.7/dist-packages/pip/utils/__init__.py", line 838, in get_installed_version
      47. working_set = pkg_resources.WorkingSet()
      48. File "/usr/local/lib/python2.7/dist-packages/pip/_vendor/pkg_resources/__init__.py", line 644, in __init__
      49. self.add_entry(entry)
      50. File "/usr/local/lib/python2.7/dist-packages/pip/_vendor/pkg_resources/__init__.py", line 700, in add_entry
      51. for dist in find_distributions(entry, True):
      52. File "/usr/local/lib/python2.7/dist-packages/pip/_vendor/pkg_resources/__init__.py", line 1949, in find_eggs_in_zip
      53. if metadata.has_metadata('PKG-INFO'):
      54. File "/usr/local/lib/python2.7/dist-packages/pip/_vendor/pkg_resources/__init__.py", line 1463, in has_metadata
      55. return self.egg_info and self._has(self._fn(self.egg_info, name))
      56. File "/usr/local/lib/python2.7/dist-packages/pip/_vendor/pkg_resources/__init__.py", line 1823, in _has
      57. return zip_path in self.zipinfo or zip_path in self._index()
      58. File "/usr/local/lib/python2.7/dist-packages/pip/_vendor/pkg_resources/__init__.py", line 1703, in zipinfo
      59. return self._zip_manifests.load(self.loader.archive)
      60. File "/usr/local/lib/python2.7/dist-packages/pip/_vendor/pkg_resources/__init__.py", line 1643, in load
      61. mtime = os.stat(path).st_mtime
      62. OSError: [Errno 2] Datei oder Verzeichnis nicht gefunden: '/usr/local/lib/python2.7/dist-packages/pifacecommon-4.1.2-py2.7.egg'
      63. pi@doorpi:~ $ sudo pip install pifacedigitalio
      64. Collecting pifacedigitalio
      65. Downloading pifacedigitalio-3.0.5.tar.gz
      66. Building wheels for collected packages: pifacedigitalio
      67. Running setup.py bdist_wheel for pifacedigitalio ... done
      68. Stored in directory: /root/.cache/pip/wheels/23/8d/1f/bd458a7a7852bbf4b21f2c173970df29983f82f635375de2d6
      69. Successfully built pifacedigitalio
      70. Installing collected packages: pifacedigitalio
      71. Successfully installed pifacedigitalio-3.0.5
      72. pi@doorpi:~ $ sudo pip install pifacecommon
      73. Collecting pifacecommon
      74. Downloading pifacecommon-4.1.2.tar.gz
      75. Building wheels for collected packages: pifacecommon
      76. Running setup.py bdist_wheel for pifacecommon ... done
      77. Stored in directory: /root/.cache/pip/wheels/be/95/92/e695f6fcb4b7852848febfca57d02eda780231afb35286679b
      78. Successfully built pifacecommon
      79. Installing collected packages: pifacecommon
      80. Successfully installed pifacecommon-4.1.2
      81. pi@doorpi:~ $ sudo find / -name spi.py
      82. /usr/local/lib/python2.7/dist-packages/pifacecommon/spi.py
      Alles anzeigen
    • Hallo leute,

      nachdem ich die pifacecommon 6 mal deinstalliert und neu installiert habe war die pifacecommon/spi.py dann endlich auch vorhanden...

      wann muss das piface auf den ras gesetzt werden? es steckt bei mir die ganze zeit drauf und es tut sich einfach nix,
      doorpi web ist nicht zu erreichen...

      sobald ich es herunter nehme ist doorpi zu erreichen...

      muss es vorher in der doorpi.ini konfiguriert werden?

      der gerät bring mich noch zum verzweifeln :)

      jetzt bekomme ich
      pi@raspberrypi:~ $ python /usr/share/doc/python-pifacedigitalio/examples/blink.py

      Quellcode

      1. Traceback (most recent call last): File "/usr/share/doc/python-pifacedigitalio/examples/blink.py", line 9, in <mo dule> pifacedigital = pifacedigitalio.PiFaceDigital() File "/usr/local/lib/python2.7/dist-packages/pifacedigitalio/core.py", line 82 , in __init__ self.init_board() File "/usr/local/lib/python2.7/dist-packages/pifacedigitalio/core.py", line 10 2, in init_board self.iocon.value = ioconfig File "/usr/local/lib/python2.7/dist-packages/pifacecommon/mcp23s17.py", line 2 38, in value self.chip.write(v, self.address) File "/usr/local/lib/python2.7/dist-packages/pifacecommon/mcp23s17.py", line 1 63, in write self._pyver_write(data, address) File "/usr/local/lib/python2.7/dist-packages/pifacecommon/mcp23s17.py", line 1 71, in _py2write self.spisend(chr(ctrl_byte)+chr(address)+chr(data)) File "/usr/local/lib/python2.7/dist-packages/pifacecommon/spi.py", line 69, in spisend speed_hz=ctypes.c_unit32(15000)AttributeError: 'module' object has no attribute 'c_unit32'

      Grüsse Schweizer
    • Hey,

      bin jetzt mit Doorpi auf Stretch umgezogen, Instalation und doorpi laufen.
      Nur das Piface2 macht mich gerade ratlos und ich sehe mich schon 2 tage im Internet zu verbringen bis es läuft........

      Quellcode

      1. Damit wird dann z. B. das Relais K0 angesteuert:
      2. Quellcode
      3. gpio -p write 200 1

      Das klappt und das Relais schaltet.

      Nur wie bringe ich es in meine bisherigen doorpi.ini unter, bzw. tausche die Befehle aus?

      hier die bisherigen Befehle:

      Quellcode

      1. [keyboards]
      2. onboardpins = piface
      3. [onboardpins_keyboard]
      4. bouncetime = 200
      5. polarity = 0
      6. [onboardpins_InputPins]
      7. 1 = Klingel
      8. [onboardpins_OutputPins]
      9. 0 = Tueroeffner
      10. 1 = Amp
      11. [DTMF]
      12. 96 = out:Tueroeffner,1,0,3
      13. [EVENT_OnKeyPressed_onboardpins.1]
      14. 10 = os_execute:/usr/local/etc/DoorPi/scripts/klingel.sh
      15. 20 = call:11
      16. 30 = out:Amp,1,0,100
      Alles anzeigen
      EDIT:



      Sorry, klappt jetzt einwandfrei - hatte falsche ini Einträge, es muss nichts angepasst,ausgetauscht werden......
      Lasse das jetzt hier so stehen - eventuell hat in Zukunft jmd die selbe Leere im Kopf ;)
      Der Doorpi.ini Auszug oben läuft so wie er ist.

      Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von davimas ()