Hallo erstmals und zwar ich bin neu in diesem Forum. ich möchte gerne als Abschlussarbeit ein Planetarium bauen, dass die inneren 4 Planeten darstellt die sich in ihrer Umgebungslaufbahn um die Sonne drehen. Ich möchte dieses gerne mit einem Arduino Mikrocontroller realisieren und einen Schrittmotor der per Übersetzung die Planeten antreibt. Glaubt ihr dass das realisierbar ist?
Felix Stockinger schrieb: > Glaubt ihr dass das realisierbar ist? klar, wieso nicht. Hängt halt von deinem Wissen ab und wie viel Zeit du investieren möchtest / kannst ;-)
Felix Stockinger schrieb: > Glaubt ihr dass das realisierbar ist? Sicher. Aber warum muss es ein µC-gesteuerter Schrittmotor sein?
Jein Eigentlich eine Programmierprojekt, denn der Aufbau wird von meinem Projektpartner gemacht. Da dies von der Schule so vorgegeben wird Außerdem wird die Arbeit dann in einem Museum ausgestellt wird. Daher sollte es einen Schalter geben in dem man die Umdrehungsgeschwindigkeit erhöhen kann und es soll danach wieder die ursprüngliche Position einnehmen und es sollte einen Zeitempfänger haben da er sich immer wieder nach der echten Planetenposition richten soll.
Machs ohne Getriebe und nimm doch stattdessen mehr Schrittmotoren. Dann noch einen Sensoreingang für die Nullstellung für jeden Motor und es sollte gehen. Schua dich mal nach Schrittmotorsteuerkarten um, mit dem Motor-Driver-Shield wirst du nicht glücklich, weil das zuwenig Kanäle kann. Es sei denn, du stapelst, da muss natürlich ein wenig umverdrahtet werden.
Felix Stockinger schrieb: > ich möchte gerne als Abschlussarbeit ein Planetarium bauen, dass die > inneren 4 Planeten darstellt die sich in ihrer Umgebungslaufbahn um die > Sonne drehen. > > Ich möchte dieses gerne mit einem Arduino Mikrocontroller realisieren > und einen Schrittmotor der per Übersetzung die Planeten antreibt. > > > Glaubt ihr dass das realisierbar ist? Sagt Dir die Zeitgleichung was? Keplersche Gesetze? Für die mathematischen Grundlagen empfehle ich Dir ganz dringend das Buch (ja, tote Bäume) "Astronomie mit dem Personal Computer" von Oliver Montenbruck und Thomas Pfleger (ISBN 3-540-21204-3). Du wirst sehen, dass Du für die Algorithmen ziemlich viel Gleitkomma-Mathematik brauchen wirst. Dafür ist ein 16 MHz 8 Bit AVR nicht die optimale Wahl. Wenn Du etwas Arduino-ähnliches verwenden willst, nimm das hier http://www.digilentinc.com/Products/Detail.cfm?Prod=CHIPKIT-MAX32 Das ist ähnlich, nicht wesentlich teurer, hat aber einen 80 MHz 32 Bit PIC32 drauf, der damit keine Probleme haben sollte. Vorhandene Arduino-Shields müssen 3.3V-tauglich sein. fchk
Das ich mehrere Schrittmotoren nehme wäre keine Problem da wir noch genau 4 Schrittmotoren Zuhause haben. :D Das mit der Nullstellung ist keine schlechte Idee und anhand der Zeit kann ich die Planeten ja in die jeweils richtige Position fahren. Ich habe mir zum Testen den Arduino Uno und den Easy Driver Schrittmotortreiber gekauft.
und was bringt er mir? Da kann ich den Arduino genauso verwenden oder? außerdem kann ich mit dem Arduino in einer einfachen Programmiersprache programmieren.
Felix Stockinger schrieb: > und was bringt er mir? Posting von mir gelesen? Sind Dir die Algorithmen klar? > Da kann ich den Arduino genauso verwenden oder? Gleitkomma ist dort etwas langsam. Lies das Buch. > außerdem kann ich mit dem Arduino in einer einfachen Programmiersprache > programmieren. Die Entwicklungsumgebung gibts für PIC32 auch in einer angepassten Form. Ansonsten gilt: Willkommen bei C. Das wirst Du irgendwann ohnehin lernen müssen. Also warum nicht jetzt? fchk
oh entschuldige den Post habe ich übersehen Glaubst du dass mit der Gleitkomma Berechnung wird so ein großes Problem? Ich habe für das Projekt ca. 3 Monate Zeit und muss nebenbei arbeiten gehen So viel zeit für das ich jetzt C lerne habe ich nicht
Frank K. schrieb: > Gleitkomma ist dort etwas langsam. Lies das Buch. Ich sehe es nicht so, dass er Gleitkomma braucht. Sein "Planetarium" wird die Planeten wohl schon aus mechanischen Gründen auf Kreisen statt Ellipsen fahren lassen. Die Umlaufzeiten der Planeten sind bekannt. Was willste da groß rechnen? Du lässt für jeden Erdentag jeden der 4 Planeten ein Stückchen weiter fahren. Wie groß das Stückchen ist, kann man vorher mit dem Taschenrechner unter Berücksichtigung der bekannten Umlaufzeiten ausrechnen. Es kann natürlich sein, dass nach einer ganzen Umdrehung die Planeten etwas "verrutscht" sind, da die ermittelten Wege pro Erdentag nach einer ganzen Umdrehung in Summe nicht ganz übereinstimmen. Das kann man mit einer geeigneten Nullpunktserkennung wieder ausgleichen.
Genau so sehe ich das auch Also brauche ich theoretisch nur die Ansteuerung der 4 Planeten berechnen Wie lange jeder Planet Strecke am Tag zurücklegt und falls dies nicht mehr ganz passt einfach vom Nullpunkt wieder weggehen
Frank K. schrieb: > Felix Stockinger schrieb: > >> und was bringt er mir? > > Posting von mir gelesen? Sind Dir die Algorithmen klar? Vergiss die Algorithmen. Die Hälfte davon braucht er nicht. Für ein mechanisches Modell reicht es, wenn er einfach einstellen kann, in welcher Zeit welcher 'Planet' eine Umdrehung um die Sonne macht. Dazu noch eine fixe Anfangsposition aus der er die Position zu einem Stichtag entnimmt und von dort die Zeit aufsummiert. Die Abstände der Planeten sind sowieso nicht massstäblich Die Exzentrizität der Planetenbahnen kann er in einem Tischmodell mit vernünftigen Abmessungen mechanisch nicht darstellen. Genausowenig kann er die Inklination der Bahnen mechanisch realisieren (ok, den Teil könnte man ins Auge fassen) Die UNgenauigkeit und das Spiel der Mechanik schluckt so viel, dass es keinen Sinn macht, da größartig die ganzen Korrekturen an der Länge anzubringen. Die Hauptkorrektur an der Länge anbringen reicht völlig. Bei der Geschwindigkeit der Planeten hat sein µC von einem Schrittmotorschritt zum nächsten alle Zeit der Welt um zwischendurch noch quadratische Gleichungen zu lösen - in Gleitkomma. Für die Zwecke eines mechanischen Tischmodells sind die Planetenbahnen einfach nur Kreise auf denen ein Ball in einer bestimmten Zeit (die in Tagen bemessen wird) eine volle Umdrehung zurücklegt. So ein Modell ist ein Anschauungsobjekt und kein Messgerät.
Ich würde auch vier getrennte Schrittmotoren nehmn, weil du nur durch ein "Software-Getriebe" die Übersetzungsverhältnisse hinreichend genau einstellen kannst. Damit kannst du dann aber auch problemlos die Plane- tenposition im Jahr 3000 anzeigen, ohne die Planeten tausendmal herum- wirbeln lassen zu müssen. Durch die unabhängige Ansteuerung der einzelnen Planetenmotoren kannst du auch problemlos die variable Bahngeschwindigkeit nachbilden. Wenn du noch vier weitere Motoren besorgst, kannst du die Bahnen ohne allzu großen mechanischen Aufwand¹ elliptisch machen, indem zusätzlich zur Drehung um die Sonne jede Planetenachse auf einem Kreis rotieren lässt, dessen Durchmesser der Differenz zwischen dem maximalen und dem minimalen Abstand zu Sonne entspricht. Auf jeden Fall würde ich jedem einzelnen Motor ein Getriebe mit einer Übersetzung ins Langsame spendieren, da sich die Planeten sonst für das Auge deutlich sprunghaft (und mit sichtbaren Nachschwingern bei jedem Sprung) bewegen. Die trigonometrischen Berechnungen der Motorpositionen für einen gegebenen Zeitpunkt ist sicher eine interessante Aufgabe. Hast du dir schon überlegt, wie du die unterschiedlichen Bahnneigungen realisieren möchtest? Oder ist das nicht so wichtig? Dann kannst du dir nämlich auch die Ellipsenbahnen sparen. Wegen der Rechenleistung des verwendeten Mikrocontrollers würde ich mir keine Sorgen machen: Du berechnest die Planetenpositionen einfach periodisch mit einer Zykluszeit, die der µC noch gut schafft. Die Zwischenpositionen interpolierst du linear. Läuft die Anlage in Echtzeit (also extrem langsam), erhältst du mit dieser Methode immer das im Rahmen der Schrittmotorauflösung exakte Ergebnis. Im Zeitraffermodus wird es durch die Interpolation vielleicht etwas ungenau, aber da ist die Genauigkeit auch nicht so wichtig. Falls du nur Kreisbahnen mit konstanter Bahngeschwindigkeit vorsiehst, ist die Rechenleistung sowieso kein Problem. —————————————— ¹) Das geht natürlich auch mechanisch, bspw. mit Kurvenscheiben.
Felix Stockinger schrieb: > Ich habe für das Projekt ca. 3 Monate Zeit und muss nebenbei arbeiten > gehen > So viel zeit für das ich jetzt C lerne habe ich nicht In welcher Sprache willst Du Deinen Arduino denn bitte programmieren wenn nicht in C? Der Charme an Arduino sind halt nunmal die fertigen Libs für Dinge wie Schrittmotoren, RTCs usw. - und die sind nunmal in C bzw. C++ verfasst.
da man im Arduino in einer C# ähnlichen Sprache programmieren kann und ich kann C#
Felix Stockinger schrieb: > da man im Arduino in einer C# ähnlichen Sprache programmieren kann > und ich kann C# Du weißt aber schon, das das was du als C# ähnlich bezeichnest in Wirklichkeit ein C++ ist, welches mit vielen Hilfsklassen zur leichteren Verwendung aufgepeppt wurde? (was ja an sich nicht schlecht ist. Nur sollte man auch den Namen der Programmiersprache kennen, in der man programmiert :-)
:
Wiederhergestellt durch User
Felix Stockinger schrieb: > da man im Arduino in einer C# ähnlichen Sprache programmieren kann > und ich kann C# Rate mal woher das "C" in C# kommt? Der Syntax ist an C angelehnt. Wenn du denkst das Arduino-C hat irgendwas mit deinem C# in deinem Visual Studio zu tun, dann irrst du dich. Wie gesagt, der Grundlegende Syntax ist praktisch gleich, aber das ist auch ziemlich egal. Die "for-Schleife" sieht in C, C#, C++ und Java identisch aus. Trotzdem stehen andere Paradigmen dahinter. Also lern lieber gleich richtiges C und wurschtel dich nicht noch zusätzlich in den Arduino-Quatsch ein. Mit C# hast du zumindest mal einige Syntaktische Grundlagen dafür. gruß cyblord
:D oh okay das wusste ich nicht für mich ist das alles noch Neuland und ich habe mich bisher jetzt nur mit ein paar Examples von Arduino gespielt
Yalu X. schrieb: > Auf jeden Fall würde ich jedem einzelnen Motor ein Getriebe mit einer > Übersetzung ins Langsame spendieren, da sich die Planeten sonst für das > Auge deutlich sprunghaft (und mit sichtbaren Nachschwingern bei jedem > Sprung) bewegen. Ich empfehle den Motor "28byj48-12". Ist bei eBay für wenig Geld zu haben und enttäuschend langsam (da eine Untersetzung von 1:64 im Spiel ist und der Motor selbst schon 64 Schritte für eine Umdrehung braucht). Für diese Art der Anwendung also perfekt.
also von diesen Motoren habe ich noch 4 stück zuhause: Howard IND. 1-19-4201 müsste funktionieren
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.