mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Linear Schrittmotor bei Pollin, ggf. mit Treiberplatine


Autor: Stepper (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Leute,

bei Pollin gibt es unter der Bestellnr. 310446 den Schrittmotor MOONS 
14HY7002-006, je nach Lieferung mit oder ohne Treiberplatine (siehe 
Anlage).

Auf der Treiberplatine ist ein PIC16LF819 verbaut. Ich denke, dass die 
Platine über I²C-Bus angesprochen wird. Auf der Platinenunterseite ist 
eine Mini-Lichtschranke bestückt, die vermutlich zum Anfahren des 
Referenzpunktes dient (Stieft in Alu-Nut).

Die ganze Mechanik ist sehr solide (gefrästes Alu). Der Stempel (braunes 
Teil) kann durch eigene Mechanik (M8-Innengewinde) ersetzt werden.

Fazit:
Mechanik: Gutes solides Teil zum Basteln
Elektronik: Auch sehr gut, wenn man ein Reverse Engineering betreibt.

Frage:
Hat schon einer versucht die Elektronik (Bus-Protokoll) zu 
entschlüsseln?

: Verschoben durch Admin
Autor: V. Baumann (dr-robotnik)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hehe, ich habe mir auch gleich einpaar davon auf Vorrat bestellt. Kamen 
beide mit Treiberplatine, eins davon allerdings ohne Verbindungskabel 
zwischen Motor un Platine. Mal sehen was sich damit machen lässt.

Autor: Kai B. (kaib) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Auf der kleinen Platine ist wohl sogar die Treiberschaltung für den 
Motor mit drauf die 4 IC die mit 333 gekennzeichnest sind.
http://www.fairchildsemi.com/ds/FD%2FFDC6333C.pdf

Die ICs die mit 3059 beschriftet sind konnte ich leider noch nichts 
drüber finden aber hier gehen die Gates der Fets hin.

MfG Kai

Autor: Kai B. (kaib) Benutzerseite
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hm anscheinend kann man im nachhinein keine Bilder mehr anhängen.

Autor: Alex M. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
hat schon jemand von euch das Teil zum "drehen" gebracht? Ich hab 3 
Stück geliefert bekommen, alle mit Platine. Schaltung ist soweit auch 
klar, der 3059 dürfte ein dual n-kanal Mosfet zur Pegelwandlung sein. 
Evtl. kann ja ein PIC-Anhänger mal Versuchen den 16lf819 auszulesen. Ich 
hab leider keine Hardware für PIC's.

Gruß und frohes Fest

Alex

Autor: Markus D. (daubsi)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich habe mir unlängst auch diesen Artikel bestellt. Meiner wurde 
allerdings ohne Platine geliefert, d.h. nur der blanke Motor, sonst 
nichts.

Was kann ich denn mit dem Ding so nun anfangen? Ohne diese 
Controllerplatine ist das vermutlich nur ein hübscher Briefbeschwerer?
Ich wollte eigentlich nur einen Schrittmotor mit kleiner Schrittweite um 
damit zu experimentieren, soll heißen ich bin Knowhow-mäßig nicht in der 
Lage mir so eine Steuerung selbst zusammen zu zimmern...

... braucht eventuell einer seine Platine+Anschlußkabel nicht und könnte 
mir die zukommen lassen?

Autor: Philipp (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
es wird wohl komplizierte für  dich sein, diese treiberplatine 
anzusprechen als einetreiberschaltung aufzubauen oder als bausatzt zu 
kaufen

Autor: Markus D. (daubsi)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich glaube aber kaum, dass es einen Treiber gibt, der diesen 
entsprechenden Stecker besitzt, oder?

Autor: Lehrmann Michael (ubimbo)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich möchte behaupten, dass das die Platine per I2C anzusteuern ist. 
Hierfür spricht Pin 11 (SCK/SCL) und der Pulldown.

Autor: ZweiCroissantBidde (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert

Autor: Markus D. (daubsi)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich habe inzwischen auch ein Modell mit Platine. Was ich nicht so ganz 
verstehe: Wenn der Motor so verkauft wird, dann muß es doch auch 
irgendwo zwangsläufig eine Beschreibung dazu geben?
Oder sind das dann Motoren die nur in einem größeren Gerät eingebaut 
sind und gar nicht einzeln verkauft werden?

Hat denn schon jemand etwas mehr zu dem Motor rausgefunden, sprich, 
wofür welcher Kontakt ist und was die Druckschalter machen?

Autor: Stepper (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

seit meinem ersten Eintrag, gibt es nur eine neue Information:

>Auf der kleinen Platine ist wohl sogar die Treiberschaltung für den
>Motor mit drauf die 4 IC die mit 333 gekennzeichnest sind.
>http://www.fairchildsemi.com/ds/FD%2FFDC6333C.pdf


Das I²C-Protokoll (Kommandos) ist ohne Gegenstellen Hardware (Sender) 
nicht zu entschlüsseln.

Das einfachste ist den PIC neu zu programmieren und eigene Kommandos zu 
implementieren (und offen legen).
Hätte ich schon längst gemacht, wenn die PICs meine Prozessorwelt wäre.

Aufwand für einen PICler ca. ein paar Stunden.

Vielleicht hat ja einer interesse?

Autor: Ralf G. (micro-merlin)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hoch interessanter Beitrag.
Für alle die sich doch noch ein bisschen an dem Rätsel beteiligen 
wollen, hier ein weiterer Hinweis:
Die I2C Basisadresse meiner Einheit ist 28 und 29.
Bewegen kann ich den Motor allerdings noch nicht.
Wie beim ursprüngliche Autor auch, sind die PICs 'leider' auch nicht 
meine Welt.

Gruß,
micro-merlin

Autor: Bingo (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hmm

Habe 4 stuck kriegt heute.

1 mit platine , und 3 mit nur motor :-(

mfg
Bingo Dänemark

Autor: Ralf G. (micro-merlin)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Bingo,
ärgere Dich nicht so sehr, denn wenn wir keinen PICler finden der das 
HEX-File extrahiert werden wir wohl nicht wirklich weiter kommen.
Eine Info habe ich noch.
Die zu sendenden Befehle sind scheinbar so aufgebaut das das erste 
gesendete Byte die Befehlslänge definiert.
Beispiel: sendet man dem Modul nach der 'Writeadress' den Wert 2, so 
erwartet es noch 4 weitere Befehlsbytes. Sendet man nach der 
'Writeadress' den Wert 0, so wird ein Befehlscode erwartet der 2 Byte 
lang ist. Diese Systematik läßt sich nach oben erweitern. Es werden 
immer (Wert + 2) Byte erwartet.
Sagt man dem Modul das man lesen möchte so schickt es maximal 20 Byte 
zurück.

PS. Wenn jemand das HEXFILE postet, arbeite ich mich in den 
Assemblercode ein und decodiere das Programm,obwohl ich eigentlich der 
ATMEL-Familie angehöre.
Ich war sogar die letzten Tage schon drauf und dran mit einen 
PIC-Prommer zuzulegen und das File selbst auszulesen, konnte mich dann 
aber kurz vorm Kauf immer noch zügeln denn mit Vernunft hat das nichts 
zu tun.

Gruß,
micro-merlin

Autor: Stepper (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Ralf G.
Ich denke es ist viel einfacher ein neues Protokoll (Befehle) 
aufzusetzen und den PIC zu programmieren, als das vorhandene zu 
entschlüsseln.


Wie bereits erwähnt:
Aufwand für einen PICler ein paar Stunden.

Autor: V. Baumann (dr-robotnik)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Stepper schrieb:
> @Ralf G.
> Ich denke es ist viel einfacher ein neues Protokoll (Befehle)
> aufzusetzen und den PIC zu programmieren, als das vorhandene zu
> entschlüsseln.
>
>
> Wie bereits erwähnt:
> Aufwand für einen PICler ein paar Stunden.

Das ist richtig, aber es bedeutet, dass jeder von uns der so eine 
Motoreiheit verwenden will, auch einen PIC programmieren können muss.
Wenn sich jedoch einer aufopfert und das Protokoll entschlüsselt, kann 
jeder, der sich so ein Ding kauft es sofort einsetzen unabhängig davon 
mit welchen Controllern man sonst so arbeitet.

Deshalb möchte ich das Bestreben von Ralf voll und ganz begrüßen und ihm 
schon mal vorab danke sagen.

Autor: kein Picler (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo habe ein Pikkit 2 aber bekomme immer folgenden fehler
pickit 2 voltage level error
check target &retry operation.
könnte mir da jemand weiterhelfen wie gesagt bin kein Picler
habe aber auch nur einen mit Platine

Autor: Stepper (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Das ist richtig, aber es bedeutet, dass jeder von uns der so eine
>Motoreiheit verwenden will, auch einen PIC programmieren können muss.

Ist natürlich ein gutes Argument!

Ich gehe davon aus, dass sich der PIC "in circuit" programmieren lässt - 
ohne große extra Beschaltung.

>Deshalb möchte ich das Bestreben von Ralf voll und ganz begrüßen und ihm
>schon mal vorab danke sagen.

Kann ich mich nur anschließen, ich denke der Aufwand ist halt etwas 
größer...

Autor: Ralf G. (micro-merlin)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
kein Picler schrieb:
> Hallo habe ein Pikkit 2 aber bekomme immer folgenden fehler
> pickit 2 voltage level error
> check target &retry operation.
> könnte mir da jemand weiterhelfen wie gesagt bin kein Picler
> habe aber auch nur einen mit Platine

Hallo 'kein Picler' ich interpretiere die Fehlermeldung so das der 
PIC16LF819 auf der Platine keine Versorgungspannung hat.
Oben im Thread sind zwei Bilder der Platine. Das Bild mit der 
Bezeichnung 310446_top.jpg zeigt auf der linken Seite die Lötpads wo der 
6 polige Stecksockel war. Sagen wir das im Bild oberste der 6 Lötpads 
hat die Nummer 1 und das unterste die Nummer 6, dann muß an Pad 4 die 
Versorgungsspannung von 5V angelegt werden. Pad 3 ist GND.

Gruß,
micro-merlin

Autor: Elektromann (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
hier ist der disassemblierte Quellcode der Schrittmotoren. Ausgelesen 
mit einem einfachen serial-port Programmer.

Gruß

Elektromann

Autor: pic (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich lass morgen meinen symbolischen Disassembler darüber und kann dann
was genaues darüber sagen.

Autor: Simon (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich habe eine andere Frage zu dem Schrittmotor selbst, ich kann mit den 
Einheiten für "Dent Torque" und "Holding Torque" nichts anfangen, beides 
sind ja Drehmomente, die Einheit ist standardmäßig nunja N*m, doch 
angegben sind g*cm - was ja nichtmal eine Arbeit/Energie ergibt...
Ich komme damit nicht weiter, kann mir jemand helfen?!

Autor: V. Baumann (dr-robotnik)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vieleicht muss man den Wert ja einfach nach F=m*g mit g=9.81 umrechnen?

Autor: Simon (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Der Hintergrund erschließt sich mir zwar nicht - ein Drehmoment so 
verrechnet anzugeben, aber anders gesehen ist es wohl der einzig 
sinnvolle Weg von einer Masse zu einer Kraft zu kommen.
Die sich ergebenden Werte scheinen etwas gering, sind aber durchaus 
plausibel:

Das Haltemoment dieses Motors liegt damit bei 0.049N*m (4.9N*cm),
das Rastmoment bei 0.0078N*m (0.78N*cm).

Zum Vergleich - ein 1.8°/42x42x33mm-Schrittmotor besitzt ein Haltemoment 
von 0.26N*m, bei 39mm Tiefe: 0.33N*m, bei 50mm Tiefe: 0.5N*m

Autor: pic (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Sorry, aber ein anderes Projekt, (Visual C++) musste noch einige Fehler 
beseitigen und hatte deshalb keine Zeit.  Deshalb nur kurz, und wollte 
mich auch melden. Der erste erzeugt denselben Kexcode, wenn man eine 
Makrodatei noch includiert, die src_comm habe ich nicht getestet, sollte 
aber zum durchschauen verwendet werden. Jedenfalls ist die Datei so 
einigermaßen lesbar, bin mir noch über ein paar Sachen unschlüssig.Die 
I2C Befehle kann
man aber ganz gut lesen, da es aber bez. den Befehlen ein paar 
Seiteneffekte
gibt, will ich mir das genauer ansehen, habe derzeit einfach nicht den
Kopf dafür, sorry, muß etwas ausspannen. Intern läuft der Controller mit
8Mhz, verwendet HW PWM (zumindest scheint es so) sowie ADC.
Vielleicht kann er damit das erreichen des Stempels messen, oder er 
macht
damit Chopping. Die I2C id ist über 3 Schalter/Steckbrücken einstellbar. 
Auch gibt es einen Modus, wobei die Einstellungen im EEprom abgelegt 
werden
und dann läuft die Sache im Standalone Modus mittels Tastern ohne I2C
Kommunikation. So wie es aussieht kann man den Kontroller auch mittels
I2C umprogrammieren. Das ist erstmal alles, weiteres folgt.

Autor: pic (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Was ist an Portb.6 angeschlossen ? das ist Pin12

Autor: Alex (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo "Pic",
erstmal großes Lob, dass du dir die Mühe machst, das Programm zu 
entschlüsseln.
Zu deiner Frage:
PORTb6 ist nicht PIN12. Der PIC ist im 20pol SSOP gehäuse. Da liegt 
PORTb6 an PIN13. Dieser ist auf den untersten Pin der Anschlussleiste 
geführt. Zusätzlich noch über einen ext. Pullup (10K) gegen VDD des PIC.

Falls du PIN12 (RB5) meintest, der liegt am linken Taster zur 
Adresseinstellung.

Ich hoffe ich konnte helfen.

Gruß

Alex

Autor: Arno Nyhm (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich bin nun auch stolzer Besitzer sechs dieser Linear-Module - alle 
kamen mit Elektronik, nur fünf davon allerdings auch mit 
Verbindungskabel zwischen Motor und dieser Treiberplatine...
Des weiteren sind es zwei verschiedene Versionen - eine mit rechteckiger 
Flanschplatte - die andere mit abgerundeter Flanschplatte; alles weitere 
scheint identisch (also auch die Elektronik).

Nun zur Sache: Einige haben hier im Thread ja Interesse an diesen 
Treiberplatinen bekundet, da die Ihnen gelieferten Module ohne kamen - 
ich kann mit diesen PIC-haltigen Treiberplatinen nichts anfangen und 
biete sie deshalb feil - wohlbemerkt allerdings ohne Verbindungskabel 
zum Motor!

Passende Stecker lassen sich aber bei Farnell bekommen, die Buchse am 
Motor ist eine 'S11B-ZR', der passender Stecker ein 'ZHR-11' (Farnell: 
1830901).
Passende Crimpkontakte:
SZH-002T-P0.5 - 26-28AWG - 1830898
SZH-003T-P0.5 - 28-32AWG - 1830899

Die Platinen gibts natürlich zum Selbstkostenpreis, d.h. Briefporto - 
unfreie Sendung, oder so...
Bei Interesse bitte erstmal hier im Thread melden, am besten angemeldet.

Grüße
Sascha

Autor: V. Baumann (dr-robotnik)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi!
Also ich nehme dir alle Platinen gerne ab.
Schreib mir eine PM damit wir den Versand aushandeln können.
Viele Grüße!

Autor: Sascha W. (arno_nyhm)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo!

Ich hab' mir zwar nicht gedacht, dass eine Person gleich alle abräumt, 
aber Ok, da ich mal annehme - so wie ich Dich aus dem Forum 'kenne' - 
dass Du dich der Erforschung dieser Teile widmest und es somit wieder 
allen zum Vorteil wird...

So gemein wie ich eigentlich bin, sollte ich im Gegenzug für die sechs 
Elektroniken eigentlich dein einziges Verbindungskabel fordern ;)
Ich hab' Dir 'ne PN geschrieben!

Grüße
Sascha

P.S.: Nochetwas zu den Kabeln:
Die 11pol. Crimpgehäuse der JST-Stecker (1830901) bei Farnell zu 
bekommen ist kein Problem - 10Stk. kosten 1.72EUR, die Crimpkontakte 
haben allerdings keine Lieferzeit angegeben, was verdächtig ist - die 
könnten nicht (oder nur in großen Mengen) zu haben sein.
100Stk. würden 0.90EUR/1.20EUR kosten. Wenn seitens des Forums Interesse 
besteht, würde ich mich mal nach der Verfügbarkeit erkundigen und bei 
Farnell einen 'Vorrat' an Steckergehäusen und Crimpkontakten bestellen 
und hier den Verteiler spielen.
Melden Euch einfach mal diesbezüglich hier im Thread...

Autor: V. Baumann (dr-robotnik)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Der teuerste Punkt wird wohl die passende Zange für die Crimpkontakte 
sein...

Autor: Sascha W. (arno_nyhm)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Würde ich mir dafür nicht zulegen...
Vielleicht klappt es mit einer anderen, vorhandenen, ausreichend gut. 
Ansonsten habe ich auch stets hervorragende Ergebnisse damit gemacht, 
die Crimpkontakte mit Pinzette/Spitzzange vorzuformen und dann den Draht 
anzulöten.
Nachteilig ist, dass es Geschick erfordert - dh. einige Zeit dauert und 
die Zugentlastung nich optimal ist - die Bruchgefahr an den Anschlüssen 
erhöht.
Zudem erfordert es bei diesen recht kleinen Steckverbindern einen guten 
Draht, dessen Isolierung sicht nicht beim Löten zurückzieht oder gar 
schmilzt - am liebsten sind mir in dier Hinsicht 'Irradiated 
PVC'-Isolierungen, oder soetwas wie Spec44/Spec55 von Tyco - das kostet 
zwar alles Geld, ist aber - im förmlichen Wortsinne - preiswert! Für die 
interne Verdrahtung von Geräten nehme ich nichts anderes mehr, daran 
gemessen, wie wenig Draht man durchschnittlich in solchen Aufbauten 
benötigt, ist es auch nicht wirklich teuer, so eine 500m-Trommel hält 
sprichwörtlich 'ewig'.
Zum den verlöteten Crimpkontakten selbst: Man gibt damit natürlich den 
Vorteil der Entlastung durch mechanische Fixierung des Isolators auf, 
außerdem erhöht sich das Bruchrisiko durch die durch das Lötzinn 
versteifte Litze. Man muss halt abwägen... Wenn es aber ein statischer 
Aufbau ist und/oder man den Kabelstrang entsprechend befestigt, lässt 
sich bei Prototypen/Einzelstücken/Kleinserien sehr gut auf diese Weise 
verfahren.

Nun wollte ich nochmal, für alle die sich hauptsächlich für den Motor 
interessieren - so wie ich es tue - ein paar Daten dieses Teils 
bekanntgeben:

Schrittmotor - Mechanische Daten

Die Welle schaut frontseitig ab dem Flansch 28mm heraus und verfügt 
durchgängig über ein normales M5-Gewinde (0.8mm Steigung).
Rückseitig ist die Welle etwas vertieft erreichbar und geschlitzt, sie 
lässt sich so also per Schraubendreher bewegen.

Der Flansch hat einen Durchmesser von 22mm und ist ~1.8mm hoch.

Die M3-Senk-Philipskreuz-Schrauben, welche den Motor zusammenhalten und 
gleichzeitig befestigen, sind über vier 25mm lange 
M3-innen/innen-Gewindebolzen mit der Mechanik verbunden, haben eine 
Gewindelänge von 30mm. Frontseitig schauen sie ~12mm über der 
Basisfläche des Motors hinaus.

Alles weitere ist ja gut dem Bild des ersten Postings zu entnehmen... 
Angefügt sind noch ein paar Bilder des nackten Motors.

Zum Steckverinder: Wie auf den Bildern gut zu sehen ist nur jeder zweite 
Kontakt tatsächlich belegt, der eine, jeweils zwischen den 
Windungsanschlüssen befindliche, Pin ist komplett unbelegt. Leider 
nicht, wie hoffen könnte, eine Mittelanzapfung der Spulen...

Wenn jemand noch etwas wissen möchte... Ich messe gern nach.

Autor: Dexter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hat jemand was neues über das Protokoll herausfinden können? Ich habe 
nochmal 10 Stk. von den Motoren bestellt. Vier kamen mit Platinen, davon 
zwei mit Verbindungskabel zum Motor. Sechs kamen ohne Platine und Kabel.
Viele Grüße!

Autor: V. Baumann (dr-robotnik)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen!
Also ich habe mittlerweile ein kleines Programm geschrieben, mit dem ich 
verschiedene Aktionen auf dem TWI bus über ein Terminal am USART 
auslösen kann.

Die Module antworten wie bereits von Ralf G. geschrieben auf der Adresse 
0x1C bzw 0x1D sowohl bei Schreib- als auch bei Lesezugriff.

Bei einem Schreibzugriff bestimmt das erste Byte die Anzahl der 
darauffolgenden Datenbytes.
D.h. sende ich zuerst 0x00, dann kann ich danach zwei beliebige bytes 
senden die mit ACK bestätigt werden und ein drittes, jedoch mit NACK.

Wenn ich einen Lesezugriff durchführe, bekomme ich vom Motor immer 0x01 
zurück unabhängig davon ob ich dieses mit ACK oder NACK bestätige.
Der code ändert sich auch nicht, wenn man einen der Taster an der 
Platine drückt. Er dient also schon mal nicht zum Auslesen der Taster.

Hat sonst jamand was neues?
Viele Grüße!

Autor: pic user (pic_user)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
versuch mal 1,7,6 zu schreiben und dann die Antwort zurücklesen.

Autor: Arno Nyhm (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

hier ein Update zu meiner Verwendung der Schrittmotore...
Ich habe es noch nicht erwähnt: Ich möchte Sie als Drehgeber nutzen - 
und das sogar in einem professionellem Gerät! Auch wenn es eine 
zweckentfremdung darstellt, sind die Ergebnisse einfach überzeugend!
Meine Tests mit den, geradezu winzigen, Moons-Steppern beginnt erst, 
doch alle Parameter sind optimal und der Aufbau verhält sich bislang 
super. Das schrittgenaue 'auslesen' funktioniert gut, ohne Störungen 
oder Phantomschritte.
Der Hauptgrund, weshalb ich in dieser Applikation keinen normalen 
Encoder verwende, ist, dass der Knopf recht groß und schwer ist - 
angeschlossen an einen normalen, hochwertigen Drehgeber mit 
vergleichbarer Auflösung (sowas wie die EN-Serie von Bourns...), ist das 
Drehgefühl sehr 'minderwertig', zumal auch bei den höheren auflösenden 
Encodern zumeist keine Dents mehr vorhanden sind; welche aber, bei 
entsprechend gewählten Parametern, ein noch besseres Fein-Drehgefühl 
vermittelt, dass man wirklich Digitgenau einstellen kann.
Naja, da das entstehende Gerät mein eigenes Projekt ist, 'spiele' ich 
auch ganz gern bei den einzelnen Baugruppen mit zusätzlichen Features.
Jetzt, wo der Drehgebereinheit einen Schrittmotor als Grundlage hat, 
schaue ich mal wie gut sich ein taktiles Feedback einbauen und nutzen 
lässt.
Bei weiterem Fortschritt werde ich dazu mal einen separaten Thread 
(Artikel?!) bzgl. der Umsetzung erstellen...

Anbei noch ein paar Bilder, bevor er (jetzt), zum besseren Testen, in 
ein provisorisches Gehäuse wandert.
Die Umsetzung der M5-Welle auf den Drehknopf, der eine 6mm Achse 
aufnimmt, besteht aus einem Stück allseits bekannten Baumarkt-Aluprofil 
- das passt wunderbar! Es ist ein OD-6mm-Rohr mit einer Wandstärke von 
1mm, also einem Innendurchmesser von 4mm. Dieser ist dann auf 4.2mm 
aufgebohrt wurden (der nötigen präzisen Zentrierung halber ist dies 
vorzüglich in einer Drehbank zu machen!) und ein M5-Gewinde ist 
hineingeschnitten (am besten auf der gesamten Länge des Motorwelle - 
wobei man diese, wenn nötig, natürlich auch kürzen kann).

Zum Knopf - den ich sehr sexy finde :)
Ich war lange auf der Suche nach 'schönen' Drehknöpfen dieser Größe 
(dieser hat nun 51mm Kragendurchmesser) doch wurde nicht fündig. In der 
Zeitschrift Funkamateur habe ich dann tolle Drehknöpfe an etlichen 
Yaesu-Funkgeräten gesehen und schließlich einen solchen, als Ersatzteil 
für ein Yaesu FT-1000, besorgt und nutze ihn nun für mein Projekt.
Hier ist die Originalverwendung zu sehen: 
http://jvgavila.com/ft1000d.jpg


Grüße
Sascha

P.S.: dr-robotnik:
Ich habe Deine PN/Mail noch nicht gelesen - habe Dich aber nicht 
vergessen, die Platinen machen sich dann bald auf den Weg bzw. melde ich 
mich diesbezüglich dann bald bei Dir.

Autor: Simon K. (simon) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Für welche Schaltung zur Auswertung des Schrittmotors als Drehgeber hast 
du dich entschieden?

Autor: V. Baumann (dr-robotnik)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo allerseits!
Ich spiele selber schon seit längerem mit dem Gedanken herum einen 
Schrittmotor als Drehgeber einzusetzen. Zum einen wegen der schön 
stabilen Achse/Lagerung und der feinen Rastung was sehr zu einer 
angenehmen und hochwertigen Haptik beiträgt.
Was ich aber besonders interessant finde, ist den Motor gleichzeitig 
aber auch als Aktor einzusetzen und dadurch bestimmte Rückmeldungen an 
den Bediener zu ermöglichen. Ich stelle mir da z.B. vor, die 
Drehbewegung durch anlegen eines Phasenstroms zu blockieren um dem 
Operator zu signalisieren dass unter dem gerade ausgewählten Menüpunkt 
keine Interaktion möglich ist, oder ähnliche feedback spielereien.
Ich bin also gerne dabei, wenn es darum geht eine Schaltung zur 
Auswertung/Ansteuerung eines Steppers als Bedienelement mit haptischem 
feedback zu entwickeln. Soweit ich weiss gibt's sowas noch nicht. Wer 
weiss vieleicht kommt sogar ein marktreifes Produkt dabei raus.
Viele Grüße!

Autor: Ralf G. (micro-merlin)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
pic user schrieb:
> versuch mal 1,7,6 zu schreiben und dann die Antwort zurücklesen.

Hallo pic user,
funktioniert ganz hervorragend. Und noch mal vielen Dank für das 
Auslesen und kommentieren des Codes.
Gut das die Menschen so unterschiedlich sind, Du scheinst PIC-Assembler 
zu lesen wie andere eine Zeitung. Noch einmal, ganz großes Lob.

Vermutlich ist die Menschheit doch ein Supercomputer der Mäuse und dsas 
Ergebnis .... ungefähr 41.9999999999999999999999999

Hast Du schon ein Kommando entschlüsselt um dem Motor eine Bewegung zu 
entlocken?

Noch eine Frage, die 7 ist ja das von Dir erwähnte FW-ID Kommando aber 
was macht die 1 und was macht die 6?

Besten Gruß,
micro-merlin

Autor: pic (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das Format is len , payload, checksum . 1 = 1 byte, payload = 7, 
checksum = 6
ein einfaches Xor inklusive header. Kommandos sind entschlüsselt, es ist 
aber
noch einiges unklar was ausgetestet werden sollte.

Autor: pic user (pic_user)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hier die Assemblerdatei mit den Ramaddressen geupdated, jedoch es fehlt
noch einiges an Zuordnungen sowie die Kommentare nach den Tests wurden
nicht geupdated, sind also teilweise falsch oder fehlen noch.
Es wurden nur die Adressen der Variablen laut Bankzuordnung geupdated.
Motor wird mit 1,9,8 bewegt, die Lichtschranke sollte vorher jedoch mit
2,3,1,0 eingeschaltet werden.

Autor: V. Baumann (dr-robotnik)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
pic user schrieb:
> Hier die Assemblerdatei mit den Ramaddressen geupdated, jedoch es fehlt
> noch einiges an Zuordnungen sowie die Kommentare nach den Tests wurden
> nicht geupdated, sind also teilweise falsch oder fehlen noch.
> Es wurden nur die Adressen der Variablen laut Bankzuordnung geupdated.
> Motor wird mit 1,9,8 bewegt, die Lichtschranke sollte vorher jedoch mit
> 2,3,1,0 eingeschaltet werden.

Super! Ich habe die von Dir genannten Befehle ausprobiert und es 
funktioniert! Der Motor läuft bis die Lichtschranke unterbrochen wird.
Vielen vielen Dank! Du bist unser Held!

Autor: Nullblicker (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

erstmal vielen Dank an "pic user" und B. Baumann!

>Super! Ich habe die von Dir genannten Befehle ausprobiert und es
>funktioniert!

Könnt ihr das mal einem Nullblicker erklären. Wie sehen die I²C-Befehle 
nun aus? Welche Adresse, Kommando, Daten --> sprich Aufbau des 
Protokolls.

Danke!

Autor: V. Baumann (dr-robotnik)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Byte 1: Wie viele Bytes werden noch gesendet (außer Prüfsumme)
Byte 2..N: Der eigentliche Befehl und evtl. Parameter
Letztes Byte: Prüfsumme - wird gebildet durch XOR-Verknüpfung von Byte 1 
bis Byte N

z.B.
Byte 1: 0x01    // es wird noch effektiv ein Byte (plus Prüfsumme) 
gesendet
Byte 2: 0x09    // Der eigentliche Befehl (Fahre Spindel in HOME 
Position)
Byte 3: 0x08    // Prüfsumme (0x01 XOR 0x09)

Autor: V. Baumann (dr-robotnik)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ach ja Adresse: die ist von Einheit zu Einheit unterschiedlich!
Es gibt nämlich mindestens zwei Versionen mit unterschiedlichen 
Basiseinheiten!
Ich habe meine dadurch herausgefunden, dass ich den gesamten I2C 
Adressraum mit einem kleinen Programm "gescant" habe und geschaut habe 
welche Adresse mit ACK antwortet.

Autor: Sascha W. (arno_nyhm)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Noch eine (fast) gute Nachricht was den direkten Anschluss des 
Schrittmotors betrifft, die Serie der dafür passenden JST-Steckverbinder 
führt auch (Business-)Conrad - Der schlechte Teil der Nachricht ist 
aber, dass sie keine 11-poligen Steckergehäse haben! Nur 10-pol. und 
12-pol. - Dafür gibts die Crimpkontakte, diese sind, anders als bei 
Farnell, vorrätig und direkt verfügbar.


Gehäuse:
'ZHR-11' - Farnell: 1830901 (0.172EUR)

Crimpkontakt 0.08-0.13mm^2:
'BZH-002T-P0.5' - Conrad: 740364 (0.09EUR)

Crimpkontakt 0.032-0.08mm^2:
'BZH-003T-P0.5' - Conrad: 740434 (0.09EUR)


...bzgl. der Nutzung als Drehgeber mache ich in kürze mal einen neuen 
Thread auf; dann geht es hier nicht so durcheinander.

Autor: pic user (pic_user)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Es wird ein PWM Signal von ca 7.81 Khz erzeugt, an Pin 9.
Wäre jemand so nett und könnte herausfinden, wo das hingeht und was 
damit effectiv gemacht wird. Es wird nur Inizialisiert und fertig.
Zur Adresse, es ist 0x1C, wenn man aber alle 3 Taster beim Einschalten
gedrückt hält, dann ist es die Adresse 0. Achtung es gibt einen ca 1Sek
Startup Timer, erst danach werden die Taster einglesen. Weiters gibt es
keine Möglichkeit die Adresse abzuändern, lediglich einen Reset zu 
generieren um dadurch die Adresse neu einzulesen. Taste ganz links hat 
den
Wert 16, mittlere Taste 8 und rechte Taste den Wert 4, wenn nicht 
gedrückt.
I2C Adresse ist entsprechend aufgebaut.

Weiters, gibt es jemanden der dieses Board hat und den Pic programmieren
kann ? Wenn ja würde ich dann das Programm etwas abändern.

Autor: Ralf G. (micro-merlin)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
ich kann an Pin 9 das von Dir beschriebene PWM Signal messen. Sonnst 
nirgend wo auf der Platine. Darauf hin habe ich eine Aufnahme der 
Platine mit ein wenig Durchlicht gemacht. Eindeutig ist zu erkennen wie 
von PIN 7,8 und 10 Leiterbahnen unter den PIC laufen, PIN 9 jedoch hat 
definitiv nur Verbindung zu seinem Lötpad. Somit kommt das PWM Signal 
nicht efektiv zum Einsatz. Vieleicht nur noch ein überbleibsel aus einem 
frühen Entwicklungsstand.
Gruß,
micro-merlin

Autor: Ulrich (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Weiß jemand den Hersteller u.o. Typ des 6-poligen Platinensteckers?

Autor: Wolfgang (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ist'n MICA von Lumberg. Achtung: Preßzangen kosten >700,- €!

Gruß - Wolfgang

Autor: Ulrich (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vielen Dank! (lieferbar u. a. bei Conrad Business)

Autor: Peter B. (nortsys)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo, gibt es vielleicht eine Übersicht über die Kommandos ?
Würde mir sehr helfen. Vielen Dank im voraus. Nortsys

Autor: Hermann E (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Peter kann ich mich nur anschliessen: Gibts was Neues ?

Der Linearmotor scheint mir echt seinen Preis wert aber leider ist es
fuer die Unwissenden schwer die Platine so zu benutzen.

I.B. waere es gut zu wissen welcher Befehl den Motor zB. um
100 Schritte nach links (oder rechts) drehen liese.
Wenn ich es richtig verstanden habe nutzt der angegebene Befehl
"1,9,8" nur um den Motor in seine Referenzstellung zu bringen.
Muss dazu das Programm "schrittmotor.asm" aufgeflasht werden oder
ist es das Originalprogramm ?

Das andere waere die Pinbelegung: Wenn ich mir den 6-poligen
Sockel anschaue: weiss jemand welche die Pins fuer das I2C Interface,
die Spannungsversorgung [vieviel Volt] sind ? Welche Funktion haben die
verbleibenden Pins ? Meine Nummerierung waere den Sockel auf der Seite 
des
Betrachters - den Stoessel nach rechts und dann per Definition der linke 
Pin die Nummer 1. (1 und 3 scheinen mir die Masse zu sein).

Ich waere wirklich gluecklich wenn jemand diese Punkte wuesste
und weitergaebe !

Danke:  Hermann

Autor: Stefan S. (novafly)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Bezüglich der Anschlussproblematik habe ich das folgendermaßen gelöst:

Einfach passende Einzeladern (AWG28 o.ä.) an die Pins gelötet 
(Nadellötspitze) und die ganze Buchse mit Uhu Plus300 aufgefüllt. Somit 
hab ich eine Isolierung der Pins und gleichzeitig eine Zugentlastung. 
Mit den vier Adern bin ich dann auf einen ganz normalen SubD (9-polig) 
gegangen.
Steckbar bleibt das Ganze somit auch noch.

Ich hab zwar auch eine Crimpzange für JR/Graupner Stecker, das Ergebnis 
ist aber nicht ganz so präzise bei den JST-Kontakten, da die Kontakte 
für die Servostecker anders geformt sind. Zudem verlangt Farnell 
unverschämte 8€ Versand, und das alles wegen 10 Gehäusen und die 
zugehörigen Kontakte?

vg
Stefan

Autor: Peter B. (nortsys)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nocheinmal vielen Dank für die bisherigen Ausführungen.
Es gibt wohl einige unteruns (zu denen gehöre ich auch) die mit den 
Assembler-Dateien nicht allzuviel anfangen können.
Gibt es nicht jemand der einmal eine Tabelle der bekannte Befehle uns 
Unwissenden zur Verfügung stellen kann?
Vielen Dank im voraus. Nortsys

Autor: W. M. (thematsche)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Pic-Steppers! ;)

Gibts hier noch Interessenten?
Oder ist das Interesse schon eingeschlafen?

Gruss thematsche

PS:
**********************************************
cmd_77
;----------------------------------
; motor links, rechts bewegen; die argumente sind irgendwie absolut
; zb:   arg1=0, arg2=0: motor faehrt rechts bis zu einer position (ws im 
eeprom festgelegte 0 position mit cmd_09)
;       arg1=100, arg2=0: motor faehrt 100 schritte nach links bis zu 
einer position
;       wenn man mehrmals die selben argumente verwendet bleibt er auf 
der selben position
;      bzw. macht er dann manchmal fehler....
; 1.arg = schritte lsb
; 2.arg = schritte msb
**********************************************
**********************************************
cmd_78
;----------------------------------
; returns two ram locations u. zwar lram_0x2e u. lram_0x2f
; gibt die mit cmd_77 angefahrene position aus
; return[0]=pos msb
; return[1]=pos lsb
;
**********************************************

Autor: Ulrich (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Bei mir besteht noch großes Ineresse, aber andere Arbeiten und der 
Sommer ... !

Autor: Hermann E. (hermann_e)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ha,

bin nur aus Langeweile 'mal auf diesen Thread gestossen da ich in ja 
schon lange für tot gehalten habe !
Danke Walter, werd' 'mal sehen ob ich damit was anfangen kann, da ich 
eigentlich schon dabei war für diese Motoren die Ansteuerung/Platinen zu 
entwickeln wär's natürlich Klasse wenn ich die Dinger mit ihrer eigenen 
Elektronik zum Laufen bringen könnte! Falls ich ein paar Schritte 
verliere ist das für meine Anwendung nicht gleich das Ende.

Kann ich dich fragen ob du in der Zwischenzeit noch mehr über die Teile 
hast in Erfahrung bringen können ?

Grüsse:  Hermann

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.