Raspberry Pi: 1-wire & DS18B20

DS18B20 Prinzip

Bei dem DS18B20 handelt es sich um einen kalibierten Temperatur Sensor. Er wird an einem 1-wire Draht betrieben und kommt somit mit drei Leitungen aus: +3.3V, GND, Data. Er wird in zwei Arten vertrieben: als Bausstein TO-92 Gehäuse (wie ein Transistor) als Outdoor gekapselter Sensor mit Drahtleitung.

DS18B20-TO92
Im TO-92 Gehäuse
DS18B20-WaterProof
Wasserdicht mit Kabel

DS18B20 Anschluss

An den Raspberry wird der DS18B20 wie in der folgenden Abbildung angeschlossen. Das Data Pin (4) kann variieren, muss dann aber im Treiber entsprechend konfiguriert werden.

Anschluss-DS18B20

DS18B20 Software Konfiguration

Als erstes muss der Device Treiber aktiviert werden. Dazu in der Datei /boot/config.txt den folgenden Eintrag ergänzen:

Über den optionalen parameter gpiopin kann auch ein anderer PIN am Raspberry gewählt werden. Danach den Raspberry rebooten!

 

Quellen

Pi Sound

Nachdem mein erster Versuch mit einem Pi3 Bluetooth und einer Bose Soundlink leider nicht besonders erfolgreich war (unveröffentlicher Artikel), hier nun ein zweiter Versuch mit einer USB Soundkarte.

Zum Einsatz kommt ein USB 2.0 Sound Adapter von LogiLink:

logilink-usb-audio-adapter

 

 

 

 

 

Start mit einer frischen Jessie Installation auf einem Pi2 (ohne Wifi&Bluetooth). Als erstes vor dem weiteren Start das System auf den aktuellen Stand gebracht:

Als nächstes den USB Stick anstecken und prüfen ob er erkannt wurde (hier als “C-Media Electronics):

USB Soundkarte im ALSA Mixer als Default Device auswählen. Dazu erst einmal mit alsa -l die Liste der verfügbaren ALSA Geräte ausgeben:

Nun zwei Dinge rekonfigurieren (geht auch über die Oberfläche: Audio Device Settings):

  1. /usr/share/alsa/alsa.conf
  2. /etc/asound.conf  (oder ~/.aoundrc)

Nun ein REBOOT

Nun ein Test mit:

Den AlsaMixer kann man auch von der Kommandozeile aus aufrufen:

 

 

 

 

Quellartikel die geholfen hatten:

 

Packetverwaltung am Raspberry

Schon länger interessiert mich, wie man in nach Paketen suchen kann. Heute habe ich mich einmal auf die Suche begeben und bin natürlich auch fündig geworden.

APT HOWTO auf der DEBIAN Seite.

apt-get

weitere Information zu apt-get konnte ich auf der ubuntu users webpage finden: apt-get. Hier ein paar wichtige Kommandos:

Raspberry Pi – Autorun mit Systemd

Service File für ein python script “temperature-logger.py”:

Ziel Ordner für die Service Datei für den systemd:

Die Permissions sollten auf “644” stehen.

Commands, um zu starten, stoppen und den Status abzufragen:

Basis Informationen habe ich aus folgenden Artikeln bezogen:

 

Raspberry Pi – VNC Konfiguration – v2

Nachdem nun die Jessie Version bei Raspian aktuell ist, war es einmal an der Zeit den alten Artikel durch einen neuen, aktuellen zu ersetzen.

Auf dem Pi

Das Paket TightVNC mit dem Packetmanager installieren (xfonts werden mit installiert):

TightVNC konfigurieren

Passwort vergeben. Bei read only N eingeben.

Nun kann schon einmal per RealVNC vom Windows Rechner aus zugegriffen werden:

  • 192.168.65.xx:1 mit IP Adresse und dem gewähltem Passwort
  • raspi-test2:1 mit Rechner Name und dem gewähltem Passwort

Unter Windows am PC

Hier benutze ich RealVNC.

Eine Installation ist nicht nötig. Mit der folgenden Anleitung habe ich das Programm an mein Windows 10 Startmenü geheftet:

