Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   UPN-Taschenrechner selbst bauen (https://www.delphipraxis.net/128608-upn-taschenrechner-selbst-bauen.html)

Nils_13 2. Feb 2009 18:05


UPN-Taschenrechner selbst bauen
 
Hi!

Bei der Umgekehrten Polnischen Notation werden bei Rechnungen die Operatoren hinter die Operanden geschrieben. Statt dem gewohnten 3+4 schreibt man also 3 4 +
In Physik tippen wir zur Zeit an sich übersichtliche Rechnungen in den Taschenrechner ein, aber man vergisst so schnell eine Klammer, dass man alles zig mal eintippen muss, bis man das Ergebnis raus hat. Mit einem UPN-Rechner wäre das viel einfacher. Dieser Grund ist aber nur zweitrangig, einen UPN-Taschenrechner zu programmieren. Mich interessiert es einfach.
Vom Programmierprinzip her ist so ein Taschenrechner nicht sonderlich komplex. Man hat einen Stack, in den man nach und nach seinen Kram reinschmeißt. Zum Schluss wird dieser durchgerechnet ODER direkt. Funktionen wie Sinus, Cosinus, Tangens ließen sich über Näherungen "berechnen". Es gibt für Taschenrechner-Funktionen soweit ich weiß sogar einen Algorithmus, der die Programmierung stark erleichtert, mir fällt der Name leider gerade nicht ein. Von der Programmierumsetzung her, fände ich es schön, C programmieren zu können. Denn wie Matze in ICQ sagte, wäre es besser, da man Fehler leichter fände. Das stimmt natürlich.

Aber bevor man mit der Software anfängt, sollte man erstmal die Hardware zusammenkaufen und sich Gedanken drüber machen, was man alles braucht. Die erste Frage, die mir einfällt ist: Wie viel Bit muss der Rechner überhaupt unterstützen, damit man mit ihm zum Beispiel Winkelfunktionen sinnvoll nutzen kann ? Float muss er natürlich auch können. Danach stellt sich die Frage, wie schnell der Mikrocontroller sein muss, damit man mit ihm ordentlich rechnen kann. Die Anzahl der Tasten sollte auch mit berücksichtigt werden, denn um die Kommandos bzw. Operatoren ala +,-,*,/,sin,cos,tan,ln, ENTER einzutippen sind Tasten nötig. Das sind erstmal die grundlegenden Fragen und Gedanken zum Mikrocontroller. Weiter geht es mit der Stromversorgung: Ein Mikrocontroller benötigt Strom, zwar nicht viel, aber er benötigt trotzdem Strom. Damit man nicht andauernd Batterien wechseln muss und er nicht nach kurzer Zeit ausfällt, wäre ein Akku/eine Batterie mit Solarzellenanbindung sinnvoll.

Teilweise habe ich Fragen gestellt, aber größtenteils sind das meine bisherigen Gedankengänge. Haltet ihr meine Ideen für sinnvoll bzw. korrekt ? Könnt ihr mir Hinweise geben, was ich zu beachten habe ? Ich habe sicherlich die ein oder andere wichtige Sache vergessen.

Es ist ein Projekt, für das Forum "Projekte" halte ich es trotzdem nicht geeignet, da ja niemand von euch was davon hat, außer er baut den Taschenrechner selbst. In dem Sinne: Redet mit mir! :)

himitsu 2. Feb 2009 18:36

Re: UPN-Taschenrechner selbst bauen
 
es kommt ja noch mit drauf an, was du als Grundlage nehmen willst ... welche µProzessor klasse und wieviel Geld du dafür ausgeben willst.

gibt ja µP für wenig Cent, mit wenigen Eingängen, schön langsam und mit kaum Platz drin (zum Rchnen) und welche für mehrere hundert €uro, wo du genug Eingänge und massig Speicher und Rechenleistung hast.

Nils_13 2. Feb 2009 18:47

Re: UPN-Taschenrechner selbst bauen
 
