Ein Hallo an alle AVR-Freak's, das Forum hier ist einfach super, sowie die kompetenten Antworten. Damit wird ein großes Spektrum an Fragen und möglichen Realisierungen abgedeckt. Deshalb wende ich mich an Euch, da hier Praxis und Theorie harmonieren. Nun zu meinem Problem: Ich betreibe Astronomie und möchte einige Probleme mit dem MC erschlagen. Also was brauche ich? * ein Display * ein kleines Menü * die momentane Uhrzeit * die Sternzeit * eine kleine Datenbank der Objekte am Himmel * die momentane Position des Fernrohres * und das ganze Batterie-gepuffert, da die Uhrzeit auch nachGebrauch erhalten bleiben soll später ist auch eine Nachführung des Telescopes per Schrittmotor im Visier Das Ganze soll auf einem ATmega32 mit ca. 10MHz Taktfrequenz laufen. Dieser MC hat massig Speicher für die Datenbank(EEPROM) und Variablen. Zu den einzelnen Punkten: *Uhrzeit: ========= Die Uhrzeit soll aus einem externen 10,24MHz generiert und in Register (HH:MM reicht aus) abgelegt werden. *Sternzeit: =========== Nur am Frühlingspunkt stimmen die aktuellen Sterndaten mit den auf der Sternkarte überein. Für alle anderen Tage im Jahr muß gerechnet werden, da wir mit der Erde noch um die Sonne saussen verschieben sich auch die Sternbilder am Himmel. Jetzt kommt bei der Berechnung die Sternzeit ins Spiel. Ein Sterntag ist ca 4min kürzer als der Sonnentag. Damit der MC nicht jedes mal die Sternzeit ausrechnen muß(ist nicht gerade trivial) möchte ich die Sonnen- + Sternzeit über das Menü eingeben und der Timer soll dann die Zeit weiterzählen. --> gute Timerroutine * kleine Datenbank: =================== Soll im EEPROM liegen und es muß möglich sein sie auch extern neu zu programmieren. Da kann ich mir verschiedene Datenbanken auf dem Computer anlegen und bei Bedarf die richtige Laden. --> Konzept schon entwickelt aber immer für Vorschläge offen *momentane Position: ==================== Das ist der der Knackpunkt. Praktisch gesehen soll wie bei einer Coputermaus einmal die horizontale- und einmal die vertikale Bewegung des Fernrohres abgetastet werden. Die Bewegung ist kreisförmig und eine Abtastfläche ist vorhanden. Soll ich das über Interrupts realisieren oder gibt es Bauteile welche die Position speichern und bei Bedarf zu Verfügung stellen. Mit den Interrupts weiß ich nicht so genau, denn eine Auflösung von 0,1° möchte ich schon haben. Was ist wenn ich das Fernrohr schnell drehe und die Timerroutine haut rein? Und noch etwas kommt erschwerend dazu: Ich kann ja das Fernrohr nach links oder rechts sowie in der Höhe hoch+runter drehen, also muß die Drehrichtung auch beachtet werden. _________________________________________________________________ Achso ich nehme hierfür nicht das erste mal einen Lötkolben zur Hand, bin aber auch kein Profi, sondern nur ein ganz ganz kleiner -) Ich hoffe ihr habt ein paar Lösungen parat, die mir vielleicht auch neue und bessere Wege aufzeigen. Gruß Stevko
hm, wenn ich mir das so im ganzen überdenke - ich würde es mit einer Kombination aus PC und AVR angehen. Den MC für die hardwarenahen Sachen (Positionserfassung), den PC für den Rest. Will nicht sagen, dass man dass nicht alles in einen AVR packen kann - es wird mit PC sicher einfacher zu bedienen und deutlich komfortabler werden.
Hallo, ich baue gerad etwas ähnliches. Ich schreib mal was meine Lösung kann (können soll): - lesen einer DCF77 Uhr daraus Berechnung der Sternzeit - 16 x 2 LC Display - Motorsteuerung RA und DEC Halb/Vollschritt (L297/L6203) - Steuerung über serielle Schnittstelle - Goto vom PC aus (keine Datenbank im uC) - Alle Parameter und Funktionen per Tastenfeld programmierbar - Encoder... (trau ich mich nicht ran, wegen der u.U. hohen Geschwindigkeit, da hab ich keinen Timer mehr übrig) - z.Z Programmierung auf ATMega16 Die Internetseite dafür ist noch nicht komplett, aber auf Wunsch geh ich per mail noch auf Details ein. MfG Torsten
Den Encoder kann man mit ein wenig Hardware (HCTL2016) unterstützen. Der uC braucht dann nur noch die Position abholen. Die Datenbank könnte man in eine MMC-Karte stecken. Bernd
Die Encoder kann man bequem in Software abfragen. Z.B. mit einem Timerinterrupt alle 100 Takte bei 10MHz kannst Du also Encoderimpulse bis 100kHz sicher erkennen. Peter
I²C Encoder. Nicht schlecht. Davon hab ich noch nichts gehört. Das wäre eine einfache Lösung für das Problem.
Hallo, an alle die mir geschrieben haben. Leider war ich verhindert und konnte deshalb nicht antworten. Das die Resonanz so groß ist hatte ich nicht erwartet. crazy horse: Eine Symbiose von PC + AVR wollte ich vermeiden. Solange man nicht vom Balkon wegkommt ist die Lösung geschickt, aber im Dunkeln auf dem Stoppelacker.... Da bleibt man schnell mal am Kabel hängen und kann dann im dunklen die Überreste seines Laptop's zammensuchen. Außerdem ist jede zusätzliche Lichtquelle / Lichtwechsel nicht gerade förderlich. Peter und Bernd: Ihr scheint ja genügend Erfahrung mit Encodern zu haben. Ich wolle erstmal eine alte Maus schlachten um damit etwas zu üben. Da ich 2 Encoder brauche werden auch 2 INT-verbraten. Hättet ihr da ein paar Tips für den Aufbau parat? Der letzte INT geht noch für die WakeUp-Funktion drauf oder ist das anders lösbar? Torsten: Wenn Du Lust hast könnten wir mal in Kontakt treten. Ich denke das 2 Mann/Frau schneller zum Ziel kommen als wenn jeder für sich sinniert. Hast Du das mit der DCF77 schon realisiert oder ist es erst mal eine Idee. Jedes mal die Sternzeit zu berechnen ist nicht gerade Prozessor-schonend oder ist da ein ganz anderer Ansatz. Und was passiert wenn ich mit dem Teleskop in eine andere Zeitzone komme. Ist da eine Korrektur möglich? Gruß Stevko
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.