Enviolo (Nuvinci) + Arduino für Rollstuhl

Hallo Leute,
ich suche Unterstützung bei der Umsetzung eines "sozialen" Projektes, in welchem ein enviolo (ehemals Nuvinci) Getriebe in einem Kinderrollstuhl verbaut werden soll. Die Ansteuerung des Getriebes (insgesamt 2) erfolgt über je einen elektrischen Stellantrieb. Dieser basiert auf einem CAN-Bus Protokoll. Da sich die Ansteuerung eines E-Bikes wesentlich von der eines Rollstuhls unterscheidet, konnte uns der Hersteller auch nicht weiter helfen. Ich überlege nun den 3 Phasen DC Motor mit den 3 Hall-Sensoren direkt zu steuern oder den CAN-Bus zu verwenden. Aber von CAN-Bus habe ich 0 Ahnung und bitte daher auf diesem Wege um Hilfe.
Ich bräuchte mal Eure Meinung, wie man vorzugsweise an das Problem heran gehen sollte.
Neue Platine und Motor drauf, oder CAN-Bus auslesen und versuchen, diesen zu verstehen?

Welche Kenntnisse besonders hinsichtlich Programmierung kannst Du in die Waagschale werfen?

Das einzige Stichwort, das ich kenne, ist CAN-Bus: UNO - Mega - Teensy mittels CAN-Bus verbinden.

Wenn man raten muß, welches Bit welche Bedeutung hat, kann das recht langwierig werden. Wenn Du vom Hersteller ein paar Informationen abgreifen könntest, wäre das beschleunigend. Ein Versuch könnte aber lohnen.

Mal geraten: Du willst einen Antrieb mit Getriebe in einen Rollstuhl einbauen. Welche Rolle soll der Arduino dabei spielen?

Hallo agmue,
meine Programmierkenntnisse würde ich mit Anfängerniveau beschreiben, habe aber einige Projekte schon erfolgreich umgesetzt. Es soll jedoch kein Antrieb eingebaut werden, das Getriebe, es handelt sich dabei um ein Reibgetriebe, wird über einen Stellantrieb stufenlos eingestellt. Die Antriebskraft kommt vom Nutzer selbst, nur eben komfortabel übersetzt. Es soll die Kraft am Antriebshebel und die Drehzahl der Räder in die Steuerung einfließen. Die Übersetzung richtet sich nach der voreingestellten Maximalkraft, diese bestimmt dann die Geschwindigkeit über das Übersetzungsverhältnis. So ähnlich funktionieren die neusten Steuerungen auch schon, aber eben für Fahrräder mit einem Pedalantrieb.

Abgesehen von dieser individuell einzustellenden Maximalkraft, was ist denn der Unterschied zwischen Pedal- und Handantrieb?

beim Pedalbetrieb handelt es sich um eine nahezu kontinuierliche drehrichtungsdefinierte Krafteinleitung, der Hebelantrieb nutzt eine Vor- und Rückbewegung. Die Umfangsgeschwindigkeit eines Rollstuhlrades unterscheidet sich wesentlich von der eines Fahrrades, auch ist der Krafteintrag durch den größeren Hebel beim Rollstuhl mit dem der Pedale nicht zu vergleichen. Die Sensorik passt tatsächlich nicht, das habe ich bereits ausführlich getestet. Die Problematik ist schon sehr interessant, jedoch würden wir bei einer weiteren Vertiefung vom Thema abkommen, ich brauche aktuell eher Aussagen wie: CAN-Bus ..wo ist das Problem.. oder: lass die Finger davon, das schaffst Du nie, zu kompliziert....

Wenn Du meinem Link aus #2 folgst, findest Du eine Kommunikation per CAN-Bus, die mir einfach und verständlich erscheint. Wie würdest Du das für Dich einordnen?

Wenn man hingegen versucht, eine vorhandene Kommunikation ohne Dokumentation zu verstehen, kann das zäh werden. Versucht der Hersteller das Entschlüsseln zu erschweren, wird es mit vertretbarem Aufwand unmöglich.

Das Problem ist also nicht der CAN-Bus, sondern das möglicherweise notwendige Re-Engineering der Kommunikation.

zu 1: das hatte ich mir angesehen, dort geht es nach meinem Verständnis jedoch um die Nutzung des für den Arduino verfügbaren CAN-BUS Shields, also um eine separate Problematik
zu 2: ja, sehe ich auch so, der Aufwand ist nicht abschätzbar, schade...