Naja solange ihr mich nicht dazu bringt, einen teureren zu kaufen, würde ich mal das Maximum auf ca. 30 Euro setzen - aber wirklich nur ungefähr. Je teurer, desto wichtiger ist natürlich auch, dass dann alles sauber durchgeplant ist und daher der Controller nicht mal schnell in Flammen aufgeht. Ich habe aber nicht vor, mir einen zum Experimentieren und einen zum wirklichen Bau zu kaufen.

himitsu 2. Feb 2009 19:33

Re: UPN-Taschenrechner selbst bauen
 
in Flammen sollte hoffentlich nichts aufgehn ... aber sagen wir es mal so ... für 'ne 0 Mehr könntest du locker 'nen schön schnellen µP bekommen, mit Grafikdisplay dran und 'ner Tastatur mit Gehäuse wäre och noch drin *hust* (und du könntest in C oder Basic programmieren)

jfheins 2. Feb 2009 20:15

Re: UPN-Taschenrechner selbst bauen
 
Zitat:

Zitat von himitsu
in Flammen sollte hoffentlich nichts aufgehn ... aber sagen wir es mal so ... für 'ne 0 Mehr könntest du locker 'nen schön schnellen µP bekommen, mit Grafikdisplay dran und 'ner Tastatur mit Gehäuse wäre och noch drin *hust* (und du könntest in C oder Basic programmieren)

Also im grunde das da: http://www.taschenrechner.org/HP50g.htm :?:

Er will aber ja einen selber bauen ;)

Woe ich gerade in Wikipedia gelesen habe, brauchst du 4 Register, die du als Stack ansprechen musst. Es kommt aber in hohen Maße darauf an, wie komfortabel das Teil sein soll. ;)

himitsu 2. Feb 2009 20:26

Re: UPN-Taschenrechner selbst bauen
 
ich dachte mehr an sowas http://img.directindustry.de/images_...dul-361292.jpg

Nils_13 2. Feb 2009 20:41

Re: UPN-Taschenrechner selbst bauen
 
Hab ich 30+0=300 richtig verstanden ? Das wäre mir zu teuer. Ich will eben wirklich nichts als einen einfachen UPN-Rechner programmieren. Er soll noch ein paar Funktionen können, mehr aber wirklich nicht.

Ich frage mich schon die ganze Zeit, wie viel Bit der Controller haben sollte, denn er wird ja schon mit netten Kommazahlen zu rechnen haben.

Zum neusten Post: Naja bei dem Teil findet man ja kaum angaben. Höchstens was bei MadeInChina.com und das ist alles andere als schön.

himitsu 2. Feb 2009 21:22

Re: UPN-Taschenrechner selbst bauen
 
viele der "billigen" µP arbeiten doch nur mit 8 oder vielleicht 16 Bit, da wirst du die Berechnungen schon ganz schön zerlegen müssen und mit etwas Glück brauchst du kein ASM dafür.

Das Schwierigste wird erstmal 'nen Prozessor zu finden, mit welchem man arbeiten möchte.
Die Anzeige und Eingabe sollte nicht so schwer werden, vorallem da viele Displays schon kleine Prozessoren zur Wiedergabe enthalten und man diese sehr einfach ansteuern kann.

Nils_13 3. Feb 2009 17:14

Re: UPN-Taschenrechner selbst bauen
 
Ja. Wenn ich mich nicht täusche landet bei Delphi ein Extended in zwei 32-Bit-Registern. Daher wäre doch sogar ein 64-Bit richtig. Wenn die Frage geklärt ist, kann ich auch mal richtig schauen. Hast du ein paar Beispiele für bruachbare Controller ?

igel457 3. Feb 2009 17:22

Re: UPN-Taschenrechner selbst bauen
 
Einfach anzusteuern sind (meiner Erfahrung nach) die 8-Bit Mikrocontroller von Atmel. Dafür gibt es einen kostenlosen C Kompiler, der sogar eine Gleitßkommabibliothek hat. Allerdings benötigt diese recht viel (Programm-)Speicher, also solltest du dir schon einen uC mit etwas mehr davon raussuchen.

Schau mal hier:
http://www.reichelt.de/?;ACTION=2;LA...=artnr;SHOW=1;

