Ich entwickle einen Datenlogger für den Einsatz in weiterführenden Schulen wie ( http://www.pasco.com ). Der Hauptunterschied besteht darin, dass meins hauptsächlich mit einem iPad verwendet werden soll. Ich habe eine Verbindung zwischen einem Mikrocontroller und einem iPad in Betrieb, aber ich habe eine Frage zur Kommunikation zwischen Sensoren und dem „Hub“, der es ermöglicht, bis zu 3 Sensoren mit dem iPad zu verbinden.
Auf Prototypenebene besteht mein Hub aus einem Atmega328 (Arduino) und die Sensoren sind einfach direkt mit den A/D-Wandler-Pins verbunden.
Da dieses System jedoch eine Vielzahl von Sensoren unterstützen soll, ist diese Lösung nicht generisch genug (dh wenn ein Abstandssensor angeschlossen werden sollte, würde dies auf dem Anlog-Pin nicht funktionieren, da dies die Differenz zwischen 2 Zeitstempeln wäre). Ich denke also daran, in jedem Sensor einen Mikrocontroller hinzuzufügen und diesen Mikrocontroller mit dem Mikrocontroller des Hubs kommunizieren zu lassen, der dann die Daten an das iPad überträgt.
Welche Protokolle sollten verwendet werden, um zwischen diesen Mikrocontrollern zu kommunizieren? Und ist überhaupt der Weg zu gehen?
Hier können Sie sich ein Video des Prototyps ansehen .
Für mehrere Sensoren, eine Auswahl an analogen und digitalen, wäre eine einfache Lösung die Verwendung eines Arduino Mega mit einem daran befestigten „ Mega Sensor Shield “ ( unten auf der Seite ) ($ 11-12). DfRobot bietet ein Mega Sensor Shield mit XBee-Anschluss an Bord ($18-20) an, das noch nützlicher sein könnte:
Diese Kombination ermöglicht den Anschluss verschiedener Sensoren, da jeder der 54 digitalen und 16 analogen IOs des Arduino Mega auf separate 3-Pin-Stiftleisten, bestehend aus Signal, Masse und Vcc (5 Volt), herausgeführt werden. Somit würden Sensoren, die Strom benötigen, diesen auch vom Sensor Shield erhalten.
Da die Arduino-Boards selbst je nach Board-Spezifikation nicht mehr als 200 bis 500 mA pro Board liefern können, verfügt das Sensor Shield auch über einen Anschluss, um Strom von einer Steckdose aufzunehmen. Der Arduino wird dann vom Schild abgeschaltet, ebenso wie alle Sensoren.
Der Grund für die Empfehlung des XBee-Anschlusses ist, dass die Einbindung von Ferndatenprotokollierung über ein Bluetooth- oder WiFi-XBee-Modul einfach wird. Dies ist besonders wertvoll in einer Umgebung, in der lange Kabel vom Standort des Sensors/Loggers zu einem Computer zur Datenvisualisierung oder Langzeitspeicherung das Risiko einer Beschädigung bergen.
Sensorabschirmungen sind auch mit integriertem SD-Kartenmodul oder dafür vorgesehenen Anschlüssen erhältlich. Dies kann wiederum nützlich sein, wenn der Datenlogger große Datenmengen lokal speichern muss.
20 Hz ist nicht besonders schnell - 20 kHz sollten unter normalen Bedingungen erreichbar sein.
Offensichtliche Optionen sind:
Die ersten beiden sind auf den meisten Mikrocontrollern verfügbar. I2C wurde nicht wirklich zum Herunterfahren von Drähten entwickelt, funktioniert aber trotzdem recht gut. Sie können mehrere Geräte mit verschiedenen Techniken auf einer Linie platzieren. Einige Sensoren (z. B. Temperatur) sind mit eingebauter I2C-Schnittstelle erhältlich. Sie ist für die Abfrage durch das Master-Gerät ausgelegt, das auch die Taktrate für die Übertragung wählt.
Serial UART ist am einfachsten zu verwenden und zu debuggen.
1-Wire ist proprietär und schwieriger selbst zu implementieren, macht die Verkabelung aber trivial. Es ist langsamer als I2C.
USB verfügt über die gesamte automatische Erkennung und einfache Anbindung an einen PC, erfordert jedoch spezielle Hardware auf dem Mikrocontroller und ist im Allgemeinen viel anspruchsvoller. Es ist auch mit Abstand das schnellste.
Morten Y
pjc50
Morten Y
pjc50