Forum: Mikrocontroller und Digitale Elektronik Mit Raspberry Pi 2 über Can-Bus BLDC-Motoren steuern


von Fabi D. (cange)


Lesenswert?

Hallo zusammen,

ich bin neu hier und mehr oder weniger der absolute Anfänger....

Ich will mit einem Raspberry Pi 2 über Can-Bus BLDC-Motoren ansteuern.

Die BLDC-Motoren sind Dunkermotoren mit integrierter Regelelektronik. 
Die Motoren konnte ich bereits über einen Windows Laptop mit einem 
Python Skript ansteuern. Diese Ansteuerung möchte ich nun über das 
Raspberry Pi vornehmen.

Ich bin dabei nachdem ich das Canboard über "ifconfig" sehen konnte nach 
dieser Anleitung vorgegangen:
http://skpang.co.uk/blog/archives/1220

Hier komme ich bei dem Schritt "import can" nicht weiter. Ich habe 
bereits die Python Version 3.4.3 installiert. Allerdings benutze ich 
noch das Wheezy Betriebssystem.

Hat jemand vielleicht Erfahrung oder schon ein Projekt realisiert bei 
dem er mit einem Python-Skript Befehle auf den Can-Bus ausgibt?

Beste Grüße

von Karl (Gast)


Lesenswert?

Fabi H. schrieb:
> Hier komme ich bei dem Schritt "import can" nicht weiter

Hast du auch die Dateien wie beschrieben runtergeladen und installiert?

von Fabi D. (cange)


Lesenswert?

Ja, habe alle Dateien runtergeladen und entsprechend installiert. Soweit 
hat das auch ohne Probleme funktionert...
Habe mittlerweile ein upgrade von wheezy auf jessie durchgeführt, leider 
geht es immer noch nicht...
Es kommt immer wieder folgende Fehlermeldung:

Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: NO module named 'can'

von Uwe A. (uwe_arzt)


Lesenswert?

Da muss noch das entsprechende Python Module installiert werden, z.B.
1
pip install cantools

auf https://pypi.python.org kannst du nach den Modulen schauen, hier 
z.B. https://pypi.python.org/pypi/cantools/1.0.0

ich weiss nicht, ob das obige Modul das richtige ist, dazu hast du etwas 
zu wenig Sourcecode preisgegeben ;)

Grüße

Uwe

von Fabi D. (cange)


Lesenswert?

Hi Uwe,
danke für die schnelle Antwort.
Wie kann ich denn herausfinden, welches Modul ich benötige?

Gruß

von Christopher J. (christopher_j23)


Lesenswert?

Sieht mir nach python-can aus.

https://bitbucket.org/hardbyte/python-can

bzw.

https://python-can.readthedocs.org/en/latest/index.html


Edit:
Das steht doch sogar in dem Link den du gepostet hast.

von Fabi D. (cange)


Lesenswert?

Okay habs mittlerweile hinbekommen... Hatte Probleme mit der 
Python-Version.
Ich bin mir immer noch nicht sicher ob die Verbindung vom Canboard zum 
Motor funktioniert. Wollte jetzt ein Testprogramm laufen lassen, dabei 
funktioniert aber der Import eines Moduls nicht...

Fehler:
"ImportError: No module named 'mc'"



Hier das Programm:


# Import

from mc.dsa import *

NodeId = 127                                             # Knotenadresse


#----------------------------------------------------------------------- 
--------------------------------------------------------------
# Initialisierung

mc.Can.SdoWr(NodeId, 0x3003, 0, 3)                       # Betriebsart 
"Drehzahlregelung"

#----------------------------------------------------------------------- 
--------------------------------------------------------------
# Start des Testprogramms

mc.Can.SdoWr(NodeId, 0x3000, 0, 1)                       # Fehler 
löschen
mc.Can.SdoWr(NodeId, 0x3004, 0, 1)                       # 
Betriebsfreigabe einschalten
mc.Delay(100)                                            # 100ms 
Verzögerung für Regelfreigabe
mc.Can.SdoWr(NodeId, 0x3150, 0, 1)                       # Zur 
Sicherheit Bremse öffnen

a = 0

while (a < 2):
   mc.Can.SdoWr(NodeId, 0x3300, 0, 500)
# Sollgeschwindigkeit 5000 1/min
   mc.Delay(2000)                                        # 2s Pause
   mc.Can.SdoWr(NodeId, 0x3300, 0, 0)
# Sollgeschwindigkeit 0 1/min
   mc.Delay(2000)                                        # 2s Pause
   mc.Can.SdoWr(NodeId, 0x3300, 0, 1000) 
# Sollgeschwindigkeit 1000 1/min
   mc.Delay(2000)                                        # 2s Pause
   mc.Can.SdoWr(NodeId, 0x3300, 0, 0)
# Sollgeschwindigkeit 0 1/min
   mc.Delay(2000)                                        # 2s Pause
   mc.Can.SdoWr(NodeId, 0x3300, 0, 300)
# Sollgeschwindigkeit 300 1/min
   mc.Delay(2000)                                        # 2s Pause
   mc.Can.SdoWr(NodeId, 0x3300, 0, 0)
# Sollgeschwindigkeit 0 1/min
   mc.Delay(5000)                                        # 5s Pause
   a = a+1

von Kevin Just (Gast)


Lesenswert?

wurde hierzu dann noch eine Lösung gefunden?

Habe nämlich das gleiche Problem, ich finde das mc Paket nicht. Auch 
verschiedenste Google Recherchen führen mich leider nicht zu Ziel.

Daher, hat das hier schon mal jemand benutzt und wie installiere ich das 
Paket

von Daniel B. (dbuergin)


Lesenswert?

Komischer Thread. Das Testprogram hat nichts mit dem Link zu tun, auf
den der TO referenziert. http://skpang.co.uk/blog/archives/1220
Da ist in keinem der Testprogramme das "mc.dsa" Modul drin.

Frag mal bei https://www.python-forum.de/viewtopic.php?t=29540 nach,
den Link habe ich in Google gefunden.

von Thorsten O. (Firma: mechapro GmbH) (ostermann) Benutzerseite


Lesenswert?

Die Dateien sollten in im mPLC-Paket enthalten sein. Ich habe das Paket 
mal hochgeladen:
http://mechapro.de/pdf/mPLC-V2.80.00.00-Setup.zip

Den RasPi brauchst du u.U. gar nicht. Wenn der Controller die gleichen 
Funktionalitäten hat wie die Stand-Alone Regler von miControl, kannst Du 
Phyton-Scripte kompilieren und als user-Programm direkt auf dem Gerät 
ausführen.

Mit freundlichen Grüßen
Thorsten Ostermann

von HVV (Gast)


Lesenswert?

Lade Dir bei Dunkermotoren den DunkerDriveAssistant herrunter,wenn Du 
damit den Motor in Betrieb setzen kannst, ist die Verbindung Ok.
 Damit das so mit dem 'import' klappt muss der Ort der Bibliotheken in 
der PATH Variablen des PCs eingetragen sein, andernfalls solltest Du in 
dem Python Script den kompletten Phad mit angeben. Das Problem kann z.B. 
auftreten wenn man nach Installation von mPLC noch einen zweiten Python 
Interpreter installiert.

von wolfgang reichel (Gast)


Lesenswert?

Ist aus dem Projekt noch was geworden? Würde auch gerne mit dem 
Raspberry ein BG Motor ansteuern.
Wenn ja hast du MiControl Bibliotheken für Linux gefunden :)

Viele Grüße

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.