Vielleicht sollte ich im Forum noch einmal neu mit der Thematik 3 Phasen DC Motor B4222S starten, denn das ist die andere Seite der Medaille, diesen anzusteuern. Der hat zwar eigentlich 3 Phasen aber tatsächlich 6 Anschlüsse und die werden auf der Platine über ICs gesteuert, hierzu gibt der Hersteller aber auch keine Auskunft. Nach meinen Recherchen, wird der Motor nur in diesem Stellantrieb verbaut. Du siehst, ich stecke ganz schön in der Zwickmühle. :roll_eyes:


Warum nimmst du nicht den normalen handantrieb und verzichtest auf die harmony elektronik?
Die macht bei mir eh nur probleme weil sie ständig heiss läuft, und die manuellen züge dürften sich recht leicht mit einem Servo steuern lassen.

zu 1: Der UNO hat keine spezelle Hardware für den CAN-Bus, daher ist eine externe Hardware notwendig. Teensy 3.2 und ESP32 haben eingebaute CAN-Bus-Hardware, benötigen aber externe Treiber. Irgendwie was dranbauen muß man also immer.

Der Hersteller des Motors oder des Rollstuhles?

Ich würde mich an den Motorhersteller halten - wie gut ist Dein English (Chinesisch frage ich mal nicht).

Was gibt der Motor an Daten her?

Ist das der hier?
http://www.hengdrive.com/UploadFiles/Others/20190617110654_64462.pdf
(kein https - ist halt China)

ja, das ist dann mein Plan C, aber man will ja immer erst einmal die "smarte" Varianten probieren.

ja, der ist es, mit dem Hersteller habe ich schon Kontakt aufgenommen, von dort kommt aber nur ein Werbeprospekt und der Hinweis: 3 Phasenmotor mit Hallsensoren. Motor-Controller in der Spannungsklasse und dem Leistungsbereich mit PWM Eingang sind kein Problem, die sind erhältlich. Blöd ist eben, dass 6 Spulenpaare aus dem Stator kommen und diese über ICs verschaltet sind.
@..xy.. ich bin übrigens fleißig dabei deine Anleitung zu lesen, hilft mir sehr weiter (mit Verlaub, ich glaube auf Seite 13, müsste in der 2. Textzeile 40 mA statt 20 stehen)

der Rollstuhl ist eine auf das Projekt bezogene Sonderanfertigung

Oh - egal welche. Ich habe bisher eher keine geschrieben, wo 20/40 mA eine Rolle spielen :wink: - Aber: Wenn Du auf das pdf von Andreas Nagel zurückgreifst, welches ich wegen der Nichtverfügbarkeit der Quelle angeheftet habe, dann ist da tatsächlich eine - ich nenne es mal sprachliche Ungenauigkeit.
Weil das geht auch, wenn 10 Pins drin stehen :slight_smile:

Ich weiss, das er für Anregungen und Korrekturen sehr offen ist....

Moment - bist Du Dir sicher, das da 6 Spulenpaare drin sind?
Ich lese da raus, das es auch 3 Paare und entsprechende Sensoren sein könnten....

Ja, da bin ich ziemlich sicher, die Sensoren sind auf der Platine extra verbaut und im Rotor ist ein zusätzlicher Magnet für diese eingeklebt. Aber ziemlich sicher ist eben auch nicht 100 Prozent, ein russisches Sprichwort sagt: „alle einhundert Jahre schießt auch mal ein Besenstiel“

ist die einseitig?
eigentlich egal, aber macht es einfacher. Kannst Du mal ein schönes Foto von der Platine genau von Oben machen, damit man alles erkennen kann? Dann lässt sich ggfls rausbekommen, wo die Sensoren hingehen und was an Bauteilen verbaut ist?
Da sollte sich doch was draus machen lassen...

Danke!

die PCB ist min. 3 lagig

ok, gern
image

1 Like

Na das ist doch schon mal was...
Die Auflösung ist leider zu klein.
Steht was auf den 6IC - letztes Bild?
Das müssten die Treiber sein.

Der Motor hat drei Wicklungen - die werden beidseitig bestromt.
Die Hallsensorik ist dann wohl auch für eine Richtungserkennung.

Der Controller (Rückseite über dem CAN-Anschluss) wird einiges selber machen - da stellt sich die Frage, ob Du auf dem CAN die Parameter ändern kannst.
Hm..
Na mal schaun, ob was bei den Treibern raus kommt...

Bei Brushless Motorensteuerungen werden gerne sechs Transistoren verwendet, die dann auf drei Anschlüsse am Motor gehen.

Dann bin ich gerade über dieses Bild gestolpert Quelle:

Man sieht drei Anschlüsse für die Wicklungen und weitere für Hallsensoren. Das bringt mich auf die Idee, ob die roten Kringel auf Deinem Bild der Rückseite die Anschlüsse für die Wicklungen sind, während die gelben für Sensoren verwendet werden.