Hallo, wie schon in einem anderen Thread beschrieben möchte ich eine Messvorrichtung aufbauen. Ursprünglich dachte ich, das ganze mit einem Raspberry Pi zu lösen, doch dies bietet außer den Schnittstellen nichts was ich benutzen müsste. Deswegen bin ich davon wieder abgekommen. Grundaufbau liegt wie folgt: ADC-SPI + RS.232 --> x --> USB --> Pc (Python) Ich möchte also einen Analog Digital Wandler und eine Rs.232 Schnittstelle über Usb mit einem Pc verbinden. Folgende Möglichkeiten habe ich soweit angeschaut, und bin etwas überfordert welche nun die beste ist: MCP2200 (http://www.microchip.com/wwwproducts/devices.aspx?dDocName=en546923) Die GPIO Pins könnte ich für die SPI Kommunikation nutzen? FTDI 2232D (http://www.ftdichip.com/Products/ICs/FT2232D.htm) Dual Ausführung für SPI und Uart konfigurierbar. Mit einem Mikrokontroller. Charmant wäre das dieser die meiste Arbeit "erledigen" könnte bevor der PC einspringen muss. Der Pc würd dann nur als Datenkraken/Oberfläche dienen. Problem hierbei, ich hatte bisher nur sehr rudimentären kontakt zu MC's. Mein Hauptproblem ist, dass ich gerne für die Datenweiterverarbeitung Python nutzen würde (numpy). Während ich zum MCP2200 keinerlei Information zur Einbindung gefunden habe(außer DLL), gibt es für die FTDI Chips diverse Python libraries. Alle allerdings ohne Windows Support. Wirkliche Dokumentation ist auch sehr dünn. Mikrokontroller gibt es eine Menge, eine Verbindung könnte ich über einen klassischen Serial-to-USB, Controller machen. SPI und Uart haben ja die meisten. Manche Atmega32 haben sogar eine USB-Schnittstelle? Hier ist wieder die Frage der Python Schnittstelle. Welche Lösung scheint euch in euren Augen am besten Geeignet und welches ist am leichtesten Umsetzbar? Hat jemand von euch schon Erfahrungen mit einem der System gemacht? Habt vielen Dank, lost_viking
Es gibt fertige Module für < 5 Euro, die RS232 (auf TTL-Pegel) nach USB umsetzen. Viele sehr günstige uCs haben auch schon ADCs und RS232 an Board. Dein uC-Programm ist im Prinzip winzig: 1) lies ADC 2) gib aus auf Rs232, plus evtl. ein Trennzeichen wie Zeilenvorschub 3) goto 1) Mit Deinem PC-Programm (oder dem Programm für die Raspberry Pi) liest Du dann die Com-Schnittselle, die Dir der USB-Adapter generiert hat.
> Die GPIO Pins könnte ich für die SPI Kommunikation nutzen? Ja, aber langsam. Denn dann musst DU den Takt ja per Software erzeugen und jeden Bit einzeln einlesen. Die DLL kannst Du sicher auch irgendwie mit Python aufrufen. Mit Java geht das ja auch. Ich kenne mich mit Python nicht aus, habe spontan jedoch diesen Beitrag gefunden: http://stackoverflow.com/questions/252417/how-can-i-use-a-dll-from-python
Ja die DLL Wrapper hatte ich schon im Blick, hab allerdings auf dem gebit keine Erfahrung. Da sollte ich entsprechend nocheinmal nachbohren. Das mit dem SPI und dem Bit für bit hatte ich irgenwie sowiso auf dem Plan, hatte mich bisher an einem Tutorial für das Pi orientiert, bei die verbindung so Aufgebaut wurde. Mittlerweile bin ich bischen bei den uC hängengeblieben. Mit dem Entsprechenden Controller könnte ich eine "Vorauswertung" machen und müsste somit nur einzelne Datensets auslesen. Die Regelung für das System ließe sich auch integrieren (eine Pumpe wird über einen RS 232 angesprochen entsprechend eines durchflusses um einen quasi stationären Zustand herbeizuführen).Die Vorauswertung wären statistische Verfahren um die Daten des ADC aufzubereiten (Mittelwert, Median, ...) Habe mich mal bei Atmel umgeschaut, und bin bischen recherchiert. Rein von den Pins würde sich ein AT32UC3B anbieten (2x UART, SPI). Ist vieleicht als Einstieg etwas heftig? 32 bit sind sicher nicht nötig, aber statistische Auswertung von 16 bit Daten auf einem 8 bit Controller stößt mir irgenwie Sauer auf. Mir schwebt momentan eine Lösung mit "Controller" Software (Python, RS-232) vor, welche nur die Einstellungen des uC anpasst und die vorausgewerten Daten weiterverarbeitet. Habe mir ein bischen Literatur besorgt und werde die einmal am Wochende durchgehen. Über Anregungen bin ich sehr Glücklich.
Lost_Viking schrieb: > 32 bit sind sicher nicht nötig, aber statistische Auswertung von 16 bit > Daten auf einem 8 bit Controller stößt mir irgenwie Sauer auf. Man kann auch mit 64-Bit auf einem 8bitter rechnen, die Frage ist halt wie viel Zeit hast du. Wenn man C nimmt kein Problem, da kümmert sich der COmpiler darum die Daten in 8bit-Happen an die ALU zu verfüttern...
RS232 ist eigentlich veraltet. Heutzutage nimmt man USB. Bei wenig Datenaufkommen (<10 kByte/s) eignet sich HID hervoragend. Vorteile: - Keine Treiberprobleme bei Windows - Extrem simple Programmierung mit C++, C#, VB (Python kenn ich nicht)
Erst einmal Sorry für die Schreibfehler oben, erschreckend. USB war erste Überlegung, allerdings ist die Reichweite davon absolut für die Katz. Mit nem einigermaßen Kabel und ner RS-232 gehen immerhin 30m mit ertragbarer Geschwindigkeit. Auch gibt es viele Tutorials für die Seite des Mikrocontrollers. Python und USB sollte klappen, native Packages scheint es zu geben. Des mit der 8bit und 32bit Problematik. Denke gerade beim Vorkonditionieren wären das eine ganze Menge an zusätzlichen Rechenoperationen. Das steht und fehlt etwas mit der Abtastrate. Der interne Taktgeber des Bausteins macht "nur" 15 Hz, mit extern könnte man das noch deutlich erhöhen. Insgesamt sind es 5 Sensoren, die angeschlossen werden. Ob das nötig ist lass ich mal dahingestellt. Des hängt ein bisschen von der Qualität des Signals ab. Werde mal die nötigen Rechenoperationen abschätzen. Mal schauen was da raus kommt. Lost_Viking
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.