Posts

Posts mit dem Label "Netduino" werden angezeigt.

PCA9685 PWM Driver Modul mit dem Netduino

Bild
Nach etwas längerer Zeit ist eine Thema mit dem Netduino wieder dran. Diesmal ist das PWM Treiber Modul dran, den ich schon etwas länger hier liegen habe und es ist eigentlich zunächst für den Raspberry Pi gedacht, aber da fehlt mir noch eine neue Platine um einen eigenen Motor Treiber zu bauen. Benötigt wird: Netduino (sollte mit allen Versionen funktionieren) PCA9685 16 Channel PWM Driver (Meins ist nicht von Adafruit) Mindestens ein Servo zum Testen Externe Spannunsquelle mit Maximal 6V Neues Projekt Für das Projekt werden die Referenzen Microsoft.SPOT.Hardware und Microsoft.SPOT.Native die für die I²C und Debug Ausgaben verwendet werden. Neben der bestehenden Program.cs Klasse wird eine eigene Klasse für den PWM Treiber hinzugefügt, die dann den Inhalt hat des hier folgenden gezeigten Code. Weitere Kommentare sind im Github Repository zu sehen. public class Pca9685 : I2CDevice {     private readonly byte PCA9685_MODE1 = 0x00;    

Motor Treiber für den Rover (.NETMF)

Bild
Was in C geht, geht auch in C#. Einige Zeit ist vergangen als ich das letzte Mal ein Beispiel zu Netduino gepostet habe. Viel hat sich nicht geändert und im Grunde verwendet ich statt .NETMF 4.2 nun .NETMF 4.3. Neu ist der Netduino 3 der in drei Varianten kommt und alle haben drei Go Port Anschlüsse. Zudem kommt dieser mit mehr Flash Speicher, bei den Varianten mit Netzwerk Eigenschaften. Nur der Takt ist weiterhin bei 168MHz, dass jedoch ausreichend ist für die meisten Anwendungen. Nun zur Hardware Netduino 3 Wifi Motor Shield Externe Spannungsversorgung mit 9V oder einen zwei Zellen Lipo DAGU Rover 5 Chassis 4WD Antrieb und Motor Shield Zu meinem vorigen Post mit dem Arduino ändert sich am Antrieb und am Shield nichts. Die Pin Belegung und sowie auch die Betroffenen Signal Ausgänge, sind beim Netduino für diesen Zweck identisch. (Arduino,  Motor Treiber für den Rover ) Programmcode Mit der C# und .NET Micro Framework Variante habe ich weitgehend die N

Intervallaufnahme mit der Kamera ohne Interne Funktion

Bild
Die Funktion für eine Intervallaufnahme ist simpel, daher ist es für mich unverständlich, warum nicht zumindest die Systemkameras von der Nikon 1 Serie in ihren Modellen diese Option anbieten. Nun gut, dies war kein Kaufkriterium, wäre aber schön gewesen. Ich selbst verwende die Nikon 1 J3 (die J1 hat die Intervallaufnahme), allerdings sollte mein Beispiel auch für andere Kameras funktionieren. Grundsätzlich geht es darum einen Servo auf den Auslöser zu drücken. Für diesen Zweck habe ich aus Aluminium Eckschienen eine Vorrichtung gebaut. Wie schon am Bild zu erkennen ist, sollten zum Schutz die Alu Eckschienen nach der Verarbeitung abgerundet und ggf. mit Filzaufklebern beklebt werden. Die Materialliste: Alu Eckschienen ca. 20cm Filzaufkleber ein paar 3mm Schrauben und entsprechende Muttern Mini Servo mit ca. 10 Ncm Eine passende Schraube zur Kamera dass mit dem Stativ auch verschraubt werden kann. (siehe folgendes Bild) Zum Ansteuern wird der Netduino mit einem pas

Feuchtigkeitssensor HTU21D mit dem Netduino (Teil 2)

Bild
Damit die gemessenen Werte auch brauchbare Messeinheiten haben, müssen die Rohdaten zunächst umgerechnet werden. Daher kommen zwei weitere Methoden hinzu, die dies erledigen. Der Inhalt zum Lesen des einzelnen Wertes erhält eine eigene Methode, weil dieser Inhalt zweimal verwendet wird und sich nur im einzelnen zusendenden Byte unterscheidet. // Luftfeuchtigkeit Messen und Rohwert zurückgeben public int Read() {     // Inhalt in eigene Methode umgezogen } // Liest mit der Übergabe des Befehls den Sensor Teil aus. private int ReadSensorPart( byte command) {     // Befehl senden.     if ( this .Write( new byte [] { command }) == 0)     {         throw new SystemException ( "Fehler beim Senden!" );     }     // Warten bis der Sensor mit dem Lesevorgang fertig ist.     Thread .Sleep(50);     byte [] data = new byte [3];     // Messergebnis abrufen     if ( this .Read(data) == data.Length)     {         // Es werden für dieses Beispiel zwei Bytes verwendet       

Feuchtigkeitssensor HTU21D mit dem Netduino (Teil 1)

Bild
Zuvor habe ich für meinem Weather Shield einen Feuchtigkeitssensor DHT11 verwendet. Wer diesen kennt, weiss sicherlich wie ungenau die Messwerte sind. Ich möchte den Sensor nicht schlecht reden, denn immerhin ist er sehr günstig. Möchte man allerdings für eine Anwendung mehr Genauigkeit und eine schnelle Abtastung der aktuellen Feuchtigkeit und Temperatur, bieten andere Sensoren deutlich bessere Ergebnisse. Ein paar interessante Daten zum Sensor: Schnittstelle I²C Betriebsspannung: 3,3V (max. 3,6V) Stromaufnahme: ca. 10mA Temperaturmessung ca. 50ms bei 14Bit (7ms bei 11Bit) (-40°C bis 125°C) Feuchtigkeitmessung ca. 16ms bei 12bit (3ms bei 8Bit) Kostet ab 6,50€ bei Ebay über einem chinesischen Händler Weitere Daten findet ihr im Datenblatt. Ansprechen lässt sich der Sensor über den I²C Bus und kann mit dem .NET Micro Framework mit geringen Aufwand programmiert werden. Das Einstiegsverhalten lässt sich mit dem Luftdruck Sensors BMP085 vergleichen, über den ich bereits geschri

TCS3200 Farbsensor einlesen (Netduino)

Bild
Das Licht leuchtet hier in verschiedenen Farben. Mit Hilfe des TCS3200 Sensor, können die verschiedenen Farben gemessen werden. Anders als bei einem lichtempfindlichen Sensor, an dem sich der Leitwert verändert, liegt ein Pulssignal an. Für die Schaltung werden insgesamt fünf Digitale Ports und zwei Pins für die Spannungsversorgung benötigt. Wenn mal kein Breadboard zur verfügung steht, geht das auch so wie im folgendem Bild. Die Pins von S0 bis S3 und OUT auf die digitalen Ausgängen von Pin 2 bis Pin 6 steckt. Wie die Schaltung bereits verrät, ist das einlesen deutlich anders. Anstatt über OneWire , I²C oder eines Spannungspegel, kommt ein PWM (oder auch PPM) Signal. Je nach Farbe müssen die Anschlüsse von S0 bis S3 entsprechend geschaltet sein. Das bedeutet wiederum, dass die Farben nacheinander gemessen werden. Im .NET Micro Framework gibt es zum Einlesen die Klasse "InteruptPort", mit der auf das PWM Signal reagiert werden kann. Das erfordert etwas zusätzlic