Hallo Ihr Lieben, auf der Suche nach info zu der Möglichkeiten von ATMEL Microcontrollern fand ich in dieses Forum. Ich hoffe hier eine Gruppe versierter Kenner gefunden zu haben. Ich möchte die unbefangene Meinung zu einem Microcontrollereinheit mit Atmel2561 zu holen. (eine 126 Version mit der mögichkeit auf 256 Update habe ich hier´gefunden: http://www.shop.display3000.com/pd1140349844.htm?categoryId=1) Aber erst die Hintergrunde: Ich habe vor, einen Heliostat zu bauen. (Sonnennachführungsystem) Die Anlage besteht aus einem Rotor der mit 2 Schrittmotoren, Elevation und Horizont, die Sonnenposition nachführt und die Strahlen auf eine freiprogramierte Stelle mittels eines Spiegels lenkt. Um den Rotor zu Steuern brauche ich eine Kontrollereinheit die einige Berechnungen ausführt: 1-- Zeit und Datum aus interner Uhr auslesen und in Universalzeit umsetzen. 2-- die Geopositiondaten eingeben lässt. 3-- Sonnenposition mit o.g. Daten 3mal pro Minute berechnet (die Berechnungsrutinen unten) 4-- den nötigen Umlenkungswinkel in gleichen Zeitintervall berechnet (Imput soll manuell enstellbar sein mit up, down, links und rechts Tasten) und die Motoren des Rotors steuern diese Funktion dient auch der mannuellen Bewegung des Spiegels. 5-- Vorprogramierung der Betriebszeit ermöglicht.(zB von 9:00-18:00 Uhr) 6-- Windgeswindigkeit mißt und bei zu starkem Wind den Spiegel in die höhste Elevationsposition fährt. 7-- ausser betrisbszeit gleich wie p.6 meine Fragen: 1- Schafft das der Atmel Mega 2561 in der o.g. Ausführung, oder ist das für den Prozessor zu komplex? 2- Wie soll ich die ganze Umgebung gestallten? (Periferiemodule usw.) 3- wie könnte den der Quellcode in Bascom aussehen? (habe leider keine Erfahrung mit Bascom). Für Eure Meinung und Hilfe danke ich im Voraus. W.Krochmat (woodoo) Hier die Daten die der Rotor benötigt: 01. Elevationspositionserkennung (Impuls A -Phase) 02. Elevationspositionserkennung (Impuls B - Phase) 03. Eingang für Azimutpositionserkennung (Impuls A -Phase) 04. Eingang für Azimutpositionserkennung (Impuls B -Phase) 05. Eingang Erkennung Elevationsgrundstellung 06. Eingang Erkennung Azimutgrundstellung 07. Masseklemme für Elevation u. Azimut Grundstellungserkennung 08. Masseklemme für Elevation u. Azimut Grundstellungserkennung 09. + Ausgangsklemme für Encoderversorgung im Rotor (Impulse A/B 24V DC) 10. - Ausgangsklemme für Encoderversorgung im Rotor (Impulse A/B 24V DC) 11. + 24V DC Ausgangsklemme für Elevationsmotorspannungsversorgung 12. - 24V DC Ausgangsklemme für Elevationsmotorspannungsversorgung 13. + 24V DC Ausgangsklemme für Azimutmotorspannungsversorgung 14. - 24V DC Ausgangsklemme für Azimutmotorspannungsversorgung und die Berechnung der Sonnenposition in Delphi (leider keine C oder Bascom quellcode) um die komplexität zu zeigen. die restlichen Berechnungen und Rutinen sollen relativ einfach sein. Das Programm tut eigentlich nichts weiter als phi, lambda und JD einzulesen, die Formeln der Reihe nach abzuarbeiten und das Ergebnis jedes Schritts in einem Textfeld auszugeben (S. Anhang)
Der Mega2561 ist da mit sicherheit nicht überfordert, hat jede Menge Ports und Schnittstellen. Wenn's um reine Dateneingabe (per serieller Schnittstelle) geht ist das auch kein Problem. Schnell sind die Teile ja und Berechnungen sind auch kein Problem. Was evtl. hilfreich wäre ist die genaue Uhrzeit per DCF77-Antenne, oder besser noch ein GPS-Empfangsmodul (WGS84), dann ist die eigene Position (wird ja auch gebraucht) und die genaue Uhrzeit schon zum Rechnen drin.Zur Ansteuerung der Schrittmotoren würde ich eigene Steuerungen z.B. mit dem tiny2313 machen. Ich programmiere allerdins in C und will mich mit BASIC nicht mehr beschäftigen, deshalb kann ich hier nicht weiterhelfen.
Der ATmega2561 ist dafür total oversized, ein ATMega16 sollte dicke reichen. Warum willst Du Basic nehmen, wenn Du damit keine Erfahrungen hast ? Hat Bascom überhaupt ne double Library ? Du solltest C nehmen, da findest Du die meisten Programmbeispiele. Allerdings hat der AVR-GCC keine double Library. Du müßtest also mal prüfen, ob double überhaupt nötig ist. Peter
1-double ist absolut erforderlich sonst der Fehler berägt über 1° 2-in der Hilfe von Bascom habe ich das gefunden: The double.lbx (lib) is written by Josef Franz Vögel. The library supports the basic operations : Addition (+) Substraction (-) Multiplication (*) Division (/) Val() , INPUT Str() , PRINT Int() Frac() Fix() Round() Conversion from double to single and long Conversion from single and long to double The double library uses special Mega instructions not available in all AVR chips. But as the old chips are not manufactured anymore, this should not be a problem. All Trig() functions are supported by the double too! ich schwöre nicht auf Bsic, die Möglichkeit bitet sich na weil zu dem Modul gibt es Diesen Compiler als Bundle. in c bin ich auch auf Hilfe angewiesen. Gruß woodoo
Das der Mega 256 Überdimensioniert ist gibt mir die weitere Möglichkeit die Anlage zu Erweitern z.B. mehrere Rotoren zu lenken, ausgefalene Bildschirmausgabe usw. es ist wirklich vielseitiges Thema. Ich bin gespannt wie sich es hier entwickelt? Quellcodes usw. Gruß woodoo
Ganz ehrliche Meinung? Völlig unbefangen? Du wirst von den Features des Mega-256 erschlagen werden. Warum nur nehmen gerade Anfänger immer das Topmodell für ihre ersten Schritte? Glaub mir, es ist einfacher, zwei Controller einzusetzen (einen für den Heliostaten und einen weiteren für ein Display) als alles in einen überdimensionierten Controller reinzustecken. Wenn man z.B. per I²C oder per SPI die Ports erweitert, reicht für so eine Aufgabe schon ein Mega-8, und der dreht noch Däumchen.
Ich habe deshalb hier gepostet weil mir alle gefragten Händler nach Analyse des Projekts eben den Mega empfohlen haben. Ich möchte eine Lösung erreichen die mir erlaubt weit vorkonfektionierte Komponenten zu verwenden um nicht noch zusätzlich viel löten zu müssen. Ich habe , meine ich, ziemlich alles beschrieben um den Umfang des Projektes zu erläutern. mir ginge eher um Antworten die konkrett beschreiben was und warum. Mich stört es nicht, dass der Prozessor "zu mächtig" sei. Ich bin sogar froh darüber, weil es bestätigt das, was die Händler sagen. Auserdem möchte ich hier keine Emotionaldiskussionen anfangen.
ja willst du das teil jezt bauen oder sollen wir das für dich tun... wenn alles so klar ist würfe ich doch mal sagan: ran ans werk...
"Mich stört es nicht, dass der Prozessor "zu mächtig" sei." Das kann durchaus stören. Bis zum Mega64 hast Du linearen Adreßraum für Daten und Code. Ab dem Mega128 brauchst Du aber erweiterte Adressen für konstante Daten und ab dem Mega256 erweiterte Codeadressen. Wenn Dein Compiler / Basic das nicht unterstützt, stehst Du dumm da. Außerdem werden die Programme dadurch auch etwas langsamer. Peter
habe ich hier Jemanden beleidigt? oder werden hier ale Grünschnabel erst mal Kaffe kochen geschickt.
Hallo Peter, danke für die Anregung, heisst das, dass der AVR BASCOM-Compiler schaft die Adressierung des 256'er nicht? der Verkäufer von dem o.g.Teil hat mir eben ein Upgrade von 128 auf 256 als einfache Speichervergrößerung empfohlen. und wenn du den Quelkode siehst meinst du, dass der "kleinere"(128) besser für den Zweck geegnet ist? Gruß woodoo
Weiß ich nicht. Ich benutze kein Bascom und keinen Mega128 oder größer. Schau doch mal in der Doku von Bascom nach, welche AVR-Typen unterstützt werden. Peter
Hallo grmbl, "Du wirst von den Features des Mega-256 erschlagen werden. Warum nur nehmen gerade Anfänger immer das Topmodell für ihre ersten Schritte?" erst mal das zweite Teil deiner Frage: Für alle Anfänger kann ich nicht sprechen. In meinem Fall gibt es einige Faktoren: 1.- aus Mangel an Erfahrung muss ich mich belehren lassen. die Meisten die ich gefragt habe, fangen mit der Frage an, was ich damit machen will? dann, ob es ausbaubar sein soll, weiter, wie hoch der Aufwand der Konfektionierung von Hardware sein soll? und zu letzt, wie teuer soll es sein. Dann folgt die Argumentierung, dass im Falle des Erreichens der Möglichketsgrenzen die Erweiterung der Anlage wird teurer und kompliziert. 2.-Die Losungen für dieses Thema, auf die ich im Netz gestossen habe setzen als Rechenzentrum einen PC an, der externe Relais mit RS232 steuert. 3.- die Losung 2 ist zu teuer. 4.- ich habe mich, leider sehe P1.- überzeugen lassen und das oben geschriebene Modul gekauft. jetzt habe ich die Kröte und suche nach Rat und Hilfe wie ich damit mein Projekt doch realisieren kann. Gruß woodoo
"Bis zum Mega64 hast Du linearen Adreßraum für Daten und Code." Leider zwei davon (drei mit EEPROM), egal welcher AVR. Ist zumindest bei WINAVR mit bis zu knapp 64KB an Flash-Daten kein Problem, oder jedenfalls nicht schlimmer als sonst. Der plaziert die Daten gnädigerweise vorneweg in den Speicher. Und da die Mega256x-Version vom GCC alle Entry-Points in den ersten 64KW (128KB) hält, ist auch das kein Problem. Bleib der Ärger mit den Tools. Die 256er sind noch so warm, dass sie bisweilen noch nicht "out of the box" unterstützt werden.
hallo A.K. heisst es, das ich den 256 verwenden kann quasi als op er 16 wäre? (Falls ein 16'er die Rechenleistung, die ich brauche, liefert)
Da du BASCOM verwendest, musst du dort fragen. Grundsätzlich muss die Programmierumgebung den Typ kennen, sonst wird das garantiert nichts. Ich bezog mich auf den Beitrag von Peter Dannegger, der den Mega256 in die Nähe gebankter 8051-er rückte. Was nicht der Fall ist, der Mega256 ist genau linear wie der Mega64 oder Mega128.
PS: ...ist bis 64KB Flash-Daten genauso linear... Darüber wird's hässlich. Aber wer solche Datenmengen anpeilt, sollte sich überlegen, ob er bei AVRs nicht ohnehin falsch ist.
ich habe den 256 leider schon gekauft s. frühere post und jetzt suche ich nach Rat wie ich weitere Deteils des Projektes "anbeise"
gibt es einen erprobten Tool der Pascal für ATMega 256 compiliert?
Ach Du lieber Gott, nimm das Ding und fummel rum bis es geht. Sowas gab es doch schon in den siebzigern(oder warens die achtziger?) in billigster Hardware. Ich wundere mich manchmal wie unsicher die Leute hier an Projekte rangehen. Wenn Du die analoge Variante sehen willst, sag bescheid. diesmal ohne Äppler ts
Leute, steigt um auf Assembler, dann wird auch ein Mega2561 zu einer problemlos programmierbaren Angelegenheit...
Hallo ts, " Wenn Du die analoge Variante sehen willst, sag bescheid" -klar will ich sie sehen
Hallo 256xFan, Kannst du mir sagen wie es mit der Berechnung (s Anhand oben) im Assembler geht?
Na ja, a bisserl Mühe ist da schon notwendig, die wird einem sicher niemand abnehmen! Mit ein wenig Erfahrung und den vielen Beispielcodes im Netz macht der 256x schon einiges möglich, kompakt, schnell und preiswert.
keine Anregungen, keine Ideen???? Hallo HomerS, "Sowas gab es doch schon in den siebzigern(oder warens die achtziger?) in billigster Hardware." kannst du etwas genauer sagen?
hi, @ krochmat ich werde auch was ähnlich machen, ich verwende C8051 , kannst du vielleicht dein complett projekt posten? danke,
Was wollt ihr denn da so viel rechnen. Wenn die Drehachse bekannt ist, und die aendert nun nicht jeden Tag, so sind es nur noch 15 Grad pro Stunde. Sonst noch was ?
also mal im ernst. Du übertreibst es mit dem mega 2561 wirklich. Allein wenn du dir anguckst, wie viel code du schreiben musst um überhaupt einen mega 32 mal voll zu kriegen....da is der mega2561 voll drüber... aber das weisst du sicher selbst. Und wenn du einen mega 32 nehmen würdest, was meiner ansicht nach kommplett für diesen zweck ausreiche n würde(40 pins), würdest du sogar noch das problem mit der unterbringung von 100 pins umgehen. denk mal nach: display 4-bit modus (7/8 leitungen) dann deine motoren (angenommen du nimmst 2) 6/4 pins da bleiben dann immer noch genug leitungen frei, und an seine grenzen bringst du mit diesen aufgaben einen mega 32 nicht im entferntesten. Das würde sogar ein mega 8 schaffen (wobei der zuwenig pins dafür hat und 8kb flash, weiss ich nich ob du ein programm, oder einen roman schreiben willst ^^) Daniel
daniel schrieb:
> denk mal nach:
Oder noch besser: Guck mal auf's Datum.
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.