PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Python: curses UND smbus in python2/3



SGH pRO.BOTICS
04.12.2014, 19:39
Hallo,
wir haben mal wieder ein kleines Problem, bei dem uns hier sicher jemand helfen kann.

Zuerst eine kleine Beschreibung unseres Projekts:
Wir wollen einen Roboter auf RPI-Basis bauen, welchen man mittels Putty vom PC aus steuern kann. Dazu wollen wir ein Programm in Python schreiben, welches die Pfeiltasten einliest und die ermittelten Daten über I2C zu einem Arduino schickt, welcher dann mehrere Schrittmotoren ansteuert. Das Programm welches die Tasten einliest haben wir bereits in python3 mit curses realisiert.

Um die Daten an den Arduino zu senden brauchen wir allerdings die smbus Library, die es nur in python2 gibt. Wie kann man dieses Programm entweder in python2 bzw. 3 realisieren? Kann man smbus bei python3 irgendwie nachinstallieren?

Wir würden uns über eine Antwort sehr freuen!


Mit freundlichen Grüßen

SGH-pRO.BOTICS

Mcgrizzly123
04.12.2014, 22:31
Hi
ich habs zwar nicht getestet, kann ich morgen mal machen, aber hier ist das was ich dazu gefunden habe.

http://procrastinative.ninja/2014/07/21/smbus-for-python34-on-raspberry/

SGH pRO.BOTICS
05.12.2014, 07:04
OK, vielen Dank für die schnelle Antwort!
Wir werden es auch einmal ausprobieren wenn wir wieder am Projekt weiterarbeiten (Dienstag).

MfG

SGH pRO.BOTICS

SGH pRO.BOTICS
05.12.2014, 17:45
So, da ich es nicht mehr abwarten konnte, habe ich die vorgeschlagene Variante gerade mal (unter Raspbian 3.12.28+) ausprobiert:
Anfangs funktioniert sie auch wunderbar, leider jedoch nur bis zum Punkt ,,python --Version"; Diese Funktion gibt nämlich immer noch Python 2.7.3 zurück, anstatt der vorausgesetzten Python-Version 3.4.1 . . .

Vielleicht gibt es ja noch eine andere Möglichkeit; eine andere I2C-Library wäre auch super. :confused:

MfG

SGH pRO.BOTICS

SGH pRO.BOTICS
15.12.2014, 16:01
Hat hier wirklich niemand mehr eine Idee? :(

peterfido
15.12.2014, 16:18
Im Zweifel Python vom svn laden und selbst kompilieren, wenn es denn das da gibt.

Edit:
Versuch mal



apt-get update
apt-get install python3


Evtl. musst Du auch statt python einfach irgendwo python3 schreiben.

SGH pRO.BOTICS
15.12.2014, 19:40
Hab's gerade mal schnell getestet, aber das war es leider auch nicht.
Python3 ist bereits installiert.

Fakt ist jedenfalls, dass weder:


python3 Test.py

noch


sudo python3 Test.py
funktioniert.

Unter python1 und python2 kann man ja ganz problemlos die SMBUS-Library nehmen, allerdings sind Tastatureingaben (curses) mit python3 deutlich einfacher/besser zu realisieren.

Ich meine nur, es muss doch irgendeine I2C-Library für python3 geben, oder müssen wir tatsächlich c++ nehmen??? :(

Hat da jemand noch eine andere Idee?


SGH pRO.BOTICS

peterfido
15.12.2014, 21:00
Ich habe nur zwei gefunden:

root@raspberrypibalkon:~# apt-cache search smbus
python-smbus - Python bindings for Linux SMBus access through i2c-dev
pypy-smbus-cffi - This Python module allows SMBus access through the I2C /dev



und dann noch

root@raspberrypibalkon:~# apt-cache search i2c
i2c-tools - heterogeneous set of I2C tools for Linux
libglui2c2 - GLUI, a C++ GLUT based GUI library - Runtime support
libi2c-dev - userspace I2C programming library development files
libow-2.8-15 - 1-Wire File System full library
libow-dev - 1-Wire File System (development files)
libow-perl - Dallas 1-wire support: Perl5 bindings
libow-php5 - Dallas 1-wire support: PHP5 bindings
libow-tcl - Dallas 1-wire support: Tcl bindings
libowcapi-2.8-15 - 1-Wire File System C library
libownet-2.8-15 - owserver protocol library
libownet-dev - owserver protocol library (development files)
navi2ch - 2channel Navigator for Emacs
ow-shell - shell utilities to talk to an 1-Wire owserver
owfs-dbg - Debugging symbols for the OWFS packages
owfs-fuse - 1-Wire filesystem
owftpd - FTP daemon providing access to 1-Wire networks
owhttpd - HTTP daemon providing access to 1-Wire networks
owserver - Backend server for 1-Wire control
python-ow - Dallas 1-wire support: Python bindings
python-smbus - Python bindings for Linux SMBus access through i2c-dev
sensors-applet - Display readings from hardware sensors in your Gnome panel
softgun - ARM system emulator
xmlrpc-api-utils - Generate C++ wrapper classes for XML-RPC servers
pypy-smbus-cffi - This Python module allows SMBus access through the I2C /dev
root@raspberrypibalkon:~#




Edit:
Hier (http://www.raspberrypi.org/forums/viewtopic.php?f=32&t=22348)hat einer das gebaut, was Du suchst.

SGH pRO.BOTICS
16.12.2014, 10:59
Tut uns Leid, aber alle Vorschläge die Sie geschrieben haben, haben nicht funktioniert...
Hat vielleicht noch jemand irgendeine andere Idee?
Mit freundlichen Grüßen
SGH pRO.BOTICS