Benutzer-Werkzeuge

Webseiten-Werkzeuge


digitalisierung:intro

Vortrag Digitalisierung

Mein CV (Kurzform)

Klaus Zerbe

  • geboren 1956 und seitdem lebend in Mainz
  • nach Abi 1977 Studium der Digitaltechnik an der THD
  • Tätigkeit als Softwareentwickler und DevOp bis zur Verrentung 2019
  • 1986-2001 ständiger Mitarbeiter der Zeitschrift c't
  • Gründungsmitglied des Computer Club Mainz 1982

Ein düsterer Hintergrund der "Digitalisierung"

TL;DR (to long - don't read)

Der folgende Abschnitt (bis zum Praxisteil) ist eine kritische Betrachtung der Geschichte der Digitalisierung zur Entscheidungsfindung für die Ausbildung künftiger Generationen - um die bislang gemachten Fehler künftig zu vermeiden.

  • 1880 konzipiert Herman Hollerith ein Lochkartensystem für das U.S. Census Bureau (Volkszählungen)
  • 1910 Willi Heidinger gründet Deutsche Hollerith Maschinen Gesellschaft (DEHOMAG)
  • 1924 Thomas J Watson gründet die International Business Machines (IBM)
  • 1933 In Dachau errichten Nazis ein KZ und initiieren eine Volkszählung mit dem Hollerith System
  • dazu finanziert Watson den Ausbau der DEHOMAG und eine IBM-Fabrik in Deutschland
  • mit dem Hollerith System wurden auch in anderen europäischen in der Nazizeit besetzten Ländern „Volkszählungen“ durchgeführt, die den Faschisten erst den ersten „industriellen Massenmord“ der Geschichte ermöglichten.

Quelle: de:IBM_und_der_Holocaust

  • Nach den Weltkriegen baut IBM ein Weltmonopol der Informationstechnologie auf
  • eine zweite industrielle Revolution erschüttert den „Arbeitsmarkt“und bewirkt gesellschaftlichen Umbruch
  • DV-Experten bilden unter Vorwänden wie Sicherheit eine „Elite“ die strikte Geheimhaltung praktiziert
  • ab 1979 „Rasterfahndungen“ zur Bekämpfung des „linken Terrors“ der RAF und weitere Volkszählungen
  • ab den 1970ern gerät durch Mikroelektronik das IBM-Monopol in Schwierigkeiten, weil Computerhardware massentauglich billig wird
  • 1971 stellt Intel den ersten Mikroprozessor 4004 vor, der dann über den 8008 zum 8080 und 8086 weiterentwickelt wird, über den Intel sich später die heutige Monopolstellung aufbaut
  • 1977 werden auf der CES in Las Vegas erste fertig aufgebaute „Heimcomputer“ von Radioshack, Commodore und Apple vorgestellt
  • Erst 1981 reagierte IBM mit dem PC auf die unerwartete Popularität der Heimcomputer, die ganz neue Anwendungsfelder (etwa im Multimedia- und Grafikbereich) massentauglich machten
  • in den frühen 80ern erreichten noch billigere Heimcomputer (ab umgerechnet 50€ für den Sinclair ZX80) , vor allem aber Commodore's C64 eine erste Generation junger „digital natives“.

Quelle: :de:Heimcomputer

  • Im privaten und danach auch professionellem Umfeld entstanden neue Monopole, vornehmlich um Nachbauten von IBM's PC und Software von Microsoft (DOS, Windows und Office)
  • Die „explosive Ausbreitung“ privater Computertechnologie wirkte sich auf Kommunikationstechnologien und Medien auszuwirken. Nach Telefonmodems und Mailboxen setzen sich die 1981 im militärischem Arpanet entwickelten Protokolle um TCP und IP als „Internet“ mit Diensten wie dem Worldwide Web und Mail auf breiter Basis durch und verdrängten die klassische Medienrezeption.
  • Wegen Fehleinschätzungen blieb das Microsoft-Monopol auf Desktop-Computer (PCs) beschränkt und um Mobilgeräte (Smartphones und Tablets) entstanden neue Monopole und Massenbewegungen wie Apple, Amazon, Google, Facebook und Twitter, die große gesellschaftliche Auswirkungen hatten.
  • Auch wenn wegen breiter Verfügbarkeit von Heimcomputern, Smartphones und dem Internet Wunschvorstellungen einer Demokratisierung und einem „globalen Dorf“ geweckt wurden, blieben letztlich nur Abhängigkeiten von mächtigen Monopolkonzernen und immer neue Elitenbildung dabei heraus.

Quelle: :de:Internet

  • die neuen Eliten und die Kommerzialisierung via Internet-Infrastruktur führten zu einer digitalen Kluft. Menschen wurden als reine „Anwender“ abhängig von Geräten und Diensten, andere bekamen gar keinen Zugang oder verloren sich in den „Filterblasen“ der Dienstanbieter
  • das zu Zeiten der Homecomputer aufgebaute technische Wissen beschränkte sich wie zu Zeiten der Großrechner auf eine elitäre von einigen Monopolisten kontrollierten Gruppe
  • Etwa ab 2005 entstanden deshalb Initiativen um sehr kostengünstige Plattformen wie Arduino, Raspberry Pi und BBC micro:bit um Kindern und Jugendlichen wie einst zu Zeiten der Homecomputer wieder technische Grundlagen zu vermitteln
  • einige Staaten - vor allem China - griffen diese Initiativen auf und baute sie in ihr Bildungssystem ein und beauftragte die Industrie mit einer Massenproduktion entsprechender, sehr günstiger Lehrmaterialien. Das hatte eine wahrlich durchschlagende „Kaderwirkung“ und brachte China an die Spitze Digitalisierungs- spezifischer Industrien.
  • eine mögliche Schattenseite dieser digitalen „Instrumentalisierung“ ist ein Verlust jeglicher Privatsphäre in einem :de:Sozialkredit-System mit totaler Kontrolle aller persönlichen Aktivitäten der Bürger.

Generationenkonflikt

Die Geschichte der Digitalisierung verläuft in Cyclen. Zuerst entdecken Wissenschaftler eine neue Technologie, die von findigen Ingenieuren und Tüftlern zu neuen Produkten umgesetzt wird. Ab einer gewissen Popularität der Produkte entstehen lukrative Geschäftsmodelle und Märkte und der Wettbewerbsdruck behindert einen freien Austausch von Know-How (Urheberrechte). Wettbewerb und Konsolidierung führen zu Oligopolen und nicht selten zu einem Monopol, das im Interesse der (eigenen) Sicherheit vom Monopolisten mit allen Mitteln verteidigt wird- vor allem gegen Quereinsteiger, denen der Zugang auf das Know How einer handverlesenen Elite verwehrt bleibt. Die Abschottung macht Oligopole aber schwerfällig bei der Einführung neuer Technologie - auch wenn hier eigene Forschung betrieben wird oder Unternehmen aufgekauft werden, sind Quereinsteiger agiler in der Umsetzung neuer Technologien. Das führt dann zu einem Generationswechsel, bei der alle auf der Strecke bleiben, die abhängig von der alten Technik sind.

Beispiele:

Basistechnologie alte Produkte neue Technologie neue Produkte
elektromechanische DV Hollerith Maschinen diskrete Elektronik (Transistoren) Großrechner
Transistoren Großrechner integrierte Schaltkreise ICs Minicomputer, Prozessrechner
TTL ICs Minicomputer MOS Technologie / Mikroelektronik Homecomputer + PCs
Mikroelektronik PCs IP und Funktechnologie Mobil- und Cloud-Computing
Mobil/Cloud Technologie Smartphones Robotertechnologie, Sensorik autonome Fahrzeuge und Drohnen
Robotertechnologie Drohnen KI (z.B. neuronale Netze) und Quantencomputer Androiden

Dabei überleben Monopolisten wie z.B. IBM und Microsoft, aber Wettbewerber bleiben (weitgehend) auf der Strecke:

Geschäftsbereich einstige Marktführer
Großrechner Digital Equipment (DEC), Unisys (Sperry Univac), Control Data (CDC)
Minicomputer Wang, Nixdorf, Honeywell, Prime
Heimcomputer Commodore, Radioshack, Atari, Amstrad, Sinclair
PC- (Netz-)Technik Novell, Compaq, Borland, Lotus, Ashton Tate, Digital Research, Corel
mobile Technologien (PDAs und Smartphones) Palm, Psion, Nokia, Microsoft

Ausbildung der nächsten Generation TL;DR END

Auch wenn der aktuelle Arbeitsmarkt es „fordert“, sollte man Kinder / Jugendliche nicht auf die Produkte des aktuellen Monopolisten prägen und von diesen abhängig machen - wie es lange z.B. mit PC Desktop-Software (Windows) geschah. Für die Folgegeneration ist das eine sichere Sackgasse ins Prekariat. Auch ein „anfixen“ auf Smartphones ist überflüssig (das passiert auch so schon). Die heutigen Kids werden wohl später mit autonomen Robotern, Drohnen und künstlicher Intelligenz konfrontiert und sollten spielerisch auf deren Technik inklusive aller Macken und Begrenzungen vorbereitet werden und deren Grundlagen verstehen lernen.

Dabei ist ein spielerischer Umgang mit Sensoren, Aktoren und einfachen Microcontrollern äußerst hilfreich. Gerade die Fehlerhaftigkeit eher unpräziser und weit von jeder Perfektion weit entfernter Hard & Software vermeidet Vorstellungen von technischer Unfehlbarkeit, wie sie gegenüber Computern und automatisierten Systemen leider häufig aufgetreten sind. Die Schüler können so auch eher abschätzen, was wirklich „künstliche Intelligenz“ ist und wie strunzdumm die meisten Produkte sind, die mit diesem Label beworben werden. Mögen uns Fehleinschätzungen wie bei Joseph Weizenbaums „Psychonalytiker“- Bot :de:ELIZA bei unseren Kindern erspart bleiben.

Praktische Vorführungen

Anwendung der Arduino Plattform

Arduino "Nano" - vielseitig und billig

  • zwar „nur“ 32 KB Flash-Speicher, 2 KB (!) Arbeitsspeicher und 1 KB persistenter Speicher
  • aber bis zu 14 digitale Ein/Ausgänge, 8 analoge (Meß-)Eingänge, 6 PWM Ausgänge (etwa für Servos)
  • direkt via USB- Anschluss programmierbar
  • kaum weitere Bauteile nötig
  • Preis um die 3-4 € (bei kleinen Stückzahlen)

Ausstattung populärer Microcontroller

Hersteller Kennzeichnung Prozessor Taktrate Programmspeicher (Flash) Arbeitsspeicher GPIO Messeingänge Kommunikation
Microchip/Atmel ATtiny85 AVR (8 bit) 16 MHz 8 KB 512 B 6 3 async. seriell
Microchip/Atmel ATmega88 AVR (8 bit) 16 MHz 8 KB 512 B 23 6 async. seriell
Microchip/Atmel ATmega328 AVR (8 bit) 16 MHz 32 KB 1 KB 23 8 async. seriell
Microchip/Atmel ATmega64 AVR (8 bit) 16 MHz 64 KB 4 KB 53 8 async. seriell
Microchip/Atmel ATmega2560 AVR (8 bit) 16 MHz 256 KB 16 KB 86 16 async. seriell
espressif ESP8266 Xtensa LX106 (32 Bit) 80 MHz 512 KB - 4 MB 80 KB 17 1 WLan
espressif ESP32 Xtensa LX6 (32 Bit) 160 MHz 4 MB - 16 MB 320 KB 34 18 WLan, Bluetooth

Neben der seriellen Schnittstelle für Ansteuerung / Logging unterstützen alle obigen Controller Peripherie- Busse wie I2L, SPI, PWM und ggf. CAN. Die espressif Bausteine bieten auch direkt Funkverbindungen per WLan bzw. Bluetooth und ergänzen vorhandene Designs mit AVR - Technologie um ein „Modem“ (US-Robotics AT-Kommandos) zur seriellen Schnittstelle der AVRs.

Für Netzwerk-Softwarestacks (IP) zu kleiner Arbeitsspeicher und eine unzureichende Prozessorleistung der AVRs erlaubt keine drahtlosen Verbindungen zu modernen Computern und Smartphones. Diese Lücke können die espressif Controller schließen, auch wenn auch nicht die Leistungswerte aktueller Mobilgeräte erreichen können. Wenn Multimedia, Grafik und andere Rechen- und Daten-intensive Anwendungen ins Spiel kommen, kann man auf Controller mit ARM- Prozessorkernen (wie die RaspberryPI Boards) ausweichen. Deren Leistung entspricht der aktueller Mittelklasse -Smartphones und -Tablets, aber haben auch den Vorteil einiger GPIO- Anschlüsse (auch längst nicht so viele wie einer der „großen“ AVRs. Außerdem verwenden die Raspberries meist kein Realtime-fähiges Betriebssystem. Das Multithreading bzw. Multitasking von Betriebssystemen wie Linux oder Windows kann die Steuerung zeitkritischer Peripherie stark stören. AVR- basierende Steuerungen können ein exakt bestimmbares Laufzeitverhalten sicherstellen.

Die einfache Programmierbarkeit über den eingebauten USB- Anschluss in Verbindung mit einer vereinfachten, objektbasierten Version der Programmiersprache C++ macht es im wahrsten Sinn des Wortes kinderleicht, Schaltungen wie elektronisches Spielzeug mit Arduinos aufzubauen.

Dies wurde für den Einsatz im Schulunterricht (vor allem bereits in Asien) genutzt, wobei ein Markt für sehr preiswerte Kits entstanden sind. Als Beispiel möchte ich einen einfachen bionischen Roboter in Form einer Eidechse zeigen, die mit einer Infrarot-Fernsteuerung kontrolliert werden kann. Solch ein Kit kostet komplett mit allen benötigten Kleinteilen und sogar Werkzeug um die 50€. Mit den mitgelieferten Teilen und evtl. hinzugekauften Kleinteilen begrenzt nur die Phantasie die weiteren Ausbaumöglichkeiten und Lern/Lehrmöglichkeiten sowohl was Elektronik als auch Programmierung angeht. Solche Lehrprojekte laufen international unter dem Slogan STEAM (Science, Technology, Engineering, Art & Mathematics) und ergänzen den klassischen naturwissenschaftlichen Unterricht um Mechatronik und Grundlagen der Robotik.

Servosteuerung mit dem Arduino

Für Kinder und Neueinsteiger kann die Arduino- Programmierung mit der visuellen Programmiersprache ArduBlocks weiter vereinfacht werden. Hier werden per Drag & Drop Blöcke zu Programmabläufen (Algorithmen) zusammengeschoben, wobei Form und Farbe der Blöcke syntaktische Programmierfehler verhindern und ein Grundverständnis für Datentypen und Algorithmen vermittelt wird. Zur weiteren Vereinfachung sind die Blöcke in der Muttersprache des Lernenden beschriftet.

Der folgende Beispielcode steuert einen Servo, wie er bei dem hier vorgestellten Spielzeug oft als Antrieb dient, um sich ferngesteuert oder autonom in Innenräumen zu bewegen (Feuchtigkeit verträgt die Elektronik nicht).

ArduBlocks übersetzt den visuellen Code dann in den C++ Dialekt des Arduino, der als Untermenge des vollständigen GNU C++ Compilers auch sehr einfach zu benutzen ist. Dieser C++ Code wird vor dem „Hochladen“ dem Schüler angezeigt und intern noch vom GNU C++ Compiler in den Maschinencode des Atmel AVR Microcontrollers übersetzt, der das Hauptelement eines jeden Arduinos darstellt. Der Maschinencode wird dann in den Flash- Speicher (wie bei einer SD-Speicherkarte) geschrieben und der Arduino startet dann direkt das neue Programm.

Das Programm schaltet auch noch die intern an Pin 13 verbundene Leuchtdiode (Led) an, wenn mehr als eine halbe Drehung des Servoarms erfolgt ist.

Das folgende Photo zeigt diesen Versuchsaufbau mit einem an einen Arduino Nano angeschlossenen Servo und einem Speicher-Oszilloskop.Das Oszilloskop ist an den Steuerpin des Servos angeschlossen und misst die Impulse (Pulsweitenmodulation PWM), welche den Winkel für den Servoarm festlegen. Der Schüler erhält so essentielles Wissen, wie auch viele „großen“ Roboter angetrieben und über Impulse gesteuert werden.

Die weit reichenden Möglichkeiten der in den Arduinos verbauten Atmel AVR- Microcontroller zeigt auch das Oszilloskop selbst, dessen Kernkomponente ebenfalls ein Atmel atMega 64 Controller ist. Dieser hat statt der 32 KB des im Arduino Nano verbauten atMega 328 zwar auch nur 64 KB Flash Speicher, 4 KB Arbeitsspeicher und 2 KB persistenten Speicher, aber dafür ganze 53 programmierbare Anschlusspins (GPIO). Der größte Arduino (Arduino Mega) enthält einen AtMega 2560 mit 256 KB Flash- Speicher und wird gerne für 3D Drucker, Fräsmaschinen, Lasercutter und andere Werkzeugmaschinen verwendet. Dieses kleine Speicheroszilloskop gibt es auch in Kit- Varianten für Preise unter 50€ und der Atmel atMega 64 reicht immerhin aus, um eine graphische Bedienoberfläche mit einem farbigen Touch- Display zu ermöglichen.

Autonomes Fahren und Fliegen

Drohnen, also Roboter, die autonom einem Parcours folgen oder sich gar „frei“ in der Umwelt bewegen, werfen vor allem Orientierungsprobleme auf. Sie müssen Hindernisse erkennen und ihnen ausweichen sowie Weg und Standort kennen. Bei fliegenden Drohnen kommt neben der Erkennung der Flughöhe auch noch die Erkennung der eigenen Orientierung (Lage) und Geschwindigkeit dazu, was durch Wind und andere, meist verwirbelte Luftströmungen erschwert wird. Reichen für durch eine durch ein Gebäude fahrende Drohne bereits Bodenmarkierungen zur Positionserkennung aus, so ist es für eine Flugdrohne in einem Gebäude schon sehr schwer, überhaupt stabil an einem Standort zu schweben.

Ich habe zu Flugdrohnen bzw. UAVs (unpiloted aerial vehicles) hier bereits einen ausführlichen Artikel verfasst, möchte aber hier die wichtigsten „Orientierungshilfen“ zusammenfassen:

Aufgabe Komponente Funktion
Lagebestimmung inertial measurement unit (IMU) Trägheitsnavigation (künstlicher Horizont bei Flugzeugen)
relative Höhenmessung Barometer misst Veränderung des Luftdrucks, um Flughöhe zu halten
Flugrichtung bestimmen Magnetkompass erkennen der Nord-Richtung,um die Richtungsvorgabe von Fernsteuerung oder Karte richtig zu interpretieren
Absolute Flughöhe Infrarot-Entfernungsmesser bestimmt die Flughöhe über dem Boden
Hinderniserkennung Ultraschall/Infrarot-Sensoren oder Kameras Sensoren an allen 6 Seiten der Drohne um Kollisionen zu vermeiden
visuelle Positionserkennung (VPS) Bodenkamera vegleicht Bodenmuster um Drift zu erkennen und gegenzusteuern
absolute Kartenposition erkennen GPS GPS/Glonass Navigationssystem - funktioniert nur bei Sichtverbindung im Freien

Da ohne Sichtverbindung zu mindestens 8 GPS-Satelliten keine exakte Navigation möglich ist, versagt GPS-Navigation in Gebäuden, Tunneln, dichtem Wald etc. Trägheitsnavigation kann nur Krafteinwirkung (z.B. Schwerkraft) erkennen und z.B. auch kein Driften im Wind. An Wänden, Boden, Decken und anderen Hindernissen erzeugt ein UAV Luftwirbel, wodurch auch an der Wand/Decke ein Unterdruck entsteht (Bernoulli Effekt) der die Drohne zum Hindernis zieht. Es ist deshalb sehr gefährlich, Drohnen in Gebäuden zu benutzen, wenn nicht alle der oben genannten Einrichtungen (außer GPS, auch Attitude-Modus genannt) sehr gut funktionieren oder ein erfahrener Pilot ständig für eine stabile Fluglage sorgt.

Visuelle Positionserkennung funktioniert beispielsweise nur bei guter Beleuchtung und gemustertem Boden und nicht über einfarbigen oder bewegten Flächen (wie Wasser), Kompanden (und die IMU) sind empfindlich gegenüber elektromagnetischen Feldern und metallischen Strukturen (Stahlwände, Masten), Hinderniserkennungen „übersehen“ schmale Hindernisse (wie gespannte Drähte oder Baumzweige) und haben eine sehr begrenzte Reichweite, Funkverbindungen funktionieren nur, wenn noch freie Kanäle vorhanden sind (insbesondere bei WLAN).

Die Ryze/DJI Tello

Bei der Vielzahl heute recht preiswerter Flugdrohnen gibt es kaum eine, die in einem Gebäude (ohne Piloteneingriff) stabil in der Luft schweben kann. Da die meisten noch nicht einmal eine Bodenkamera besitzen, können sie ihre Position im Raum nicht sicher bestimmen und driften ohne Piloteneingriff zur nächstbesten Wand, wo sie zerschellen oder abstürzen. An Drohnen unter 100€ scheint es hier bislang nur die DJI/Ryze Tello zu geben, wenn es um ein stabiles Flugverhalten geht. Diese hat neben barometrischer und Infrarot- Höhenmessung noch eine Bodenkamera und einen leistungsfähigen Mikrocontroller (Movidius Myriad2 VPU), der Bodenmuster mit einem neuronalen Netz auf Driftbewegungen prüft und diese ausgleicht. Die Tello schwebt in einem gut beleuchteten Raum also so stabil, dass man mit ihr auch Parcours in Innenräumen abfliegen kann.

Das erlaubt auch (begrenzt- Hinderniserkennung hat sie nicht!) ein autonomes Fliegen in Gebäuden. Eine Programmierschnittstelle erlaubt die Programmierung solcher Parcours auch mit visueller Programmierung. Eine „Tello EDU“ Version erlaubt Schülern die Steuerung ganzer Schwärme von Tello Drohnen in programmierten Formationen über diese Programmierschnittstelle:

Zur Tello EDU gelieferten Programmierschnittstelle gibt für jede Tello und andere autonom steuerbaren Drohnen auch Alternativen wie DroneBlocks, wie das folgende Beispiel zeigt - natürlich kann die SDK auch mit konventionellen Programmiersprachen wie Python, Javascript oder genutzt weren (etwa mit der GOBOT Bibliothek.

Ein einfaches DroneBlocks Programm

Dies einfache DroneBlocks Programm startet z.B. eine Tello Drohne, lässt sie 80cm aufsteigen und ein Quadrat mit 80cm Kantenlänge abfliegen, wobei sie nach jeder Strecke noch einen Salto rückwärts fliegt (flip backward) und dann wieder landet:

Droneblocks basiert auf Google's visueller Programmierschnittstelle Blockly, die im Chrome-Browser auf allen Geräten (PC, Tablet, Android-Smartphone)verfügbar ist, die diesen Browser anbieten. Hier wird der visuelle Code in Javascript übersetzt, wofür auch eine Tello SDK existiert.

Zur Vorführung ähnlich dem Beispiel oben benutze ich ein kleines Python-Programm, weil DroneBlocks leider ohne eine Cloud-Anbindung zu einem derzeit nicht aktivem Server nicht verwendbar ist.

Visuelle Programmiersprachen

Visuelle Programmierung hat eine lange Tradition, vor allem im Erziehungsbereich. Aufgrund relativ hoher technischer Anforderungen (Grafik-Editoren) dauerte es lange bis auch für die Zielgruppe komfortable und intuitiv verwendbare Werkzeuge verfügbar waren. So erfolgte erst 2007 mit dem noch in Smalltalk entwickelten Scratch der Durchbruch. Moderne Tools laufen allerdings meist in Webbrowsern, auch die aktuelle Version 3 von Scratch. Neben Scratch gibt es eine Vielzahl anderer Tools die sich in der Gestaltung aber stark an Scratch orientieren, etwa auch die hier vorgestellten Varianten ArduBlock und DroneBlocks. Das folgende Bild zeigt den Editor der aktuellen Scratch-Version 3:

Diskussion

Geben Sie Ihren Kommentar ein. Wiki-Syntax ist zugelassen:
 
digitalisierung/intro.txt · Zuletzt geändert: 2020/02/06 16:46 von klaus