Forum: Offtopic Expertensystem fuer Mikrocontroller?


von Michael G. (linuxgeek) Benutzerseite


Lesenswert?

Hallo Forum,

ich besuche gerade eine Vorlesung zum Thema wissensbasierte Systeme. 
Unter anderem haben wir das Vergnuegen, in einer Gruppenarbeit ein in 
Prolog geschriebenes Systemchen erstellen zu duerfen... das kann z.B. 
ein Auskunftssystem sein oder aber auch was im Bereich Robotik und 
Bilderkennende Systeme, aber da duerfte sich mit der Sprache wenig 
machen lassen.

Was haltet Ihr davon wenn wir so ein kleines System mit einer kleinen 
Datenbank erstellen, das zu einer Anwendung den passenden 
Mikrocontroller vorschlaegt? Ich denke das duerfte noch so halbwegs im 
Rahmen des Machbaren sein und koennte unter Umstaenden vllt. sogar fuer 
den ein oder anderen hier nuetzlich sein.

Falls ich das angehe: Wuerdet Ihr mich da unterstuetzen? Ich hab 
naemlich immo nicht den allumfassenden Ueberblick ueber die ganzen 
MC-Familien. Datenblaetter horten und Kenndaten erfassen waere dann auch 
meine Aufgabe, aber Ihr koenntet zumindest die Richtung, also 
Typen/Familien andeuten und vor allem dabei helfen, diese dem richtigen 
Einsatzgebiet zuzuordnen.

Lasst mich mal wissen, was Ihr von der Idee haltet. Falls es nichts 
ist... irgendwas wird sich schon finden. Aber ein Expertensystem zur 
Verhuetung oder zu Fischkrankheiten waere wohl eher weniger mein Ding 
hehe


Michael

von 1390 (Gast)


Lesenswert?

Ich halte wenig davon. Wenn man wenig Ahnung von der Materie hat, sollte 
man mit einem MSP430, einem AVR oder einem PIC einsteigen. Ein ARM, 
sonstige 32bitter, DSP machen keinen Sinn. Wenn man mal eine Ahnung hat, 
dh schon mal was mit den genannten 3 Familien gearbeitet hat, dann wird 
man mit erhoehter Wahrscheinlichkeit bei dieser Familie bleiben, da man 
die Lernkurve ja schon hinter sich hat.
Was Sinn machen wuerde, ein Expertensysten, das zeigt, ob ein Projekt 
mit den genanten 3 Familien machbar ist, oder nicht. Falls nicht, sollte 
man's als Anmfaenger besser sein lassen.

von Michael G. (linuxgeek) Benutzerseite


Lesenswert?

Hm hm... ich hab auch so meine Zweifel an der Nuetzlichkeit der Sache. 
Ist halt ne Arbeitsbeschaffungsmasznahme und wir muessen uns selber 
ueberlegen, was wir machen wollen. Vielleicht hat ja jemand einen 
Vorschlag fuer so eine Software? Ich bin auch fuer Vorschlaege dankbar, 
im Moment habe ich naemlich nicht gerade besonders viele Ideen. 
Ausserdem sollte sich der Arbeitsaufwand mal in Grenzen halten das soll 
keine Diplomarbeit werden ;)

Michael

von Spess53 (Gast)


Lesenswert?

Hi

Kurze Zusammenfassung: Experten brauchen das nicht. Die anderen können 
nichts damit anfangen, weil sie nicht genau wissen was sie wollen.

MfG spess

von yalu (Gast)


Lesenswert?

Eine Tool für die Auswahl von Mikrocontrollern wäre sicher für viele
eine große Hilfe, wie unzählige Anfrage der Form "Welchen µC für
Anwendung xy" in diesem Forum zeigen.

Ich glaube aber, dass man dazu kein Expertensystem braucht. Eine
gewöhnliches Datenbanksystem ist sicher schon ausreichend. Viel
wichtiger als das verwendete Tool ist aber die Vollständigkeit des
Datenbestands. Die ist dann halbwegs erreicht, wenn für alle gängigen
µC-Typen der namhafteren Hersteller mindestens folgende Informationen
enthalten sind:

- I/O-Funktionen, jeweils Typ (Digital, Analogeingang, Analogausgang,
  UART, SPI, I2C, PWM, USB, Ethernet, externer Speicherbus u.v.m.) und
  Anzahl

- On-Chip-Programm- und -Datenspeichergröße

- Stromverbrauch im Powerdown, Leerlauf und Volllast

- Grobe Abschätzung Rechenleistung (bspw. MIPS, und Datenwortbreite)

- Verfügbare Gehäuseformen

- Ungefährer Preis für 1 Stück und für viele

- ... (da fehlen sicher noch einige Kriterien)

Der größte Aufwand wird es sein, alle diese Daten für hunderte von
Controllertypen zusammenzutragen. Es gibt zwar bei den meisten
Herstellern Auswahltabellen, wie z.B. diese altbekannte

  http://atmel.com/dyn/products/param_table.asp?family_id=607&OrderBy=part_no&Direction=ASC

