 Alles klar. Und jetzt zu Mirko und Microbeacons. Viel Spaß. Es gibt doch ein Pad für Fragen dann. Okay, danke. Ja, also willkommen an alle, die hier zuschauen. Hier unten im Saal sind es ja nicht so viele aus bekannten Gründen. Die Gründe sind natürlich die gleichen wie auf der Erde und deswegen lassen wir hier in Utopia auch die Roboter rumfahren, wie gerade erwähnt wurden. Auch wenn die Probleme die gleichen sind, die Lösungen sehen bei uns etwas anderes aus. Wir haben kein Geld, wir haben keine smarten Telefone, die auf der Erde benutzt werden, um das irgendwie zu managen. Aber wir haben ein Deckergeist und deswegen lassen wir selber was bauen. Bauen was, was vielleicht nicht ganz fertig wird, was vielleicht nicht ganz die Lösung ist, aber wir gucken mal, wie weit wir kommen. Was auf der Erde benutzt wird und was wir hier in Utopia auch vielleicht benutzen wollen, sind diese Bluetooth Low Energy Beaks. Das sind Deutsche Wurz, Funkbagen, das klingt ein bisschen traditioneller, das ist ein historischer, und eigentlich nur kleine Nachrichten, die in die Welt rausgeschickt werden, die dort irgendwie verarbeitet werden. Normalerweise sind die für andere Sachen gedacht gewesen. Natürlich ist das allererst einmal Verwerbung. Wozu sonst gibt es irgendwelche Beispiele von großen Plakatwänden, wo dann so eine Teile drin sind und wenn ich mit meinem smarten Telefon da hingehe, kann ich dann die Webseite aufmachen von dem Produkt und gleich was ordern. Ein spannender Punkt, der hier auch jetzt ein bisschen mit rein spielt, ist die Indoor-Lavigation, wofür das gedacht war. Und zwar zum Beispiel in einem Museum, wo dann festgestellt wird, wo befinde ich mich, wo welchen Exponat, und kriegt dann auf meinem Telefonsachen angezeigt, die dort dazugehören oder kriegt was erzählt zu dem Exponat, zu dem Bild oder irgendwelche Zusatzinformationen, Filmen und alles. Und wenn wir Werbung haben, gibt es natürlich auch Träger, aber nicht nur die Träger, wo wir im Laden geprägt werden, sondern wir können auch Trägen, zum Beispiel Schlüsselbund, wer das gern verliert, der kann über solche Wiegens sein, Schlüsselträgen und hoffentlich wiederfinden. Aber bei all diesen Anwendungen sind es eigentlich Sachen, wo der Sender an der mehr oder weniger festen Stelle steht und wir uns als Empfänger mit unserem Telefon dahin begeben und diese Sachen anschauen, Informationen darüber kriegen. Und was wir jetzt hier haben, was Sie jetzt benutzen mit dieser tollen Corona-App, die wir ja alle auf unserem Telefon haben, da ist das bisschen anders. Man nennt das Exposure Notification, der Name hat sich geändert, den ersten Spex, die von Apple und Google Warn hieß es noch bisschen anders, aber so klingt's unverfänglicher, so klingt's besser. Aktuell haben wir hier die Version 1.2, glaube ich, die ist vom 29. April und diese Spezifikation ist für die Leute, die ab und zu Spezifikationen lesen, erstaunlich kurz das Sinn, ich weiß jetzt gar nicht, 5, 6 Seiten oder so mit Deckblatt. Also relativ schnell durchgelesen, steht auch nicht so viel Spannendes drinnen. Und der Unterschied ist eben wie gesagt, wir haben jetzt rumlaufende Funkborgen. Also wir sind mit unserem Telefon alle Sender und wir sind zugleich Empfänger. So, bisschen eine andere Sache. Was steht jetzt in dieser Spezifikation nun, das Spannende, was da drin steht, ist vor allen Dingen, wie sehen die Daten aus, die unsere Funkborgen durch die Gegend schicken? Das sind in dem konkreten Fall hier 31 Beid, die da geschickt werden, wobei ganz viel davon sind technische Informationen, sind Sachen, die in diesem Begenprotokoll vorgesehen sind. Das Spannende sind einmal diese 16 Beid ID, das ist praktisch das, was benutzt wird, um uns nicht zu drecken, aber um das Contact Tracing durchzuführen. Und das sind vier Beid an Metadaten. Diese Metadaten sind durchaus wichtig. Zum einen sind das Versionsinformation, ist jetzt immer das Gleiche drin, das ist eine Version 1, nicht schwarter, spannend. Das Zweite ist aber die Sendeleistung des Senders, also unseres Telefons zum Beispiel. Und aus der Kombination von dieser Sendeleistung und dem, was wir gemessen haben, wie wir das Signal empfangen, mit welcher Stärke, können wir dann so in etwa ausrechnen, wie weit ist der Sender von uns entfernt. Und wenn wir jetzt auf das Beispiel mit dem Museum nochmal zurückkommen, dort war es eben dann so, dass ich zum Beispiel mehrere Punkte habe, von der Indoor-Navigation, jeder Punkt kann dann sende seine Signale, mit gleicher Signaltärke hoffentlich aus und ansonsten steht es drin. Und dann können wir eben ermitteln, wie nah sind wir an welchen Punkten, über Drehangulationen können wir dann in unserer Position bestimmen, auf die Ort läuft. Das machen wir hier nicht. Hier und präsiert uns nur, wie weit ist der Sender von uns entfernt, ist er uns potentiell gefährlich nahe. Ich habe gesagt, wir haben hier in Utopia nicht so viele so tolle Geräte. Andere tolle Geräte haben wir natürlich unsere Roboter, aber nicht so viele tolle Smartet-Helfone, die wir hierfür benutzen wollen. Deswegen habe ich mal ein anderes Gerät rausgesucht. Das ist ein Mikrokleines Gerät. Man sieht es auch hier vorne, ein Batterie-Pack angesteckt. Das ist der, wer den nicht kennt, BBC Microbit. Das ist ein Computer, oder ja, Mikro-Kontroller-Platine, die in Großbritannien zum Beispiel für die Schulen, für Informatik-Ausbildung genutzt wird, dafür gedacht ist. Dieser Microbit hat eine sehr lange, recht interessante Geschichte. Also nicht das Gerät selber, aber die Vorfahren davon. Und zwar gab es schon vor langer, langer Zeit, als die Computer gerade erst umkommen waren, die Heimcomputerzeit war, diesen BBC Micro. Und letztlich ist es ein Microbit in der Tradition, dieses originalen Rechners. Der Hersteller darf man als, und das ist ein ganz interessanter Punkt, wo sich das jetzt alles schließt, der Hersteller war die Firma Acron. Und die haben dann nicht für diesen BBC Micro, für den originalen, sondern für weitere Recher, die sich hergestellt haben, eine besondere Architektur, eine eigene Prozessorarchitektur entwickelt. Und das haben sie dann die Acron Risk Machine genannt, kurz ARM. Und die Prozessoren, mit dieser vergleichbaren Architektur, eine Weiterentwicklung natürlich, gibt es heute noch, und genau sowas ist hier in diesen hübschen Teilchen drin. Also so schließt sich der Kreis der Geschichte wieder. Was hat dieser Microbit sonst noch? Ja, der hat ein paar Tasten, der hat Sensor, da gibt es so Schulprojekte, wo man zum Beispiel eine Wasserwaage machen kann. Und auf dieser 5x5 LED-Matrix, die da drauf ist, kann man dann anzeigen, ist an so einen Punkt, wie streck liegt das Teil, und kann man das auf verschiedene Spielchen machen. Oder man kann eine Alarmanlage bauen, indem man den Microbit an die Tückeln geklebt. Und wenn jemand die Tückeln aufmacht, dann gibt es da Alarmen. Technisch gesehen, dieser Armprozess, wo der da drin ist, ist ein Prozessor von Nordic. Das ist ein Arm Cortex M0, also ein recht kleines Teil, was nicht so viel kann. Wir haben diese Daten da, diese Flächsspeicher, der für unsere Anwendung hier reicht. Auf den Remssprecher komme ich dann nochmal zurück. Der ist für unsere Anwendung hier etwas knapp. Aber was mich vor allen Dingen auch veranlasst hat, mich damit zu beschäftigen, ist die Funktionalität von Wireless, die dieser Prozessor da drin mitbringt. Und zwar ist es zum einen, das Bluetooth Low Energy, aber das sind noch andere interessante Sachen, dieses End- oder End-Plus. Und das kennt vielleicht der eine oder andere, der so ein GPS-Gerät für das Geocaching hat von bestimmten Firmen, die unterstützen nämlich diese Protokolle für externe Geräte, also eine Temperatorsensor anschließen, oder ich kann, was weiß ich, Herzfrequenzmesser, und die funktionieren zum Beispiel über diese proprietaryen Protokolle. Kann man auch mit Bluetooth letztlich machen, aber die gibt es halt schon ein bisschen länger. Und dann sind noch andere proprietary Protokolle da drin, die da benutzt werden können. Womit kann man dieses Teil programmieren? Da gibt es ganz viele verschiedene Möglichkeiten. Zum Beispiel in der Ausbildung hier, das klassische, in welchen Plöcken, wo man dann schon relativ jung Grundschulkindern beibringen kann, bunte Plöcke zurecht zu ziehen und dann irgendwelche Fusäthe zu machen, LEDs blinken zu lassen, auf Tasten Druck zu reagieren oder sogar die Sensoren auszulesen. Wenn ich da ein bisschen weitergehen möchte, da kann man dann auch, teilweise kann man das auch hin- und her-switchen, mit JavaScript oder TypeScript programmieren oder mit Python eine anführende richtige Programmierung. Wer dann natürlich richtig programmieren will, C, C++, der hat noch weitere Möglichkeiten. Am schnellsten Einfachsten geht das mit Embed. Kann man online, nicht durch online Compiler, kann das dort ausprobieren, kann sich das als Boot hinzufügen und kann dann dort erste Schritte unternehmen. Dort gehen dann natürlich auch Sachen, die mit solchen Plöcken nicht gehen. Also gerade wenn man in zeitkritische Sachen kommt und die Hardware-Funktionen zurückgreifen will, die in den Plöcken nicht vorgesehen sind, das geht dann dort alles. Wer das lieber als online auf seiner Platte selber macht, der hat auch einen CLI-Möglichkeit, mpcli gibt's, kann man sich installieren, ist manchmal ein bisschen gewöhnungsbedürftig oder ein bisschen hakelig spartere Installationen, aber funktioniert trotzdem recht gut. Eine andere Beispiel, was ich hier auch genutzt habe, wäre mit Plattform IO und Codium. Das funktioniert dann auch auf diversen Plattformen. Dort habe ich sogar die Möglichkeit, dann mit einem Frameworkhouse zu suchen, also zum Beispiel mpad oder Arduino als Library-Basis. Ich habe dort viele Bibliotheken, die ich gleich automatisch mit einbinden kann, was in der Online-Version von mpad auch gibt, aber es sind noch paar andere Bibliotheken, viele sind die gleichen. Allerdings hat der Prozessor ein paar Besonderheiten, was diese Wireless-Sache angeht und das ist der Grund, warum ich mich für dieses Plattform IO hier entschieden habe, was eben zum Beispiel diesen ganzen Plöcken oder mit dem mpad, mit der Online-Version nicht ganz so einfach oder gar nicht machbar ist. Denn diese ganzen verschiedenen Protokolle, die der Prozessor unterstützt, die werden alle über sogenannte Soft-Devices implementiert. Und diese Soft-Devices sind eigentlich so ein Stück Binarycode in Hexform, die dann mit dem eigentlichen Programm, was ich schreibe, in den Flash-Speicher geladen werden und die die ganze Implementierung machen. Der Hintergrund ist, dass die Implementierung dieser Protokolle relativ viel Speicher braucht. Und deswegen hat man das aufgeteilt, man legt nur das Soft-Device-Rein, wovon man gerade die Funktionalität braucht und kann damit Speichersparen. Der Micro-Bit in der ursprünglichen Form, also so wie er halt ausgeliefert ist oder in der Standardkonfiguration, bietet da nur dieses S110 Soft-Device an, was für unseren Anwendungsfall mit diesen Wiegens hier nicht reichen würde. Deswegen waren hier schon einige Klimtzüge nötig, um das zu benutzen, dieses S130 Soft-Device. Um das jetzt zu benutzen zu können, müsste ich erstmal eine eigene Wurdefinition machen. Das ist ein bisschen unglücklich, weil ursprünglich paar Versionen zurück von Plafomario hat das mal einfach funktioniert und dann hat da irgendjemand entschieden, diese Funktionalität zum Teil rauszunehmen und ich kann sie wieder aktivieren, aber sie ist erstmal standardmäßig nicht da, geht aber zu machen. Noch eine Einschränkung, die es gibt, dieses SDK für den Micro-Bit funktioniert derzeit nur mit M-Bit 5. Also wer jetzt das neueste machen will, M-Bit 6, der wir da erstmal keinen Glück haben, ich weiß auch nicht, ob da irgendwas in Arbeit ist, ob das in der Zukunft fertig sein wird. Der Hintergrund ist, dass dieser Micro-Bit eine eigene Hardware-Abstraktion Schicht benutzt und diese Schicht, die das M-Bit und da hat es viele Breaking-Changes gegeben in der aktuellen Version. Wenn man aber das einmal eingerichtet hat, wenn man das gemacht hat, ist der Code, den man dann benutzen muss um diese Funktbocken zu empfangen, erstaunlich einfach. Hier mal so rudimentär gezeigt, also meine Routine, mache ich einfach, insanziere ich einfach das Device, initialisier es bis schon, starte den Scan, übergeben den Callback und das war es schon. In diesem Callback kann man dann ganz verschiedene Sachen machen. Klar, ich habe Zugriff auf die ganzen Daten, ich habe Zugriff auf die Daten, die ich von uns gezeigt habe, die aus der Spezifikation sind. Ich habe auf die Metadaten natürlich der Zugriff, ich kann die Signalstärke ermitteln, logisch, braurisch und kann die Hardware-Adresse des Senders ermitteln. Was habe ich dann gemacht? Ich habe dieses Display benutzt und kann das mal anmachen, ich weiß nicht ob man das an der Kamera sieht. Aber ich mache das mal an. Auf dem Display blinkert dann etwas rot, ich lasse es auch einfach mal an und habe hier praktisch gemacht, wenn immer so ein Signal reinkommt von irgendeinem Handy, irgendein Corona-Warn-App-Signal, sage ich jetzt mal, dann blinkert die LED da auf und rückt eins weiter, sodass ich dann da diese Spur habe über die ganzen Biegens, die ich empfange. Könnte man das besser machen, ich habe da auch schon Sachen versucht, dann da irgendein Schweif hinterherzieht oder irgendwas, ein bisschen schnucklicher darstellen. Theoretisch gibt es auch die Möglichkeit, diese LEDs in dieser 5x5-Matrix die Helligkeit zu beeinflussen, allerdings die Standardbibliothek des MicroBits, die macht das irgendwie Asynchron und ich stelle nicht wirklich die Helligkeit sondern der macht das irgendwie im Hintergrund dann selbstständig, nachdem ich nur sage, das soll die Helligkeit haben, das funktioniert besser, wenn ich stehende Bilder habe, nicht wenn ich so einen wanderten Punkt habe. Aber, ich sage erstmal, habe mal einen schönen Eindruck über die Signale, die hier reinkommen. Nun sieht man da nicht allzu viel, deswegen habe ich noch eine Konsulenausgabe mal gemacht. Also wenn man das dann per USB anrechnen anschließt, sieht man dann die Daten, wie zu erwarten worden, was ich ja ausgegeben habe, ist mal die ID. Praktisch das, diese Kennung, die wir mit unserem Telefon ausschicken und die wir von anderen empfangen und abspeichern und über die dann der Kontakt zu einer möglicherweise infizierten Person hergestellt wird. Was ich damit ausgebe, ist die Signalstärke des Empfangs und die Hardware-Adresse. Wobei man natürlich sagen muss, diese Daten wechseln natürlich, ja klar, kann man nichts mitmachen, kann man sich angucken, ist aber ganz interessant, dass mal so einzeln zu sehen, was da rumgeschickt wird. Was mich persönlich erstmal überrascht hat, war, wie viele Signale da reinkommen. Also ich weiß nicht, wie schnell das hier gerade blinkt, na ja, relativ langsam. Es scheint also nicht allzu viel Leute hier in der Gegend zu sein, die diese App installiert und laufen haben. Wie gesagt, ich war überrascht, ist jetzt mein Telefon, was hier wahrscheinlich diese Signale macht. Aber wenn man sich die Speck anguckt, da steht dann ganz eindeutig drin, dass empfohlen wird, dass alle 200 bis 270 Millisekunden raus zu senden, das Signal. Gut, wer lesen kann, ist klar, ein Vorteil. Mich hat es überrascht, dass das so oft geschickt wird, aber gut, entspricht der Speck. Zweiter Punkt, den ich festgestellt habe, nachdem ich mir eine Weile diese Konsolausgaben angeschaut habe, ist, dass die ID und die Hardware-Adpresse alle 15 Minuten wechseln. Und das war ziemlich genau 15 Minuten und da habe ich mich gewundert, mal in die Spezifikation geschaut. Und da sieht man, das soll in einem zufälligen Periode alle 10 bis 20 Minuten gewechselt werden. Wie gesagt, von zufällig habe ich da nichts gemerkt. Es waren immer genau 15 Minuten und ja in der Spezifikation sind da noch Warte unten, so Beispiele über den Datenfluss, dort stehen dann noch fixe 15 Minuten drin, also wahrscheinlich ist auch die Mitte zwischen 10 und 20. Man ist dann einfach mit den 15 Minuten zufrieden. Wenn wir uns jetzt noch überlegen, dass wir die Entfernung ermitteln wollen, zu irgendeiner Person und uns bei der Entfernung Ermittlung darauf verlassen, dass die Sendestärke uns mitgeschickt wird. Und wenn wir das mit der Empfangsstärke vergleichen, frag ich mich natürlich, warum sollten wir der Sendestärke dort vertrauen? Also, was man ja machen könnte, man könnte mit voller Sendleistung senden und könnte die Sendestärke als ganz niedrig angeben, haben wir jetzt irgendein Gerät selber gebaut. Wäre ein interessanter Punkt, würde ich sozusagen an die Nähe verteuchen, die es in Wirklichkeit gar nicht gibt. Wahrscheinlich ist der Effekt vernachlässigbar, weil um da wirklich bösartige Sachen zu machen, müsste ich natürlich dann meine IDs, die ich ausgesendet habe, irgendwo als infiziert kennzeichnen. Und diese Hürde ist ja dann viel grösser als das, was ich da anschauen, wo wir sagen können. Aber wenn ich das schaffen würde, wenn ich dann infiziert wäre, könnte ich vielleicht sagen, gut, egal. Warum habe ich das eigentlich alles gemacht? Gut, eigentlich, ich wollte was lernen. Nachdem ich gelesen habe, dass diese Prozessoren das können, dachte ich, das will ich mal machen, das will ich mal ausprobieren. Forscher Geist, einfach. Darüber hinaus ist es allerdings ein sehr gutes anschauliches Beispiel für Dordenschutz und Dordenschparsamkeit. Es hat ja im Vorfeld dieser Corona Warnep viel Diskussionen gegeben, wie kann man die Warneprisen machen? Da gab es die Ideen, dass man wirklich Geo-Koordinaten speichert oder sonst was für schlimme Sachen. Die Lösung, die es jetzt gibt, ist wirklich recht minimal und gibt den bestmöglichen Datenschutz. Und um das zu demonstrieren, ist natürlich diese Implementierung, die ich hier mal so auf die Schnelle gemacht habe. Und wenn man sich den Code anguckt, das sind 50, 60-zeilen Quellcode, also das ist alles kein Problem. Das ist ein sehr gutes Beispiel. Noch dazu kann man sagen, diese Microbots sind ja für die Ausbildung gedacht, also für Schulen. Es gibt in Deutschland einen Klon dazu, den Kalliob, der an deutsche Schulen eingesetzt wird. Ich habe es jetzt nicht ausprobiert, aber theoretisch müsste die Software so ohne Änderungen auch da drauf laufen. Und dann könnte man natürlich in die Schulen gehen, wo so eine Geräte vielleicht schon die Lösung, die hier gefunden wurde und könnte das dann ein bisschen anschaulich den allen darstellen. Das ist vielleicht eine ganz nette Idee um das da mal zu machen. Wer sich bei sowas engagiert. Was könnte man noch machen oder könnte man nicht machen oder was geht noch? Ich hatte schon angedeutet, der Speicher, dieses Microbit, das sind 16 KB Treppen, die sind einfach zu wenig, um hier wirklich sinnvolle Sachen zu machen, das ist der erste Punkt. Das ist ein Auto-Stack-Brauch-Speicher. Zum Zweitens meine Software-Brauch-Speicher und wenn ich mir dann noch anfange, irgendwelche IDs zu merken und dann ist das ganz schnell das Ende. Ich hatte versucht, mir hier IDs zu merken und dann die Anzahl der IDs auf diesem Display als Zoll darzustellen. Ging nicht so wirklich, ich bin ständig in Speicherprobleme gelaufen. Vielleicht jemand mit besseren Programmiers oder der das dann vielleicht noch effizienter bauen kann. Dann ist es nicht wirklich eine sinnvolle Anwendung möglich, außer so eine Demonstration. Was auch ein Problem ist, wir können die IDs in dem Gerät hier nicht wirklich speichern, wir haben kein Speicher und schon gar keinen externen Speicher und wir können uns natürlich dann auch nicht mit irgendwelchen Servern verbinden, wo wir infiziert, die IDs der Infizierten abrufen, das wird hier alles nicht gehen, weil das Teil hat keinen Wifi. Andere Plattformen haben das und wenn ich da jetzt gerade mal an unsere Roboter denke, die da unten ist, die Plattform, die können das, dieser ESP. Wenn wir so was mit zum Gerät bauen wollen, haben wir natürlich dann ganz schnell Herausforderungen. Eine größte Herausforderung wären natürlich den Benutzerinterface. Auf dem Gerät hier, mit den zwei Buttons in diesem 5x5 Matrix kann ich nicht wirklich viel machen. Da kann ich niemand informieren, da kann ich nicht groß anzeigen, nichts steuern, nichts einstellen. Das sind dann schon noch Sachen, die dazu sind. Die Erzeugung der ID, ja, die soll ja zufällig sein, die sollte wirklich zufällig sein, die soll ja keine Rückschlüsse auf uns als Person oder auf den Träger des Geräts als Person ermöglichen. Das wäre eine Herausforderung und dann noch die Regel, dass mit der ID auch die Hardware-Adresse geändert wird. Und das ist jetzt die Frage, unterstützt das jedes Gerät, was ich hier, die Hardware-Adresse wirklich ändern. Ich hatte es jetzt schon angedeutet, dass da unten unsere Roboter rumfahren, die natürlich mehr können. Oder habe ich mir jetzt noch was Böses ausgedacht? Diese Roboter haben eine Kamera. Ihr könnt ja alle im Stream sehen. Vielleicht könnte man also etwas wie Gesichtserkennung machen. Die haben eine SD-Card, ich kann also einen Einschub dafür, ich kann Daten speichern, ich kann ID's speichern, die haben dieses Bluetooth-Energies oder dass ich dort auch so eine Signale empfangen und senden kann. Sie haben WLAN, ich kann mich mit dem Netz verbinden. Mit diesem Bluetooth und dem WLAN könnte ich natürlich auch scanen, was laufen für Leute rum. Das wird das Geschäfte bösartischerweise machen. Ich könnte nachschauen, welche WLANs suchen, die Geräte, die Leute mit sich haben. Was sind die Hardware-Adressen, die dort benutzt werden und das sind damit gekobbelt. Und ich könnte damit ziemlich gut Leute wieder identifizieren. Ich könnte noch ein GPS-Empfänger an die Roboter anbauen. Ich könnte wirklich Geo-Kordinaten da erfassen und speichern und dann hätte ich ein ganz böses Gerät und könnte da ganz schön viel Schapernack machen und Leute trecken. Was wir natürlich nicht wollen, deswegen ist das kein guter Vorschlag. Deswegen bleibt mir lieber dabei, wir benutzen so eine Technologie die Zeit in unserem Utopia zu überstehen, trotz Viren Last. Dankeschön. Ja, genau, auch an dich. Ganz herzlichen Dank hier. Ich gucke jetzt gerade mal nach. Mir sind keine Fragen vorbeigekommen aus dem Chat. Aber ein sehr interessanter Vortrag und vielleicht ergibt sich hier irgendwas zum Kongress, dass man die Roboterplattform mit interessante Dinge macht. Okay. Alles klar, vielen Dank.