Bascom und SQL-Datenbanken
Hallo,
Dieses Thema handelt von einem Versuchsaufbau, bei dem Daten (Nr, Zeit und Frequenz) eines Hall-Sensors sequentiell in eine Datenbank-Tabelle geschrieben (und später auch ausglesen) werden sollen. Ich möchte mit BasCom und dem RNFRA-Board Mega32 von Roboternetz Signale des Sensors in eine Datenbank speichern. Gibt es dafür eine performante Lösung wie z. B. sequentielle Textfiles (Key/Indizierung wird nicht benötigt) oder eine SQL-Datenbank-Anbindung (ODBC) o. ä.? Hat jemand dazu evtl. ein Code-Beispiel?
Wenn es möglich und evtl. performanter ist, sollten die aufgezeichneten Daten auf dem Speicherbaustein des Controllerboards gespeichert werden, sodass die Schaltung autonom (ohne Laptop) arbeiten kann. Je nachdem was performanter wäre...
Bin für jedes Feedback sehr dankbar.
Gruss Euer
Sascha
Re: Bascom und SQL-Datenbanken
Zitat:
Zitat von HAL9999
Versuchsaufbau, bei dem Daten (Nr, Zeit und Frequenz) eines Hall-Sensors sequentiell in eine Datenbank-Tabelle geschrieben (und später auch ausglesen) werden sollen.
Hallo Sascha!
Der ATmega32 besitzt einen 1024 Byte großen EEPROM. In diesem kann man Daten schreiben. Das könnte schneller sein, als diese über die Serielle Schnittstelle zu einem Computer zu übertragen.
Die maximale Baud-Rate für die Übertragung zum Computer ist 115200. Dafür brauchst du aber einen anderen Quarz (73728 oder 147456 Hz) um diese Baudrate fehlerfrei fahren zu können. Ich kenne dein Board nicht. Deshalb weiß ich auch nicht, welche Probleme auftauchen können, wenn man den Quarz tauscht.
Bei 115200 Baud kannst du vom µC zum Computer 11520 Bytes/Sek. übertragen. Das ist für den Computer sicher kein Problem. Darum brauchst du dich also nicht kümmern.
Egal welche Programmiersprache du einsetzt. Es gibt nichts was schneller ist, als Daten an eine normale Textdatei anzufügen. Jede Datenbank ist erheblich langsamer. Du musst also nur ein Programm schreiben, welches den Text, den es über die Serielle bekommt, an eine Textdatei anfügt.
Ich persönlich verwende Python http://python.org/ und pySerial http://pyserial.sourceforge.net/ für solche Aufgaben.
Noch schneller ist es, wenn du die Daten natürlich nicht sofort zum Computer übertragen musst. Dann kannst du die Daten in einen EEPROM schreiben und später wieder auslesen. Nur die Programmierung ist dann erheblich aufwändiger und du müsstest einen externen EEPROM verwenden, da der in den ATmega32 eingebaute EEPROM wahrscheinlich zu klein für deine Datenmenge ist.
Wie oft in der Sekunde muss eine Messung durchgeführt werden? Welche Datenmenge fällt an? Wie lange muss eine Messreihe laufen? Rentiert sich der Aufwand, nicht sofort alles über eine Serielle Schnittstelle zum Computer zu übertragen? Wie misst du die Frequenz?
mfg
Gerold
:-)
Liste der Anhänge anzeigen (Anzahl: 1)
was kommt nun wo dran??
Hallo,
habe nun die Schaltung nach folgendem Schaltplan fertig gelötet (war gar nicht so einfach anstelle der SMD-Transistoren normale Transistoren, die das gleiche machen, zu finden.
http://www.ulrichradig.de/site/atmel...MC_Optimal.JPG
Aber nun habe ich folgende 2 Probleme:
- da gibt es ja bei dem Roboter-Netz-Bus (RNB-BUS) die Möglichkeit etwas an die AVR-Pins Anzuschliessen - jedoch finde ich, die auf dem Schaltplan angegebenen Pins nicht auf dem RNB-BUS.
- Ausserdem finde ich nirgens beschrieben, wie herum und in welche Richtung die Pins des RNB-Bus gezählt werden (also soetwas wie z.B. pin 1 ist unten rechts und wird nach links gezählt ... oder ähnliches)
- wo liegt eigentlich bei der Schaltung der Unterschied zwischen VCC und VCC_3V?
Bräuchte also ein Mapping vom Schaltplan der MMC-Karte (was wo dran kommt) zum RNB-Bus sowie eine Abbildung (oder in Textform) des RNB-Busses wo drauf zu sehen ist, wie die Pins angeordnet sind.
Eine Jpg-Datei von den Pin-Erläuterungen des RNB-Bus hab ich als Anlage beigefügt (SPI_... hab ich im oberen drittel schon gefunden - hab aber keine idee wo davon was dran kommt...).
Vielen Dank und viele Grüße
Euer Sascha
Liste der Anhänge anzeigen (Anzahl: 2)
Bei dem beigefügten Bild "pinoutsMEGA32.jpg" sieht man SS, MOSI, MISO und SCK des AVRs.
An diese Pins habe ich die Karte auch gemäss der Beschreibung auf der 2. Seite des PDF
"MMC-SD-ANBINDUNGUpdate-Info_de"
angeschossen.
pinNr.........MEGA32.......KARTE
---------------------------------------
5. pin........SS..............an CS
6. pin........MOSI..........an DI
7. pin........MISO..........an DO
8. Pin........SCK...........an SCLK
Direkt an der Karte messe ich auch 3,30 Volt da wo sie sein müssen und
GND der Karte geht auch an den GND des AVR.
Es kann eigentlich nur noch am Quellcode liegen oder sieht hier jemand einen anderen Fehler (z.B. Pinbelegung). Was ist eigentlich die Durchnummerierung PB0 - PB3 am AVR (1.Pin -4.Pin) heisst das PortB.0 - PortB.3? Wenn Ja, dann ist die Beschreibung mit dem SPI-Bus (MISO, MOSI,SS, CLK irreführend bzw. falsch) oder ich irre mich beim Interpretieren von PB0 (SCK/T0) = PortB.0 etc...
Kann hier jemand seinen Code für eine MMC-Karte mal posten?
und an welche Pin-Nummer des AVR was angeschlossen ist?
Danke und Gruß
Sascha