Raspberry PI – selbstgedruckter Roboter

model

Neues Jahr – neues Projekt! Im Rahmen meines Studiums ist mal wieder eine Bastelei herausgefallen. Ein Roboter mit einem selbstgedruckten Gehäuse, basierend auf einem Raspberry PI  und dem PI Camera Modul. Die grundlegende Aufgabe, die dieser Roboter erledigen soll, ist das Finden eines farbigen Balls, den er in ein farbiges Tor bewegen soll. Dabei soll nur anhand einer einfachen Kamera navigiert werden.

Die eingesetzten Motoren sind zwei Schrittmotoren mit zwei ULN2003 Driver Boards, die es schon für unter 4€ bei Amazon oder Ebay gibt. Der Rahmen, die Räder und der Greifer sind alle mit OpenSCAD entwickelt und in einem Printrbot Simple mit PLA gedruckt. Die Software ist in Python entwickelt und bedient sich dem OpenCV Framework um eine farbige Objekt-Erkennung durchzuführen. Das folgende Video zeigt das einfachste Szenario, das der Roboter erfolgreich lösen kann:

Bei komplizierteren Positionierungen löst er zwar das Problem, jedoch gibt es da noch Optimierungsbedarf :) Außderm ist die OpenCV Verarbeitung zu langsam, was zu einer Wiederholrate von 3 Sekunden führt.

Nähere Informationen zur Bildverarbeitung, Entwicklung und Modellierung findet ihr bei Interesse in dieser Präsentation oder in dem zugehörigen Github Projekt.

roboter

Advertisements

Webradio aus nostalgischem FM Radio

iconNach meinem Auslandssemester in Finnland wurde es mal wieder Zeit ein neues Bastelprojekt zu starten. Ich habe auf unserem Balken ein schickes altes FM Radio gefunden und hatte die Idee daraus ein Webradio zu bauen. Der Raspberry PI mit seiner USB-Wlankarte ist da gerade richtig und wurde direkt als Webplayer getestet. Mit seiner I2C Schnittstelle konnte ich danach auch ein LCD Modul mit lcdproc ansteuern, wodurch die Programmierung der Anzeige deutlich einfacher ist. Das Radio besitzt noch 3 Potentiometer, die ich für die Bedienung nutzen wollte. Da der Raspberry PI aber keine Analog/Digital Schnittstellen besitzt, wurde ein weiteres Arduino Board für das Auslesen dieser Regler genutzt. Dieser Wandelt die Spannungen der Spannungsteiler in einen digitalen Wert um und bietet diese als slave Device über I2C an.

Hier schon einmal Bilder der ersten Installation:
Untitled

Zum Abspielen von Musik habe ich verschiedene python Skripte geschrieben oder angepasst, die entweder Webradio, Spotify, Google-Music oder lokale Musik auf dem Raspberry PI abspielen. Für die Lautsprecheransteuerung muss jedoch noch ein kleiner Verstärker zwischengeschaltet werden, welcher als Kit in verschiedenen Versandhäusern erhältlich ist.

Demnächst folgt noch ein Schaltplan, der Fortschritt mit dem Verstärker und die Software …

UPDATE:

Hier nun wie versprochen noch der Schaltplan, den ich für die Software die auf github zu finden ist genutzt habe.  Source Code

scheme

LED Coffee Table – Raspberry PI

42bdc09881e611e28b8322000a1f92ef_7Neuen Lötkolben zu Weihnachten bekommen und Semesterferien haben. Ideale Bedingungen um ein neues Bastel/Elektro Projekt zu starten. Vor zwei Wochen habe ich dann mehrere YouTube Videos für einen LED Coffee Table im Netz entdeckt und mich entschieden so einen in etwas abgespeckter Form nachzubauen. Ziel war außerdem das ganze als Low Budget Projekt aufzuziehen.

Die Software habe ich Python geschrieben und öffnet die SPI Schnittstelle als Filestream. In diesen schreibe ich die Farbinformationen in Schieberegister-Manier in die 25 PWM Controller der Lichterkette. Der Quellcode befindet sich auf github.com. Erste Module sind Game of Live mit dimmenden Farbwechseln, Snake mit 2 Tastern, Laufschrift welche alle ASCII Zeichen abdeckt und einem Menü um zwischen den Modulen wechseln zu können. (Siehe YouTube Video) Nicht wundern – der Code ist noch etwas Quick and Dirty ;-)