aber sie enthalten nicht alle interessierenden Informationen. Einige
der o.g. Infos findet man nur in den Datenblättern, andere (z.B.
Preise) nur durch Anfrage bei den Distributoren.

Ihr würdet also einen Großteil eurer Zeit mit Dingen verbringen, die
mit der eigentlichen Aufgabenstellung nur wenig zu tun haben.

Ihr könnt natürlich die Zahl der betrachteten Controllertypen und der
Auswahlkriterien serh stark einschränken, um schneller zum Ziel zu
kommen. Daraus kann durchaus eine anspruchsvolle Arbeit entstehen, und
ich möchte euch deswegen die Idee keinesfalls ausreden. Nur müsst ihr
auch dann im Klaren sein, dass das Ergebnis für die Allgemeinheit
nicht so arg nützlich ist.

von Michael G. (linuxgeek) Benutzerseite


Lesenswert?

Hi Yalu,

> Ich glaube aber, dass man dazu kein Expertensystem braucht. Eine
> gewöhnliches Datenbanksystem ist sicher schon ausreichend.

Naja... also die Datenbank alleine isses noch nich ganz, es gut um 
wissensbasierte Systeme, nicht um Datenbanken ;)

> Ihr würdet also einen Großteil eurer Zeit mit Dingen verbringen, die
> mit der eigentlichen Aufgabenstellung nur wenig zu tun haben.

Das Wissen, also die Daten, sind Kernstueck der Materie und daher haben 
sie sehr wohl mit der Aufgabe zu tun. Und diese Zusammentrag-Arbeit ist 
teil davon.

> Daraus kann durchaus eine anspruchsvolle Arbeit entstehen, und
> ich möchte euch deswegen die Idee keinesfalls ausreden. Nur müsst ihr
> auch dann im Klaren sein, dass das Ergebnis für die Allgemeinheit
> nicht so arg nützlich ist.

99% der Arbeiten aus dieser Ecke sind fuer die Allgemeinheit nicht 
nuetzlich... das waere schon ein sehr ehrgeiziges Ziel ;)

Im Prinzip isses so: Ich muss es machen fuer meine Zulassung. Also ob 
ich jetzt ne Datenbank aufbaue, die Dir verraet, wie Du Deine Blumen 
duengen musst oder ob ich das mache... von letzterem hab ich wenigstens 
noch was denn ich bekomme selber mal nen guten Ueberblick ueber die 
verfuegbaren Controller.

Aber ihr habt recht vielleicht sollten wir uns was weniger aufwaendiges 
suchen.

Michael

von yalu (Gast)


Lesenswert?

Spess53 schrieb:

> Kurze Zusammenfassung: Experten brauchen das nicht.

Klar, Experten brauchen kein Expertensystem, da der Sinn der letzteren
ja gerade darin liegt, erstere (zumindest teilweise) zu ersetzen.

> Die anderen können nichts damit anfangen, weil sie nicht genau
> wissen was sie wollen.

Aber genau hier könnte so ein wissensbasiertes System ansetzen:
Nämlich durch geschickte, situationsabhängige Fragen dem Benutzer
seine Wünsche aus der Nase zu ziehen, ohne ihn mit unnötigen Fragen zu
nerven.

von Michael G. (linuxgeek) Benutzerseite


Lesenswert?

Da hast Du recht, Yalu. Im Endeffekt geht es um kuenstliche 
Intelligenzen. Das unterscheidet so ein System von einer Datenbank, 
naemlich das Wissen auch auszuwerten und weitegehend anzuwenden.

Ob sich das Wissen sich nun ueber Elektronikbausteine oder 
Zimmerpflanzen oder Fischkrankheiten bezieht ist dabei eher 
nebensaechlich. Und es stellt in der Tat gezielt Fragen, um 
"herauszufinden", was der Benutzer braucht. Darin besteht auch 
gleichzeitig die Schwierigkeit.

Vielleicht "begnuege" ich mich doch mit einem Algorithmus zur Wegfindung 
fuer einen Roboter... wobei das sicher auch seine Wuerze hat.

Michael

von Joerg W. (joergwolfram)


Lesenswert?

vor einigen (vielen) Jahren hatte ich mal ein System in Micro-Prolog 
entwickelt, welches aus gegebenen und gesuchten physikslischen Größen 
eine Berechnungsformel zu erstellen versuchte.
Ein anderes beliebtes Beispiel ist symbolisches Ableiten. Aber frag mich 
bitte nicht mehr nach Details...

Gruß Jörg

von nachtschicht (Gast)


Lesenswert?

>> Ich glaube aber, dass man dazu kein Expertensystem braucht. Eine
>> gewöhnliches Datenbanksystem ist sicher schon ausreichend.
>
>Naja... also die Datenbank alleine isses noch nich ganz, es gut um
>wissensbasierte Systeme, nicht um Datenbanken ;)

