Forum: Mikrocontroller und Digitale Elektronik 10-Bit Arithmetik / Welcher µC ?


von Andreas (Gast)


Lesenswert?

Hallo!

Ich möchte mittels eines µC und einem Piezo-Kreiselelement einen 
künstlichen Horizont aufbauen. Um das ganze recht genau einzulesen, 
lässt sich der interne 8-Bit wandler ja recht leicht auf 10Bit 
'aufbohren'. Wie das funktioniert, ist mir schon klar.
Ich weiss nur nicht, wie ich dann am Schluss die 10Bit intern 
weiterverarbeiten soll. Ich muss den Wert integrieren, damit ich die 
Horizontlage rauskrieg. Geht das mit einfachen Methoden in Assembler?

Zusätzlich hab ich geplant, einen Kompass und eine Temperaturmessung 
(Temp-Abgleich des Piezos), später noch lauter Schnickschnack wie 
Geschwindigkeitsmessung, Höhe, Steigen, GPS....

Nachdem ich noch keinen eigenen µC hab, bin ich grad auf der Suche. Nen 
8051 kann ich in Assembler programmieren. Der AVR mit 16Mhz würd mir 
auch gefallen, und so unterschiedlich vom Befehlssatz sind die ja auch 
nicht.
Oder sollte ich da dann doch lieber auf nen 16-Bit Controller 
zurückgreifen? Wenn ja, was ist da für meine Zwecke empfehlenswert? (Ich 
hab keine Eprombrenner und will auch keinen kaufen)

Um das ganze gleich noch komplizierter zu machen :-)
-> so klein wie möglich (SMD)
-> wenn SMD, auf jeden Fall schon verlötet
-> direkt vom PC aus programmierbar (Win/Linux)
-> für Schüler erschwinglich
-> 8*AD-Wandler (multiplex)
-> mindestens 16 digitale I/O's

Wär super, wenn mir jemand zu meiner Programmierfrage oder zur Auswahl 
des geeigneten µC Tipps geben könnte. Danke!

Gruss, Andreas

von Christian (Gast)


Lesenswert?

Hi Andreas
willst du einen UAV bauen - oder was hilft dir sonst ein künstlicher 
Horizont??? Hast du URL's zu dem Thema?
Die AVR's haben bereits 10-bit AD-Wandler eingebaut. Eine Übersicht 
findest du z. Bsp. hier:
http://www.avrfreaks.net/Devices/devcompare.php
Wenn du später noch schickschnack wie Höhenmessung einbauenwillst lohnt 
es sich vielleicht gleich einenexterne AD 16-bitter oder so zu nehmen 
(ich denke du willst einen Drucksensor verwenden).
Das Thema ist relativ komplex denke ich - ich würde fast sagen es lohnt 
sich C zu lernen, da hast du nämlich nicht die Probleme mit großen 
Zahlen oder son Schunder. Ein tolles Kompassmoudl ist z. Bsp das 2xcm-1 
- mit Anschlussmöglichkeiten für 2 Temperatursensoren!!
Wenn 16 bit dann ist wohl der M16C ganz gut - schau mal auf www.glyn.de

Was hast du denn schon mit 8051 realisiert?
In welcher Klasse bist du und wo wohnst du??

Beschreib dein Projekt mal etwas genauer!!!

Viel Erfolg
mfg
Christian

von Christian (Gast)


Lesenswert?

Hi
wie soll das eigentlich gehen aus einem 8bit AD einen 10 bitter zu 
machen???

mfg
Christian

von Andreas (Gast)


Lesenswert?

Hi!

Als erstes will ich mich mal mit solchen Piezokreiseln beschäftigen. Da 
ich selber segelfliege, kann ich das Ding dann auch recht einfach im 
Flug testen. URL's dazu hab ich keine, eigentlich müsste das ja (im 
prinzip) recht einfach sein, die Probleme werden irgendwie schon zu 
lösen sein. Das mit den 10 Bit is ganz einfach (jedenfalls bein 8051): 
Grobmessung mit Uref 5V/0V, und anhand dieser den Messbereich festlegen 
(mit 1,25V Spannungsbereich, Messwert 1 ungefähr in der Mitte des 
Bereichs) und schon hab ich meine 10Bit. Sind halt 2 Messungen dafür 
notwendig, und das Signal sollte dabei nicht so arg schwanken.

Das mit C hab ich mir auch schon überlegt. Ist halt nur die Frage, wie 
effizient C mit solchen Problemen umgeht. Hab mal irgendwo gelesen, das 
µC bei mathematischen Berechnungen ziemlich langsam sein sollen. Daher 
würde mich interessieren, ob die Geschwindigkeit solcher Prozessoren 
dafür ausreicht. Ich möchte mir halt gleich ein System kaufen, mit dem 
ich dann im Laufe der Zeit recht viel machen kann.
Ich kann halt nicht einschätzen, wieviel Rechenleistung ich dafür 
brauche, und ob das überhaupt mit nem 8Bit Controller möglich ist. Müsst 
eigentlich schon gehen. Aber 16Bit wär ja dann eigentlich komfortabler, 
oder?