Displays gibt es auch dort. Halte mal nach der "DOG"-Serie ausschau. Diese Displays sind günstig und haben schon einen integrierten Controller:
http://www.reichelt.de/?;ACTION=2;LA=2;GROUPID=3007

Nils_13 3. Feb 2009 17:27

Re: UPN-Taschenrechner selbst bauen
 
Ja, aber ist 8 Bit nicht sehr langsam ? Wenn man zum Beispiel sin(66) RAD berechnen will ?

Die Displays sind nicht übel, 8 Zeichen sind genug denke ich. Denn die meisten Angaben hinter dem Komma (die mein 10-stelliger anzeigt) sind eh zwecklos.

igel457 3. Feb 2009 17:35

Re: UPN-Taschenrechner selbst bauen
 
Die Prozessoren sind nicht unbedingt langsam. Die meisten Befehle werden in einem oder zwei Takten ausgeführt. Von daher hast du bis zu 16 Mio Befehle pro Sekunde. Der Prozessor kann außerdem auch mit 16 Bit Zahlen umgehen. Und Sinus und Cosinus würde ich wirklich nicht berechnen sondern einfach eine Tabelle in einem EEPROM ablegen.

Nils_13 3. Feb 2009 17:38

Re: UPN-Taschenrechner selbst bauen
 
Hm, eine Tabelle wäre ja toll. Nur wie erstellt man die ? Eine simple Tabelle ala 3.5 = -0.350783227... kann es ja kaum sein, da dann 3.55 auch extra gespeichert werden müsste.

jfheins 3. Feb 2009 17:49

Re: UPN-Taschenrechner selbst bauen
 
Doch - eine einfache Tabelle ;)

Wenn der gesucht Wert nicht genau in der Tabelle ist, kannste ja linear interpoliren ;)

Oder sinus und cosinus durch entsprechende Taylorpolynome annähern - dauer zwar etwas länger als ein Tabellen-lookup, braucht aber weniger Speicherplatz ;)

himitsu 3. Feb 2009 18:31

Re: UPN-Taschenrechner selbst bauen
 