Stückliste:

  • 01,50 € – 2 Styroporplatten (1 x 10mm) (1 x 15mm) 
  • 20,00 € – LED Kette mit adressierbaren Bus von Adafruit (Ebay deutlich günstiger)
  • 20,00 € – maßgeschneidertes Acrylglas 550×550 30% Lichtdurchlässig (Ebay)
  • Raspberry PI (bereits vorhanden gewesen)
  • IKEA LACK Tisch 550×550 (bereits vorhanden gewesen)
  • 5V 2A Power Adapter (bereits vorhanden gewesen)

Zum Anschluss der LEDs an den Raspberry PI konnte die SPI Schnittstelle (RPi Low-level peripherals) genutzt werden. Die Stromversorgung des PIs muss hier auch über diese Schnittstelle erfolgen (Nicht über USB!) und kann parallel geschaltet auch die LEDs treiben. Sollte jemand Fragen haben oder eine ausführliche Bauanleitung benötigen kann er sich gerne bei mir melden :-)

Bestellt sind jetzt noch 2 Arcade Buttons die rechts und links an den Tisch eingelassen werden um die Steuerung des Tischs ohne SSH durchführen zu können.


 

Update (20.11.2013) element14 Blog Comment:

Hey, this project isn’t that big outlay :-) First of all you need this 25 LED Stript with WS2801 controllers. I bought them on ebay for 19€ ;-) In this strip of LEDs there is a 5-6 cm long wire for the SPI connection, you simply have to wire the beginning of the strip to the Pi’s SPI interface. I also used a single power source as u can see in this wiring diagram.

https://i1.wp.com/boblight.googlecode.com/svn/wiki/diagram.png

After i have done the connection, I started to try some programming, like simple light slides with python and the SPI interface. You can use it as a file when you have done the SPI setup.

spidev = file("/dev/spidev0.0", "wb")

You can also use something like this http://www.100randomtasks.com/simple-spi-on-raspberry-pi

Otherwise, take a look at my github project for this table :-)

My setup looks like this:

led_diagram

To setup two buttons on the side, I used two of the GPIO ports with a 10k pullup resistors!

Raspberry PI – Twitter und Mail Notifier

Um auch endlich mal was mit dem Raspberry PI anzufangen hab ich mir ein kleines Projekt überlegt was mir über eine sehr helle RGB-LED aktuelle Nachrichten bei Twitter oder Googlemail anzeigt. Leider konnte ich nur eine LED ansteuern da die GPIO Ports einer Strombegrenzung von 50 mA unterliegen. Glücklicherweise liegt aber genau an den Ports eine Spannung von 3.3 V an sodass die LED direkt angeschlossen werden konnte. Jetzt noch ein kleiner Python Script der die Pins bei den Events von Twitter und er E-Mail einschaltet.

Um das ganze auch selbst zu installieren benötigt man folgende Dinge:

  • Python2.7 auf dem Raspberry
  • Python Modul tweepy installiert (pip install tweepy)
  • anlegen der datei .lasttweetid und .mailpassword(mit passendem account passwort)
  • zuletzt noch das Script anpassen:
    • consumer_key,consumer_secret,access_token und access_token_secret von https://dev.twitter.com in … einfügen
    • Google Mail Account bei USERNAME einfügen
  • RGB-LED an den Raspberry anschliessen
    • gemeinsame Anode an +3.3V
    • Blau und Grün an die GPIO Pins 0 und 1 (Achtung ! Rote LED mit Vorwiederstand !)

Google Music GTK Player – Python

Als kleine Ablenkung vom Lernen für die anstehende Prüfungsphase habe ich mal die schon seit längeren beobachtete Unofficial-Google-Music-API ausprobiert. Darüber hinaus auch mal ein wenig mit pygtk hantiert und durch glade zwei einfach GUIs für das Login und den Player erstellt. Dieses Projekt ist eine kleine Bastelei und hilft eventuell dem ein oder Anderen bei eigenen Projekten mit Python-GStreamer, Python-GTK und der Google Music API. Zu finden ist der Quelltext unter github.com.