Als allererstes hab ich wiegesagt vor, mittels eines Piezos die Lage zu 
errechnen, das geht mit ner Integration. Genauere gedanken hab ich mir 
allerdings noch nicht gemacht. Als zweites möchte ich das ding 
Temperaturkompensieren und dann möglicherweise einen Horizontabgleich 
mit 2 gegenüberliegenden Fotodioden machen (Ne Idee von nem Freund, 
könnte aber funktionieren :-) realisieren. Alles weitere ist bis jetzt 
noch Träumerei...
Mit dem 8051 hab ich noch keine konkreten Projekte realisiert, wir haben 
damit nur in der Schule gearbeietet und halt so die üblichen Themen wie 
Interrupts und AD-Wandlung gemacht, nix aufregendes.
Ich bin im Moment in der FH Isny, und mach da ne Ausbildung zum 
Assistent für Informations-und Kommunikationstechnik, und werd wohl 
dieses Jahr noch anfangen, E-Technik zu studieren. Wohnen tu ich in 
Wangen(Allgäu)

Gruss, Andreas

von Andreas (Gast)


Lesenswert?

Ach ja, bei http://www.opticompo.com/index2.html
hab ich den "letATworkII" mit dem ATmega128-16AI gesehen, der sieht doch 
ganz nett aus, oder?

Gruss, Andreas

von Christian (Gast)


Lesenswert?

Hi
hast du dir bereits überlegt welchen Piezo du verwenden möchtest??? 
Möhtest du einen Modellbau Gyro schlachten???? Vergiss bitte nicht, dass 
die Dinger auch einen teilweise recht hohen Drift haben!!!
Würd' mch freuen, wenn du etwas näher auf die Idee von deinem Kumpel mit 
den 2 Fotodiodeneingehen würdest!!! Ich hab' aml gelesen dass einer den 
Horizont über den Kontrast hellbaluer Himmel zu dunkler wiese 
rausbekommen hat - find ich gut weils langzeitstabil ist.
Temperaturkompensieren ist wohl unnötig, da die Teile mist einen Vref 
ausgang haben - der ändert isch mit der Temperatur meiner Meinung nach 
mit.
Ich denke du kommst schneller zum Erfolg wenn du anfangs mal einen 
kleineren MC nimmst (z. Bsp einen 2333 mit AD wandler). Was willst du 
denn mit den ganzen freien Ports einens Megas machen???
C würd ich sagen lohnt sich bei Mathematik schon - beim code vision 
compiler z. Bsp. musst du nur die richtige library einbinden und 
hinschreiben tan x oder so und schon hast du den Tangens der variable x 
- wie das in assembler gehen soll weiß ich nciht - mit sicherheit nicht 
so einfach.....

mfg
Christian


PS: Jetzt weiß ich  immer noch nicht was du bauen willst (was die dein 
Horizont bringen soll mein ich)

von Andreas (Gast)


Lesenswert?

Hallo!

Hmm, ich hab mir das grad nochmal durchgerechnet.Leistungsmässig sollt 
ich da ja locker hinkommen, mit dem Mega.

Das mit dem Gyro hab ich noch nicht geklärt, ich werde da direkt Kontakt 
mit nem Modellbau-Kreiselhersteller (ACT) aufnehmen. Das mit dem Drift 
hab ich auch schon gehört. Daher dacht ich mir, dass ich zuerst mal 
sowas wie nen Horizont realisier, damit ich das ganze in den Griff 
krieg.
Über die Fotodioden hab ich mir auch noch nicht so viele Gedanken 
gemacht, aber wenn ich waagerecht bin, sollten beide gleiche Werte 
liefern, bei schräglage schaut eine auf den Boden, die andere in die 
Luft -> unterschiedlicher Kontrast. Wie genaue Messungen man damit 
machen kann, weiss ich aber nicht.

Für die freien Ports fällt mir schon noch was ein. Grafik-LCD, 
Matrixtastatur... Ich möcht halt nicht nach nem halben Jahr nen neuen 
Controller kaufen, weil der alte zu klein wird.

Gruss, Andreas

p.s. Nen wirklichen Sinn hat der Horizont nicht, ausser vielleicht 
Spassflüge aus dem hinteren Cockpit ohne Sicht nach draussen. Als erstes 
will ich mal tiefer in die µC-Programmierung einsteigen.

von Christian (Gast)


Lesenswert?

Hi
wenn du nen guten Sensorn gefunden hast würd's mich interessieren!!!!!
Ich wollt mal einen enc-05 von Murata verwenden, aber die sind nicht 
wirklich gut - find ich.

mfg
Christian

von Peter (Gast)


Lesenswert?

Also avrgcc bietet sogar 64-Bit Variable. Ich verstehe nicht, wo das 
Problem liegt. Aber es soll ja noch Leute geben, die sich lieber in 
Assembler einen abbrechen ...


;-)

Peter

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
Noch kein Account? Hier anmelden.