Markiert mit "RASPBERRY PI"


The Internet: Der DIY-Modem-Einwahlservice

Neues aus dem Bastelkeller: ich habe mir meinen eigenen Dial-up Internet Service gebaut.
Das Internet als Blackbox
Na, wer erkennt die Anspielung hier?
So unscheinbar es aussehen mag, aber diese kleine Black Box enthält ein Modem, einen Minicomputer und eine Telefonanlage. Die Idee war, sich mit einem PC per Modem "ins Internet einwählen" zu können wie anno dazumal - mitsamt der entsprechenden Geräuschkulisse für extra Nostalgiebonus. 😎 Allerdings gibt es seit dem Breitbandausbau in Deutschland quasi keine Einwahlprovider mehr und außerdem soll der Spaß ja auch keine Telefonkosten verursachen. Also Selbermachen. Das Konzept dabei ist folgendermaßen:
Konzeptzeichnung
Ein Raspberry Pi Minicomputer hat über WLAN Zugang zum Internet. Über einen USB-Adapter ist er mit einem alten Telefonmodem verbunden. Wählt ein Windows-PC über sein Modem das Modem des Raspberry Pi an, so soll dieses den Anruf annehmen und der Raspberry Pi soll über seine WLAN-Schnittstelle Zugang zum Internet gewähren. Nun kann man aber nicht einfach zwei Modems per Kabel miteinander verbinden. Es braucht ein Telefonnetz mit den richtigen Spannungspegeln, Freizeichen, Rufsignal, etc. Wer überhaupt noch analoge Telefonanschlüsse hat, könnte hierfür die heimische Telefonanlage bzw. Fritzbox verwenden. Aber weil ich es gerne unabhängig von der Hausinstallation wollte, übernimmt den Part des Telefonnetzes in diesem Projekt eine Eumex 504. Eigentlich eine ISDN-Anlage, aber mit vier Nebenstellenanschlüssen für Telefone/Modems, die sich auch untereinander anrufen können, ohne dass es dafür eine Verbindung von der Eumex in die weite Welt bedarf. Zuerst jedoch habe ich das Modem für den Raspberry Pi von seinem Gehäuse befreit und in ein etwas geräumigeres Leergehäuse gepackt:
Modemplatine in Leergehäuse
Praktischerweise kann man sich von der Modemplatine 5V für den Raspberry Pi abzwacken, so dass dieser kein eigenes Netzteil benötigt:
5V-Versorgung des Pi von der Modemplatine aus
Damit in das Gehäuse neben Modem und Raspberry Pi auch noch die Platine der Eumex-Telefonanlage hineinpasst, musste ich diese ein kleines bisschen anpassen: erst musste die Buchse für ISDN abgelötet werden (braucht es eh nicht mehr) und dann, mit ruhiger Hand und 100% Konzentration in einer kleinen Operation an den Ecken noch ein paar Stücke Platinenmaterial wegsägen. Natürlich nur da, wo keine Leiterbahnen verlaufen. Die Operation glückte jedenfalls und nun fand alles seinen Platz:
Alle Elektronik in das Gehäuse gezwängt
Beim ersten Probelauf der Elektronik im neuen Gehäuse kam allerdings keine Verbindung zustande zwischen dem Pi-Modem und einem einwählenden Windows-Modem. Nach einiger Fehlersuche war das Problem dann klar: das Modem für den Raspberry Pi hatte ich nur mit Sende- und Empfangsleitung (TX & RX) an der seriellen Schnittstelle des Pi angeschlossen. Benötigt werden aber auch die anderen Signale einer RS232-Verbindung (DTR, RTS, CTS, ...). Also bekam der Pi für den Anschluss an sein Modem noch einen vollwertigen USB-nach-RS232-Adapter spendiert:
USB2RS232-Adapter ohne Gehäuse
Dieser Adapter passte allerdings nur nach Entfernen seines Gehäuses und Steckers noch zwischen Modemplatine und Eumexplatine. Und beim Ablöten des Steckers habe ich prompt ein paar von dessen Lötpads von der Platine abgerissen. 😬 Zur Verbüßung dieser Untat war ich also anschließend noch eine gute Weile mit Lupe und Fädeldrahtlöterei zum Reparieren dieses Malheurs beschäftigt. 🙈😅 Softwareseitig ist das Projekt weit weniger aufwändig und basiert im Wesentlichen auf mgetty, PPP und iptables. Wer mag, kann ja mal ChatGPT fragen, wie man das einrichtet. So habe ich es nämlich auch gemacht. Jedenfalls hat es dann mit dem USB-Adapter funktioniert, und wenn ich nun den Windows-Rechner mein Fake-AOL wählen lasse, Einwahldialog bei Windows XP dann komme ich ins Internet wie anno dazumal. Einwahldialog bei Windows XP So einfach geht das. 🤣 Da die Eumex vier Anschlüsse für Telefone oder Modems hat und ja nur einer für das Pi-Modem gebraucht wird, werde ich die anderen drei nun noch nach außen führen, so dass man bis zu drei alte PCs via Modem anschließen kann (wobei natürlich nur jeweils einer so online gehen kann). Oder man schließt noch zwei Telefone an, für maximales "vintage Teamspeak" auf einer LAN-Party ☎😎

24/7 Comedy & Cartoons - mein eigener Fernsehkanal

Was kann man noch anfangen, mit einem alten Mini-Fernseher mit längst ausgestorbener Technik? Mit so einem Relikt vergangener Zeiten, welches keinen Platz mehr findet zwischen Digitalfernsehen, Ultra-HD und Streamingdiensten?
TVR-7150
Mini-TV ISP TVR-7150 von 1980. Kerniges, geradliniges Design - hoffnungslos überholtes Innenleben.
Wenn man als Kind in den 80ern seine Eltern zur Bank, ins Möbelhaus oder andere größere Geschäfte begleitete, hatte man vielleicht Glück und es gab dort eine Kinderecke. Meist direkt irgendwo nach dem Eingang. Da standen dann ein paar Hocker um einen kleinen Tisch, es gab Buntstifte, Bilderbücher und manchmal sogar einen Fernseher, auf dem in Endlosschleife Comicfilme liefen. Was für eine Faszination damals! Tom & Jerry, Donald Duck, Dick & Doof, usw. habe ich alle irgendwann und irgendwo an solch einem Ort erstmals kennengelernt. Ja, warum dann eigentlich nicht als Reminiszenz etwas in der Art nachbauen? Im Grunde geht das ganz unkompliziert. Alte Comicfilme kann man sich problemlos von Youtube herunterladen (z.B. mit einem Yt-Downloader) und abspielen kann sie ein Raspberry Pi, dessen AV-Ausgang man per UHF-Modulator zu einem Antennensignal umformt und in den TV einspeist. So in etwa sieht das aus:
UHF-Modulator
Selbst etwaig dürftige Bildqualität der Youtube-Videos ist ziemlich egal. Auf dem betagten Schwarzweißröhrenbildschirm trägt das sogar eher noch zur Authentizität bei.
Dick & Doof auf altem Fernseher
Einfach einschalten und fernsehen wie anno '80. Der Fernseher ist kleiner als damals in der Kinderecke - der Spaß aber genauso groß.
Raspicast App
Auf dem Raspberry installiert man sich den omxplayer zur Wiedergabe von Videodateien und Streams. Im Loop-Modus (omxplayer --loop /home/pi/video.mp4) spielt dieser Videos auch in Endlosschleife ab. Und bindet man den Raspberry ans Heimnetz an, lässt sich omxplayer sogar vom Android-Smartphone per App Raspicast bequem fernsteuern. So wird man dann auch noch zum eigenen Programmdirektor.

Halloween-Spaß mit flammendem Auge


Sein Blick durchbohrt Wolken, Schatten, Erde und Fleisch! Du weißt, wovon ich spreche. Ein großes Auge, lidlos, umrandet von Flammen.
Den Herr der Ringe und das flammende Auge von Sauron kennt vermutlich jeder. Und wer dieses Jahr an Halloween unbedarft an des Cypax' Hütte vorbei ging, durfte den durchdringenden Blick des dunklen Herrschers von Mordor auch mal persönlich kennenlernen:
Sauron sieht alles!
Ok, also wie kommt es, dass Sauron auf meiner Regentonne hockt und kleine Kinder verschreckt? Das fing alles mit einem Abend am PC, einer Pizza und ziellosem Browsen in den Tiefen des Internets an, wo ich auf das hier stieß:
Gakken Worldeye
Bild © by Gakken Educational Co., Ltd.
Ja, genau - das ist ein digitaler Globus! Mehr Infos zu dem Gerät z.B. hier auf Youtube. Ich habe ein riesen Faible für ausgefallene Displays, also musste ich den einfach haben. Und es kommt sogar noch besser: er hat einen HDMI-Eingang!!! Zusammen mit einem Raspberry Pi lässt sich dann allerhand cooles Zeug anstellen:
OH YESSSS!
Link zum Video
Und weil das natürlich zum Tüfteln geradezu einlädt, habe ich das Python-Skript noch etwas erweitert und um OpenCV zur Erkennung von Bewegungen im Bild einer angeschlossenen Kamera ergänzt. Herausgekommen ist letztlich das Auge von Sauron, welches auf der Regentonne montiert an Halloween für das richtige Ambiente sorgt:
Das Auge von Sauron thront auf dem Turm von Barad-dûr unserer Regentonne.
Link zum Video
Leider war es dann so dunkel, dass die Kamera des Raspberry Pi fast nichts gesehen hat und das Auge folglich nicht auf Bewegungen reagieren konnte. Somit hat Sauron dann eben nur vorbeifahrende Autos angeblafft. Aber es für etwas Halloweeen-Ambiente reicht das so auch. Mal sehen, was ich nächstes Jahr zu Halloween daraus mache. Vielleicht einen Horror-Kürbis oder so ...

• Gakken Worldeye Digital Globe Projector • Kostet ca. 160 € über eBay + Versand und Zoll bei Bestellung aus Japan (Stand 10/2017) • Technische Infos: hier • Tutorial Raspberry Pi + Worldeye = Animated eye • Tutorial Raspberry Pi3 + OpenCV • Noch ein Tutorial Raspberry Pi3 + OpenCV • Mein Pi_Eyes repository auf GitHub mit Erweiterung für animierte Iris und OpenCV Und für die Sprüche von Sauron lädt man sich Shadow of Mordor über Steam runter (~ 42 GB), entpackt die Sounddateien mit dem Ravioli-Game-Tool (ja, das heißt wirklich so), hört sich die 14190(!) Wave-Dateien durch und kopiert sich was man braucht. Da die Dateien urheberrechtlich geschützt sind, sollte das naheliegenderweise ausschließlich für private Zwecke geschehen.


Irrationales Programmieren mit QML

Ich habe Qt5 auf dem Raspberry Pi 2 kompiliert und installiert. Das war zwar ein bisschen umständlich, lief bis jetzt eigentlich ohne unüberwindbare Probleme. Aber jetzt hol' ich gleich die Kettensäge und geb' dem Drecksteil den Rest! Den Code des Küchencomputers portiere ich derzeit auf Qt5 und QtQuick 2.4 und mache ihn unabhängig von Plattform und Auflösung. Er läuft inzwischen gleichermaßen problemlos auf Windows 7 wie auf Debian Wheezy mit LXDE. Nur auf dem Raspberry nicht. Da werden manche Texte nicht angezeigt und das Layout ist verschoben. Und QML wirft mir unzählige Fehlermeldungen entgegen - allen gemein ist, dass sie mit string-Properties zu tun haben. Also habe ich in den letzten Stunden ein Minimalprojekt angelegt um das Problem nachzustellen, einzukreisen und dann eine passende Lösung zu entwickeln. So was kostet Zeit, funktioniert aber immer. Nur hier nicht. Dieser Mistcode bringt mich noch um den Verstand: import QtQuick 2.4 import QtQuick.Window 2.2 Window { id: myWindow width: 400 height: 200 visible: true Text { id: myText text: "12" } Text { x: 30 text: myText.text Component.onCompleted: { myText.text = "99" } } } Das funktioniert genau so, wie es soll. Wenn man aber "99" durch "34" ersetzt, bleibt der zweite Text leer und QML meldet Unable to assign [undefined] to QString in der Zeile text: myText.text. Allerdings nur auf dem Raspberry. Unter Windows und einem x86-Linux macht es, was es soll. Was zur Hölle soll das? Warum gerade "34"?? Warum nicht z.B. "42"??? Nerv! Ich spiele schon mit dem Gedanken wieder zurück auf Qt4.8 zu portieren ...