Hallo an alle zusammen, ich bin gerade bei einem Schulprojekt, bei dem ich ein wenig Hilfe im Bereich Mikrocontroller programieren bräuchte. Ich bin in einer Technikerschule und jedes Jahr gibt es hier so eine Messe, in der die Schüler selber ein Projekt im Laufe des Jahres aussuchen und aufbauen. Ich habe vor, einen Handschuh für taubstumme Menschen zu entwickeln, der die Handzeichen in Wörter auf einem Display und vielleicht auch später in Töne umwandeln kann. Zuerst wollte ich dies einmal nur mit den 26 Buchstaben des Alfabets ausprobieren. Den Handschuh habe ich schon besorgt und diesen mit 5 solcher Biegesensoren, welche ihre Ausgangsspannung mit dem Biegungsgrad des Fingers variiert, einen für jeden Finger, ausgestattet. Auch habe ich schon eine Tabelle aufgebaut, wo ich die Werte ( z.B. 1,5V - 2,2V ) der Ausgangsspannungen für jeden Finger und jeden Buchstaben eingetragen habe. Die meisten Buchstaben unterscheiden sich bei diesen Ausgangsspannungen (1-5V). Nun wollte ich das Programm dafür schreiben. Ich habe vor, einen PIC18F4520 zu benutzen und das Programm in C++ zu schreiben, da ich schon ein wenig Erfahrung darin habe. Nur reichen meine Vorkenntnisse aber nicht dafür aus, das Programm zu schreiben. :( Könnte mir jemand vielleicht dabei helfen? Vielleicht eine Vorlage, wie das Programm aussehen könnte. Ich wäre euch wirklich sehr dankbar, da ich wirklich hilflos bin.. LG, Anna
Hallo Anna, erst einmal schreibst Du das Programm in C und nicht in C++ Dann gehts los: Fünf mal Analogeingang einlesen Dann Auswertung der Biegung über Fensterkomparator im Programm Dann abgleich mit der Tabelle und Ausgabe. Wo ist das Problem? Wenn Du Dich zu einem Atmel entschließen könntest, gibt es bestimmt mehr Beispiele. Axel
Das kann doch nicht ernst gemeint sein. Wenn das die Techniker von morgen sind,Gnade uns Gott. Ich will mir einen Fluxkompensator bauen.Zeug zum reinwerfen hab ich schon. Brauche nur noch jemanden,der mir ein Programm schreibt,damit das Teil auch funktioniert.
Hallo Axel, vielen Dank für die schnelle Antwort. Ja, leider kann ich mich nicht zu einem Atmel entschließen, da wir den PIC gebrauchen sollten. Und wegen dem Programm, welche Begriffe kann ich für die verschiedenen Funktionen gebrauchen? LG, Anna
Hallo Andy, Na ja, eigentlich bin ich noch keine Technikerin, da ich gerade erst mit der Schule angefangen habe und wir das Programmieren noch gar nicht gelernt haben. Auch ist das noch kein Studium oder so, sondern in Deutschland könnte man es mit der 10. Klasse vergleichen. Anna
Hi Anna, also einen fertigen Programmcode kannst du hier nun wirklich nicht erwarten, du wirst dich schon ein wenig selbst mit der Materie auseinandersetzen müssen. Fang doch einfach mal an die analogen Werte vom Handschuh einzulesen, weiter kannst du ebenfalls schonmal die Tabelle mit deinen aufgenommenen Werten implementieren. Grundlagen findest du hier auf der Seite, obs nun ein Atmel ist oder ein PIC ist im ersten Schritt mal egal, denn die Technik ist überall die gleiche. Du kannst also auch ruhig mal die hier sehr ausführlichen Atmel Tutorials lesen. Hast du dich durch die Grundlagen gearbeitet, verrät dir alles weitere das Datenblatt deine PIC's. Kommst du an einer Stelle nicht weiter, poste hier deinen bisher erarbeiteten Quellcode und dein Problem und dir wird mit SICHERHEIT geholfen! Grüße D
Hallo Anna,ich kann nicht glauben,das eine Schule ihren Schülern Projekte aufs Auge drückt,ohne das die Schüler über irgendwelches Wissen verfügen. Aus welchem Land kommst du den? Deine Frage " welche Begriffe kann ich für die verschiedenen Funktionen gebrauchen" zeigt,das du wirklich nicht viel übers Programmieren weisst. Ich glaube,das ist vier Nummern zu gross für dich.Nicht böse sein,nur meine Meinung. andy
Hallo Daniel, ja, vielen Dank für die Antwort. Gut, ich werde versuchen mich noch ein wenig darin einzuarbeiten, wenn es dann nicht klappt, schue ich hier wieder vorbei. LG, Anna :)
andy schrieb: > Das kann doch nicht ernst gemeint sein. > Wenn das die Techniker von morgen sind,Gnade uns Gott. > Ich will mir einen Fluxkompensator bauen.Zeug zum reinwerfen hab ich > schon. > Brauche nur noch jemanden,der mir ein Programm schreibt,damit das Teil > auch funktioniert. Sowas muss btw wirklich nicht sein!! @Anna: Wie sieht denn die Schaltung aus? Ich nehme an ihr habt euren Handschuh an ein PIC Evaluation-Board geschraubt?? Hast du überhaupt schonmal was mit Mikrocontrollern gemacht?
Also der Plan klingt schon recht sportlich, vor allem wenn du noch nicht programmieren kannst. Wie viel Zeit hast du für das Projekt? Ein guter Anfang wäre denke ich, wenn du den Handschuh mal ein paar Leuten gibst, die Gebärdensprache beherrschen. Die sollen dann alle mal das Alphabet durchgehen und du misst bei jedem Buchstaben für jeden Finger die Spannung der Biegesensoren mit einem Multimeter. Dann kriegst du schonmal einen Überblick, wie weit die Messwerte streuen, da ja nicht jeder die Finger genau gleich hält. Im nächsten Schritt lässt du die Leute nochmal ein paar Buchstaben machen und versuchst von Hand über die Messwerte zu sagen was sie gezeigt haben. Erst wenn das richtig funktioniert, kannst du diese Übersetzung sinnvoll in ein Programm einbauen. Das geht dann vom Prinzip her wie Axel schon gesagt hat. Du machst für jeden Buchstaben jeweils für jeden der 5 Messwerte ein Fenster (von-bis) in dem der Wert liegen muss. Dann gehst du die Liste mit den Buchstaben durch und vergleichst deine aktuellen Messwerte mit den gespeicherten Werten und dort wo alle 5 Werte im Fenster liegen ist dein gesuchter Buchstabe. Wenn es dabei mehrere Treffer gibt könnte man z.B. schauen wo die Abweichung der Messwerte von den Mittelwerten der einzelnen Fenster am kleinsten ist.
Hallo Andy, ja, hier in Brasilien sind die Schulen ein wenig anders als in Deutschland. Die Schüder suchen sich ein Projekt aus und müssen selber damit zurechtkommen. Für das Programmieren habe ich am Anfang des Jahres so einen Kurs gemacht, wo man so das Wesentliche erlernt. Aber welchen Begriff man z.B. benutzt, um die Spannungswerte einzutragen, (z.B. 1,5V - 3,2V), darüber muss ich halt irgenwo nachschauen müssen. Ich glaub auch, dass das Projekt ein bisschen zu schwierig ist :D. Und böse bin ich dir natürlich nicht! :DD LG, Anna
Hallo Daniel, also, ich hab die Schlatung schon fertig, fehlt nur das Programm. Und mit dem Mikrocontroller habe ich schon ein paar einfache Schaltungen aufgebaut..
Anna schrieb: > Hallo Daniel, > > also, ich hab die Schaltung schon fertig, fehlt nur das Programm. Gut, ist denn auch sichergestellt, dass die Schaltung funktioniert? Wenn ja fang einfach mal damit an einen einzelnen analogen Wert per ADC einzulesen. Wenns nicht klappt stell hier eine konkrete Frage (mit Quelltext)!
Hallo hdd (?) Ja, ich habe bis Oktober Zeit mit dem Projekt. Ja, vielen Dank für die Tipps, ich hab dies schon mit mehreren Leuten versucht und Werte stimmen alle ungefähr überein. Vielen Dank! Anna
Eine Möglichkeit wäre, deine Messungen als 5-dimensionalen Vektorraum zu betrachten. Die fünf Messwerte stellen dann einen Vektor mit fünf Komponenten dar und die Tabelle (5 Werte zu jedem Buchstaben) sind die Ortskoordinaten deiner Buchstaben. Für die Auswertung einer Messung rechnet man dann den Abstand des Meßvektors zu allen Ortsvektoren der Buchstaben aus. Der mit dem kleinsten Abstand ist dann mit hoher Wahrscheinlichkeit der richtige Buchstabe. Das sollte ganz gut in einem nicht zu aufwändiges Programm umsetzbar sein. Gruß Michael
Hallo Daniel, Ja, die Schaltung ist schon fertig und funktioniert. Michael, vielen Dank für die Hilfe ich werde mal versuchen, das Programm zu schreiben. Ich melde mich dann wieder. :) Anna
Michael schrieb: > Eine Möglichkeit wäre, deine Messungen als 5-dimensionalen Vektorraum zu > betrachten. Die fünf Messwerte stellen dann einen Vektor mit fünf > Komponenten dar und die Tabelle (5 Werte zu jedem Buchstaben) sind die > Ortskoordinaten deiner Buchstaben. Für die Auswertung einer Messung > rechnet man dann den Abstand des Meßvektors zu allen Ortsvektoren der > Buchstaben aus. Der mit dem kleinsten Abstand ist dann mit hoher > Wahrscheinlichkeit der richtige Buchstabe. > Das sollte ganz gut in einem nicht zu aufwändiges Programm umsetzbar > sein. > > Gruß > Michael Nearest Neighbor Classifier Es sollten aber zu jedem Buchstaben mehrere Vektoren geben. Das sind aber schon Deteils. Ich würde folgende Vorgehensweise vorschlagen: Das wichtigste ist, dass du systematisch vorgehst, Der Anfang hört sich ja schonmal ganz gut an. Handschuh , Sensoren und Gedanken zur Auswertung sind schon gemacht. Jetzt kommt der Handwerkliche Teil der Umsetzung: Als erstes zerlegt man das Problem: Phase I: Analyse 1. Anforderungen an das System aufschreiben (funktionale+nichtfunktionale) 2. Tests spezifizieren Phase II: Kennenlernen des Zielsystems 1. Testprogramm led blinken 2. ADC einlesen und LED in Abhängigkleit des Wertes ändern. 3. neues Testprogramm Kommunikation µC-->PC zB UART/RS232 das ist essentiel zum Debuggen und Entwickeln Zuerst nur "Hallo Welt" (fixer Text), dann einee fest codierte Zahl verschicken. 4. Kombination der beiden Programme Senden des eingelesenen Wertes an den PC 5. Erweiterung auf alle Sensoren Jetzt würde ich außerdem Daten aufzeichen, von welchen ein Teil als Entwicklungsdaten und einaderer als Testdaten verwendet werden. Diese sollten dann von Hand bewertet werden. Phase III: Vorentwicklung (80%-Lösung) Entwicklung des Übersetzers zuerst auf den PC Der µC liefert erstmal nur die analogen Spannungen So geht die Entwicklung in jedem Falle schneller und man braucht sich nicht für jeden neuen Ansatz zusätzlich noch an die µC-Restriktionen zu halten Verschiedene Ansätze ausprobieren und eine demonstrierbare Version entwickeln. Phase IV: Stabilisierung der Funktion Selektion der Verfahren, die sich als am aussichtsreichsten herausgestellt haben und (funktionial) optimieren. Nebenbei Robustheit hinzufügen: Codequalität, Fehlerhandling, sonstige nichtfunktionale Anforderungen. Optimieren der Algorithmen in Richtung Target. Phase V: Portierung Vorteil ist, dass selbst wenn die Deadline schneller ist, als du, immerhin schon etwas da ist, was man zeigen kann. außerdem ist das ganze motivierender, als wenn man sich mit mehreren Baustellen auf einmal rumplagen muss (µC-Programmierung + Funktionsentwicklung) Unnötig zu erwähnen, dass in jedem Schritt ausgiebig getestet werden sollte - automatisiert. Also aufzeichnen von use cases und einspielen der Aufzeichnung anstelle echter Sensordaten. in Schritt III hautptsächlichst testen gegen die funktionalen Anforderungen. in Schritt IV testen gegen alle Anforderungen in Schritt V wie IV, aber Target wird getestet
Anna schrieb: > Ja, die Schaltung ist schon fertig und funktioniert. Dann Zeig doch mal den Schaltplan und ein Foto. Wo lebst Du in Brasilien? Axel
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.