<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Christopher Katins</title>
    <link>//ckatins.de/de/</link>
      <atom:link href="//ckatins.de/de/index.xml" rel="self" type="application/rss+xml" />
    <description>Christopher Katins</description>
    <generator>Wowchemy (https://wowchemy.com)</generator><language>de</language><lastBuildDate>Mon, 02 Mar 2026 00:00:00 +0000</lastBuildDate>
    <image>
      <url>//ckatins.de/media/icon_hufa9adafbdd24a7d2e470aabff05e69a9_20702_512x512_fill_lanczos_center_3.png</url>
      <title>Christopher Katins</title>
      <link>//ckatins.de/de/</link>
    </image>
    
    <item>
      <title>The AI Accomplice: Exploring Generative Artificial Intelligence in Facilitating and Amplifying Deceptive Designs</title>
      <link>//ckatins.de/de/publication/the-ai-accomplice/</link>
      <pubDate>Mon, 02 Mar 2026 00:00:00 +0000</pubDate>
      <guid>//ckatins.de/de/publication/the-ai-accomplice/</guid>
      <description></description>
    </item>
    
    <item>
      <title>Making Complex Workflows Tangible: Investigating Immersive Analytics Approaches for Data Analysis Workflows</title>
      <link>//ckatins.de/de/publication/making-complex-workflows-tangible/</link>
      <pubDate>Sun, 01 Mar 2026 00:00:00 +0000</pubDate>
      <guid>//ckatins.de/de/publication/making-complex-workflows-tangible/</guid>
      <description></description>
    </item>
    
    <item>
      <title>Shaping the Future: Principles for Policy Recommendations for Responsible Innovation in Virtual Worlds</title>
      <link>//ckatins.de/de/publication/shaping-the-future/</link>
      <pubDate>Mon, 06 Oct 2025 00:00:00 +0000</pubDate>
      <guid>//ckatins.de/de/publication/shaping-the-future/</guid>
      <description></description>
    </item>
    
    <item>
      <title>The Good, the Bad, and the Uncanny: Investigating Diversity Aspects of LLM-Generated Personas for Requirements Engineering</title>
      <link>//ckatins.de/de/publication/good-bad-uncanny/</link>
      <pubDate>Mon, 01 Sep 2025 00:00:00 +0000</pubDate>
      <guid>//ckatins.de/de/publication/good-bad-uncanny/</guid>
      <description></description>
    </item>
    
    <item>
      <title>The Impostor is Among Us: Can Large Language Models Capture the Complexity of Human Personas?</title>
      <link>//ckatins.de/de/publication/impostor/</link>
      <pubDate>Thu, 03 Jul 2025 00:00:00 +0000</pubDate>
      <guid>//ckatins.de/de/publication/impostor/</guid>
      <description></description>
    </item>
    
    <item>
      <title>Public Perceptions on Psychological and Social Impacts of Virtual and Augmented Reality</title>
      <link>//ckatins.de/de/publication/public-perceptions/</link>
      <pubDate>Tue, 17 Jun 2025 00:00:00 +0000</pubDate>
      <guid>//ckatins.de/de/publication/public-perceptions/</guid>
      <description></description>
    </item>
    
    <item>
      <title>Ad-Blocked Reality: Evaluating User Perceptions of Content Blocking Concepts Using Extended Reality</title>
      <link>//ckatins.de/de/publication/ad-blocked-reality/</link>
      <pubDate>Tue, 11 Feb 2025 00:00:00 +0000</pubDate>
      <guid>//ckatins.de/de/publication/ad-blocked-reality/</guid>
      <description></description>
    </item>
    
    <item>
      <title>MIRAGE: Mixed Reality Alerts for Guarding Against Environmental Fall Hazards</title>
      <link>//ckatins.de/de/publication/mirage/</link>
      <pubDate>Fri, 08 Nov 2024 00:00:00 +0000</pubDate>
      <guid>//ckatins.de/de/publication/mirage/</guid>
      <description></description>
    </item>
    
    <item>
      <title>Ground Control: Leveraging the User&#39;s Spatial Position as an Input Modality in an Embodied Immersive Analysis Use Case</title>
      <link>//ckatins.de/de/publication/ground-control/</link>
      <pubDate>Sun, 01 Sep 2024 00:00:00 +0000</pubDate>
      <guid>//ckatins.de/de/publication/ground-control/</guid>
      <description></description>
    </item>
    
    <item>
      <title>The Illusion of Performance: The Effect of Phantom Display Refresh Rates on User Expectations and Reaction Times</title>
      <link>//ckatins.de/de/publication/illusion-of-performance/</link>
      <pubDate>Sat, 11 May 2024 00:00:00 +0000</pubDate>
      <guid>//ckatins.de/de/publication/illusion-of-performance/</guid>
      <description></description>
    </item>
    
    <item>
      <title>Assessing User Apprehensions About Mixed Reality Artifacts and Applications: The Mixed Reality Concerns (MRC) Questionnaire</title>
      <link>//ckatins.de/de/publication/mrc-questionnaire/</link>
      <pubDate>Sat, 24 Feb 2024 00:00:00 +0000</pubDate>
      <guid>//ckatins.de/de/publication/mrc-questionnaire/</guid>
      <description></description>
    </item>
    
    <item>
      <title>Pilots&#39; Considerations Regarding Current Generation Mixed Reality Headset Use in General Aviation Cockpits</title>
      <link>//ckatins.de/de/publication/pilots-considerations-regarding-mr-use-in-ga-cockpits/</link>
      <pubDate>Thu, 26 Oct 2023 00:00:00 +0000</pubDate>
      <guid>//ckatins.de/de/publication/pilots-considerations-regarding-mr-use-in-ga-cockpits/</guid>
      <description></description>
    </item>
    
    <item>
      <title>Exploring Mixed Reality in General Aviation to Support Pilot Workload</title>
      <link>//ckatins.de/de/publication/exploring-mixed-reality-in-general-aviation-to-support-pilot-workload/</link>
      <pubDate>Mon, 24 Apr 2023 00:00:00 +0000</pubDate>
      <guid>//ckatins.de/de/publication/exploring-mixed-reality-in-general-aviation-to-support-pilot-workload/</guid>
      <description></description>
    </item>
    
    <item>
      <title>Re-envisioning Interaction in the (General) Aviation Cockpit through Tangibles</title>
      <link>//ckatins.de/de/publication/re-envisioning-interaction-in-the-general-aviation-cockpit-through-tangibles/</link>
      <pubDate>Wed, 11 Jan 2023 00:00:00 +0000</pubDate>
      <guid>//ckatins.de/de/publication/re-envisioning-interaction-in-the-general-aviation-cockpit-through-tangibles/</guid>
      <description></description>
    </item>
    
    <item>
      <title>HCI for General Aviation: Current State and Research Challenges</title>
      <link>//ckatins.de/de/publication/hci-for-general-aviation/</link>
      <pubDate>Tue, 01 Nov 2022 00:00:00 +0000</pubDate>
      <guid>//ckatins.de/de/publication/hci-for-general-aviation/</guid>
      <description></description>
    </item>
    
    <item>
      <title>Mieterselbstauskunft</title>
      <link>//ckatins.de/de/project/mieterselbstauskunft/</link>
      <pubDate>Sat, 15 Oct 2022 20:00:00 +0200</pubDate>
      <guid>//ckatins.de/de/project/mieterselbstauskunft/</guid>
      <description>&lt;p&gt;Wer in Deutschland nach einer Wohnung sucht, wird um ein &amp;ldquo;Bewerbungsschreiben&amp;rdquo; wohl kaum umherkommen. Ein Teil davon ist typischerweise die Mieterselbstauskunft. Dieses Tex-Dokument hat sich von mehreren Vorlagen inspirieren lassen, um damit ein eigenes Formular, ganz ohne Branding und nicht mehr zeitgemäße Fragen, zu erstellen.&lt;/p&gt;
&lt;p&gt;Mehr Infos sind auf der Github-Seite zu finden.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>No Margin for Errors: Using Extended Reality to Augment Users in Safety-Critical Environments</title>
      <link>//ckatins.de/de/publication/no-margin-for-errors/</link>
      <pubDate>Sat, 01 Oct 2022 00:00:00 +0000</pubDate>
      <guid>//ckatins.de/de/publication/no-margin-for-errors/</guid>
      <description></description>
    </item>
    
    <item>
      <title>NotiBike: Assessing Target Selection Techniques for Cyclist Notifications in Augmented Reality</title>
      <link>//ckatins.de/de/publication/notibike/</link>
      <pubDate>Wed, 28 Sep 2022 00:00:00 +0000</pubDate>
      <guid>//ckatins.de/de/publication/notibike/</guid>
      <description></description>
    </item>
    
    <item>
      <title>MAVeric</title>
      <link>//ckatins.de/de/project/maveric/</link>
      <pubDate>Sat, 07 Sep 2019 20:00:00 +0200</pubDate>
      <guid>//ckatins.de/de/project/maveric/</guid>
      <description>&lt;p&gt;MAVeric ist eine Simulation für Drohnen (und im Speziellen &amp;ldquo;Micro Air Vehicles&amp;rdquo; = MAVs), welche mit einer GUI alle aktuellen State Variablen visualisiert und ermöglicht, die Drohne über einen Standard-PD-Regler zu kontrollieren. Weiterhin können &amp;ldquo;Minimum Snap&amp;rdquo;-Trajektorien generiert, visualisiert und direkt von der Drohne verfolgt werden.&lt;/p&gt;
&lt;p&gt;Mehr Infos sind auf der Github-Seite zu finden.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Extruderhalterung</title>
      <link>//ckatins.de/de/project/extruderhalterung/</link>
      <pubDate>Tue, 23 Apr 2019 20:00:00 +0200</pubDate>
      <guid>//ckatins.de/de/project/extruderhalterung/</guid>
      <description></description>
    </item>
    
    <item>
      <title>DckToGgl</title>
      <link>//ckatins.de/de/project/dck-to-ggl/</link>
      <pubDate>Tue, 18 Sep 2018 20:00:00 +0200</pubDate>
      <guid>//ckatins.de/de/project/dck-to-ggl/</guid>
      <description></description>
    </item>
    
    <item>
      <title>Custom Ultimaker Firmware</title>
      <link>//ckatins.de/de/project/ultimaker_firmware/</link>
      <pubDate>Tue, 24 Jul 2018 20:00:00 +0200</pubDate>
      <guid>//ckatins.de/de/project/ultimaker_firmware/</guid>
      <description></description>
    </item>
    
    <item>
      <title>Fernbedienungs-Stand</title>
      <link>//ckatins.de/de/project/huestand/</link>
      <pubDate>Mon, 02 Jul 2018 20:00:00 +0200</pubDate>
      <guid>//ckatins.de/de/project/huestand/</guid>
      <description></description>
    </item>
    
    <item>
      <title>Viva la Vita</title>
      <link>//ckatins.de/de/project/viva_la_vita/</link>
      <pubDate>Tue, 13 Jun 2017 20:00:00 +0200</pubDate>
      <guid>//ckatins.de/de/project/viva_la_vita/</guid>
      <description>&lt;p&gt;Die Idee ist simpel. Mit Emulatoren auf der PS Vita alte Spiele wie &lt;em&gt;Super Mario&lt;/em&gt; und &lt;em&gt;Pokemon Gold&lt;/em&gt; spielen zu können. Doch Sonys restriktives Verhalten macht es nahzu unmöglich Emulatoren auf der PS Vita zu installieren. Über viele Umwege, Bugs, Exploits und Tricks ist es dennoch möglich Peach zu retten und Pokemon zu fangen. Eine Geschichte über die vielen Umwege und Komplikationen einer eigentlich so einfachen Idee.&lt;/p&gt;
&lt;h2&gt;Die Vita und ihr Untergang&lt;/h2&gt;
Die PS Vita war (und ist) einer der besten Handhelds, die je auf den Markt gekommen sind. Leider jedoch gibt es bis heute nur wenige gute Titel zum Spielen. Dennoch ist die Hardware unglaublich gut (Joysticks, großes Display, zwei (!) Touchscreens, gute Lautsprecher und sehr lange Akkulaufzeit) und eignet sich somit eigentlich perfekt für das Gerät, das man überall mit hin nimmt, um eine kurze Runde zu spielen.
&lt;p&gt;Und obwohl man die alten PSP Spiele spielen kann, werden auch diese recht schnell alt. Dazu kosten Speicherkarten und auch die Spiele selbst sehr viel, wodurch die Konsole bei den Meisten früher oder später im Regal verstaubte.&lt;/p&gt;
&lt;p&gt;Nun ist klar, dass Sony es nicht allzu einfach macht, Emulatoren zu installieren (hauptsächlich Copyright), aber selbst nachdem die Vita als &lt;strong&gt;legacy&lt;/strong&gt; eingestuft wurde, gab es noch immer ein Entwicklerteam, das nur dafür zuständig war (und noch immer ist) keine Emulatoren möglich zu machen.&lt;/p&gt;
&lt;div id=&#34;infoblock&#34; style=&#34;text-align: center;&#34;&gt;
&lt;label&gt;legacy&lt;/label&gt; &lt;br /&gt;
Es wird nicht mehr aktiv an der Konsole entwickelt, die Konsole ist quasi &#34;tot&#34;.
&lt;/div&gt;
&lt;p&gt;Sony hat sich also aktiv darum gesorgt, dass es bloß nicht möglich wird, andere Spiele als die von Sony selbst zu spielen.
Mittlerweile gibt es einige Tricks und Hilfen (namenhaft &lt;a href=&#34;http://yifan.lu/2015/06/14/rejuvenate-native-homebrew-for-psvita/&#34;&gt;Rejuvenate&lt;/a&gt; und &lt;a href=&#34;https://henkaku.xyz/&#34;&gt;HENkaku&lt;/a&gt;), um Emulatoren auf der Vita zum laufen zu bekommen. Jedoch haben auch diese Limitierungen und gehen nur bis zu einer bestimmten Betriebssystem-Version, wodurch oft noch andere Wege gefunden werden müssen.&lt;/p&gt;
&lt;p&gt;Für alle Versionen über 3.60 wurden seit Monaten keine Exploits mehr gefunden und es ist zu bezweifeln, ob überhaupt noch welche gefunden werden, da mittlerweile alle Wege gepatched wurden, die bekannt waren.&lt;/p&gt;
&lt;h2&gt;Das Ziel&lt;/h2&gt;
&lt;p&gt;Das Ziel ist klar. Emulatoren auf der Vita installieren und damit Spiele vom Gameboy Advanced oder ähnlichen Konsolen spielen können.&lt;/p&gt;
&lt;p&gt;Dabei ist das Vorgehen wie folgt:&lt;/p&gt;
&lt;ul&gt;
 	&lt;li&gt;Zuerst muss ein &lt;strong&gt;Exploit&lt;/strong&gt; geschaffen werden, um andere Daten, abgesehen von Spieledaten und Fotos, auf die Vita zu bekommen.&lt;/li&gt;
 	&lt;li&gt;Über diesen installieren wir einen &lt;strong&gt;Homebrew Loader&lt;/strong&gt;, quasi das Programm, über welches wir den gewollten Emulator auswählen und starten können.&lt;/li&gt;
 	&lt;li&gt;Schließlich müssen wir noch die eigentlichen &lt;strong&gt;Emulatoren&lt;/strong&gt; und Spiele auf den Handheld bekommen.&lt;/li&gt;
&lt;/ul&gt;
&lt;div id=&#34;infoblock&#34; style=&#34;text-align: center;&#34;&gt;
&lt;label&gt;Exploit&lt;/label&gt; &lt;br /&gt;
Das Ausnutzen von Schwachstellen in einem Programm, um mehr Möglichkeiten der Verwendung zu öffnen (z.B. Admin Rechte)
&lt;/div&gt;
&lt;div id=&#34;infoblock&#34; style=&#34;text-align: center;&#34;&gt;
&lt;label&gt;Homebrew&lt;/label&gt; &lt;br /&gt;
Selbst geschriebene Programme, die nicht vom Entwickler (hier Sony) stammen und auch nicht vom Entwickler gewollt sind (z.B. Linux auf einer PlayStation 3 installieren).
&lt;/div&gt;
&lt;p&gt;Im Prinzip ähnelt dieser Weg sehr dem jailbreaken eines iPhones oder dem rooten eines Android Gerätes. Wir schaffen uns erst vollen Zugang zum Gerät, damit wir alles installieren können, was wir wollen. Dann installieren wir ein Programm, auf dem wir die Emulatoren und schließlich Spiele spielen können. Da aber, wie schon eingehens erwähnt, Sony uns den Weg nicht ganz so einfach macht, müssen wir noch ein paar Tricks anwenden.&lt;/p&gt;
&lt;h2&gt;Der Weg dahin&lt;/h2&gt;
Fangen wir simpel an. Bei der PSP konnte man noch das gesamte Spiel von der Konsole auf den PC ziehen, dann einfach die richtigen Dateien ändern und wieder zurück auf die PSP ziehen, und schon war der Homebrew fertig. Bei der Vita jedoch kann man nur noch Savegames zwischen PC und Vita schieben, was das Ganze um einiges komplizierter macht. Zwar können wir alle relevanten Daten in ein Savegame packen, aber wir brauchen noch immer eine Boot-Datei im Spiel selbst, damit der Homebrew auch ausgeführt wird.
Wir werden den Homebrew Loader &lt;strong&gt; VHBL &lt;/strong&gt; verwenden, der den nativen PSP Emulator der Vita verwendet.
&lt;div id=&#34;infoblock&#34; style=&#34;text-align: center;&#34;&gt;
&lt;label&gt;VHBL&lt;/label&gt; &lt;br /&gt;
Ein Homebrew Loader,welcher über den PSP Emulator läuft. Die Abkürzung steht für Vita Half-Byte Loader und ist ein Open Source Projekt.
&lt;/div&gt;
&lt;p&gt;Das heißt: Wir starten ein altes PSP Spiel, der PSP Emulator der Vita wird gestartet, dann starten wir VHBL und darüber können wir unsere Emulatoren starten. Dafür brauchen wir auf der Vita schon ein PSP Spiel, das auch exploitable ist, wo wir VHBL also auch wirklich verwenden können. Viele Spiele patched Sony recht schnell nach dessen Erscheinung, aber es gibt noch immer Spiele im Store, die es möglich machen.&lt;/p&gt;
&lt;p&gt;Exploits wie HENkaku funktionieren, indem man eine Website aufruft, die einen Exploit im Webbrowser ausnutzen, wodurch der Homebrew Loader starten kann. Dies muss aber auch nach jedem Neustart gemacht werden und geht nur bis zu einer gewissen Version (3.60).&lt;/p&gt;
&lt;p&gt;Da unsere Lösung aber permanent sein soll, müssen wir eben diese Boot-Datei irgendwie in bei den Spieledaten selbst einlagern, und nicht nur in einem Savegame.&lt;/p&gt;
&lt;h3&gt;Teil 1: Die Daten auf die Vita bekommen&lt;/h3&gt;
Kümmern wir uns aber zuerst um die Daten, die wir in einem Savegame verstecken wollen. Zuerst brauchen wir überhaupt mal ein Savegame des Spiels, also starten wir einmal das Spiel, erstellen eine Sicherung im Spiel und laden sie auf den PC. Wenn es nur so einfach wäre..
&lt;p&gt;Wie bekommen wir das Savegame auf den PC? Eigentlich mit Sonys eigenem CMA (Content Manager), dieser überprüft aber, ob die Vita auch auf der aktuellen Version ist. Gerade diese wollen wir ja aber NICHT haben, da all die Aktualisierungen seit mittlerweile knapp zwei Jahren keine neuen Funktionen mehr einbringen, aber nur unsere Wege zum Emulator erschweren.&lt;/p&gt;
&lt;p&gt;Wir verwenden also einen anderen CMA, zum Beispiel OpenCMA oder QCMA, die nicht von Sony, aber von Usern selbst geschrieben wurden. Wenn aber der CMA nicht auf die Version prüft, macht das die Vita selbst, also müssen wir auch das umgehen. Der Vita kann man diese Aktion leider nicht unterbinden lassen, aber wir können ihre Verbindung zum Internet abfangen und so tun, als wären wir ein Aktualisierungsserver von Sony. Wir verwenden also einen Netzwerkspoofer, dann lassen wir die Vita in unserem Netzwerk über einen Proxy verbinden, der auf unseren PC führt und lassen die Vita wissen, dass sie auf der vermeintlich aktuellsten Version sei.&lt;/p&gt;
&lt;p&gt;Jetzt können wir das Savegame endlich auf unseren PC ziehen. Dieses wird unter Dokumente/PS Vita/PSSAVEDATA/xxxx/yyyy/ abgespeichert, wobei das xxxx gerätespezifisch ist und yyyy die GameID des Spiels ist. Wir packen die VHBL-Daten als Zip-Datei mit dem Namen INSTALL.ZIP, damit die Boot-Datei die Daten später finden kann. Jetzt noch das Savegame wieder zurück auf die Vita spielen und Teil 1 ist fertig.&lt;/p&gt;
&lt;h3&gt;Teil 2: Der Email-Exploit&lt;/h3&gt;
Wir wollen also die Boot-Datei im Spieleverzeichnis selbst ablegen, damit diese auch gestartet wird, wenn wir das Spiel starten und der Homebrew Loader geladen wird. Da dies aber nicht über die CMA geht, brauchen wir einen Exploit, um auf Bereiche des Filesystems Zugriff zu bekommen, den wir eigentlich nicht haben.
&lt;p&gt;Dafür nehmen wir die Boot-Datei und benennen sie zuerst zu #0 um. Diese Datei hängen wir an eine Email an, die wir uns selbst senden. Hierfür muss die Email App auf der Vita eingerichtet sein, damit die Email auch wirklich ankommt.
Jetzt der wichtige Part, der Betreff der Email. In diesen kommt das Verzeichnisziel, also der Ort, an dem die Datei abgelegt werden soll.  Dieser baut sich so auf: ux0:pspemu/PSP/GAME/&lt;em&gt;SpieleID&lt;/em&gt;/PBOOT.PBP Wobei &lt;em&gt;SpieleID&lt;/em&gt; mit dem vorhin herausgefundenen String yyyy ausgetauscht werden muss.&lt;/p&gt;
&lt;p&gt;Wenn wir die Email auf der Vita empfangen, wird die Vita die Datei #0 als Bild erkennen und nach unserer Aufforderung versuchen zu öffnen. Damit wird der Code in der Datei ausgeführt und die ganze Datei wird an dem im Betreff eingestellten Verzeichnis abgelegt. Wichtig ist, bei der Fehlermeldung nicht auf OK zu klicken, aber die App einfach zu schließen, da die Vita sonst alles revidieren würde.&lt;/p&gt;
&lt;p&gt;Nun haben wir also unsere Boot-Datei und unseren sonstigen Dateien auf der Vita, jetzt muss die Installation nur noch ausgeführt werden.&lt;/p&gt;
&lt;h3&gt;Teil 3: Datenbank und Installation&lt;/h3&gt;
&lt;p&gt;Bevor wir den Homebrew Loader installieren können, muss die Datenbank erst neu aufgebaut werden. Mit HOME + POWER + R-TRIGGER kommen wir in den Recovery Mode, wo dies möglich ist. Damit werden alle Daten auch geladen, die Vita wird neu gestartet und eine Installation ist nun möglich!&lt;/p&gt;
&lt;p&gt;[Sidenote: Beim Datenbankneuaufbau werden alle anderen alten Homebrew Installationen gelöscht!]&lt;/p&gt;
&lt;p&gt;Wenn wir jetzt das Spiel wie immer starten, wird sich das erste Mal VHBL installieren (sieht aus wie eine Kommando-Zeile) und damit ist alles für das große Finale fertig!&lt;/p&gt;
&lt;h3&gt;Teil 4: Emulatoren und ROMs installieren&lt;/h3&gt;
Wenn also der Homebrew Loader läuft, brauchen wir noch ein paar Homebrews, also die Emulatoren (und Spiele, sonst wäre es ja langweilig).
&lt;p&gt;Die Emulatoren werden einfach auf den PC gedownloadet und mit QCMA (oder ähnlichen Programmen, wie bei dem Überspielen der VHBL Dateien) in den Ordner (PSP/Other) auf der Vita geladen. Mit dem integrierten Filebrowser von VHBL kann dann zu eben diesem Ordner gewechselt und die Emulatoren einfach ausgewählt und installiert werden.&lt;/p&gt;
&lt;p&gt;Die ROMs übertragen wir genau so. Hierbei ist jedoch noch zu beachten, dass man alle ROMs in einen Ordner, benannt je nach Name des Emulators, laden sollte, da einige Emulatoren automatisch nach Ordnern mit eben diesen Namen suchen.&lt;/p&gt;
&lt;div id=&#34;infoblock&#34; style=&#34;text-align: center;&#34;&gt;
&lt;label&gt;ROMs&lt;/label&gt; &lt;br /&gt;
Read Only Memory, in diesen Dateien sind die Spiele selbst gespeichert. Der Name rüht daher, dass Spiele damals eben oft auf Cartridges ausgeliefert wurden, also nicht zum Neubeschreiben gedacht waren.
&lt;/div&gt;
&lt;div id=&#34;warningblock&#34; style=&#34;text-align: center;&#34;&gt;
&lt;label&gt; Aber hey! &lt;/label&gt;&lt;br /&gt;
Bitte sei so fair und lade dir nur legale ROMs von Spielen herunter, die du schon besitzt.
&lt;/div&gt;
&lt;hr /&gt;
&lt;p&gt;Und damit sind wir durch! Neue Emulatoren und ROMs kann man auch nachträglich noch hinzufügen und VHBL sollte auch nach einem Neustart noch immer installiert und funktionabel sein.&lt;/p&gt;
&lt;h3&gt;Als Walkthrough&lt;/h3&gt;
Und weil es so schön war, hier noch mal der chronologische Ablauf dieses Unterfangens:
&lt;ol&gt;
 	&lt;li&gt;&lt;strong&gt;Vorbereitung&lt;/strong&gt;
&lt;ol&gt;
 	&lt;li&gt;QCMA installieren, Email auf der Vita einrichten&lt;/li&gt;
 	&lt;li&gt;Überprüfen, ob die Vita wirklich auf maximal Version 3.52 ist und ob ein PSP Spiel installiert ist, welches auch wirklich exploitable ist &lt;a href=&#34;http://wololo.net/vhbl/&#34;&gt;(Mehr Informationen dazu hier)&lt;/a&gt;&lt;/li&gt;
 	&lt;li&gt;Dieses Spiel mindestens einmal starten und ein Savegame erstellen&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
 	&lt;li&gt;&lt;strong&gt;Backup&lt;/strong&gt;: Ein komplettes Backup der Vita erstellen, für den Fall, dass etwas schief geht&lt;/li&gt;
 	&lt;li&gt;&lt;strong&gt;VHBL &lt;/strong&gt;installieren
&lt;ol&gt;
 	&lt;li&gt;Die richtige Version von VHBL downloaden (siehe Link)&lt;/li&gt;
 	&lt;li&gt;Den Homebrew einmal entpacken und wieder als ZIP verpacken (WICHTIG: hierbei die Einstellungen &#34;no compression&#34; auswählen und die Datei INSTALL.ZIP nennen)&lt;/li&gt;
 	&lt;li&gt;Bevor wir QCMA verwenden können, müssen wir einen &lt;a href=&#34;https://hackinformer.com/2015/07/18/tutorial-how-to-use-vita-update-blocker/&#34;&gt;Netzwerkspoofer&lt;/a&gt; verwenden, damit die Vita glaubt, sie sei auf der aktuellsten Version
&lt;ol&gt;
 	&lt;li&gt;Den Spoofer starten&lt;/li&gt;
 	&lt;li&gt;Auf der Vita einen Proxy mit den Daten aus dem Spoofer einstellen&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
 	&lt;li&gt;Das Savegame des PSP Spieles per QCMA auf den PC ziehen&lt;/li&gt;
 	&lt;li&gt;Dieses sollte nun unter Dokumente/PS Vita/PSSAVEDATA/xxxx/yyyy/ zu finden sein (xxxx und yyyy sind hier spezifisch für die Vita und das Spiel, sollten aber einfache Strings aus Buchstaben und Zahlen sein)&lt;/li&gt;
 	&lt;li&gt;In diesem Ordner sollten diese Dateien liegen:
&lt;ul&gt;
 	&lt;li&gt;ICON0.PNG&lt;/li&gt;
 	&lt;li&gt;PIC1.PNG&lt;/li&gt;
 	&lt;li&gt;DATA.BIN&lt;/li&gt;
 	&lt;li&gt;PARAMS.SFO&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
 	&lt;li&gt;Hierzu wird nun die INSTALL.ZIP gelegt und dann wieder QCMA das gesamte Savegame auf die Vita gezogen&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
 	&lt;li&gt;&lt;strong&gt;FailMail&lt;/strong&gt;-Emailexploit
&lt;ol&gt;
 	&lt;li&gt;Die Datei PBOOT.PBP (siehe Link) umbenennen zu #0&lt;/li&gt;
 	&lt;li&gt;Nun schreiben wir uns eine Email, bei welcher die #0 als Anhang mit dabei ist&lt;/li&gt;
 	&lt;li&gt;Der Betreff muss so aufgebaut sein: ux0:pspemu/PSP/GAME/&lt;em&gt;SpieleID&lt;/em&gt;/PBOOT.PBP
&lt;ol&gt;
 	&lt;li&gt;Hierbei ist die &lt;em&gt;SpieleID&lt;/em&gt; der yyyy String aus dem vorherigen Teil&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
 	&lt;li&gt;Email senden und auf der Vita öffnen&lt;/li&gt;
 	&lt;li&gt;Die Vita wird #0 als Bild erkennen, auf das Bildicon klicken, dann öffnet sich eine Fehlermeldung, hier aber NICHT auf OK klicken, die Email-App einfach schließen&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
 	&lt;li&gt;&lt;strong&gt;Datenbank&lt;/strong&gt; neu aufbauen lassen
&lt;ol&gt;
 	&lt;li&gt;Das Recovery Menu kann über HOME + POWER + R-TRIGGER erreicht werden&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
 	&lt;li&gt;Wenn nun das PSP Spiel gestartet wird, sollte VHBL sich das erste mal installieren&lt;/li&gt;
 	&lt;li&gt;&lt;strong&gt;Emulatoren&lt;/strong&gt; installieren
&lt;ol&gt;
 	&lt;li&gt;Emulatoren bzw. Homebrews auf PC downloaden&lt;/li&gt;
 	&lt;li&gt;Diese auf dem PC unter den Savegames (irgendwo bei Dokumente/PS Vita/...) ablegen&lt;/li&gt;
 	&lt;li&gt;per QCMA auf die Vita spielen, also auf der Vita unter Saved Data (PSP/Other) die Emulatoren auswählen&lt;/li&gt;
 	&lt;li&gt;Nach der Übertragung VHBL starten, mit dem Dateiexplorer zu dem Ordner /PSP/SAVEDATA/ wechseln, den gewollten Emulator auswählen und installieren, fertig!&lt;/li&gt;
 	&lt;li&gt;ROMs sollten dann alle zusammen in einen Ordner gelegt werden, welcher dann genau wie ein Emulator übertragen wird&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
 	&lt;li&gt;Mario spielen&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;Links&lt;/h2&gt;
&lt;ul&gt;
 	&lt;li&gt;&lt;a href=&#34;http://wololo.net/downloads/index.php/download/8241&#34;&gt;QCMA&lt;/a&gt;&lt;/li&gt;
 	&lt;li&gt;&lt;a href=&#34;http://wololo.net/vhbl/&#34;&gt;VHBL&lt;/a&gt;&lt;/li&gt;
 	&lt;li&gt;&lt;a href=&#34;https://hackinformer.com/PlayStationGuide/PSV/INFO_MAILWRITER.html&#34;&gt;FailMail&lt;/a&gt;&lt;/li&gt;
 	&lt;li&gt;&lt;a href=&#34;https://hackinformer.com/2015/01/28/psvita-easy-to-install-emultors-homebrew-for-vhbl/&#34;&gt;Emulatoren&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Fazit und Ausblick&lt;/h2&gt;
Sony macht es einem nahezu unmöglich, seine Vita so zu verwenden, wie man möchte. Das an sich ist kein unbekanntes Verhalten, jedoch gibt sich Sony hier noch mehr Mühe als alle anderen Firmen.
&lt;p&gt;Während nahezu alle Exploits wenige Wochen nach dem Erscheinen direkt wieder aus dem Store genommen werden und noch immer Updates erscheinen, die all dies nur noch schwieriger machen, vermindern sich die Chancen auf eine erfolgreiche Homebrew Installation immer weiter.&lt;/p&gt;
&lt;p&gt;Während die Installation von Emulatoren unter 3.52 gerade noch so möglich war, musste man für Versionen 3.52-3.60 schon bei jedem Start der Vita das ganze Prozedere von neu machen (hier jedoch mit HENkaku, wodurch das Aufrufen einer Website mit der Vita schon genügte), und seit 3.61+ gibt es keine bekannten Wege mehr.&lt;/p&gt;
&lt;p&gt;Ob es all den Aufwand wirklich wert war? Vielleicht. Vielleicht auch nicht. Dennoch hat es einen riesen Spaß gemacht, irgendwelchen abstrusen Wege zu gehen, in der Hoffnung, dass es doch irgendwann mal funktioniert. Zumindest hat meine Vita jetzt wieder einen Grund, um in die Hand genommen zu werden.&lt;/p&gt;
&lt;p&gt;Und so bleibt nur noch eins zu sagen: &lt;strong&gt;Update bloß NIE eine Vita!&lt;/strong&gt;&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Datenschutz</title>
      <link>//ckatins.de/datenschutz/</link>
      <pubDate>Wed, 12 Apr 2017 00:00:00 +0000</pubDate>
      <guid>//ckatins.de/datenschutz/</guid>
      <description>
Die Betreiber dieser Seiten nehmen den Schutz Ihrer persönlichen Daten sehr ernst. Wir behandeln Ihre personenbezogenen Daten vertraulich und entsprechend der gesetzlichen Datenschutzvorschriften sowie dieser Datenschutzerklärung.

Die Nutzung unserer Webseite ist in der Regel ohne Angabe personenbezogener Daten möglich. Soweit auf unseren Seiten personenbezogene Daten (beispielsweise Name, Anschrift oder E-Mail-Adressen) erhoben werden, erfolgt dies, soweit möglich, stets auf freiwilliger Basis. Diese Daten werden ohne Ihre ausdrückliche Zustimmung nicht an Dritte weitergegeben.

Wir weisen darauf hin, dass die Datenübertragung im Internet (z.B. bei der Kommunikation per E-Mail) Sicherheitslücken aufweisen kann. Ein lückenloser Schutz der Daten vor dem Zugriff durch Dritte ist nicht möglich.

&amp;nbsp;
&lt;h2&gt;Cookies&lt;/h2&gt;
Die Internetseiten verwenden teilweise so genannte Cookies. Cookies richten auf Ihrem Rechner keinen Schaden an und enthalten keine Viren. Cookies dienen dazu, unser Angebot nutzerfreundlicher, effektiver und sicherer zu machen. Cookies sind kleine Textdateien, die auf Ihrem Rechner abgelegt werden und die Ihr Browser speichert.

Die meisten der von uns verwendeten Cookies sind so genannte „Session-Cookies“. Sie werden nach Ende Ihres Besuchs automatisch gelöscht. Andere Cookies bleiben auf Ihrem Endgerät gespeichert, bis Sie diese löschen. Diese Cookies ermöglichen es uns, Ihren Browser beim nächsten Besuch wiederzuerkennen.

Sie können Ihren Browser so einstellen, dass Sie über das Setzen von Cookies informiert werden und Cookies nur im Einzelfall erlauben, die Annahme von Cookies für bestimmte Fälle oder generell ausschließen sowie das automatische Löschen der Cookies beim Schließen des Browser aktivieren. Bei der Deaktivierung von Cookies kann die Funktionalität dieser Website eingeschränkt sein.

&amp;nbsp;
&lt;br /&gt;
&lt;br /&gt;
&lt;em&gt;Quelle: &lt;a href=&#34;https://www.e-recht24.de&#34;&gt;eRecht24&lt;/a&gt;&lt;/em&gt;&lt;/div&gt;
</description>
    </item>
    
    <item>
      <title>Impressum</title>
      <link>//ckatins.de/impressum/</link>
      <pubDate>Wed, 12 Apr 2017 00:00:00 +0000</pubDate>
      <guid>//ckatins.de/impressum/</guid>
      <description>
&lt;h3&gt;Angaben gemäß § 5 TMG und verantwortlich für den Inhalt nach § 55 Abs. 2 RStV&lt;/h3&gt;
Christopher Katins &lt;br /&gt;
E-Mail: kontakt@ckatins.de

&amp;nbsp;
&lt;h2&gt;Haftungsausschluss (Disclaimer)&lt;/h2&gt;
&lt;h3&gt;Haftung für Inhalte&lt;/h3&gt;
Als Diensteanbieter sind wir gemäß § 7 Abs.1 TMG für eigene Inhalte auf diesen Seiten nach den allgemeinen Gesetzen verantwortlich. Nach §§ 8 bis 10 TMG sind wir als Diensteanbieter jedoch nicht verpflichtet, übermittelte oder gespeicherte fremde Informationen zu überwachen oder nach Umständen zu forschen, die auf eine rechtswidrige Tätigkeit hinweisen.

Verpflichtungen zur Entfernung oder Sperrung der Nutzung von Informationen nach den allgemeinen Gesetzen bleiben hiervon unberührt. Eine diesbezügliche Haftung ist jedoch erst ab dem Zeitpunkt der Kenntnis einer konkreten Rechtsverletzung möglich. Bei Bekanntwerden von entsprechenden Rechtsverletzungen werden wir diese Inhalte umgehend entfernen.
&lt;h3&gt;Haftung für Links&lt;/h3&gt;
Unser Angebot enthält Links zu externen Webseiten Dritter, auf deren Inhalte wir keinen Einfluss haben. Deshalb können wir für diese fremden Inhalte auch keine Gewähr übernehmen. Für die Inhalte der verlinkten Seiten ist stets der jeweilige Anbieter oder Betreiber der Seiten verantwortlich. Die verlinkten Seiten wurden zum Zeitpunkt der Verlinkung auf mögliche Rechtsverstöße überprüft. Rechtswidrige Inhalte waren zum Zeitpunkt der Verlinkung nicht erkennbar.

Eine permanente inhaltliche Kontrolle der verlinkten Seiten ist jedoch ohne konkrete Anhaltspunkte einer Rechtsverletzung nicht zumutbar. Bei Bekanntwerden von Rechtsverletzungen werden wir derartige Links umgehend entfernen.
&lt;h3&gt;Urheberrecht&lt;/h3&gt;
Die durch die Seitenbetreiber erstellten Inhalte und Werke auf diesen Seiten unterliegen dem deutschen Urheberrecht. Die Vervielfältigung, Bearbeitung, Verbreitung und jede Art der Verwertung außerhalb der Grenzen des Urheberrechtes bedürfen der schriftlichen Zustimmung des jeweiligen Autors bzw. Erstellers. Downloads und Kopien dieser Seite sind nur für den privaten, nicht kommerziellen Gebrauch gestattet.

Soweit die Inhalte auf dieser Seite nicht vom Betreiber erstellt wurden, werden die Urheberrechte Dritter beachtet. Insbesondere werden Inhalte Dritter als solche gekennzeichnet. Sollten Sie trotzdem auf eine Urheberrechtsverletzung aufmerksam werden, bitten wir um einen entsprechenden Hinweis. Bei Bekanntwerden von Rechtsverletzungen werden wir derartige Inhalte umgehend entfernen.

&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;Quellverweis: &lt;a href=&#34;https://www.e-recht24.de&#34;&gt;eRecht24&lt;/a&gt;&lt;/i&gt;</description>
    </item>
    
    <item>
      <title>Mini-Roboterarm</title>
      <link>//ckatins.de/de/project/roboterarm/</link>
      <pubDate>Tue, 04 Apr 2017 20:00:00 +0200</pubDate>
      <guid>//ckatins.de/de/project/roboterarm/</guid>
      <description>&lt;p&gt;Der MeArm ist ein kleiner Tisch-Roboterarm, der entweder als Kit im Internet bestellt werden oder auch selbst 3D gedruckt werden kann. Da dieser aber ohne Software ausgeliefert wird, habe ich eine GUI zur Steuerung des Armes programmiert. Weiterhin kann der Arm auch mit einem an den PC angeschlossenen XBOX 360 Controller gesteuert werden.&lt;/p&gt;
&lt;h2&gt; Was gebraucht wird &lt;/h2&gt;
&lt;table&gt;
	&lt;tr&gt; &lt;th&gt;Part&lt;/th&gt; &lt;th&gt;Funktion&lt;/th&gt; &lt;/tr&gt;
	&lt;tr&gt; &lt;td&gt;Arduino Uno&lt;/td&gt; &lt;td&gt;Ansteuerung der Servos&lt;/td&gt; &lt;/tr&gt;
	&lt;tr&gt; &lt;td&gt;&lt;a href=&#34;https://shop.mime.co.uk/collections/mearm&#34;&gt;MeArm Kit&lt;/a&gt;&lt;/td&gt; &lt;td&gt; Die eigentlichen Teile des Armes &lt;/td&gt; &lt;/tr&gt;
	&lt;tr&gt; &lt;td&gt;ODER &lt;a href=&#34;https://www.thingiverse.com/thing:993759&#34;&gt;3D gedruckte Teile&lt;/a&gt; &amp; 4  Servos&lt;/td&gt; &lt;td&gt;  &lt;/td&gt; &lt;/tr&gt;
	&lt;tr&gt; &lt;td&gt;4 AA Batterien&lt;/td&gt; &lt;td&gt; Stromversorgung der Servos (6V benötigt, also in Reihe)&lt;/td&gt; &lt;/tr&gt;
	&lt;tr&gt; &lt;td&gt;Die &lt;a href=&#34;http://www.sojamo.de/libraries/controlP5/&#34;&gt;Control P5 Library&lt;/a&gt;&lt;/td&gt; &lt;td&gt;Zur Erstellung der GUI in Processing&lt;/td&gt; &lt;/tr&gt;
	&lt;tr&gt; &lt;td&gt;(optional) Einen XBOX Controller, dann auch die &lt;a href=&#34;http://lagers.org.uk/gamecontrol/&#34;&gt;Game Control Plus Library&lt;/td&gt; &lt;td&gt;Als alternative Steuerung&lt;/td&gt; &lt;/tr&gt;
	&lt;tr&gt; &lt;td&gt;(optional, aber empfohlen) Eine kleine Keramik-Kapazität (100nF)&lt;/td&gt; &lt;td&gt;Um Spannungsschwankungen auszugleichen&lt;/td&gt; &lt;/tr&gt;
	&lt;tr&gt; &lt;td&gt;Meine &lt;a href=&#34;https://github.com/Peyje/robotic-arm-control&#34;&gt;Software&lt;/a&gt;&lt;/td&gt; &lt;td&gt;Ohne wirds langweilig!&lt;/td&gt; &lt;/tr&gt;
&lt;/table&gt;
&lt;h2&gt; Setup &lt;/h2&gt;
&lt;p&gt;Das Setup ist an sich recht simpel, wir schließen einfach die vier Servos an die PWM Anschlüsse des Arduinos an. Dazu kommt dann noch die Stromversorgung durch die Batterien und die Software auf dem PC und dem Arduino selbst. Bei Verwendung des Controllers würde dieser einfach, wie auch beim Spielen, an den PC angeschlossen werden. &lt;br&gt;
Um ihn dann zu benutzen starten wir die GUI, entweder über Processing oder über die fertig kompilierte Datei. Dafür sollte die Software schon auf dem Arduino hochgeladen und dieser an den PC angeschlossen sein. Und schon ist der Arm steuerbar! Wollen wir den Controller verwenden, so verbinden wir ihn einfach mit dem PC und drücken in der GUI auf &amp;ldquo;Connect&amp;rdquo;, fertig.&lt;/p&gt;
















&lt;figure  id=&#34;figure-die-verkabelung-auf-einem-breadboard&#34;&gt;
  &lt;div class=&#34;d-flex justify-content-center&#34;&gt;
    &lt;div class=&#34;w-100&#34; &gt;&lt;img alt=&#34;Die Verkabelung auf einem Breadboard&#34; srcset=&#34;
               /de/project/roboterarm/robotic-arm-breadboard_hu96f16edeed7d98de0043420293c5b8ca_321694_c0650b7bb27583fc5d40b2da945c9684.webp 400w,
               /de/project/roboterarm/robotic-arm-breadboard_hu96f16edeed7d98de0043420293c5b8ca_321694_7b2f17b9a506d937c7b25f7711313d10.webp 760w,
               /de/project/roboterarm/robotic-arm-breadboard_hu96f16edeed7d98de0043420293c5b8ca_321694_1200x1200_fit_q75_h2_lanczos_3.webp 1200w&#34;
               src=&#34;//ckatins.de/de/project/roboterarm/robotic-arm-breadboard_hu96f16edeed7d98de0043420293c5b8ca_321694_c0650b7bb27583fc5d40b2da945c9684.webp&#34;
               width=&#34;760&#34;
               height=&#34;701&#34;
               loading=&#34;lazy&#34; data-zoomable /&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;figcaption&gt;
      Die Verkabelung auf einem Breadboard
    &lt;/figcaption&gt;&lt;/figure&gt;
















&lt;figure  id=&#34;figure-der-arm-an-sich&#34;&gt;
  &lt;div class=&#34;d-flex justify-content-center&#34;&gt;
    &lt;div class=&#34;w-100&#34; &gt;&lt;img alt=&#34;Der Arm an sich&#34; srcset=&#34;
               /de/project/roboterarm/robotic-arm_hu25c2a3ceeb901bed5800bfed5e015a59_3149249_ff341154478894c82ea90c04a88787ec.webp 400w,
               /de/project/roboterarm/robotic-arm_hu25c2a3ceeb901bed5800bfed5e015a59_3149249_ce71f8b04eafd4b62e4c2ed0c16536e3.webp 760w,
               /de/project/roboterarm/robotic-arm_hu25c2a3ceeb901bed5800bfed5e015a59_3149249_1200x1200_fit_q75_h2_lanczos.webp 1200w&#34;
               src=&#34;//ckatins.de/de/project/roboterarm/robotic-arm_hu25c2a3ceeb901bed5800bfed5e015a59_3149249_ff341154478894c82ea90c04a88787ec.webp&#34;
               width=&#34;760&#34;
               height=&#34;570&#34;
               loading=&#34;lazy&#34; data-zoomable /&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;figcaption&gt;
      Der Arm an sich
    &lt;/figcaption&gt;&lt;/figure&gt;
&lt;h2&gt; Meilensteine &lt;/h2&gt;
Das Projekt kann man in drei große Meilensteile unterteilen. Beim ersten Meilenstein ist der Arm fertig gebaut und die Servos sind steuerbar über Potis und auch über den PC. Danach muss eine GUI erstellt werden, die die Steuerung um einiges erleichtert und ein paar besondere Features einfügt. Im letzten Meilenstein begeben wir uns dann an den Controller.
&lt;h3&gt; Potis &lt;/h3&gt;
Der erste Meilenstein ist noch recht Straight-Forward, denn einen Servo über ein PWM Signal anzusteuern ist nicht allzu schwer. Solch ein kleines Projekt liegt dem Arduino sogar als Tutorial bei, um mit ihm etwas warm zu werden. Dafür habe ich einfach für jeden Servo einen Poti angeschlossen, dessen Ausgang jeweils in den Arduino geführt und gleich wieder zu den jeweiligen Servos weiter geleitet wird. Somit lässt sich der Arm also schon recht schnell manuell steuern und die ersten Feinheiten einstellen. So habe ich die Servowinkel begrenzt, wenn der Arm sonst irgendwo an das Gehäuse gekommen wäre oder der Greifarm nicht weiter aufging.
&lt;p&gt;&lt;br&gt; &lt;br&gt;&lt;/p&gt;
&lt;p&gt;Wer noch nie einen Servo mit einem Arduino gesteuert hat, dem empfehle ich dieses &lt;a href=&#34;https://playground.arduino.cc/Learning/SingleServoExample&#34;&gt;Tutorial&lt;/a&gt;. Hier wird der Servo auch direkt im nächsten Schritt mit Processing gesteuert. Processing ist eine sehr stark typisierte Sprache, sie eignet sich also gerade für Anfänger und ist speziell auf Simulation und grafische Anwendungen spezialisiert. Mit ihr kann also auch eine simple GUI sehr schnell aufgebaut und designt werden. Ebenso ist es sehr einfach Signale zwischen Processing und dem angeschlossenen Arduino zu senden, was uns hier zugute kommt.&lt;/p&gt;
&lt;h3&gt; GUI &lt;/h3&gt;
Ein weiterer Grund, warum ich Processing verwendet habe, ist das ich schon wusste wie ich die Daten vom Arduino zum PC bekomme und auslesen kann, da dies in den Arduino Tutorials schon geschah. Mit diesem Wissen im Hinterkopf musste ich also nur noch die GUI durch ein paar geometrische Elemente erstellen und das Klicken auf diese Elemente mit einem Befehl an den Arduino mappen. Dazu sollte noch jeweils eine &#34;Kontrollleuchte&#34; aufleuchten, wann immer ein Servo sich bewegt. &lt;br&gt;
Weiterhin habe ich es möglich gemacht, bis zu drei Positionen abzuspeichern und den Arm jederzeit wieder dort hin zu bewegen, was durch vier Buttons im unteren Bereich ermöglicht wurde. Dazu kann der Winkel aller Servos jederzeit abgelesen werden und auch manuell direkt über die Textboxen eingegeben werden. &lt;br&gt;
Dieser Part des Projektes war größtenteils einfach Trial&amp;Error. Einen neuen Button setzen, den auf seine Funktion mappen und gucken ob es klappt. Dann alle Objekte so lange herumschieben, bis eine halbwegs annehmbare GUI entsteht. 












&lt;div class=&#34;gallery-grid&#34;&gt;

  
  
  
    
    
    
    
    
      
        
      
    
  
  
  &lt;div class=&#34;gallery-item gallery-item--medium&#34;&gt;
    &lt;a data-fancybox=&#34;gallery-robot-gui&#34; href=&#34;//ckatins.de/media/albums/robot-gui/mearm_connected.png&#34; data-caption=&#34;Mit dem Controller verbunden&#34;&gt;
      &lt;img src=&#34;//ckatins.de/media/albums/robot-gui/mearm_connected_hufc8e6b9a19fc69b68e8069ff3dd80b1e_35223_750x750_fit_q75_h2_lanczos_3.webp&#34; loading=&#34;lazy&#34; alt=&#34;Mit dem Controller verbunden&#34; width=&#34;647&#34; height=&#34;392&#34;&gt;
    &lt;/a&gt;
  &lt;/div&gt;
  
    
    
    
    
    
      
        
      
    
  
  
  &lt;div class=&#34;gallery-item gallery-item--medium&#34;&gt;
    &lt;a data-fancybox=&#34;gallery-robot-gui&#34; href=&#34;//ckatins.de/media/albums/robot-gui/mearm_default.png&#34; data-caption=&#34;Der Standardbildschirm&#34;&gt;
      &lt;img src=&#34;//ckatins.de/media/albums/robot-gui/mearm_default_hu3d9d8997944414c73011aadd90820b6a_34901_750x750_fit_q75_h2_lanczos_3.webp&#34; loading=&#34;lazy&#34; alt=&#34;Der Standardbildschirm&#34; width=&#34;646&#34; height=&#34;391&#34;&gt;
    &lt;/a&gt;
  &lt;/div&gt;
  
    
    
    
    
    
      
        
      
    
  
  
  &lt;div class=&#34;gallery-item gallery-item--medium&#34;&gt;
    &lt;a data-fancybox=&#34;gallery-robot-gui&#34; href=&#34;//ckatins.de/media/albums/robot-gui/mearm_tasten.png&#34; data-caption=&#34;Diverse Tasten auf dem Controller gedrückt&#34;&gt;
      &lt;img src=&#34;//ckatins.de/media/albums/robot-gui/mearm_tasten_hu3088eb1174f55a221075c9565499c7ad_37675_750x750_fit_q75_h2_lanczos_3.webp&#34; loading=&#34;lazy&#34; alt=&#34;Diverse Tasten auf dem Controller gedrückt&#34; width=&#34;648&#34; height=&#34;392&#34;&gt;
    &lt;/a&gt;
  &lt;/div&gt;
  
    
    
    
    
    
      
        
      
    
  
  
  &lt;div class=&#34;gallery-item gallery-item--medium&#34;&gt;
    &lt;a data-fancybox=&#34;gallery-robot-gui&#34; href=&#34;//ckatins.de/media/albums/robot-gui/mearm_waiting.png&#34; data-caption=&#34;Der Wartebildschirm&#34;&gt;
      &lt;img src=&#34;//ckatins.de/media/albums/robot-gui/mearm_waiting_huc285204b295b8d56946c83050b40189a_18604_750x750_fit_q75_h2_lanczos_3.webp&#34; loading=&#34;lazy&#34; alt=&#34;Der Wartebildschirm&#34; width=&#34;646&#34; height=&#34;391&#34;&gt;
    &lt;/a&gt;
  &lt;/div&gt;
  

&lt;/div&gt;
&lt;h3&gt; Controller &lt;/h3&gt;
Der letzte Schritt war nun, all das auch mit dem Controller zu ermöglichen. Obwohl ich am Anfang dachte, dass das der schwerste Teil würde, war dem nicht so. Über die oben verlinkte Bibliothek musste ich einfach nur eine Mapping-Datei erstellen, die angibt, welche Controller-Inputs relevant sind und abgehört werden sollen. Zum Debuggen habe ich Daten der Controller-Achsen auch in der GUI anzeigen lassen. Da der Controller sehr feinfühlig ist, habe ich noch Thresholds gesetzt, damit erst bei einer klaren Benutzung des Controllers dieses Signal auch weiter an den Arduino gesendet wird. Fertig.
&lt;hr /&gt;
Im Großen und Ganzen ist das schon alles, was ich getan habe. Wie genau der Arduino mit dem PC kommuniziert, erkläre ich nun:
&lt;h2&gt; Hinter den Kulissen: Das Protokoll &lt;/h2&gt;
Der Arduino kann zwar recht einfach mit dem PC und somit auch mit Processing kommunizieren, aber all das passiert über eine serielle Schnittstelle, also immer nur ein Signal nach dem anderen. Ich musste mir etwas ausdenken, damit ich ganze &#34;Nachrichten&#34; und somit Befehle an den Arduino senden kann. Dafür habe ich ein eigenes Protokoll erstellt, das im Endeffekt aus drei Einzelteilen besteht. &lt;br&gt;
&lt;table&gt;
  &lt;tr&gt; &lt;th align=&#34;center&#34;&gt; Der Startcode &lt;/th&gt; &lt;th align=&#34;center&#34;&gt; Ein Servo-Buchstabe &lt;/th&gt; &lt;th align=&#34;center&#34;&gt; Ein Winkel oder Spezialcode&lt;/th&gt; &lt;/tr&gt;
  &lt;tr&gt; &lt;td align=&#34;center&#34;&gt; SSS &lt;/td&gt; &lt;td align=&#34;center&#34;&gt; C &lt;/td&gt; &lt;td align=&#34;center&#34;&gt; 0 bis 180 &lt;/td&gt; &lt;/tr&gt;
  &lt;tr&gt; &lt;td&gt; &lt;/td&gt; &lt;td align=&#34;center&#34;&gt; H &lt;/td&gt; &lt;td align=&#34;center&#34;&gt; 777 &lt;/td&gt; &lt;/tr&gt;
  &lt;tr&gt; &lt;td&gt; &lt;/td&gt; &lt;td align=&#34;center&#34;&gt; V &lt;/td&gt; &lt;td align=&#34;center&#34;&gt; 888 &lt;/td&gt; &lt;/tr&gt;
  &lt;tr&gt; &lt;td&gt; &lt;/td&gt; &lt;td align=&#34;center&#34;&gt; F &lt;/td&gt; &lt;td align=&#34;center&#34;&gt; 999 &lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;
&lt;p&gt;Der Arduino erwartet vor jedem Befehl drei Mal den Buchstaben &amp;lsquo;S&amp;rsquo;, damit sichergegangen wird, dass das Signal wirklich ein gewollter Befehl ist und nicht einfach nur eine Störung o.Ä.. Sollten drei &amp;lsquo;S&amp;rsquo; erkannt worden sein, erwartet der Arduino als nächstes einen Buchstaben für einen der vier Servos: &amp;lsquo;C&amp;rsquo;law, &amp;lsquo;H&amp;rsquo;orizontal, &amp;lsquo;V&amp;rsquo;ertical und &amp;lsquo;F&amp;rsquo;orward. &lt;br&gt;
Nun wird es etwas kniffliger. Zu Beginn konnte jeder Servo nach Gradzahl eingestellt werden. Das geht nun noch immer, was zum Beispiel sehr hilfreich bei den gespeicherten Positionen ist (diese werden in Processing, nicht auf dem Arduino gespeichert). Jedoch sollte es ja, gerade mit dem Controller, möglich sein kontinuierliche Bewegungen durchzuführen. Wenn aber jeweils die nächste Gradzahl gesendet würde, würde auch der Servo immer Grad für Grad weiter zucken. &lt;br&gt;
Als Lösung habe ich die Sondercodes &amp;lsquo;777&amp;rsquo; für kontinuierlich Links, &amp;lsquo;888&amp;rsquo; für Stopp und &amp;lsquo;999&amp;rsquo; für kontinuierlich Rechts erstellt, wodurch der Arduino den Servo immer die kleinst mögliche Bewegung in eine Richtung machen lässt, bis das Stopp-Signal kommt oder eine Grenze erreicht wurde. Beim Kontinuierlichen wie beim Manuellen Modus ist es nie möglich die Servos über bestimmte Winkel hinaus zu drehen, damit der Arm sich nicht selbst verkantet. In solch einem Fall würde der Servo nur bis zum Maximum gehen, dann aber stoppen. &lt;br&gt;&lt;/p&gt;
&lt;h2&gt; Fazit &lt;/h2&gt;
Auch wenn es Wege gibt, mit denen ich schneller ans Ziel gekommen wäre, hat mir dieses Projekt sehr viel Spaß bereitet. Vielleicht sogar gerade deswegen, denn auch mit ein paar Potis kann man so einen Arm steuern, aber das ist nunmal einfach und etwas langweilig. Würde ich das Projekt noch mal von vorne Beginnen, würde ich die GUI wohl doch mit Swing erstellen, einfach weil es schneller geht und noch besser aussieht. Trotzdem, ich bin zufrieden mit meiner eigenen GUI und sie funktioniert! &lt;br&gt;
Für mich war dieses Projekt ein schönes erstes, größeres Projekt nach den Arduino Tutorials, den Arm wirklich in Bewegung zu sehen war es wert, auch mal ein paar Abende verzweifelt vor meinem Code zu sitzen.</description>
    </item>
    
    <item>
      <title></title>
      <link>//ckatins.de/de/admin/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>//ckatins.de/de/admin/</guid>
      <description></description>
    </item>
    
  </channel>
</rss>
