reicheltpedia, das Wiki für Elektronik
Arduino
Arduino (Genuino) ist ein E/A-Board mit einem Mikrocontroller der über analoge und digitale Ein- und Ausgänge verfügt. Er soll auch dem technisch nicht so versierten Anwender den Einstieg zur Programmierung und zu Mikrocontrollern erleichtern. Die Programmierung wird in C bzw. C++ vorgenommen. Mit einem Arduino Board lassen sich zum Beispiel Objekte steuern, Sensoren auslesen und man kann mit Software auf dem PC interagieren.
Inhaltsverzeichnis
- 1 Übersicht
- 2 Die Arduino Entwicklungsumgebung
- 3 Tipps zum Experimentieren:
- 4 LED Blink (Praktisches Beispiel wäre eine Anwesenheitssimulation)
- 5 LED Blink mit Taster (Praktisches Beispiel wäre eine Türklingel mit LED)
- 6 Einblenden Ausblenden (Praktisches Beispiel wäre zum Beispiel eine Leuchturmlampe in einem Model)
- 7 Wie oft wurde der Taster gedrückt (Praktisches Beispiel wäre zum Beispiel ein Besucherzähler)
- 8 LCD Display ansteuern
- 9 Servo Steuerung
- 10 Arduino Shields im Eigenbau
- 11 Fazit
- 12 Projekt Dartscheibe
- 13 Projekt Pan Tilt Außenkamera mit Nachtsicht
- 14 Crazy Skater Projekt
Übersicht
Auswahl Arduino-Einplatinen-Microcontroller | ||||||||
Bezeichnung
|
Microcontroller
|
Flash
|
SRAM
|
EEPROM
|
I/O Pins
|
I/O Pins mit PWM
|
Maße
|
Abbildung
|
Arduino Mega
|
ATmega2560
|
256KB
|
8 KB
|
4
|
54
|
14
|
Breite: 53,3 mm
Länge: 101,52 mm |
|
Arduino Uno
|
ATMega328
|
32 KB
|
2 KB
|
1
|
14
|
6
|
Breite: 53,40 mm
Länge: 68,60 mm |
|
Arduino Enet2
|
ATmega32u4
|
32 KB
|
2,5KB
|
1
|
14
|
4
|
Breite: xx
Länge: xx |
|
Arduino M0 Pro
|
ATSAMD21G18
|
256 KB
|
32
|
0
|
20
|
2
|
Breite: xx mm
Länge: xx mm |
|
Arduino Uno Dip
|
ATmega328
|
32 KB
|
2 KB
|
1
|
14
|
6
|
Breite: 53,40 mm
Höhe: Länge: 68,60 mm |
|
Arduino Mini
|
ATmega328
|
32 KB
|
2 KB
|
1
|
14
|
6
|
Breite: xx mm
Länge: xx mm |
|
Arduino Nano
|
ATmega328
|
32 KB
|
2
|
1
|
14
|
6
|
Breite: 18 mm
Länge: 45,00 mm |
|
Arduino Yun
|
ATmega32u4
|
32 KB
|
2,5 KB
|
1
|
20
|
7
|
Breite: 56,00 mm
Höhe: 17,00 mm Länge: 85,60 mm |
|
Arduino Leonardo
|
ATmega32u4
|
32 KB
|
2,5 KB
|
1
|
26
|
7
|
Breite: 53,00 mm
Länge: 73,00 mm |
Die Arduino Entwicklungsumgebung
Auf der Arduino Seite kann man die Entwicklungsumgebung herunterladen: https://www.arduino.cc/ Folgende Betriebssysteme werden derzeit unterstützt:
Windows
Mac OS X 10.7 Lion or newer
Linux 32 bits
Linux 64 bits
Nach der Installation und Programmstart wird schon ein "leerer" Sketch angezeigt.
Über Werkzeuge -> Board kann man sein Board wählen, es sollte allerdings nach dem einstecken des Arduino UNO schon angewählt sein.
Über Werkzeuge -> Port kann man sehen welcher Port zugewiesen wurde.
Interessant kann später auch der serielle Monitor sein Werkzeuge -> Serieller Monitor.
Hier ein Beispiel Output in Verbindung mit einem MPU 6050 Beschleunigungssensor mit Gyroscope.
Folgende Anleitungen sind unter Entwicklungsumgebung Version 1.6.6 Windows 64-bit und einem Arduino UNO erstellt worden.
Tipps zum Experimentieren:
Erst die Schaltung komplett aufbauen bevor der Arduino mit Strom versorgt wird.
Die Schaltung am besten noch einmal von oben betrachten um Steckfehler auszuschließen.
Vor dem Hochladen den Sketch überprüfen lassen.
Zusätzliches Zubehör zum Schaltungsaufbau: Zubehör
Starter kit: Starterkit
Obwohl hier in deutsch erklärt wird und auch die Kommentare in den Codezeilen in deutsch ergänzt sind, sollte für zukünftiges Experimentieren die englische Sprache bevorzugt werden, da die meisten Beispiele in englisch vorhanden sind. Auch das Programmieren fällt dann leichter, weil man die meisten Begriffe besser zuordnen kann.
Hier ein paar Beispiele die den Einstieg erleichtern sollen mit dem Arduino UNO.
LED Blink (Praktisches Beispiel wäre eine Anwesenheitssimulation)
Den Sketch laden über Datei -> Beispiele -> 01.Basics -> Blink
Im folgendem Bild wurden die Kommentare für ein erstes besseres Verständnis in deutsch erweitert.
Der Schaltungsaufbau: GND (Ground/Masse) wird an Minus (-) vom Steckboard angeschlossen. PIN 13 wird an Plus (+) vom Steckboard angeschlossen, somit wird das Steckboard versorgt und es kann die Schaltung wie auf dem Bild aufgebaut werden. Auf die Polung der LED achten(Der längere PIN ist Plus (+).
Nachdem die Schaltung kontrolliert wurde kann der Arduino UNO über das USB-Kabel angeschlossen werden. Nun kann der "Sketch" nach Überprüfung hochgeladen werden.
Die Schaltung sollte auf Anhieb funktionieren und die LED sollte jede Sekunde ein- und ausgeschaltet werden.
Somit wurde ein "komplettes" Programm geschrieben und auf den Mikrocontroller hochgeladen. Zum weiteren Experimentieren kann jetzt zum Beispiel eine weitere LED angeschlossen werden und man kann die Werte für das "delay" verändern.
LED Blink mit Taster (Praktisches Beispiel wäre eine Türklingel mit LED)
Aufgabe: Schaltet eine LED die mit Pin 13 verbunden ist ein, wenn ein Taster an Pin 2 angefügt ist.
Es kann der Sketch wieder über Datei -> Beispiele -> 01.Basics -> Button geladen werden.
Aber warum nicht selber schreiben?
Hier Teil 1 und 2 des Sketches:
Teil 1:
Teil 2:
Und der Schaltungsaufbau dazu:
Die Erstellung der Bilder für den Schaltungsaufbau erledigt "Fritzing":
Einblenden Ausblenden (Praktisches Beispiel wäre zum Beispiel eine Leuchturmlampe in einem Model)
Alle Informationen sind im Code(Sketch) dokumentiert.
Aufgabe: Fadet eine LED die mit Pin 9 verbunden ist ein und wieder aus.
Der Sketch:
Und der Schaltungsaufbau dazu:
Wie oft wurde der Taster gedrückt (Praktisches Beispiel wäre zum Beispiel ein Besucherzähler)
Alle Informationen sind im Code(Sketch) dokumentiert.
Aufgabe: Durch Tastendruck zählen wie oft der Taster gedrückt wurde.
Der Sketch:
Teil 1:
Teil 2:
Teil 3:
Und der Schaltungsaufbau dazu:
Und wie in den vorherigen Anleitungen erwähnt kann hier der serielle Monitor ausgelesen werden:
LCD Display ansteuern
Benutzt wird das LCD aus dem KIT ARDUINO STARTER
Erklärung zum Display:
Das LCD hat eine parallele Schnittstelle, das bedeutet das mehrere Pins auf einmal verändert werden müssen um das LCD zu steuern.
Die Schnittstelle, ist folgendermaßen zusammen gesetzt:
Ein Register (RS) Pin das den Speicher kontrolliert in welches rein geschrieben wird.
Man kann entweder das "data register" anwählen, was festhält was auf den Bildschirm angezeigt wird,
oder ein "Instruktionsregister" wo der LCD Controller nachschaut was als nächstes zu tun ist.
Ein Lese/Schreib (R/W) Pin das den Schreibmodus oder Lesemodus auswählt
Ein Einschalt Pin das das Schreiben in das Register einschaltet.
8 Datenpins (D0 -D7). Die Stati von den Pins können (high, oder low sein).Das sind die Bits die in das Register beim Schreiben geschrieben werden.
Oder die Werte die beim Auslesen gelesen werden.
Zusätzlich gibt es einen Pin (Vo) für den Kontrast des LCD's, Stromversorgung Pins für +5V und Masse und für eine Hintergrundbeleuchtung (Bklt+ und Bklt-)die jeweils angesteuert werden können.
Der Prozess um das Display zu kontrollieren beinhaltet das einbringen der Daten, die Form des Bildes, oder was man Anzeigen will in das Register und
das einbringen von Anweisungen in das Anweisungsregister. Die LCD Bibliothek vereinfacht dies, somit benötigt man kein Wissen, über die Maschinenorientierte Anweisungen.
Alle Informationen sind im Code(Sketch) dokumentiert.
Aufgabe: Hello World und Zeit in Sekunden anzeigen seit dem letztem Reset.
Aufbau:
Sketch:
Ja! Das war wirklich alles :)
Servo Steuerung
Servo Motor mit Potentiometer ansteuern (Beispiel aus der RC Technik)
Benutzt wird das Potentiometer und der Servo Motor aus dem KIT ARDUINO STARTER
Aufgabe:
Servo Motor mit Potentiometer regeln.
Sketch:
Arduino Shields im Eigenbau
Arduino Shields im Eigenbau:
Wir haben hier für Sie Beispiele zusammengestellt wie man selber Shields für den Arduino, Raspberry PI, oder andere Einplatinencomputer erstellen kann.
Hier geht es zum Warenkorb: Warenkorb ALL IN!
Wir haben zu dem Warenkorb auch Werkzeuge und Schutzmittel hinzugefügt, die das erstellen erleichtern. Eine Schutzbrille sollte nicht fehlen!
Beispiel LED:
Streifenrasterplatine Shoplink ausbrechen, oder aussägen und SL 1x36W 2,54 Shoplink passend abbrechen, oder sägen.
Einlöten mit gewünschter Farbe und richtiger Polung. Danach kann das Shield mit dem Arduino, oder einem anderen Einplatinencomputer eingesetzt werden und ist Steckboardkompatibel!
Wir haben natürlich auch 5V LED’s im Sortiment, dann kann man den Widerstand weg lassen, da dieser in der LED enthalten ist:
Shoplink zu den LED mit Vorwiderstand TIP auf der linken Seite kann man nach 5V filtern! Wir benutzen von der Stiftleiste mehr Pole als benötigt, da das einlöten vereinfacht und die Stabilität des Shields erheblich gesteigert wird.
Steckboardbrücken sollten nicht fehlen:
Hier eine Auswahl an Beispielen mit entsprechenden Bauteilen (Möglichkeiten unbegrenzt)! Zu jedem Beispiel gibt es ein „Fritzing Protype Schaltbild“
Temperatursensor LM 35 und ein Potentiometer:
LDR 07 Lichtsensor und Reed-Kontakt:
Wir möchten gerne noch einmal auf die Möglichkeiten der Fritzing Software hinweisen, die viele Beispiele enthält, auch mit Programmier-beispielen für den Arduino und Raspberry:
Weitere Möglichkeiten sind: Summer, RTC(RealTimeClock), Taster IR-Switches, Lüfter, Regler, Sensoren, Klemmen, IC-Sockel, Kondensatoren.... Anhand der Bilder können Sie sich inspirieren lassen:
[[1]]
[[2]]
[[3]]
[[4]]
[[5]]
[[6]]
[[7]]
[[8]]
[[9]]
[[10]]
[[11]]
[[12]]
[[13]]
[[14]]
[[15]]
[[16]]
[[17]]
[[18]]
[[19]]
[[20]]
[[21]]
[[22]]
[[23]]
[[24]]
[[25]]
[[26]]
Alle Artikel der Bilder befinden sich auch im Warenkorb:Warenkorb
Fazit
Wir hoffen hier einen guten Einstieg in die Welt des Arduino und dessen Programmierung gegeben zu haben.
Falls mal ein Zubehörteil fehlt, oder die Steckbrücken ausgehen haben wir hier einen Warenkorb zusammengestellt aus dem man auswählen kann:
Für weitere Anleitungen und Hilfe bei Problemen können wir die Orginal Arduino Seite mit Ihrem Forum empfehlen:
Für das erstellen von Bildern der Sketches können wir Fritzing empfehlen:
Auf beiden Seiten ist die englische Sprache von Vorteil.
Projekt Dartscheibe
Umbau elektronisches Dartspiel zu Arduino -> PC, oder auch Raspberry PI möglich.
Noch ein elektronisches Dartspiel im Keller?
Hier eine DIY Anleitung zum Umbau, um das Dartboard an einen PC, oder Raspberry PI anzuschliessen inklusive Netzwerktauglichkeit.
Benötigt wird ein Arduino NANO, oder UNO, oder vergleichbar. Der NANO passt natürlich sehr gut in das Dartgehäuse.
Ein PC zum anschliessen, oder ein Raspberry PI
Zusätzlich die Opensource-Software pyDarts:
https://sourceforge.net/projects/pydarts/
Dort findet man auch immer die aktuelle Version:
https://sourceforge.net/projects/pydarts/files/
Diese kann man in ein beliebiges Verzeichnis entpacken.
Hier ein Warenkorb mit allen benötigten Artikeln für den Umbau:
Nicht benötigtes einfach entfernen:
Ab hier der Hinweis, das dass Board nicht mehr normal nutzbar ist, da die Platine aus dem Dartgehäuse entfernt wird.
Zuerst wird das elektronische Dartspiel geöffnet.
Sollten sich wie auf dem Foto um ein einziges Flachbandkabel handeln, ist der Ablauf etwas anders, da man genau herausfinden muss, wie die Leitungen der Matrix verbunden sind.
Zusätzlich würde das abgreifen der Matrix problematisch werden, da die Kontakte nur aufliegen. Wir haben mit diesem Board nicht weiter gemacht.
Am einfachsten ist es, wenn das Board 2 Kabel hat: ein Kabel was 8 belegt hat und einmal 10, also eine 8x10 Matrix, zusätzlich sollte das Flachbandkabel leicht zu entlöten sein.
Wie man auf diesem Bild gut erkennen kann:
Es wird der Stecker inklusive Flachbandkabel entlötet, entweder mit Entlötlitze, oder mit Entlötpumpe.
Man muss probieren wie es sich besser entlöten lässt.
Ganz wichtig! Das Flachbandkabel ist Kunststoff und verträgt absolut keine Hitze, es muss sehr sorgfältig gearbeitet werden.
Am Ende sollte man 2 "Slicks" mit jeweils einem Pfostenstecker freigelegt haben. Bei unserem Board ist der Lochabstand 2.54mm.
Die beiden "Slicks" kann man jetzt jeweils in eine Streifenrasterplatine löten, die Platine nicht zu klein sägen, damit man noch die Leitungen zum Arduino
einlöten kann. Ungefähr wie auf dem Bild:
Wie man sieht kann man ein abisoliertes Patchkabel benutzen und die jeweiligen Leitungen auf die Streifenrasterplatine löten, so
das jeder Pin von der Dartmatrix abgegriffen werden kann.
Dazu kann man natürlich auch das DEBO Kabelset verwenden.
Hier sieht man wie die Leitungen zum Arduino NANO geführt werden:
Der Arduino NANO wurde in eine Streifenrasterplatine eingelötet und seitlich wurden gewinkelte Buchsenleisten eingelötet, damit später auch das
Dartgehäuse wieder geschlossen werden kann.
Wichtiger Hinweis! Die Leiterbahnen unterbrechen auf der Streifenrasterplatine, damit der Arduino sich nicht mit "Magic Smoke"(Kurzschluss) zum Elektroschrott verabschiedet.
Die Matrix wird wie folgt verbunden:
Der "Slick" mit den wenigeren Kontakten von A0 - A5 und auf 2 und 3, der andere Slick von D4 nach D13
Evtl. hat man andere "Slicks" 8x9 oder 4x16,
Dann muss man die Arduino Datei anpassen!
rowPins und colPins definieren die jeweiligen Pins auf dem Arduino.
Viele Bilder findet man auch auf der Entwicklerseite, was als Basis für unsere Anleitung dient.
(Die Seite is in Englisch.)
Man kann auch die Buttons von der Platine nutzen:
Muss man aber nicht, da diese Funktionen auch über die Tastatur gesteuert werden können.
Wer noch keine Erfahrung mit dem Arduino hat kann sich hier über die Basics Informieren:
http://www.reichelt.de/reicheltpedia/index.php5/Arduino
Software installieren:
Das Paket für alle Abhängigkeiten kann hier geladen werden:
https://sourceforge.net/projects/pydarts/files/dependancies/
Getestet mit Windows 7 und Windows 10
Wer lieber die Pakete selber installieren möchte kann folgende Links verwenden:
Bitte nur 32bit Pakete installieren und Python 2.7 kompatible Versionen.
python 2.7 http://www.python.org/download/windows/
pyserial http://sourceforge.net/projects/pyserial/
pygame http://www.pygame.org/download.shtml
netifaces https://pypi.python.org/pypi/netifaces/ Instructions here [netifaces_install_windows]
wxPython https://wxpython.org/download.php
Arduino Software http://arduino.cc/en/main/software
Den Sketch in den Arduino laden und erstmal den Arduino baumeln lassen für einen ersten Test:
den Arduino mit dem PC verbinden über USB Verlängerungskabel. Bei unseren Tests waren 5 Meter Entfernung kein Problem.
Die Software wird mit pydarts.bat gestartet und sollte die Dartscheibe automatisch erkennen.
Beim ersten mal findet eine Autokonfiguration statt wo nacheinander alle Felder der Dartmatrix gedrückt werden müssen.
Buttons können übergangen werden, wenn keine Buttons benötigt werden. Wir haben uns dazu entschieden, das "nächster Spieler" und "Beenden" über die
Tastatur gesteuert wird. Das sind für "nächster Spieler" die Leertaste und für "Beenden" die ESC Taste.
Einfach nach allen Feldern die ESC Taste drücken.
Eigentlich ist das Projekt jetzt abgeschlossen, die Scheibe ist einsatzbereit.
Wir wollen einen Schritt weitergehen und lassen den PC weg, ersetzen diesen dann gegen einen Raspberry PI. In unserem Fall einen Zero, bei einem Raspberry PI 2/3 ist der Ablauf ähnlich und einfacher.
Echte Fummelarbeit:
der 1. Test sah so aus:
Dazu wird auf einem raspberry mit Debian-Jessie Lite mit zusätzlichen Paketen installiert:
sudo apt-get update
sudo apt-get install python python-pygame python-serial python-netifaces cu python-wxgtk3.0
addgroup "Benutzername" dialout
Einbinden des Netzwerkmoduls ENC28J60(Kann bei einem Raspberry PI 2/3 übersprungen werden:
folgendermaßen verbinden:
SPI muss aktiviert werden mit:
sudo raspi-config
in den "Advanced Options” "SPI” aktivieren.
in der Bootconfig eine Zeile einfügen.
sudo nano /boot/config.txt
dtoverlay=enc28j60
sudo reboot
Nun sollte die Netzwerkkarte mit 10 M/Bit zur Verfügung stehen.
Alles passend in das Dart Gehäuse platzieren, ggfs. mit etwas Heißkleber fixieren:
Wer noch einen VGA Monitor besitzt kann diesen mit einem HDMI/VGA Adapter verwenden.
Ein aktiver USB HUB ist noch zu empfehlen für einen Zero, damit genügend Ports zur Verfügung stehen Raspberry PI 2/3 hat ausreichend USB-Ports.
Hier noch ein paar Impressionen wie das Board am Ende aussehen kann:
Test mit Raspberry PI 3:
Wir empfehlen ausdrücklich den Raspberry PI 2/3 zu benutzen, da es eine Menge an "Fummelarbeit" erspart.
Alle Produkte hier im Warenkorb:
Bei weiteren Fragen und Anregungen steht ein Forum zur Verfügung: https://sourceforge.net/p/pydarts/discussion/
Es sind mit diesem Projekt auch Spiele über Netzwerk möglich, das bedeutet:
Wenn Jemand auch eine umgebaute Dartscheibe besitzt, kann man weltweit mit aktiver Internetverbindung gegeneinander mit bis zu 8 Spieler eine Runde Darts spielen.
Viel Erfolg und Spaß!
- Einige Bilder mit freundlicher Genehmigung der pyDarts Community
Projekt Pan Tilt Außenkamera mit Nachtsicht
Pan Tilt Außenkamera mit Servos und Nachtsicht
Der passende Warenkorb zu dem Projekt hier:
Ein paar wichtige Hinweise:
Der Raspberry kann zum testen über die GPIO Ports mit Strom versorgt werden, damit
umgeht man allerdings alle Sicherheitseinrichtungen des Raspberry PI und somit kann es
bei Überspannungen zur Zerstörung des Raspberry PI führen.
Mit einem abgewinkelten Micro USB Kabel zur Stromversorgung des Raspberry PI sollte
noch ausreichend Platz in dem "Dummy Gehäuse" sein um die PAN TILT Funktion nutzen zu können.
In dieser Anleitung wird das USB-Versorgungskabel durchgetrennt, deswegen richtet sich diese Anleitung
an schon etwas erfahrene Personen, oder an Personen die sich von erfahrenen helfen lassen können.
Zuerst wird ein Jessie Lite mit 2 zusätzlichen Dateien installiert:
Hier noch der Link zu dem Download: https://www.raspberrypi.org/downloads/raspbian/
ssh und wpa_supplicant.conf
Die Datei wpa_supplicant.conf mit folgendem Inhalt:
update_config=1 ctrl_interface=/var/run/wpa_supplicant network={ scan_ssid=1 ssid="DeineSessionID" psk="password" }
und einfach einen "textdatei" mit dem Namen "ssh"
damit haben wir SSH aktiviert und eine funktionierende WLAN Verbindung nach dem Start vom Raspberry PI
Diese beiden Dateien kommen in das "root" Verzeichnis der micro SD Karte
Aus Sicherheitsgründen wird das Password nach dem Start mit:
passwd
geändert.
weiter mit:
sudo apt-get update
Wer mag kann noch:
sudo apt-get install mc
ausführen für den Midnight Commander.
mit
sudo raspi-config
die Kamera aktivieren
Dann werden ein paar Projekte aus dem github geladen um nicht alles neu erfinden zu müssen:
sudo apt-get install git
Dann die benötigten Projekte laden:
git clone https://github.com/richardghirst/PiBits.git
git clone https://github.com/skalad/RPi_Cam_Web_Interface_ServoBlaster_pan_tilt
Nun Servoblaster installieren(Verzeichnisnamen anpassen bei Bedarf):
cd PiBits/ServoBlaster/user/
sudo make install
Das Timeout von 2000 auf 500 setzen in der Servoblaster Datei:
sudo nano /etc/init.d/servoblaster
sudo ./servod
startet den Server.
Zum Test kann man später:
echo 0=150 > /dev/servoblaster
eingegeben werden wenn die Servos angeschlossen wurden.
Nun die Software:
git clone https://github.com/skalad/RPi_Cam_Web_Interface_ServoBlaster_pan_tilt
cd RPi_Cam_Web_Interface_ServoBlaster_pan_tilt
sudo chmod u+x RPi_Cam_Web_Interface_Installer.sh
sudo ./RPi_Cam_Web_Interface_Installer.sh install
^^ das dauert ein wenig, aber es werden aber alle benötigten Pakete installiert.
Testweise kann man den Raspberry neu starten um zu prüfen, ob die Weboberfläche zur Verfügung steht.
Dazu wird die IP Adresse des Raspberry PI mit einem Webbrowser von einem anderen Rechner aufgerufen:
Sollte nur eine Testseite des Apache2 Servers angezeigt werden, dann stimmt das "Homeverzeichnis" nicht.
Dieses sollte sein /var/www/ <-- in diesem Verzeichnis sollten die Dateien unserer Seite liegen
Dieses kann wie folgt geändert werden:
sudo nano /etc/apache2/sites-enabled/000-default
hier kann man das "DocumentRoot" passend ändern.
sudo service apache2 reload
sollte auslangen, ansonsten ein:
sudo service apache2 restart
ausführen, um den Apache neu zu starten.
Danach den Raspberry PI ausschalten und Stromversorgung trennen.
Nun gehts an die Hardware:
Wir haben uns zum testen 1 Platine erstellt um die Stromversorgung der Servos direkt vom Netzteil zu holen.
Die GPIO Ports vom Raspberry sind nicht dazu geeignet um große Lasten zu bewegen, deswegen sollte man die Servos nicht
über die GPIO Ports mit Strom versorgen. Wir haben die Zuleitung aufgetrennt und auf die Platine mit einer Steckerleiste angebracht.
Die Servos werden mit Strom von der Platine versorgt und nur die Steuerleitungen der Servos gehen auf GPIO 4 und GPIO 17.
"Zum Testen" haben wir den Raspberry über die GPIO PORTS mit Strom versorgt.
Die Servos werden einfach mit Heißkleber aneinander geklebt. Dabei muss man darauf achten, das dies exakt mittig geschieht,
damit später das Gehäuse vom Raspberry nicht am Kameragehäuse hängen bleibt.
Dann werden die Servos auf das Raspberry Gehäuse geklebt. Wir haben dazu die 4 Flügel Blätter benutzt.
Die Stecker der Servos haben wir entfernt und mit Steckbuchsen versehen. Nicht vergessen die Flügel Blätter mit Schrauben befestigen und nicht kleben!
Anschluss der Servos:
ROT ist VCC
BRAUN ist GND
ORANGE ist "Steuerleitung zum GPIO"
Testen kann man außerhalb des "Dummy Gehäuses" um zu prüfen ob alles funktioniert.
echo 0=150 > /dev/servoblaster
Nicht vergessen genug Leitungslänge im Gehäuse zu lassen, damit die Kamera sich auch drehen kann.
Wenn alles korrekt angeschlossen wurde und der Raspberry PI wieder eingeschaltet wurde kann man über die IP Adresse des Raspberry PI
die Kamera Seite aufrufen:
hier können die Servos jetzt über die grünen Pfeile bewegt werden.
Man kann noch die Begrenzungen der PAN TILT Funktion ändern.
Die Dateien um die Begrenzungen einzustellen sind im Verzeichnis:
www/left.sh
www/right.sh
www/up.sh
www/down.sh
so kann man die Drehung eingrenzen nach Bedarf, damit die Kabel im Gehäuse nicht zu sehr auf Spannung kommen.
Wenn alles funktioniert kann man den Raspberry inklusive Servos in das "Dummy Gehäuse" einkleben, auch hier
haben wir wieder Heißkleber benutzt, da man herrlich korrigieren kann. Auch hier gilt es muss genau mittig und tief genug sitzen
damit das Gehäuse auch noch geschlossen werden kann. Die Stromversorgung kann von oben erfolgen, dabei ist aber darauf zu achten
das die gebohrte Stelle gut abgedichtet wird.
Auch genug Kabellänge sollte im Gehäuse verbleiben, damit die Drehungen auch ausgeführt werden können.
Um einen besseren Halt zu bekommen kann man ein Stück Holz in den Deckel (Ja mit Heißkleber) kleben, darauf dann den
Raspberry Servo Verbund kleben.
Man kann auch etwas vom Gehäuse des Raspberry wegschneiden um kleine Fehler beim Einbau zu korrigieren.
Über die kleine Platine können jetzt noch Infrarotdioden mit Strom versorgt werden um auch in der Nacht
ein Bild zu bekommen.
Löcher in das Gehäuse für die LEDs, erst mit 3mm vorbohren, dann mit 5mm auf die richtige Größe bringen und entgraten.
Mit 2-3 Kabelbinder, kann man sich eine Markierungslinie für die Löcher erstellen. Danach auf Dichtigkeit des Gehäuses achten.
Hier noch eine LDR 07 Schaltung, damit die IR-LEDs nicht ununterbrochen laufen müssen.
Leider können die LEDs nicht in das Gehäuse, da die Kuppel nicht entspiegelt ist und somit kommt es zu unerwünschten Reflexionen.
6 gerichtete Dioden sind nur für kurze Entfernungen gedacht, für eine größere Reichweite kann man natürlich einen LED-IR Scheinwerfer benutzen:
IR SW 18 für ca. 10 Meter Reichweite.
Das funktioniert natürlich nur mit einer IR fähigen Kamera wie:
Hier 2 Beispielbilder der Kamera:
1x mit 6 SFH ca. 2-3 Meter von den Objekten weg.
Und 1x draußen mit IR Scheinwerfer.
"Thekla" unten auf dem Bild, hat die Aufnahme ausgelöst an einer Synology Diskstation mit Bewegungserkennung! :)
Crazy Skater Projekt
Skateboard am Computer mit Arduino Leonardo
Noch ein Skateboard im Keller? Auch ein abgenutztes Skateboard ist geeignet.
Wir benötigen 2 Taster und 2 Rollenhebelschalter, sowie einen Arduino Leonardo und ein paar Kabelbrücken.
Als Verlängerung hat sich ein Patchkabelrest gefunden.
Etwas Heißkleber ist auch sehr hilfreich. Etwas Lötzinn und eine Platine für die Taster, sowie ein Leiste um die Massen zu verbinden.
Heißklebesticks gibt es auch im Shop:
Hier der Warenkorb zum Projekt: Warenkorb
Zuerst laden wir diesen simplen Sketch auf den Leonardo:
Es wird noch die passende Bibliothek benötigt:
https://github.com/MHeironimus/ArduinoJoystickLibrary/tree/version-1.0
Ab Version 1.6.6 aufwärts ist diese Bibliothek kompatibel.
der Weg dahin geht so:
oder so:
Im Ordner /Joystick/examples/JoystickButton findet man unseren Sktech: JoystickButton.ino
In der Systemsteuerung/Geräte und Drucker sollte nach erfolgreichem Upload der Gamecontroller auftauchen, hier kann man sich die Gerätekonfiguration angucken und später testen.
Um jetzt unser Skateboard zu benutzen, müssen 2 Taster und die beiden Rollenhebel mit dem Arduino verbunden werden, diese haben später die Joystick Buttons 1, 2, 3, und 4.
Am Leonardo sind das die digitalen Eingänge 9, 10, 11, und 12.
Nun die Rollenhebel so auf das Skateboard kleben, dass Sie auch von den Rollen beim Neigen erwischt werden,
dabei darauf achten, das die Schalter beim Neigen des Boards nicht zerstört werden, dafür die Trucks evtl. etwas härter einstellen.
Wir benutzen hier Button 1 und 2 (9 und 10) als Taster für die Hand, das simuliert uns springen und ducken. 3 und 4 (11 und 12) sind unsere Rollenhebel, diese simulieren uns links und rechts.
Testen können wir alle Taster in der Systemsteuerung
Wenn alles läuft benötigen wir noch ein Spiel zum testen.
Dafür hat 1 Mitarbeiter dieses kostenlose Crazy Skateboard Projekt erstellt, so das es auch mit unserem Leonardo funktioniert.
Hier ein Video vom Spiel:
Man sollte am Anfang jemanden dabei haben der einen abfängt, falls man mal das Gleichgewicht verliert.
Ein Stück tiefer Teppich schützt vor dem wegrollen des Boards, oder man fixiert das Board gleich auf dem Boden.
Viel Spaß beim Skaten.