Copy / Paste zwischen Windows und Raspi

Von Haus kann man nicht Text zwischen dem Raspi und Windows hin und her kopieren. Dazu muss man autocutsel installieren:

Im Anschluss noch die Konfigurationsdatei des vnc servers (~/.vnc/xstartup) mit dem autocutsel Kommando erweitern:

Danach den vncserver neu starten:

Tuning. Display :0 disable

Wenn man den Raspi ausschliesslich per remote VNC Viewer bedienen möchte, kann man den Display Manager des Hauptdisplay :0 entfernen:

Tuning. Mauspointer

Statt des großen Kreuzes in der remote VNC, lässt sich auch ein normaler Mauszeiger konfigurieren. Dazu ergänzt man in der vnc Konfigurationsdatei ~/.vnc/xstartup

Tuning. Secure VNC mit putty Tunnel

Von Haus aus ist das VNC Protokol nicht sicher und überträgt alles im Klartext. Dies lässt sich dadurch vermeiden, indem man per putty einen SSH Tunnel zu Raspi aufbaut und erst darüber den VNC viewer startet. Dies ist in einer englischen Anleitung beschrieben.

Automatischer Start des VNCSERVER mit systemd

Seit Jessie wird zum automatischen Start der systemd eingesetzt. Um den vncserver automatisch beim Booten zu starten, müssen wir eine .service Datei für den systemd erstellen. Diese muss an folgender Stelle angelegt werden (unter dem Directory system kann man eigene service Dateien anlegen):

Ein passender Inhalt kann wie folgt aussehen:

Das File noch präparieren. Owner root und executable:

Enable den Start beim Booten:

Um den VNC Server manuell zu starten:

Um den Status des VNC Server abzufragen:

Um den VNC Server zu stoppen:

Quellen

 

Raspberry Pi – Quickstart – v2

Eine schnelle Zusammenfassung, wie ich zu einer GRUNDINSTALLATION komme.

  1. SD Karte formatieren
  2. RASPIAN JESSIE image auf SD Karte kopieren
  3. Rasperry Pi mit der SD Karte starten

Einen guten Quick-Guide habe ich bei kofler.info gefunden.

SD Karte formatieren:

SD-Formatter auf dem PC installieren.
Download über https://www.sdcard.org/downloads/formatter_4/

Dann die SD-Karte mit den unteren Einstellungen formatieren.

SD-DiskFormater

Image auf SD Karte kopieren:

das RASPIAN JESSIE image von https://www.raspberrypi.org/downloads/raspbian/ herunterladen und das ZIP File entpacken.

Die Image Datei (*.img) mit Hilfe des Win32DiskImager auf die SD-Karte kopieren.
Download (version 0.9.5) über http://sourceforge.net/projects/win32diskimager

Win32DiskImage095

Raspberry Pi mit SD-Karte starten:

Das neue Jessie startet direkt in den grafischen Desktop. Hier kann auch das neue grafische Konfgurations-Tool aufgerufen werden. Im folgenden die Einstellungen …

Raspi-CFG-1Raspi-CFG-2Raspi-CFG-3Raspi-CFG-4

Und hier noch die Details:

Raspi-CFG-4aRaspi-CFG-4b

 

Gameboy mit RetroPie

Hier nur einmal schnell ein paar Links von Leuten die den Raspi in einen Gameboy eingebaut haben. Das machen wir auch gerade:

 

RetroPie – Welche Tasten?

Nach wirklich einfachen Installation des RetroPie Images kam bei uns erst einmal eine lange Frust Phase. Mit Tastatur konnten wir zwar die Spiele bedienen, aber  über die an den Raspi GPIO angeschlossenen Tasten ging gar nichts.

Adafruit Arcade Controls

Eine gründliche Suche machte uns dann klar, dass dies NUR über den passenden Treiber von Adafruit zu Ihrem Projekt “Adding Arcade Controls” funktioniert.

Folgt man der Anleitung kommt man schnell zu Ziel:

  • Download des ZIP Archives
  • unzip
  • Modifikation der Tasten
  • Einbinden in die Raspi Startup Datei

Damit wir beim Drücken eines Knopfes ein Tastendruck emuliert. Klappt wunderbar.

