PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Schrittmotor für Nachführung zur Astrofotografie



Dandan
25.11.2012, 13:20
Hallo,

nachdem ich nun etliche Stunden im Netz gesucht habe und bisher noch nicht 100% fündig geworden bin, bitte ich euch mal zur Hilfe.

Ich habe vor mir eine Kameranachführung für Astrofotografie zu bauen (Barndoor).
>>so etwas<< (http://www.astrotreff.de/topic.asp?TOPIC_ID=136457)
Um die Drehung der Erde auszugleichen brauche ich einen Motor der sich mit exakter geringer Geschwindigkeit dreht. zb ein Schrittmotor
http://www.conrad.de/ce/de/product/198398/Emis-Schrittmotor-E547-52500-12-VDC-Halte-Moment-025-Nm-Phasen-Strom-max-06-A-Wellen-5-mm

Da ich als CNC-Fräser (Werkzeugbauer) absolut keine Ahnung habe wie dieser angesteuert oder Programmiert wird brauche ich hier Hilfe.
Ich würde den Schrittmotor mit einer Gewindestange verbinden, die sich dann mit ca 1U/min drehen müsste. Bei einer geraden Gewindestange müsste ich zusätzlich noch den Radius mit einrechnen so das sich die Drehzahl mit der Zeit immer mehr verkleinern müsste.

1Tag= 86.164,091 Sekunden
l=2*sin(α/2)*r
l=Umdrehungen * Gewindesteigung (1,25)
r= Radius 300mm
α=Winkel Erddrehung 1° in 239,345sec (0,2506844° pro min)
U=(2*sin(α/2)*300)/1,25

U=(2*sin((0,2506844°*t)/2)*300)/1,25-(2*sin((0,2506844°*(t-1))/2)*300)/1,25

t in min

würde eine Drehzahl von 1,05 U/min ergeben (am Anfang) nach 2h 1,014 U/min

Meine Frage wäre wie ich diesen Schrittmotor ansteuern muss und wie ich ihn mit der gewünschten Drehzahl drehen lassen kann.
Bitte leicht verständlich erklären da ich von der Materie (Schrittmotoren und Controller) keine Ahnung habe. (Löten und Schaltungen Bauen kann ich)
Schön wären Links für Bausätze bzw Microcontroller und wie diese dann Programmiert werden. Oder auch ein gutes Praxisgebundennes Buch.

Vielen Dank

Danny

Ostermann
25.11.2012, 13:54
Hallo Danny!

Wie genau musst/willst du die 1,05U/min den halten können? Bei so niedrigen Drehzahlen würde ich selbst einen Schrittmotor mit Getriebe ausstatten, um einen gleichmäigeren Lauf zu erhalten. Sonst siehst du nämlich jeden einzelnen (Mikro)-Schritt des Motors. Wenn man man von 200 Vollschritten/U und 1/16-Step ausgeht sind das 3200 Mikrosteps/U. Für 1,05 U/min müsste man dann 56 Mikrosteps/s machen. Mit einem Motor mit 0,9° Vollschrittwinkel (400 Vollschritte) könnte es evtl. auch ohne Getriebe gehen.

Mit freundlichen Grüßen
Thorsten Ostermann

Dandan
25.11.2012, 14:01
2 Zahnräder mit rein bauen wäre jetzt mein kleinstes Problem^^
Übersetzung 4:1 würde leicht gehen.

wenn ich diese Schaltung Baue:
http://www.rn-wissen.de/index.php/Bild:L298standard.gif
Wie wird dann der Schrittmotor angesteuert? Bzw was brauche ich um ihn dann eben mit 4,2U/min drehen zu lassen.

Crazy Harry
25.11.2012, 14:33
Hi Danny,

da kenn ich mich jetzt nicht aus, aber brauchst du da nicht eine Bahnsteuerung XY ? Das ist doch keine lineare Bewegung oder ?
Ich würde außerdem Trapezspindeln mit 2 verspannten Muttern nehmen - ich glaube das Spiel ist in diesem Anwendungsfall nicht vernachlässigbar.

Gruss
Harry

Dandan
25.11.2012, 14:45
Es muss eine Kreisbewegung ergeben am Ende. Die Achse wird zum Polarstern ausgerichtet und dreht sich dann gegen die Erddrehung. Und so viel Spiel ist bei einem M8 Gewinde auch nicht, ist denke mal fürs erste zu vernachlässigen.

Mich intressiert in erster Linie wie ein Schrittmotor angesteuert wird und wie ich ihn dazu bringe ihn mit einer bestimmt Drehzahl drehen zu lassen.

Crazy Harry
25.11.2012, 15:16
Besorg dir eine Schrittmotorendstufe und schließ einen Taktgeber an - das wars

http://rc-letmathe.de/product_info.php?cPath=61_159&products_id=1351

ranke
25.11.2012, 15:40
Mich intressiert in erster Linie wie ein Schrittmotor angesteuert wird und wie ich ihn dazu bringe ihn mit einer bestimmt Drehzahl drehen zu lassen.

Hier (http://www.rn-wissen.de/index.php/Schrittmotoren) steht schon einiges zur Ansteuerung drin. Und die Datenblätter zu L297 (http://www.st.com/internet/com/TECHNICAL_RESOURCES/TECHNICAL_LITERATURE/DATASHEET/CD00000063.pdf) und L298 (http://www.st.com/internet/com/TECHNICAL_RESOURCES/TECHNICAL_LITERATURE/DATASHEET/CD00000240.pdf) als mögliche und bewährte Bauteile zur Ansteuerung für Voll- und Halbschrittbetrieb.

Die Schaltung mit L297 und L298 erwartet noch einen externen Takt, jedesmal wenn ein Impuls gegeben wird macht der Motor einen Halb- bzw. Vollschritt. Für diesen Taktgeber würde man sinnvollerweise einen Mikrocontroller einsetzen. Wahrscheinlich genügt da schon etwas kleines, z.B. ATtiny45 (http://www.atmel.com/Images/doc2586.pdf).
Das Problem mit der winkelabhängigen Geschwindigkeit würde ich im ersten Ansatz so lösen indem man den Motor immer von einer bekannten Winkelstellung aus startet. Der Mikrocontroller kennt dann die Zahl der Schritte die er von dieser Stellung aus gemacht hat und kann die Zeit zwischen zwei Schritten einer entsprechenden Funktion anpassen. Das Problem mit den Mikrocontrollern ist, dass sie meistens viel mehr können als man braucht, was die Sache für den Anfänger recht unübersichtlich macht. Außerdem muss man sich auf eine Programmiersprache einlassen, lernen wie man das Programm in den Chip bekommt und viele weitere kleinere und größere Hürden überwinden. Es gibt aber ziemlich viele Tutorials und Infos im Internet. Wenn man das Konzept mit der gebogenen Gewindestange übernimmt braucht man nur eine konstante Frequenz, das wäre wohl auch ohne Mikrocontroller mit einem Quarzosszillator und einem programmierbaren Frequenzteiler hinzubekommen.

Crazy Harry
25.11.2012, 16:09
Noch ne Idee: Ein großes Zahnrad (20..30cm Durchmesser) in dessen Mitte deine Kamera montiert ist. Angetrieben mit Schrittmotor über ein kleines Zahnrad und damit eine Untersetzung von 20..40:1. Mit der entsprechenden Mikroschrittauflösung des Motors eine sehr genaue und gleichmäßige Bewegung.

Ostermann
25.11.2012, 18:04
Die Schaltung mit L297 und L298 erwartet noch einen externen Takt, jedesmal wenn ein Impuls gegeben wird macht der Motor einen Halb- bzw. Vollschritt. Für diesen Taktgeber würde man sinnvollerweise einen Mikrocontroller einsetzen. Wahrscheinlich genügt da schon etwas kleines, z.B. ATtiny45 (http://www.atmel.com/Images/doc2586.pdf).

Das einfachste wäre eine kleine Schaltung mit einem NE555, dann muss man garnichts programmieren. Dafür habe ich mal eine Platine (http://www.mechapro.de/shop/Sonstige-Schaltungen/Taktgeber-Platine::227.html) gemacht. Mit dem uC würde ich erst anfangen, wenn der NE555 nicht mehr genau genug ist oder wenn man die Frequenz auch noch winkelabhängig anpassen muss.

Mit freundlichen Grüßen
Thorsten Ostermann

Dandan
25.11.2012, 18:17
Wenn der Tackt mit einem Poti gesteuert wird könnte es da nicht schwer sein ihn auf die Frequenz einzustellen?

Ostermann
26.11.2012, 06:27
Deswegen ja meine Frage, wie genau die Drehzahl eingestellt werden soll...

Mit freundlichen Grüßen
Thorsten Ostermann

ranke
26.11.2012, 07:13
Deswegen ja meine Frage, wie genau die Drehzahl eingestellt werden soll...


Die Erde dreht sich in 24h um 360°, also ein Winkelgrad in 4 Minuten. Belichtungszeiten in der Astrofotografie sind - bedingt durch die geringe Lichtstärke der Objekte - eher lang, vielleicht bis zu 1 Stunde, vielleicht manchmal sogar höher. Wenn dann noch eine lange Brennweite gewählt wird um einen kleinen Himmelsauschnitt heranzuholen kann man sich etwa vorstellen wo die Probleme liegen. Sie liegen vermutlich hauptsächlich in der Ausrichtung der Drehachse parallel zur Erdachse (Justage) und in der Präzision der Nachführung. Die mechanische Präzision, die sich mit vertretbarem Aufwand für den Hobbyist nicht beliebig steigern läßt, sollte dabei das Limit sein, nicht die technisch relativ leicht erreichbare Präzision des Zeitgebers für die Motoransteuerung.

Ostermann
26.11.2012, 16:51
Das beantwortet (vielleicht) die Frage, wie schnell der Motor drehen soll, aber nicht wie exakt die Geschwindigkeit gehalten werden soll. Welche Abweichung ist zulässig, 10%, 1%, 0,1%?

Mit freundlichen Grüßen
Thorsten Ostermann

Dandan
26.11.2012, 18:50
Die Drehzahl sollte schon möglichst genau einzustellen gehen.
Belichten werde ich wohl nie länger als 10min, denke mal eher so 1-3min weil es technisch wohl als selbstgebastelte Konstruktion nicht machbar ist. Die Bilder werden dann anschliesend noch gestackt um das maximale raus zu holen.

Wie teuer sind denn einfache Controller die man als Taktgeber programmieren könnte? Welcher würde ausreichen?

ranke
27.11.2012, 08:58
Wie teuer sind denn einfache Controller die man als Taktgeber programmieren könnte? Welcher würde ausreichen?

Ich vermute ein ATtiny 45 von Atmel könnte genügen, kostet aktuell bei reichelt.de EUR 1,20 im DIP Gehäuse. Es kommt hauptsächlich auf die Anzahl der Ein- und Ausgänge an, der ATtiny 45 hat nur 5 nutzbare (8-Pin Gehäuse, 2 Pins für die Betriebsspannung und einer als Hardware Reset). Das könnte aber genügen, für die Motoransteuerung zwei (Takt und Drehrichtung), einen analogen für Taster (Start/Stop, schneller Rücklauf), dann wären noch 2 zur freien Verfügung. Zum Austesten und debuggen hat man gerne noch mal ein oder zwei freie an die man eine LED anschliessen kann. Eventuell will man den den Enden der Verfahrstrecke noch Endschalter um die Kamera rechtzeitig auszuschalten bevor der Antrieb in den mechanischen Anschlag läuft. Auch ein Referenzschalter wäre zu überlegen wenn man die winkelabhängige Verfahrgeschwindigkeit realisieren will.
Es gibt natürlich auch andere Typen und Fabrikate von MCs die sicher auch hervorragend geeignet sind, mit den Atmel MCs kenne ich mich eben ein bisschen aus, deshalb kann ich nichts anderes vorschlagen.
Um den MC zu programmieren braucht man noch ein Programmiergerät um das Programm vom PC auf den MC zu übertragen, das wird für Parallelport oder USB angeboten, ist etwas teurer aber dafür nur einmalig anzuschaffen.

Besserwessi
27.11.2012, 16:09
Wenn man wirklich nur die konstante Geschwindigkeit für die Erdachse haben will, würde es ggf. sogar ohne µC einfach mit passendem Quarztakt und Teiler gehen. Aber schon ein Schnellvorlauf wird dann schwer.

Für eine genaue Geschwindigkeit wäre schon ein Quarz für den Takt zu empfehlen. Dann wird es mit einem 8 Pin µC etwas knapp, aber auch die etwas größeren Typen wie z.B. Atmel Mega88 sind nicht so viel teurer (ca. 2-3 EUR). Je nachdem wie man die Mikroschritte für den Motor realisieren will, braucht man auch mehr Ausgänge am µC. Im Prinzip kann der µC auch einen großen Teil der Motorsteuerung (Erzeugung der Mikroschritte) mit übernehmen, vor allem wenn man wie hier eher nicht die volle Leistung des Motors braucht. Der Aufwand bei µC ist weniger der Preis für den Chip selber, sondern das einarbeiten in die Programmierung und ggf. die Hardware um das Programm zu übertragen.
Wenn man sie Schaltung nicht selber entwickeln will, würde sich hier ggf. auch eine fertige Platine wie RN-Controll anbieten. Durch den Bootloader braucht man auch nur eine RS232 Schnittstelle (ggf. ein USB-RS232 Adapter) für die Programmierung. Da ist auch schon ein Treiber für einen kleinen Schrittmotor mit drauf - mit etwas Aufwand beim Programm sollte man damit auch Mikroschritte hin bekommen.

Der Aufwendige Teil wird sowieso das Getriebe zwischen Motor und der Drehachse.

Dandan
27.11.2012, 16:32
Der Aufwendige Teil wird sowieso das Getriebe zwischen Motor und der Drehachse.

Ich bin Werkzeugmacher aus meiner Sicht ist das das einfachste XD

Aber danke für die Hilfe.

Mit einem USB-RS232 Adapter meinst du da so ein Label?:
http://www.amazon.de/USB-RS232-Adapter-Schnittstellen-Kabel/dp/B0013HDN2Q/ref=cm_cr_pr_product_top

Angenommen ich hole mir ein solchen Lernkasten
hier (http://www.reichelt.de/Lernpakete/IS-3-7723-4899-0/3/index.html?;ACTION=3;LA=446;ARTICLE=78035;GROUPID= 5730;artnr=IS+3-7723-4899-0;SID=13ULJBCH8AAAIAAAXIQC03fb0cca5ab557652613f70f 490646353)
kann ich dann damit auch einen ATtiny 45 bzw. Atmel Mega88 Programmieren?

Das würde vllt als Einsteiger am meisten Sinn machen oder?

dussel07
27.11.2012, 18:03
Bei dem Lernpacket kaufst Du hauptsächlich das Wissen - das bischen Hardware ist sicher nicht mehr als 5,- wert.
Aber - wenn Du damit den Attiny13 programmieren kannst, klappt das mit den meisten anderen Attinys und Atmegas von Atmel auch!
Wenn Du vorhast evt. mehr mit MKs zu basteln, empfehle ich Dir unbedingt den mySmartUSB light von myavr! Das ist ein super Programmer mit exakt darauf zugeschnittener Software für kleines Geld -
Mit diesem (oder auch einem anderem fertig aufgebautem) Programmer hast Du mögliche Fehlerquellen wieder etwas reduziert.
Ich könnte mir auch vorstellen das Dir sicherlich jemand bei einem zu erstellendem Programm hilft :cool:

Besserwessi
27.11.2012, 18:28
Bei dem verlinkten Lernpaket befürchte ich, dass da nur ein ganz einfacher Programmer drin ist, der nur geht, wenn der PC noch eine interne RS232 Schnittstelle hat. Zumindest sieht das nach dem Bild sehr danach aus. Im Prinzip sollte man damit wohl auch etwas größere µC programmieren können, der Sockel hat wohl 20 Pins und könnte auch für einen Tiny461, Tiny45 oder so reichen - für den Mega88 aber eher nicht mehr.
Anleitung und Tutorials für die AVR Programmierung findet man auch reichlich im Netz, und auch für den Compiler muss man nichts bezahlen - zumindest für C oder eine eingeschränkte Demo von BASCOM.

Das verlinkte USR-RS232 Kabel sollte hinkommen für eine Platine mit Bootloader über RS232, aber sehr wahrscheinlich nicht für das Lernpaket oben.

Da bietet RN-Controll (http://www.rn-wissen.de/index.php/RN-Contro) schon deutlich mehr Hardware, ist aber auf den einen mitgelieferten µC beschränkt.
So ähnlich wäre auch ein ARDUINO µC Board mit extra Motorteiber dazu.

Eine Alternative wäre noch ein ISP Programmer und ein µC (+ ISP Stecker+Spannungsregler) auf einer Lochraster/Streifenraster Platine und dann eine extra Schrittmotor-treiberplatine
(z.B. so etwas http://www.reichelt.de/Bausaetze/ELEKTOR-110018/3//index.html?ACTION=3&GROUPID=5727&ARTICLE=120182&SHOW=1&START=0&OFFSET=500& ).

Crazy Harry
28.11.2012, 08:48
Also wieso sollte man sich (nicht grad billig) in diese Materie einarbeiten, wenn man nur mal eine Anwendung braucht ? Ich bin leider nicht so der Genaue-Timer-Programmierer, sonst würde ich dieses kleine Programm schnell machen und in einen MegaXYZ flashen. Er braucht doch nur eine fertige 1-Kanal-Schrittmotorsteuerung (wie ich oben gepostet hab), den Mega anschliessen und fertig. Bedienelemente für die Frequenz (up/down) und vielleicht ein einfaches Display (2-stellig 7-Segment für 1.000 - 1.099 Hz die letzten beiden Stellen anzeigen).

Wie in meiner Signatur steht, arbeite ich mir AVRCo und die Mega8/88-Version dieses Compilers ist komplett kostenlos (im neuen c't Hacks ist sogar eine kostenlose XMega256-A3U-Version dabei) ..... vielleicht (und wenn du wirklich Bock hast damit anzufangen) wäre das ja eine alternative Programmiersprache für dich.

Dandan
28.11.2012, 13:06
Momentan habe ich den Motor von meinem ersten post und diese Karte: http://rc-letmathe.de/product_info.php?cPath=61_159&products_id=1351
Sprich ich bräuchte mit dem Controller nur noch die 6 Anschlüsse ansteuern:
2mal Richtungssignal, 2mal Einschaltsignal und 2mal Taktsignal.

dussel07
28.11.2012, 13:13
Für einen Motor brauchst Du: 1x Tackt - 1x Richtung und evt. 1xADC (Poti) oder 2x Taster (schneller - langsamer).
Ich lade Heute Abend mal ein Bild von einem Layout für einen Atmega8 hoch. Hier hat es zB. die Möglichkeit einen Drehcoder, mehrere Potis oder Taster und ein Display anzuschließen.
Ein günstiger Treiber ist auch Dieser (http://www.ebay.de/itm/Pololu-Schrittmotor-Treiber-A4988-/230841457222?pt=Motoren_Getriebe&hash=item35bf391a46) von Pololu.

Dandan
28.11.2012, 17:31
An der Karte die ich bereits habe sind ja 6 Anschlüsse. Wie genau Funktionieren die? Muss da nur ein Schalter rein gebaut werden und für den Takt der schalter sehr schnell betätigt werden, was dann der Controller übernehmen soll oder muss je nachdem ob Linkslauf auf den einen Anschluss 5v gelegt werden oder Rechtslauf auf den anderen 5v? Leider ist das in der mitgelieferten Zeichnung nicht angegeben.

dussel07
28.11.2012, 18:05
Schau Dir mal diese Zeichnung (http://www.cnc-hotwire.de/content/Elektronik%20Platine/Verdrahtungsplan_neu.pdf) an - ist das die von Dir gewählte Schrittmotorkarte?

Dandan
28.11.2012, 18:20
Nein
dieses hier:
http://www.abload.de/img/1szol2.jpg
rechts an den 4 pins kommt der Motor, rechts unten 12-36v
links oben ist output für Logikspannung 12v,5v und 2mal erde
und links unten die 6 Pins für
Dir+ - Richtungssignal
En+ - Einschaltsignal
SP+ - Taktsignal

Angegeben ist nur eine Tabelle:

Steuerung für 4 Motoren | Steuerung für 1 Motore
+5V | SP+,EN+,DIR+
CK | SP-
CW | Dir-
EN | offen

LPT-Port | Steuerung für 1 Motor
PIN 1 | offen oder (In Mach3 "Eanable"
PIN 2 | SP-
Pin 3 | Dir-
Pin 18 (GND) | SP-,EN-,DIR-

dussel07
28.11.2012, 18:40
Ist ja ein wenig verwirrend!

Wenn ich das richtig sehe kannst Du den Treiber sowohl mit einem positivem als auch einem Negativem Signal ansteuern.

zB. Dir+ SP+ EN+ und +5V verbinden

und dann mit den jeweiligen minus Anschschlüssen steuern - - oder halt umgekehrt?

Hier mal ein Layout für die Steuerung eines unipolaren Schrittmotors welche man schnell anpassen könnte für Bipolare.

.23868

Crazy Harry
28.11.2012, 20:16
@Dussel07: genau so ist es: entweder die + auf +5V und mit negativen Impulsen auf den -Anschlüssen oder die - auf GND und mit positiven Impulsen auf die +Anschlüsse.

dussel07
29.11.2012, 01:14
Hier mal das angepasste Layout -
23872

dussel07
01.12.2012, 00:13
So, noch mal nachgebessert und vervollständigt.

Platinengröße 100x80

Jetzt hat es ein Relais - 2 Taster - 2 LED - Schraubklemmen für Bertiebsspannung, 3 Taster und 2 Potis plus die Kontackte des Relais und 5x Ausgang ULN - Anschluß für ein LCD mit schaltbarer Beleuchtung - ISP Buchse 10pol. - Quarz 16MHz - 1 Poti - 2x Stiftleisten für Potianschluß - Treiber (ULN2808) für 8 Pins (5 davon dierekt mit dem Atmega8 verbunden) - Stiftleiste für Drehkoder - Stiftleiste für I2C - Resettaster - alle wichtigen Pins des Atmegas auf Buchsenleisten o. Stiftleisten - Power LED

23892

Im Fall von Dandan würde ich den ULN nicht bestücken sondern den Sockel mit Klingeldraht entsprechend brücken - so kann man die Schraubklemmen für das Ansteuern der Schrittmotorkarte nutzen.

23895



und der Reichelt Warenkorb (https://secure.reichelt.de/index.html?;ACTION=20;LA=5010;AWKID=665667;PROVID= 2084)

Noch mal ein kleiner Ausschnitt

23894


Hier mal ein Link zum Viewer vom Sprint Layout (http://www.abacom-online.de/updates/Sprint-Layout60_Viewer.exe)

und das Layout

Dandan
01.12.2012, 08:50
Danke dir, mal schauen wie weit ich komme mit zusammenlöten. Als Programmer habe ich den mySmartUSB.

dussel07
04.12.2012, 16:00
Eine Frage nach dem Display und den Sockel/Stiftleisten kam auf -
Hier mal auch für Andere:
Wichtig ist HD44780 oder Industriestandart - normalerweise nimmt man (wenn es günstig werden soll) 16x2 (http://www.ebay.de/itm/zyscom-LCD-Display-HD44780-2x16-chr-16x2-green-char-neg-Backlight-/170875690385?pt=Bauteile&hash=item27c8fc1d91)oder halt 20x4 (http://www.ebay.de/itm/2004-LCD-Module-Display-Anzeigen-20x4-Zeichen-kompatibel-mit-HD44780-/180937265513?pt=Bauteile&hash=item2a20b39169).
Anschluß des Displays ist eigentlich durch die Platinen vorgegeben - Pin 1-16 des Wannensteckers ist Pin 1-16 des Displays. Entweder lötest Du ein Flachbandkabel direckt am Display (andere Seite dann die 16polige Pfostenbuchse) an oder Du nimmst den Adapter (16poliger Wannenstecker auf 16polige Stiftleiste) neben der eigentlichen Platine und kannst dann ein Flachbandkabel mit zwei Pfostenbuchsen benutzen.
Die Anschlüsse direckt über und unter dem Atmega würde ich mit den Sockelstreifen bestücken - Ausnahme bilden die Pins mit dem weißem Rechteck - da soll ein Jumper drauf also braucht es da die normalen Stiftleisten. Genauso würde ich die Pins für Drehcoder / I2C mit Stiftleisten bestücken - hier kannst Du dann mit den passenden Buchsensteckern externe Bauteile anschließen. Kurz und gut: Alles was man auf der Platine verdrahten kann mit Sockelstreifen - Alles was externe Bauteile erfordert mit Stiftleisten.
Die rote und blaue Kennzeichnung ist nur zur Übersicht - rot ist +5V - blau ist Gnd (die Vier nebeneinander stellen einfach nur +5V und Gnd für Versuche zur Verfügung).
Wenn Du mit externen Potis arbeitest, solltes Du die 3er Schraubklemmen bestücken. Auch hier wieder ein einzelner Pin des Sockelstreifens hinter den Schraubklemmen und Du kannst mit Klingeldraht eine Brücke zu den ADC Anschlüssen herstellen.
Mal am Rand: Man könnte pauschal auch alles mit Stiftleisten bestücken aber dann hast jede menge Arbeit diese blöden Buchsenstecker an Käbel zu fummeln.
Hier mal zwei Links zu Buchsensteckern LINK1 (http://www.ebay.de/itm/Buchsenstecker-1-pol-2-pol-3-pol-4-pol-fur-Stiftleisten-RM-2-54-/251098616013?pt=Elektromechanische_Bauelemente&var=&hash=item3a76a4d0cd) LINK2 (http://www.derelektronikershop.de/Mechanik/Steckverbinder/Buchsenstecker) - habe keine Ahnung ob Reichelt sowas auch führt?? Habe sie zumindest noch nicht im Sortiment entdeckt.

dussel07
10.12.2012, 00:47
Hier mal ein Verdrahtungsbeispiel:
23987
Die weißen Striche ist Klingeldraht.
Jetzt sind die Pins PD3 und PD4 des Atmegas mit den entsprechenden Schraubklemmen und LEDs verbunden (mit den LED kannst Du auch ohne Schrittmotorkarte sehen ob dein späteres Programm läuft). Dies werden die Ausgänge für die Ansteuerung deiner Schrittmotorkarte. D3 soll die Richtung (dir)bestimmen und D4 den Tackt (clock) die Geschwindigkeit.
Die Pins PD0 und PD1 sind mit den Onboardtastern verbunden und verstellen später zB. die Geschwindigkeit oder auch die Richtung??
und mal ein kurzes Testprogramm, das alle 100ms den Pegel an PortD.4 wechselt und alle 200 Impulse den Pegel an PortD.3 wechselt:

$regfile = "m8def.dat"
$crystal = 16000000 'ohne verändern der Fusebits $crystal = 1000000


'Ausgang Richtung an PD3
Richtung Alias Portd.3
Config Richtung = Output

'Ausgang Geschwindigkeit an PD4
Tackt Alias Portd.4
Config Tackt = Output

'TASTER1 an PD0
Taster1 Alias Pind.0
Config Taster1 = Input
Portd.0 = 1 'PullUp-Widerstand einschalten

'TASTER2 an PD1
Taster2 Alias Pind.1
Config Taster2 = Input
Portd.1 = 1 'PullUp-Widerstand einschalten

Dim A As Byte


Do
Toggle Tackt
Waitms 100
A = A + 1
If A = 200 Then
Toggle Richtung
A = 0
End If
Loop

End

Im Anhang die .hex Datei

Dandan
10.12.2012, 09:25
Hab das ganze rauf geladen und die led D4 wechselt alle 2sec das licht und D3 leuchtet immer.

musste das Programm mit copy paste einfügen. Irgendwie öffnet der mir das nicht richtig.
23990
hier sieht man es vllt. besser:
http://www.abload.de/img/aaaaaaaauce28.png

dussel07
10.12.2012, 11:20
Schreibe mal "$crystal = 1000000" statt $crystal = 16000000 und berichte was passiert.
Ansonsten mußt Du die Fusebits ändern auf externen Quarz.
Im Zip ist nur die HEX, da kann sich in Bascom nichts öffen! Das ist das compilierte Programm das so diereckt in den Controller geladen wird.

Dandan
10.12.2012, 22:12
jetzt blinkt die untere Led schnell und die obere blinkt aber nur alle 15 sekunden oder so (also 15sec an 15sec aus)

dussel07
11.12.2012, 00:18
Dann ist Alles richtig!
Wenn Du jetzt Deine Schrittmotorkarte anschließt, sollte sich der Motor im Vollschrittbetrieb eine Umdrehung nach Rechts, und dann eine Umdrehung nach Links drehen.
Morgen bastele ich Dir dann eine Geschwindigkeitsverstellung mit den Tastern - -

Dandan
11.12.2012, 08:51
Jap Motor dreht sich. Hatte am Anfang zwar Probleme das er sich erst gedreht hatte und dann nach den 15sec stecken geblieben ist aber nachem Neustart ging dann alles.
Ich werd aber an der Motorkarte nur 1/8 Umdrehungen einstellen dann ruckelt es nicht so wie bei 1/1. Hoffe mal das die Leistung dann noch ausreichend ist aber die Gewindestange dürfte sich ja leicht drehen lassen.

Ach ja hast du eine Ahnung wie viel Strom das ganze am ende verbraucht? Brauch ja noch eine Batterie^^ aber eine 12v Autobatterie dürfte ja langen für ein paar stunden.

darxon69
11.12.2012, 09:09
Hallo Zusammen.

Ich hab mal hier mitgelesen und möchte mal ein paar Kommentare dazu geben.
Eine Nachführsteuerung für Astrofotografie ist so ziemlich das komplizierteste, was es im Bereich Robotik gibt.

Klar könnte man bei einer parallaktischen Montierung http://de.wikipedia.org/wiki/Montierung#Parallaktische_Montierungen einfach einen Schrittmotor mit konstanter Geschwindigkeit dran hängen. Das funktioniert für visuelle Beobachtungen und Fotografie mit sehr kurzer BRennweite ausreichend gut. Dafür gibt es aber preiswerte Steuerungslösungen um die 50€ im gut sortierten Astronomiefachhandel.

Will man aber mit einem Teleskop fotografieren (Langzeitbelichtung und lange Brennweite) dann ist es absolut notwendig, dass die Sterne über lange Zeit die selben Pixel auf dem CCD-Chip der Kamera treffen. Da wird es dann schon nicht mehr trivial, da die Montierung dann je nach Brennweite mit Bogensekunden- bzw. sogar Subbogensekundengenauigkeit nachgeführt werden muss. Ist da die Mechanik (insbesondere einfache Zahnräder) mit zu viel Spiel, kann man es gleich vergessen. Da nützt dann die genauste Motorsteuerung nichts mehr.

Ein weiteres Problem bei der Astrofotografe ist die Tatsache, dass die Objekte sich halt eben nicht mit konstanter Geschwindigkeit bewegen. Kometen, Asteroiden usw. bewegen sich ohnehin nicht mit der normalen Sterngeschwindigkeit. Von daher muss für diese Objekte speziell die Geschwindigkeit und der Vektor errechnet werden. Dazu ist neben der genauen Position des Beaobachters auf der Erdoberfläche (GPS-Koordinaten und Höhe) auch die exakte Zeit nötig. Die Bahnparameter der Objekte bekommt man aus Datenbanken im Internet. Dazu sind aber recht aufwändige Berechnungen nötig und somit kann man einen ATTiny indiesem zusammenhang gleich ausschließen. Aber auch Sterne bewegen sich nicht wie man annehmen könnte gleichformig. Durch die Atmosphäre wird nämlich die Wahre Position verschoben und es ergibt sich eine Scheinbare Position. Diese wird durch die Atmospärische Refraktion bestimmt http://de.wikipedia.org/wiki/Astronomische_Refraktion. Auch ein Problem bei langen Optiken wie Refraktoren ist die Durchbiegung des Tubus und damit je nach Lage eine Drift des Sternenlichtes auf dem CCD-Chip.
Viele Astronomische Montierungen verwenden ein Schneckengetriebe um die nötige UNtersetzung hin zu bekommen. Vorteil ist auch, dass man durch etwas einseitige Beladung der Montierung sicherstellt, dass die Schnecke immer an einer seite des Schneckenrades läuft und so kein Spiel entsteht. Aber die Schnecke selbst induziert einen periodischen Schneckenfehler von einigen Bogensekunden. Der muss herausgerechnet und der Motor entsprechend mal langgsamer oder mal schneller gedreht werden.
Ganz wichtig bei astronomischen nachführungen ist Microstepping. Im ungünstigsten Fall bei geringer Untersetzung (die man ohnehin vermeiden sollte)lässt der Motor beim Fullstep betrieb und langsamen bewegungen die Montierung aufschwingen.

Andere Einflüsse wie Nutation und Präzession spielen bei einer einfachen Nachführung glücklicherweise eine untergeornete Rolle, da sie sich nur in sehr langen Zeiträumen abspielen. Bei robotischen Teleskopen müssen sie aber berücksichtigt werden, da diese Sternpositionen direkt aus dem Stand anfahren können. In Sternkatalogen sind die Koorinaten aber meist mit einem definiertem Julianischen Datum angegeben (J1950, J2000). man muss dan die Objektdrift seit diesem Zeitpunkt einberechnen.

Dandan
11.12.2012, 09:24
Ich will ja kein Teleskop dran hängen sondern nur eine Spiegelreflex Kamera. Und die Bilder werden ja auch nicht am Stück mit 2h belichtet sondern immer nur ein paar minuten und das dann verrechnet.
Für eine richtige Nachführung kommt man schnell in den 4stelligen Bereich und das ist mir für den kleinen Hobbyzweck viel zu teuer.

darxon69
11.12.2012, 10:15
Ok für Sternfeldaufnahmen mag das Gehen. Aufsummieren der Bilder ist eine Option, aber ich denkte trotzdem, dass wenn es nur darum geht, Du mit einer Nachführung aus dem Astronoomieladen günstiger kommst. Was hast du für eine Montierung?
Die Preise für die guten Montierungen sind schon irgendwo gerechtfertigt auch wenn es weh tut sowas zu bezahlen. Wir haben für unsere ASA DDM-160 auf der Sternwarte fast 30000€ Löhnen müssen.

Dandan
11.12.2012, 10:21
Alle Nachführungen die ich so für Kameras gefunden habe lagen bei 400€ oder auch mehr.

darxon69
11.12.2012, 12:23
Aber incl. der montierung. Hatte das so verstanden, als ob Du die Montierung shcon hast und diese nur Motorisieren willst.
Ich habe zum Beispiel vor Jahren mit dem Teil angefangen.
http://www.teleskop-express.de/shop/product_info.php/info/p417_Parallaktische-Montierung-EQ-2-mit-Feldstativ.html
Due Steuerung dazu gibts hier.
http://www.teleskop-express.de/shop/product_info.php/info/p2934_Skywatcher-RA-Nachfuehrung-mit-Kontrollbox-fuer-EQ-2-Montierung.html
Das ist natürlich keine Oberliga, aber zum Einstieg in die Astrofotografie mit Spiegelreflexkamera durchaus brauchbar.

Meist ist es aber dann so, dass man relativ schnell die Grenzen überschreiten will, die so ein System bietet. Astrofotografie kann süchtig machen. Ich sprech da aus Erfahrung ;-)

dussel07
11.12.2012, 13:17
Von wegen Spiel könnte man über eine Zahnriehmenuntersetzung nachdenken?

darxon69
12.12.2012, 08:05
Zahnriemen haben aber auch das Problem, dass sich derZahnriemen doch minimal dehnen kann. Man kann aber dennoch damit schon einige Fehler eliminieren. Es gibt auch Montierungen am Markt, die genau das Nutzen http://www.baader-planetarium.de/avalon/download/avalon_linear-mount_technische_daten_A4_1mm_050911_02.pdf
Es gibt aber auch Selbstbauten von Amateurastronomen, die das Schneckenproblem mit Reibradantrieben angehen. Da ist aber anscheinend das Hauptproblem die Materialhärte und die nötigen Anpressdrücke. http://www.zellix.de/reibrad.htm
Bei den Semiprofessionellen Montierungen setzen sich inzwischen Direktantriebe durch. Astro-Systeme-Austria baut da ganz schicke Teile http://www.astrosysteme.at/images/Folder_ASA-Mount_E.pdf. Bei denen ist ein Motor mit einem im Subbogensekundenbereich auflösenden Encoder (0,03") ohne jegliche Getriebe direkt mit der Achse gekoppelt. Das ist zwar der Königsweg, aber die Preise sind natürlich für einen Einsteiger oder einen normalen Amateurastronom utopisch.

Dandan
15.12.2012, 18:51
Ich werde den Antrieb wohl mit einer gebogennen Gweindestange M6 und einem kleinen Schneckenradgetriebe antreiben (40:1 untersetzt). Wird aber erst nächstes Jahr fertig werden.
Bei der Platine brauch ich dann also ein Programm wo ich die Taktzahl/Drehzahl einstellen kann. Die Geschwindigkeit kann ich ja dann berechnen (dürfte so ca 170 (edit: 206 sind es genau) Impulse pro Sekunde sein bei 1/1 Ansteuerung) und es dann auch so im Programm festlegen. Was dann noch schön wäre, wäre ein 50% Drehzahlmodus.
Also bräuchte ich:
1. Taster für ständig Vorwärtslauf. 100%
2. Taster den man gedrückt halten muss für schnellen Rücklauf (oder Endschalter nehmen)
3. Taster für 50% Vorwärtslauf.

Dandan
13.02.2013, 11:44
hallo,

könnte mir bitte noch wer sagen wie ich das programm umschreiben kann das 206 impulse pro sekunde ankommen?

$regfile = "m8def.dat"
$crystal = 1000000 'ohne verändern der Fusebits $crystal = 1000000


'Ausgang Richtung an PD3
Richtung Alias Portd.3
Config Richtung = Output

'Ausgang Geschwindigkeit an PD4
Tackt Alias Portd.4
Config Tackt = Output

'TASTER1 an PD0
Taster1 Alias Pind.0
Config Taster1 = Input
Portd.0 = 1 'PullUp-Widerstand einschalten

'TASTER2 an PD1
Taster2 Alias Pind.1
Config Taster2 = Input
Portd.1 = 1 'PullUp-Widerstand einschalten

Dim A As Byte


Do
Toggle Tackt
Waitms 100
A = A + 1
If A = 200 Then
Toggle Richtung
A = 0
End If
Loop

End


im prinziep müsste ja nur das

Do
Toggle Tackt
Waitms 100
A = A + 1
If A = 200 Then
Toggle Richtung
A = 0
End If
Loop

geändert werden in:

Do
Toggle Tackt
Waitms ??
Loop

Danke

dussel07
13.02.2013, 14:02
Wenn man nur mit Wait und ohne Timer arbeitet bekommt man den Wert nur ansatzweise.
1000000/206 = 4854,3689µs
1000000/4854 = 206,0157 Impulse pro Sekunde
Keine Ahnung ob die Genauigkeit reicht??
Besser und eleganter wäre sicher eine Lösung mit einem Timer! Da hat es ein geniales Tool zur Timerberechnung im Downloadbereich - mir fällt leider der Name nicht ein?? (vieleicht ja einem Anderen??)

$regfile = "m8def.dat"
$crystal = 1000000 'ohne verändern der Fusebits $crystal = 1000000


'Ausgang Richtung an PD3
Richtung Alias Portd.3
Config Richtung = Output

'Ausgang Geschwindigkeit an PD4
Tackt Alias Portd.4
Config Tackt = Output

'TASTER1 an PD0
Taster1 Alias Pind.0
Config Taster1 = Input
Portd.0 = 1 'PullUp-Widerstand einschalten

'TASTER2 an PD1
Taster2 Alias Pind.1
Config Taster2 = Input
Portd.1 = 1 'PullUp-Widerstand einschalten

Dim A As Byte


Do
Toggle Tackt
Waitus 4854
Loop

End

Dandan
13.02.2013, 21:04
klar reicht das^^ danke dir

dussel07
13.02.2013, 21:23
Weiß jetzt wieder wie das Tool heißt:
rnAVR
Ist genial! Berechnet den Timerwert und gibt dann gleich ein Codeschnipsel in Bascom aus!
Mit dem verbautem 16MHz Quarz kommst Du auf einen Fehler von 0,006ms

Siehe HIER
'################################################# #############
' Timer Beispiel für das universelle Controllerboard
' rn-control mit mega 16 oder mega 32
' Ausführliche Infos zum Controller Board findet man
' unter www.robotikhardware.de als auch im
' www.roboternetz.de
'
' Dieses ruft einen Timer Interrupt in ihrer gewählten Frequenz auf.
' Bei jedem Interrupt wird der Zustand der LED einmal umgeschaltet, dadurch
' blinkt die LED genau in der halben Frequenz
' Der generierte Code kann direkt in den Bascom-Compiler kopiert
' und kompiliert werden. Natürlich läßt sich der Code auch in
' bestehende Programme integrieren

' Autor: CodeGenerator rnAvr vom roboternetz.de
' Weitere Beispiele und Beschreibung der Hardware
' unter http://www.Roboternetz.de oder robotikhardware.de
' Eigene Programmbeispiele sind im Roboternetz gerne willkommen!
'################################################# #############



'wenn mega 32, dann ändern in $regfile = "m32def.dat"
$regfile = "m16def.dat"

'Quarzfrequenz, entsprechend ihren Angaben
'der passende Quarz muss in die Fassung gesteckt werden
$crystal = 16000000

'nur notwendig wenn rs232 benutzt werden soll
$baud = 9600

'Hier wird der Timer und der Teiler festgelegt
Config Timer1 = Timer, Prescale = 8

'Der Port mit der dritten LED auf RN-Control wird als Ausgang programmiert
Config Pinc.2 = Output
'Hier geben wir der Definition einen schöneren Namen
Led3 Alias Portc.2

'Hier wird das Unterprogramm festgelegt, das
'in dem von ihnen eingestellten Intervall aufgerufen wird
On Timer1 Timer_irq

'Diese Vorgabe wurde berechnet um die genaue Intervallfrequenz zu erreichen
Const Timervorgabe = 55827


'Hier werden die Timer aktiviert
Enable Timer1
Enable Interrupts

'Hier ist die Programmhauptschleife
Do
'Hier könnte Ihr Hauptprogramm stehen
Loop



'Dies ist der Programmteil, der in dem von ihnen gewählten
'Intervall aufgerufen wird
Timer_irq:
Timer1 = Timervorgabe

'Hier könnte nun ihre beliebige IRQ-Routine stehen
'Dabei sollte man darauf achten das diese nicht mehr Zeit
'benötigt, als das Intervall zuläßt

'Der Zustand der LED wir umgekehrt, wodurch sich blinken in der halben Frequenz ergibt
'Hohe Frequenzen sind natürlich nicht mehr sichtbar
Toggle Led3

Return

Dandan
13.02.2013, 21:36
Hab jetzt ein ganz anderes problem.
Wollte die Schlatung nach den paar wochen wiedermal einschalten, mach strom drauf und dann machte es bum. Auf jeden fall ist die Motoransteuerung durch gebrannt aber du meitest doch das es auch ohne ginge mit dem ULN 2803A.

dussel07
13.02.2013, 23:10
Was genau ist durchgebrannt? Der Atmega??
Kann mir eigentlich nur vorstellen das Du Gnd und +5v vertauscht hast oder was leitendes unter der Platine liegen hattest.
Deine Schrittmotorkarte hat ja Optokoppler in den Eingängen die mit 5V betrieben werden - schreib mal was für Typen da verbaut sind.
Kann mir aber beim besten Willen nicht vorstellen das die mehr als 40mA ziehen! 40mA ist die maximale Pin Belastbarkeit des Atmegas.

Dandan
13.02.2013, 23:22
toshiba TB6560AHQ japan 126GA1 ist in der mitte gerissen

dussel07
14.02.2013, 13:51
ULN geht nicht da Du einen bipolaren Schrittmotor hast.
Ich habe noch eine L298 Karte im Regal? Kann aber nur Voll und Halbschritt.
Ansonsten einen TB6560AHQ für kleines Geld aus China bestellen?

malthy
14.02.2013, 14:49
Habe jetzt nicht den ganzen Thread verfolgt, aber der TB6560 ist mir auch schon mehrfach unter den Fingern weggestorben. Was er garnicht mag (wenn ich mich richtig erinnere), ist, wenn der Leistungsteil (Vma und Vmb) Spannung hat, der Logikteil (Vdd) aber nicht. Den TB6560 sollte man für ca 5€ irgendwo in D finden können.

Gruß
Malte