Schon klar, daß es dir um wissensbasierte Systeme geht. Trotzdem braucht 
man diese Systeme nicht für Aufgaben zu entwerfen, die mit trivialer 
Logik anhand einer Datenbankabfrage gelöst werden können. Kann man 
natürlich trotzdem machen, wenn man kein Problem damit hat, seine Zeit 
mit sinnfreien Aufgaben zu verbringen.

Nein, im Ernst, was echt lohnenswert wäre: Ein Expertensystem anhand 
dessen irrelevante Postings in diesem Forum ausgefiltert werden können. 
Wenn es funktioniert, solltest du es unbedingt auf deine Fragen 
anwenden, bevor du sie stellst.

von Andreas S. (andreas) (Admin) Benutzerseite


Lesenswert?

Wenn das wirklich nutzbar werden soll musst du Unmengen von 
tabellarischen Daten manuell eintragen - stupides Cut & Paste, das mit 
der eigentlichen Arbeit nichts zu tun hat. Und dass der Ansatz überhaupt 
Vorteile gegenüber einer normalen Datenbank bringt glaube ich auch 
nicht.

Anderer Vorschlag: wie wär's mit einem Autorouter für Platinen? Anfangen 
könntest du mit einem groben binären Raster (Kupfer/kein Kupfer), je 
nachdem wie gut du vorankommst lässt sich die Komplexität beliebig 
steigern.

von Michael G. (linuxgeek) Benutzerseite


Lesenswert?

> Anderer Vorschlag: wie wär's mit einem Autorouter für Platinen? Anfangen
> könntest du mit einem groben binären Raster (Kupfer/kein Kupfer), je
> nachdem wie gut du vorankommst lässt sich die Komplexität beliebig
> steigern.

Sicher interessant allerdings fuerchte ich dass das den Rahmen dieses 
Projektes deutlich sprengen duerfte. Aber fuer solche Aufgaben 
("Wegfindung") scheint die vorgegebene Sprache sehr gut geeignet zu 
sein. Man koennte sich ja mal an einem Routing versuchen, das einseitig 
brauchbare Ergebnisse liefert.

Allerdings: Da braeuchte man ja so viel drum herum... ne 
Bauteilbibliothek usw. ich fuerchte das wird zu aufwaendig. Ist aber 
eine nette Idee, vllt. laesst sich das ja auf den Umfang einer solchen 
Aufgabe reduzieren und man haette vllt. etwas, auf dem man aufbauen 
koennte, solange ich es mit dem Gedanken der Erweiterbarkeit entwerfe.

Michael

von Andreas S. (andreas) (Admin) Benutzerseite


Lesenswert?

Du kannst natürlich nicht mal eben einen konkurrenzfähigen Autorouter 
mit Bibliothek, Packages, mehreren Layern usw. bauen. Aber wenn das ein 
Uni-Projekt ist geht es doch nur darum etwas zu lernen, nicht ein 
Produkt zu entwickeln. Wenn der Router nur ein 10x10-Raster mit 5 
Signalen hinbekommt, was soll's, gelernt hast du dann trotzdem mehr als 
bei einer Arbeit wo du 90% der Zeit damit verbringst Daten aus Tabellen 
zu kopieren.

von Tom N. (tom-nachdenk)


Lesenswert?

Den Themenvorschlag 'topologischer Router' gabs ja für den Google-Summer 
of Code schon, auch wenn das Thema scheinbar von niemandem gewählt 
wurde. Eigentlich gar nicht so dumm die Idee. Neben der Wegsuche in 
topologischen Räumen könnte man später dann auch noch Pinswap/Gateswap 
etc. hinzufügen.

von Michael G. (linuxgeek) Benutzerseite


Lesenswert?

Das ist wohl wahr.

Man koennte es soweit vereinfachen, dass man das Programm mit Daten 
soweit parametrisiert, dass man die Pads (Koordinaten) und die 
Verbindungen (Tupel aus Start- und Endpunkt) angibt und es routet dann 
ein paar Signale... vielleicht laesst sich das ja dann wirklich mal 
ausbauen. Eine Moeglichkeit zur Visualisierung sollte sich denke ich mal 
auch finden lassen.

von Dr.Seltsam (Gast)


Lesenswert?

Warum nicht den Router über ULPs mit Eagle arbeiten lassen? Man könnte 
die ungeroutete aber plazierte Platine in ein geeignetes Textformat 
exportieren, das Prologprogramm damit füttern und dessen Ergebnis mit 
einem zweiten ULP wieder dem Adler zu fressen geben.... alternativ wäre 
auch ein Autoplazierer für Eagle denkbar - keine Ahnung, was schwieriger 
zu realisieren ist, vielleicht ist auch beides zu aufwändig.


Gruß
Dr.Seltsam

von Michael G. (linuxgeek) Benutzerseite


Lesenswert?

Nette Idee, falls wir die Sache machen koennen wir ja mal drueber 
nachdenken.

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.