für sagen wir mal 15€, bzw 25€ gibt's z.B. sowas als µP
  • Programmierbar über USB-/ und RS232
  • Multithreading-fähiges Betriebssystem
  • Niedriger Stromverbrauch
  • Programmierbar in Basic und Compact-C
  • Basic und C Code kann gemischt werden
  • Units mit Metallgehäuse, verhindert Störein-/ ausstrahlung
  • IDE und Anleitung in Deutsch und Englisch
  • Viele Funktionsbibliotheken und Beispiele verfügbar
  • User-Interrupts
  • 32Bit Floating Point Arithmetihic nach IEEE
  • Realtime Debugger über USB-/ oder RS232
  • Stand-Alone Betrieb der Unit (wie gesagt nur Strom + Ein-/Ausgabe und mehr braucht man nicht)
  • die Entwicklungsumgebung ist Gratis
  • 14 k verfügbarer Flash-Speicher
  • 2 k SRAM
  • 1 k EEPROM
  • I²C (z.B. falls der Speicher nicht reicht)
  • 10 Bit ADC mit 8 Kanälen
  • Analog Comparator
  • 3 DAC-PWM
  • 32 Digitale I/Os
  • 3 externe Interrupts
  • Taktfrequenz: 14,7456 MHz
  • 1 x 8 Bit Timer
  • 1 x 16 Bit Timer
  • Schnittstelle: RS 232.
  • (und das war nur 'nen Auszug der "kleinen" "CPU")
dann nur noch 'ne Tastaturmatrix dran, 'nen Display (fertige Ansteuerprogramme wären vorhanden), Strom, fertig und ab ins Gehäuse

igel457 3. Feb 2009 18:47

Re: UPN-Taschenrechner selbst bauen
 
Quellen/Namen? Ich kenne nur die Atmel ARM oder AVR32 Prozessoren - ohne Board.

himitsu 3. Feb 2009 19:00

Re: UPN-Taschenrechner selbst bauen
 
ist 'ne Eigenproduktion von Conrad ... hab vor einigen Jahren mal mit der C-Control (1) gespielt ^^

Bei Google suchenC-Control C-Control.de und bei Conrad.de mal nach "C-Control II" suchen


[add] verlinken geht ja nicht
C-CONTROL PRO UNIT MEGA 32 bzw. 128
die 32 > Artikel-Nr.: 198206-62

igel457 3. Feb 2009 19:55

Re: UPN-Taschenrechner selbst bauen
 
Achso der Kram... Ich habe davon nur das "alte" - und das war für kompliziertere Aufgaben ungeeignet. Und hatte damals glaube ich mehr als 50€ gekostet.

Natürlich sind diese C-Control Dinger für löttechnisch Unerfahrene besser. Allerdings verwenden die doch auch nur einen ATMEGA 32 bzw. 128 und die entsprechende Fließkommabibliothek (siehe Beitrag von mir oben)... Oder etwa nicht?

himitsu 3. Feb 2009 20:00

Re: UPN-Taschenrechner selbst bauen
 
müßt ich auch mal nachlesehn ... die hatten vor einigen Jahren mal den Prozessor (der im Hintergrund arbeitet) durch 'nen anderen ersetzt, da der alte nicht genügend Leistung schaffte, oder so.

müßte aber alles in den Datenbättern drinsteht ... zumindestens die C-Control I war/ist sehr gut dokumentiert (auch von ihrer inneren Strucktur her)

Und jupp, damals war's noch teurer, aber man konnte damit immerhin leicht rumspielen, selbst wenn man keine Ahnung hat.
das Programm läßt sich sogar im PC simulieren.

igel457 3. Feb 2009 20:07

Re: UPN-Taschenrechner selbst bauen
 
Die Entwicklung direkt mit den ATMegas finde ich jetzt nicht wirklich schwieriger. Besonders da es von ATMEL eine hervorragende Entwicklungsumgebung gibt, mit der die Programme auch Simuliert und Debuggt werden können.
Wenn man dabei noch Spaß am Löten hat würde ich diese Lösung also bevorzugen. Da man sonst ja noch einiges an Zusatzmaterial (Werkzeug, Programmer (keine Angst, Eigenbau für unter 2€ möglich, siehe hier links unten)) braucht, ist diese Lösung auch nicht unbedingt günstiger. Und zudem hat man (selbst mit Erfahrung) die Chance, dass die Schaltung nicht auf Anhieb läuft, was durchaus frustrierend ist.

Wenn man also keinen Spaß am Löten und Basteln an elektronischen Schaltungen hat, sind die C-Controls garantiert mehr als einen Gedanken Wert - da gebe ich dir voll und ganz Recht.

himitsu 3. Feb 2009 21:18

Re: UPN-Taschenrechner selbst bauen
 
zumindest bekommt man mit denen schöne kleine Schaltungen hin (bloß mal auf die Micro verweiß)
und basteln kann man da noch genügend (die ganzen Zusatzmodule, welche erhältlich sind und womit man im Grunde nur noch alles zusammen stecken bräuchte) sind och nich grad günstig und vieles lässt sich selber zusammenlöten.

Wie gesagt, es kommt jetzt nur drauf an, was der TE für 'nen Prozessor wählt ... ist ja seine Entscheidung und dann könnte man sehen wie man das Drumrum lößt und was man noch alles braucht.

Aber eigentlich benötigt man nur noch 'ne Baterie, ein Display und ein paar Tasten und Dioden für eine Tastaturmatrix ... nja und für die ATMegas selbst dann noch 'nen leicht größeres Programm, aber das sollte 'nen Programmierer notfalls nicht viel stören

Nils_13 3. Feb 2009 21:25

Re: UPN-Taschenrechner selbst bauen
 
Da ich noch recht unerfahren bin in dem Bereich, halte ich die C-Control für richtig. Nur was verstehst du genau unter einer Tastaturmatrix ? Überlege schon die ganze Zeit, aber meine Vermutungen erscheinen mir alle etwas falsch.

himitsu 3. Feb 2009 21:41

Re: UPN-Taschenrechner selbst bauen
 
ganz einfach ... wenn jede Taste einzeln an einen eigenen Eingang gelegt wird, dann verbraucht dies viele Ports.

aber als Matrix angeordner werden nicht so viele Ports belegt

PS: für soeine einfache Matix wie diese
gibt es in der C-Control schon ein fertig Programm. (obwohl sowas nicht wirklich schwer anzusteuern und auszulesen ist ... aber schonmal 'ne Fehlerquelle weniger :stupid: )
nja, aber ich denk mal du benötigst allerdings noch mehr Tasten?

http://www.avr-asm-tutorial.net/avr_...pad/avr-io.gif
(7 statt 12 Ports)
http://193.196.117.23/Projekte/Grill...aturmatrix.gif
(nur 8 statt 16 Ports)

ja und deine Tastatur (am PC) ist auch in soeiner Art verschaltet

Nils_13 3. Feb 2009 21:49

Re: UPN-Taschenrechner selbst bauen
 
Ah, dann hätte man also bezüglich Tasten wie sin nicht gerade Platzmangel ? Das macht natürlich Sinn. Mal so stupide gefragt: Woher bekommt man eigentlich Tasten ?

Zu Deiner Editierung (bist ja was das betrifft wie ich :mrgreen:): Grundfunktionen sollten halt rein. Eine Taste für Exp wäre zum Beispiel gut, die einem *10^ schon eingibt, Winkelfunktionen, etc. Das werde ich natürlich alles nach und nach erst programmieren, aber man sollte jetzt schon den Kram in die Planung mit einbeziehen. Klare Frage von Dir ("nja, aber ich denk mal du benötigst allerdings noch mehr Tasten? "), klare Antwort von mir: Ja.

himitsu 3. Feb 2009 22:13

Re: UPN-Taschenrechner selbst bauen
 
wo her: aus 'nem Elektronikladen/-versandhandel

am Einfachsten wären aber Bei Google suchenFolientastaturen (siehe Bildersuche), die kannst'e außen auf's Gehäuße kleben

und es gibt auch Unbedruckte, aber so oder so könnte man da 'ne zusätzliche/selbstbedruckte Folie drüberkleben
http://www.industriegehaeuse.woehrgm...hne_Folie2.jpg
diese 12er-Tastaturen sind meißt recht billig und leicht zu bekommen (3x4)
da könnte man im Prinzip auch 2 nebeneinander machen
http://www.e-lab.de/diverse/KeyboardF.jpg

und am Ende fehlt dann nur noch irgendeine Anzeige
LCD verbraucht dabei wohl am wenigsten Strom
http://www.e-lab.de/diverse/LCDdisp.jpg
oder du willst auch im Dunklen tippen, dann LCD mit Hintergrundbeleuchtung oder gleich LED


was ich witzig find, da der DCF-Decoder schon eingebaut ist ... man braucht nur noch 'ne DCF-Antenne und schon hat man 'ne Funkuhr

markusj 4. Feb 2009 13:37

Re: UPN-Taschenrechner selbst bauen
 
Himitsu: Die C-Control arbeitet imho intern auch nur mit nem ATMega128 o.ä.

Du hast tatsächlich also mehr Performance zur Verfügung, wenn du direkt auf dem µC programmierst, weil nämlich dann der ganze "Kram" außenrum (Pseudo-Multithreading etc.) wegfällt.
Mit nem ATMega644(P) wärst du eigentlich ganz gut bedient, hast 20Mhz, 64Kb Flash uvm. zur Verfügung (und das ist viel Platz für so ein kleines Projekt).
Ich kann dir diesbezüglich auch die Portale roboternetz.de und mikrocontroller.net wärmstens Empfehlen, dort gibt es auch Einsteiger-Guides, mit denen ich selbst (AVR)-C gelernt habe.

mfG
Markus

franktron 4. Feb 2009 15:14

Re: UPN-Taschenrechner selbst bauen
 
Schaut euch mal die XMega Serie von Atmel an die kann auch von Haus aus Gleitkommeaaremetik und schöne andere sachen


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:54 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz