Software Toolchains

Ich wurde bereits des öfteren gefragt welche Software ich für meine Anwendungen, Spiele und in der täglichen Arbeit einsetze. Je nach (Betriebs-)System und Einsatzzweck habe ich diverse Programme im Einsatz. Dabei setze ich auf ein Zusammenspiel von mächtigen professionellen Werkzeugen und Open Source Software (OSS).

Windows

Softwareentwicklung

  • WinMerge – Vergleichen von Dateien und Diff erstellen
  • .NET – Das .NET Framework
  • Microsoft ASP.NET MVC – Bibliothek für Model View Control ASP.NET Webseiten
  • Microsoft SQL Server – Datenbank von Microsoft
  • Microsoft Visual Studio – Entwicklungsumgebung für C# und viele weitere Sprachen
  • TortoiseSVN – Client für Subversion
  • Java Runtime Environment – Laufzeitumgebung für Java

Webentwicklung

  • Microsoft Visual Studio – Entwicklungsumgebung für C# und viele weitere Sprachen
  • Google Chrome – Browser von Google
  • Firefox – Browser der Mozilla Foundation
  • Fiddler – HTTP debugging proxy server Anwendung
  • FileZilla – FTP Programm für Datentransfer
  • Notepad++ – Extrem mächtiger Texteditor
  • Microsoft Visual Studio Code – Extrem mächtiger Codeeditor

Bildbearbeitung

  • Paint.NET – Zeichenprogramm
  • GIMP – Umfangreiche Bildbearbeitung
  • Inkscape – Bearbeitung von Vektorgrafiken/SVC Dateien
  • Adobe Photoshop – Das wohl beste Bildbearbeitungsprogramm (Abo über Cloud Photography Plan)

Sonstiges

  • VLC – Video- und Audioplayer für alle gängigen Dateiformate
  • Audacity – Audioberbeitung
  • Spotify – Musikstreaming
  • Microsoft Office – Office Paket von Microsoft
  • OpenOffice – Freies Office Paket
  • Adobe Reader – PDF Anezige
  • MiKTeX – Compiler und Pakete für LaTeX
  • TeXnicCenter – Editor für TeX/LaTeX
  • PDFCreator – PDF Erstellung
  • Avira – Antivirenprogramm
  • KeePass 2 – Passwortverwaltung
  • FreeMind – MindMap Erstellung
  • Dropbox – Cloud Datenspeicher
  • OneDrive – Cloud Datenspeicher
  • 7-Zip – Datenkomprimierung
  • WinRAR – Datenkomprimierung
  • Skype – Telefonie und Video über das Internet
  • Thunderbird – Mailclient
  • RD Tabs – Remotedesktop mit mehreren Tabs

Linux

Raspberry Pi

  • PuTTY – SSH Client für Windows

Ninite

Download der wichtigsten Tools über Ninite.

Großes Paket

.NET 4.6.1, Audacity, Avira, CDBurnerXP, Chrome, Dropbox, FileZilla, Firefox, GIMP, Google Drive, Inkscape, Java 8, KeePass 2, Notepad++, OneDrive, OpenOffice, Paint.NET, PuTTY, Skype, Spotify, Steam, Thunderbird, VLC, WinMerge, WinRAR

Kleines Paket

.NET 4.6.1, 7-Zip, Chrome, Dropbox, FileZilla, Firefox, GIMP, Inkscape, Java 8, KeePass 2, Notepad++, Paint.NET, PuTTY, Spotify, VLC, WinMerge

Retrogaming mit RecalboxOS und Raspberry Pi 3

Die aktuelle Version von recalboxOS 4 unterstützt jetzt auch den Raspberry Pi 3 Model B. Es ist somit an der Zeit die Kombination auszuprobieren. Ein Selbstexperiment zum Spiele aller alten Konsolenspiele. Vorab  gesagt: Die Installation ist sehr einfach und kommt fast ohne Konfigurationen aus. Mit wenigen Klicks lassen sich außerdem alle alten Klassiker auf einem großen Fernseher spielen. Mit mehreren Kontrollern ist auch ein gemeinsames Spielvergnügen möglich!

Einkaufen und Einführung

Alle Artikel meiner Einkaufsliste für den Raspberry Pi 3 wandern in den Einkaufswagen. Dank der Prime Mitgliedschaft bei einem großen Versandunternehmen lässt sich dies auch mit einem Tag Wartezeit umsetzen.

Was aber bietet recalbox eigentlich? Ähnlich wie das RetroPie Project ermöglicht das recalboxOS das Spielen von alten Games mittels Emulator. Dabei liegt der Vorteil gegenüber RetroPie in der Idee, wenig oder keine Konfiguration durchführen zu müssen. Recalbox soll Out-of-the-Box laufen. Support gibt es hier für Atari 2600, Atari 7800, NES, Game Boy, Game Boy color, Game Boy Advance, Super Nintendo, Master System, Megadrive (Genesis), NeoGeo, NeoGeo Pocket, FBA (subset), Playstation, ScummVM, VirtualBoy, …

Genug Spielesysteme also um einige Monate im Haus zu verbringen, sofern man das möchte!

Die aktuelle Version 4 ist auf der GitHub Projektseite verfügbar.

Installation von recalboxOS

Die Installation ist unglaublich leicht.

Mit Hilfe des Tools https://www.sdcard.org/downloads/formatter_4/ ist die SD Karte mit FAT32 zu formatieren (Optionen Auto Adjust aktivieren!).

Danach das aktuelle Release von Recalbox runterladen und den Inhalt der ZIP Datei auf die SD Karte kopieren.

Den Raspberry Pi auspacken, zusammenstecken (HDMI Kabel, Strom, Controller und optional eine Tastatur).

Nach dem hochfahren installiert sich das System selber!

Die Konfiguration funktionierte mit meinem X-Box 360 Controller automatisch. Über das Menü können die Tasten beliebig belegt werden. Im Bereich Netzwerkeinstellungen lässt sich das W-LAN aktivieren. Hier ist die Tastatur als Eingabemedium für die SSID und das Passwort hilfreich.

Raspberry Pi Einkaufsliste

Die Einkaufsliste um den Raspberry Pi in Betrieb zu nehmen ist relativ kurz. Bis auf ein paar Basiskomponenten und etwas Anschlussmaterial braucht es nicht viel. Die ein oder andere Komponenten hilft jedoch im täglichen Betrieb. Hier gibt es eine Übersicht aller Modelle.

Raspberry Pi 3 Model B+

Die überarbeite Variante aus der 3er Reihe mit einer 1,4GHz 64-bit quad-core ARM Cortex-A53 CPU, Dual-band 802.11ac und schnellerem LAN und Bluetooth 4.2.

Raspberry Pi 3 Model B

Die Version von Februar 2016 mit einer ARM Cortex-A53 CPU (1,2 GHz) und 1 GB Arbeitsspeicher. Zusätzlich beinhaltet diese Version ein 2,4 GHz WLAN für b/g/n und

Bluetooth 4.1 Low Energy.

Raspberry Pi Zero W

Seit dem Februar 2017 gibt es die kleine Entwicklervariante. Analog zur 3er Version beinhaltet dieser auch Bluetooth und integriertes WLAN.

Raspberry Pi 3 Model B

Die Version von Februar 2016 mit einer ARM Cortex-A53 CPU (1,2 GHz) und 1 GB Arbeitsspeicher. Zusätzlich beinhaltet diese Version ein 2,4 GHz WLAN für b/g/n und

Bluetooth 4.1 Low Energy.

Raspberry Pi 2 Model B

Die Version von 2015 beinhaltet eine 900 MHz ARM Cortex-A7 CPU und 1 GB Arbeitsspeicher.

Ältere Modelle

Bei den älteren Modelle lohnt es sich derzeit einen Blick auf eine aktuelle Version zu werfen.

  • Raspberry Pi 1: Model A, Model A+, Model B, Model B+

Sonstiges Zubehör

Alle Links sind Amazon Affiliate Links und unterstützen den Ausbau der Webseite. Vielen Dank für deinen Einkauf über einen der Links!

Anki OVERDRIVE SDK

Nachdem ich das Anki OVERDRIVE Starter Kit und die ganzen Autos und Erweiterungen ausprobiert hatte, packte mich natürlich die Neugier eines Entwicklers. Der Anki Support hat mich mit vielen Informationen versorgt. Wie ich das Ganze mit dem Raspberry Pi verbinde und was noch damit möglich ist erkläre ich in diesem Beitrag.

Die Technik von Anki OVERDRIVE

Ein YouTube Video von Anki erklärt grob „Wie funktioniert Anki OVERDRIVE?“ Weiterführende Informationen und eine tiefer-gehende Erklärung sind dort aber nicht zu entnehmen. Die folgenden Angaben habe ich im Wesentlichen durch ein paar Experimente und Dokumentationen ermitteln können. Alle Aussagen ohne Gewähr 😉

Infrarot

Werden die Streckenteile unter Infrarotlicht gehalten, lässt sich die tatsächliche Magie der Fahrzeuge entdecken. Im Infrarotlicht tauchen Linien und Barcodes auf. Diese lesen die Autos mit ihren Kameras aus (laut Video 500x/sek.). Dabei scannt die Kamera auf der Unterseite die Fahrbahn und analysiert die Codes. Hinter dem Bardcode liegen Identifikationen und Informationen darüber, wie die Autos sich verhalten sollen im Bezug auf die Geschwindigkeit.

Kommunikation

Die Kommunikation mit den Autos funktioniert mittels Bluetooth. Die Anki Macher haben dazu ein SDK erstellt. Die Anki OVERDRIVE App spricht mit anderen Teilnehmern über die W-LAN Verbindung des Smartphones. Die tatsächliche Intelligenz des Spiel ist vollständig in der App abgebildet. Das SDK erlaubt rudimentäre Befehle wie das Wechseln der Spur und Drehungen. Alle Waffen und Upgrades existieren nur virtuell in der Applikation.

SDK und Raspberry Pi

Auf GitHub stellt Anki das anki/drive-sdk Repository bereit. Der dort enthaltende Code lässt sich auf einem Raspberry Pi kompilieren. Eine kurze Anleitung ist vorhanden. Mit Hilfe der Testprogramme konnte ich die Fahrzeuge scannen. Die hinterlegten Fahrzeuge sind aus dem alten Anki Set, die neuen OVERDRIVE IDs sind noch nicht codiert.

$ sudo ~/anki/drive-sdk/build/dist/bin/hciconfig hci0 up
$ sudo ~/anki/drive-sdk/build/dist/bin/vehicle-scan
LE Scan ...
C1:4A:82:93:CE:38 Drive [v266e] (Unknown cb02)
E5:A2:3D:0C:DB:82 Drive [v266e] (Unknown d8e0)

Der Erste Code ist von „Skull“, der zweite Eintrag ist bei mir „Ground Shock“. Eine Verbindung ist leider noch nicht möglich (dies liegt aber vermutlich an meiner Bluetooth Konfigurationen).

$ sudo ~/anki/drive-sdk/build/dist/bin/vehicle-tool --adapter=hci0 --device=E5:A2:3D:0C:DB:82
[E5:A2:3D:0C:DB:82][LE]> connect
Attempting to connect to E5:A2:3D:0C:DB:82
Error: connect: Connection refused (111)

Für die Analyse habe ich mir BlueZ selber gebaut.

sudo apt-get --purge remove bluez
sudo apt-get update
sudo apt-get install libusb-dev libdbus-1-dev libglib2.0-dev libudev-dev libical-dev libreadline-dev
sudo wget https://www.kernel.org/pub/linux/bluetooth/bluez-5.37.tar.xz
sudo tar xvf bluez-5.37.tar
cd bluez-5.37
sudo ./configure --disable-systemd
sudo make
sudo make install
sudo cp attrib/gatttool /usr/local/bin/
sudo reboot
$ sudo /etc/init.d/bluetooth stop
$ sudo ./bluez-5.37/tools/hciconfig hci0 up
$ sudo ./bluez-5.37/tools/hciconfig hci0

$ sudo ~/bluez-5.37/tools/hcitool lescan
E5:A2:3D:0C:DB:82 (unknown)
E5:A2:3D:0C:DB:82 n&    Drive
$ sudo ~/bluez-5.37/tools/hcitool  lecc E5:A2:3D:0C:DB:82
Could not create connection: Input/output error
$ sudo ~/bluez-5.37/attrib/gatttool -i hci0 -b C1:4A:82:93:CE:38 -t random -I
[C1:4A:82:93:CE:38][LE]> connect
Attempting to connect to C1:4A:82:93:CE:38
Error: connect: Connection refused (111)

MORE: COMING SOON! In diesem Artikel 🙂

Update: Artikel aus dem Netz zu der Technologie hinter Anki. Leider gibt es die Original Blogeinträge nicht mehr.

Patente für Anki, Inc. (Skizzen)

TNW News: Anki Drive reveals ‘secret’ about the track technology which guides its AI-controlled cars

VB: Anki Overdrive will overhaul the robot battle-car racing game with customizable tracks

TEST: ToDo: Neubau mit

http://stackoverflow.com/questions/32947807/cannot-connect-to-ble-device-on-raspberry-pi
I had to disable the plugin pnat in /etc/bluetooth/main.conf -> DisablePugins=pnat. I read that it's unstable, but I don't know much about this plugin.
Anki OVERDRIVE Strecken

Anki OVERDRIVE ist wohl DAS Weihnachtsgeschenk von 2015. Der Trend ist natürlich auch an mir nicht vorbei gegangen. In dieser kleinen Reihe schreibe ich über die ersten Experiment mit dem Anki OVERDRIVE Starter Kit und später der Entwickler SDK.

Die folgenden Strecken entstammen dem Starter Kit und einigen Erweiterungen. Nach diversen Kaufrunden sind auch alle Autos mittlerweile in meinem Besitz.

Kleiner Doppelkreis
Kleiner Doppelkreis
Doppelkreis Kreuzung
Doppelkreis Kreuzung
Beule
Beule
Zwei Ebenen
Zwei Ebenen
Große Kreise
Große Kreise