Frage: Wie lauten die Schlüsselworte

Die erste Frage, die sich uns aber stellte: Wie lauten die ganzen Tastatur Schlüsselworte aus der Datei /usr/include/linux/input.h?

Wir wurden im Internet unter dieser Adresse fündig.

Frage: Welche Tasten benutzt der Emulator

Danach konnten wir zwar unseren Wünschen folgend jede Taste emulieren, aber leider benutzte der RetroPie Emulator für den Gameboy Color ganz andere. Doch welche?

Bei der weiteren Suche stießen wir auf die Blog Seiten des “Weekend Engineer“. In einem Artikel vom 28. August 2014, “Mapping Controllers (3 of): Setting up Controllers in RetroArch” fanden wir die nötigen Informationen.

unter /opt/retropie/configs/*  befinden sich alle Emulator Einstellungen. Im Verzeichnis all befinden sich die Einstellungen die auf alle Emulatoren zutreffen. In der Datei /opt/retropie/configs/all/retroarch.cfg konnten wir die Standardbelegung der Tasten des Emulators herauslesen:

Diese stellten wir im Treiber von Adafruit so ein und schon geht das ganze wesentlich besser!!!

RetroPie – Installation

Vorbereitung zur Installation eines Raspi 2 zum Einbau in einen Game Boy Classic.

Man kann sich ein vorgefertigtes Image von der RetroPie Projektseite laden:

Die SD-Karte sollte mindestens 4GB haben. (ich habe eine mit 16GB bei Pollin geholt)

Das Vorgehen entspricht dem aus dem beschriebenen Quickstart Artikel

  1. SD Karte Formatieren (mit dem Tool SD-Formater)
    1. volume label: RetroPie
    2. Option: Adjustment ON
  2. Extrahierte img Datei mit Win32DiskImage auf die SD-Karte kopieren.

    Aufspielen des RetroPie Images
    Aufspielen des RetroPie Images
  3. am Raspi muss noch das File-System expandiert werden: Enter the Shell by F4 and do it via “sudo raspi-config”

Auch eine sehr gute Zusammenfassung findet sich auf der WIKI Seite von RetroPie.

Default Passwörter entsprechend der RetroPie website:

  • username “pi” und password “raspberry”
  • username “root” und password “raspberry”

 

Raspberry Pi – WLAN Auto-Reconnect

Lange hat mich dieses Problem beschäftigt. Mein Pi läuft per WLAN ohne Tastatur und ohne Monitor. Im Normalfall möchte ich per ssh oder vnc auf ihn zugreifen. Das ist auch alles kein Problem, solange er neu gestartet ist und mein WLAN Router nicht einmal neu gestartet wird. Passiert dies, dann ist die WLAN Verbindung leider Futsch! Ohne Änderung passiert leider kein Auto-Reconnect. Ich musste mir umständlich erst wieder das LAN einstecken und dann auf dem wlan0 Interface ein ifup durchführen.

Lang habe ich auch keine mir passende Lösung in den Internet Foren und über Google gefunden. Die angebotenen halfen nicht oder schienen mir nicht adäquat. Darunter waren:

  1. Anpassung der wpa_supplicant Datei. Hab ich zwar gemacht (schaut jetzt schöner aus), half aber nicht.
  2. Installation eines Meters, das die Wlan Verbindung bevorzugt. Nett, aber ohne Erfolg.
  3. per Cronjob die wlan0 Verbindung überwachen (per ping) und dann ein ifup durchführen (gar nicht erst probiert, da das schon die “Keule” ist)

Da das Problem immer wieder kam, suchte ich beharrlich weiter, bis ich endlich auf folgenden beiden Seiten fündig wurde. Die Erklärung dazu überzeugte mich und die Umsetzung funktioniert:

Was passiert?

Die Unterbrechung wird vom Raspi erkannt, aber es ist ein Skript hinterlegt “ifupdown”, das nicht automatisch immer wieder einen Reconnect versucht. Durch Ersetzung des Skripts durch ein schon passend vorhandenes löst das Problem!

Drawback: Bei verlorener WLAN Verbindung geht das LAN leider nicht mehr.