Hallo Ich hab es nun endlich geschafft wieder eine Baustelle anzufangen, von der ich im Grunde genommen nicht viel Ahnung habe, die mir schlaflose Nächte bereitet und vor allem tausende neue Folgeprojekte mit sich bringt mit ähnlichen Eigenschaften. Dabei ist mein Ziel, mir so viele Custom Panels für meinen geliebten Flugsimulator X-Plane zu bauen wie es mit meine Möglichkeiten zulassen (wie ich vor allem bei professionellen Herstellern sehen kann sind die Möglichkeiten nahezu unbegrenzt.) Nachdem ich einige Knöpfe an einer modifizierten Tastatur festgelötet hatte, habe ich meine Ersten „Hardwarebau“-Erfahrungen mit dem LPT-Switch gemacht. (mehr Infos über dieses Projekt gibt’s hier http://www.x-plane.de/forums/index.php?showtopic=1245&hl=lpt-switch) Danach bin ich auf ein etwas komplexeres Projekt eines X-Plan-Kollegen gestossen, welches ich dank seiner Grosszügigkeit nun mein eigen nennen kann. Es arbeitet mit einem ATMEL Chip, einer USB Schnittstelle und hat ein LCD Display (mehr Infos zu diesem Projekt gibt’s hier http://www.x-plane.de/forums/index.php?showtopic=106&hl=radio+hardware) Diese Architektur war dann auch der Grund warum ich in diesem Forum gelandet bin. Ich habe mich ein bisschen in das Tutorial eingelesen und mir in einem Kaufrausch auch gleich das STK500 von ATMEL zugelegt (Welches bis jetzt noch unberührt in der Verpackung liegt). Des Weiteren bin ich auf das K8085 USB Experimentier Interface gestossen (Bausatz) welches ich für eine gute Übung um Löterfahrung zu sammeln hielt. Dies habe ich dann auch nach 6 Stunden Arbeit und ohne grosse Zwischenfälle zum Laufen gekriegt (wie mir die Demo Software deutlich beweist). Meine Grundlagen: Programmieren ist für mich kein Neuland (Ich arbeite mit PHP und JAVA) privat habe ich wenige Erfahrungen mit c++ gesammelt (dies vor allem im Bezug auf den Plugin-SDK von X-Plane) welche ich auch gerne noch weiter ausbauen würde. Des Weiteren bin ich auf Assembler gestossen (was mich vor allem im weiteren Verlauf beim Tutorial erwartet). Dieser Beitrag wurde auf MAC OS-X geschrieben was ich auch als meine Hauptplattform bezeichnen kann, obwohl ich nebenbei noch eine Windows Mühle als Ausweich-Variante stehen habe. Ich verfüge über X-Code, wo ich auch schon meine ersten C++ Programme mit erfolg kompiliert habe. Um auch gleich mit meinem ersten Beitrag auf meine erste Frage zu kommen. Gerne würde ich noch etwas mit dem K8055 herumspielen, bin aber dabei bereits auf die ersten Hürden gestossen. Ich habe mit folgendem kleinen Tutorial begonnen um zu sehen, ob ich die Karte überhaupt ansprechen kann. http://www.roboternetz.de/phpBB2/viewtopic.php?t=8429 leider habe ich die in diesem Tutorial beschriebenen .lib Datei nicht gefunden. Ich habe dann mit dem Header und der Lib Datei von der Velleman Seite probiert den Code in X-Code zu kompilieren. Leider ohne erfolg. Beim suchen bin ich dann auf folgendes Projekt gestossen, welches die Lösung für mein Problem sein könnte. http://sourceforge.net/projects/k8055mac/ Ich habe dann wieder versucht den vorher geschilderten C++ Codes mit dem Mac-Header zu kompilieren. Leider wieder ohne erfolg. Die Dateien im Macprojekt so zu analysieren dass ich auf die Lösung komme kann ich nicht, da mir das Projekt noch zu komplex ist. Wenn aber Jemand eine Lösung wüsste wie ich den kleinen Code von www.roboternetz.de (oder einen Ähnlichen) unter dem Mac kompilieren kann währe ich sehr dankbar. Und seit bitte nicht überrascht oder genervt, wenn dies nicht meine erste Anfängerfrage bleibt. Mit besten Grüssen Sascha
Ich habe in zwischen noch folgenden Link gefunden: http://soft.pmad.net/k8055/ Ich habe alles nötige instaliert un kann die karte nun auch über Commandline (Terminal) ansprechen. In einem C++ Commandline Tool Allerdings immer noch nicht :-( mfg sascha
ich habe den code nun mal sowei, dasser sich kompillieren lässt. Er sieht nun folgendermassen aus: #include <k8055.h> //muss sich im Projektverzeichniss befinden #pragma comment (lib, "K8055D_C.lib") //muss sich im Projektverzeichniss befinden #include <iostream> //wichtige include für standard ein- und ausgabe in der Konsole using namespace std; //muss sein macht die sache einfacher von cout u.s.w. int main () { k8055 *dev = new k8055; dev->OpenDevice(0); // Karte mit der Adresse 0 öffnen long a; // die Schleife wird solange bearbeitet wie der Anlogwert größer 1 do{ a=dev->ReadAnalogChannel(1); // Lese analogwert von Eingang 1 cout << a << endl; // gebe Wert in der Konsole aus dev->WriteAllDigital(a); // gebe Wert am Digitalausgang aus }while (a > 1); // solange wiederholen wie anawert größer 1 dev->ClearAllDigital(); //alle Ausgänge auf 0 dev->CloseDevice(); // Karte schließen cout<<"das ist mein text"<<endl; return 0; } Alllerdings gib mir das programm folgenden fehler aus wenn ich es laufen lasse: ZeroLink: unknown symbol '___CFConstantStringClassReference' CPTEST has exited due to signal 6 (SIGABRT). Ich habe in der Readme von der besagten Mac Version folgendes gefunden: - k8055.cpp - C++ static library that should replicate most functions listed in the Windows .DLL companion guide for the Velleman K8055 USB Experimenter. Kann das etwas damit zutun haben? wie muss ich die .cc datei in mein projekt integrieren? mfg sascha
Zu ___CFConstantStringClassReference spuckt Google 656 Treffer aus, die auf den ersten Blick alle Mac OS relevant sind. Weil Mac OS X Anwendungsprogrammierer hier selten sind, würde ich an deiner Stelle zusätzlich ein weiteres Forum aufsuchen. Dieses z.B. http://www.osxentwicklerforum.de/board.php?boardid=17&sid=42 Wenn du das auch machst, halte den Sourcecode bereit bzw. schreibe genauer, was du machst. Ich kann im Moment nicht nachvollziehen, woher du k8055.cpp, k8055.h und K8055D_C.lib hast. Die Downloads von http://soft.pmad.net/k8055/ und http://sourceforge.net/projects/k8055mac/ habe ich mir angesehen - habe ich dort was übersehen?
Vielen Dank Stephan Die Idee mit dem osxentwicklerforum ist mir auch schon gekommen. Ich wollte aber noch ein wenig warten und sehen was sich hier ergibt (damit ich meinen Tread dort vielleicht etwas aktueller gestalten kann). Folgendes zur Vervollständigung: Ich habe auf sourceforge 2 ähnliche osx projekte gefunden 1 http://sourceforge.net/projects/k8055mac/ 2 http://sourceforge.net/projects/k8055usbosx beide Varianten funktionieren gut bei mir. bei der letzteren brauche ich noch k8055.kext , welches ich auf der folgenden Seite gefunden habe: http://soft.pmad.net/k8055/ Dort gibt es ebenfalls noch ein Comandline Tool das ebenfalls funktioniert und ein x-code Projekt enthält. Allerdings funktioniert Projetk nr.1 nicht mehr sobald ich die k8055.kext installiert habe. Die Dateien k8055.cpp und k8055.h habe ich momentan aus dem Projekt nr 2 genommen, da ich immer noch die k8055.kext installiert habe. die K8055D_C.lib habe ich von der Velleman Seite allerdings weiss ich nicht ob ich diese überhaupt brauche bzw. ob sich diese irgendwie durch meine k8055.cpp ersetzen lässt. mfg sascha
Die K8055D_C.lib wird dann eine Library für Visual C++ unter Windows sein, damit der Linker dort weiss, welche Funktionen in der ähnlich genannten DLL drin sind. Unter Nicht-Windows wirst du damit nichts anfangen können. Projekt Nr.2 habe ich bisher noch nicht gesehen. Das schaue ich mir vielleicht heute abend an. Es regnet ja. Jedenfalls laut "k8055.cpp - C++ static library that should ..." spricht ja stark dafür, dass alles bei Nr. 2 dabei ist, um eine ähnliche Funktion wie unter Windows mit dem Duo LIB/DLL zu erreichen.
O.K. Vielen dank für euere Hilfe und das geduldige lesen Nach etwas Hilfe im osxentwicklerforum habe ich es geschaft. nach einbinden des Foundation.framewor funktioniert die Software! (die leds Leuchten nur so vor sich hin). Allerdings muss ich noch etwas mehr über meine Hardware lesen und lernen. Ich verstehe im Grunde was die Software macht. sie liest den Wert des Analog Kanals 1 ein und übergibt ihn an alle Digitalkanäle. Allerdings verstehe ich nicht wie diese funktionieren. Ich weiss, dass ich einzelne Kanäle ein oder ausschalten kann. Ich weiss auch dass bei den Analogen Kanälen ein Wert (mittels Spannung?!) angegeben wird. Aber was passiert genau wenn ich allen digitalen Kanälen einen Wert zuweise? Wenn ich beim Potentiometer vom analog Kanal 1 die Spannung verändere, dann verändert sich auch der Wert a (in meinem Programm) und verschiedene Digitale Outputs gehen an bzw. aus. aber nach welchem Schema? Ich muss wohl noch einiges über die Digitalen In/Outputs lehrnen, bevor ich wirklich loslegen kann. mfg Sascha
http://www.velleman.be/be/en/product/view/?id=351346 The K8055 interface board has 5 digital input channels and 8 digital output channels. In addition, there are two analogue inputs and two analogue outputs with 8 bit resolution. The number of inputs/outputs can be further expanded by connecting more (up to a maximum of four) cards to the PC's USB connectors... Specifications: * 5 digital inputs (0= ground, 1= open) (on board test buttons provided) * 2 analogue inputs with attenuation and amplification option (internal test +5V provided) * 8 digital open collector output switches (max. 50V/100mA) (on board LED indication) * 2 analogue outputs: ** 0 to 5V, output resistance 1K5 ** PWM 0 to 100% open collector outputs max 100mA / 40V (on board LED indication) * general conversion time: 20ms per command * power supply through USB: approx. 70mA Du hättest also 2 Eingaben per Analog als "Achse" z.B. mit Schiebe- oder Drehpotentiometer 5 Eingaben per Digital als "Schalter" z.B. Kippschalter oder Taster 8 Ausgaben per Digital z.B. für 8 LEDs oder 2 Siebensegement-LEDs direkt oder 16 BCD encodierte Siebensegment-LEDs. Erfordert aber Hardwarebasteln (BCD-Decoder, Demultiplexer, Flipflops). Ich würde den Weg so nicht gehen. Die IMHO preiswertere Alternative wäre hier ein µC-Gerät z.B. auf AVR-Basis. 1 Ausgabe per Analog z.B. Galvanometer oder LCD-Voltmeter 1 Ausgabe per PWM z.B. kleiner Motor
Hallo Stefan Vielen dank für deine Antwort und die Kopie vom Datenblatt (das ich natürlich schon gelesen habe). Die eingänge verstehe ich auch soweit und hab schon den einen oder anderen Schalter und Taster mit X-Plane erfolgreich gekoppelt. Der Counter ist adbei wohl eher für die Taster wichtig (gerade Zahl = aus / ungerade zahl =ein) oder so ähnlich. Das ich pro Ausgang ein Led ansteuern kann ist mir ebenfalls klar (die sind ja eigentlich schon aufgelötet). Aber ich habe mir gedacht, da muss doch noch mehr zu holen sein, denn so eine grosse Karte für 2 7-Segment-Anzeigen währe wahrscheinlich nicht sinvoll. Deshalb gefällt mir deine "16 BCD encodierte Siebensegment-LEDs" Variante schon ziemlich gut. Vom Hardwarebau schrecke ich nicht zurück, obwohl ich nicht viel Ahnung davon habe. Wenn mir noch jemand einige Details zu dieser Variante erzählen könnte, währe ich sehr dankbar. mfg sascha
> "16 BCD encodierte Siebensegment-LEDs" Variante Uh, da habe ich nicht viel Hirnschmalz reingesteckt. Es war nur so eine Idee: 0-9 kann man als BCD-Zahlen mit 4 Bit darstellen. Das frisst 4 digitale Ausgaben von den 8 möglichen. Mit den restlichen 4 digitalen Ausgaben hat man 2^4 = 16 Möglichkeiten, die man zur Adressierung von 16 Siebensegment-Elementen benutzen könnte. Die Ansteuerung würde also auf 4 O-Ports die BCD Zahl geben, die der BCD-Decoder in die Ansteuerung eines Siebensegment-Elements umsetzt. Welches Siebensegment-Element würde auf den anderen 4 O-Ports definiert. Dort würde ein 4-nach-16 Multiplexer die Umsetzung machen. Der Haken dabei ist, dass beim Umschalten auf ein anderes Siebensegment-Element dessen Anzeige erlischt, weil seine BCD Daten nicht mehr anliegen. Also müsste man zusätzlich den BCD Wert für jedes Element zwischenspeichern. Jetzt ist man schon bei BCD-Decoder + Multiplexer + Speicher... da dachte ich, dass die Idee bereits zu aufwändig ist. Mit einem µC kann man einiges davon nämlich in Software nachbauen. Und wenn man schon den µC benutzt, kann der auch noch die Kommunikation mit dem PC machen und die K8055 Karte wäre dafür nicht mehr nötig bzw. frei für andere Sachen. Du kennst vielleicht FSBUS http://www.fsbus.de/index.html dort wird ein modulares µC (AVR) basiertes System benutzt. Bei http://www.opencockpits.com/index.php?newlang=english baut man auf µC vom PIC Typ. Sehr schöne, interessante Ideen auch für selbstgebaute Instrumente gibt es auch auf http://www.mikesflightdeck.com/ (leider habe ich noch keinen Shop mit Mikes Buch in DE gefunden; bezahlen in USA ist mir zu aufwändig).
Cool! Vielen Dank Stefan. So in etwa habe ich mir das theoretisch vorgestellt. (einige Ausgänge um das 7-Segment-Display anzusteuern(bzw. die ziffern zu generieren) und einige um zu sagen welches der Displays angesteuert wird). Das hilft mir schon mal für das Verstäntniss der Nutzung der Ports (da ich ja im Grunde von Elektronik keine Ahnung habe, aber sehr gerne etwas lernen würde). Ich kenne sowohl FSBUS als auch Opencockpits. Letzeres etwas besser, das es da auch bereits x-plane kompatible Software dafür gibt (leider nur für Windows). Ich habe allerdings gedacht dass mir opencockpits für den Anfang etwas zu gross ist und das ich für das Verstäntniss lieber mit einer etwas weniger komplexeren Schaltung beginne. Des Weiteren gefällt mir an der k8055 dass ich sie mittels c++ und dem MAC ansprechen kann. (was auch einiges an zeit und Tipparbeit in diversen Foren gekostet hat:D). Wenn Ihr aber meint dass diese Karte nicht das Richtige ist um meine 7-Segment-Displays anzusteuern, dann werde ich mir erst mal ein anderes Projekt ausdenken (mir schwirren da zahlreiche Ideen im Kopf herum). Da ich mit Inputs auch früher schon erste einfache Ergebnisse erzielen konnte (modifizierte Tastatur und der LPT-Switch) interessieren mich vor allem die Ausgänge. Ich finde es halt nur etwas fade, dort dann nur einige LED anzuschliessen. Mit freundlichen Grüßen sascha
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.