Datenschutz und Schulgesetz

Das wird jetzt viel Text. Ich stel­le hier ein­mal die aus mei­ner Sicht wich­tigs­ten Rege­lun­gen zum Daten­schutz in den Schul­ge­set­zen (zusätz­lich ergän­zen bestimm­te Erlas­se im Ein­zel­fall die Bestim­mun­gen) von Nie­der­sach­sen und Schles­wig-Hol­stein gegenüber.

1. Nie­der­sach­sen ( http://www.nds-voris.de/jportal/?quelle=jlink&query=SchulG+ND+%C2%A7+31&psml=bsvorisprod.psml&max=true )

Nie­der­säch­si­sches Schulgesetz
(NSchG)
in der Fas­sung vom 3. März 1998

§ 31 Ver­ar­bei­tung per­so­nen­be­zo­ge­ner Daten

1) Schu­len, Schul­be­hör­den, Schul­trä­ger, Schü­ler­ver­tre­tun­gen und Eltern­ver­tre­tun­gen dür­fen per­so­nen­be­zo­ge­ne Daten der Schü­le­rin­nen und Schü­ler und ihrer Erzie­hungs­be­rech­tig­ten (§ 55 Abs. 1) ver­ar­bei­ten, soweit dies zur Erfül­lung des Bil­dungs­auf­trags der Schu­le (§ 2) oder der Für­sor­ge­auf­ga­ben, zur Erzie­hung oder För­de­rung der Schü­le­rin­nen und Schü­ler oder zur Erfor­schung oder Ent­wick­lung der Schul­qua­li­tät erfor­der­lich ist. Per­so­nen­be­zo­ge­ne Daten der Schü­le­rin­nen und Schü­ler und ihrer Erzie­hungs­be­rech­tig­ten dür­fen auch den unte­ren Gesund­heits­be­hör­den für Auf­ga­ben nach § 56 und den Trä­gern der Schü­ler­be­för­de­rung für Auf­ga­ben nach § 114 über­mit­telt und dort ver­ar­bei­tet wer­den, soweit dies für die Wahr­neh­mung der jewei­li­gen Auf­ga­be erfor­der­lich ist.

(2) Schu­len dür­fen auch die­je­ni­gen per­so­nen­be­zo­ge­nen Daten von Kin­dern in Kin­der­gär­ten und deren Erzie­hungs­be­rech­tig­ten (§ 55 Abs. 1) ver­ar­bei­ten, die in Kin­der­gär­ten bei der Wahr­neh­mung vor­schu­li­scher För­der­auf­ga­ben erho­ben und an Schu­len über­mit­telt wer­den, soweit die Ver­ar­bei­tung zur Erzie­hung oder För­de­rung der Kin­der in der Schu­le erfor­der­lich ist.

(3) Die Rech­te auf Aus­kunft, Ein­sicht in Unter­la­gen, Berich­ti­gung, Sper­rung oder Löschung von Daten sowie das Wider­spruchs­recht nach § 17a des Nie­der­säch­si­schen Daten­schutz­ge­set­zes wer­den für min­der­jäh­ri­ge Schü­le­rin­nen und Schü­ler durch deren Erzie­hungs­be­rech­tig­te (§ 55 Abs. 1) ausgeübt.

(4) Schu­len, Schul­be­hör­den und die Schul­in­spek­ti­on dür­fen Per­so­nal­da­ten (§ 88 Abs. 1 des Nie­der­säch­si­schen Beam­ten­ge­set­zes) aller an der Schu­le täti­gen Per­so­nen auch ver­ar­bei­ten, soweit es zur Erfor­schung und Ent­wick­lung der Schul­qua­li­tät erfor­der­lich ist.

2. Schles­wig-Hol­stein ( http://www.gesetze-rechtsprechung.sh.juris.de/jportal/?quelle=jlink&query=SchulG+SH+%C2%A7+30&psml=bsshoprod.psml&max=true )

Schles­wig-Hol­stei­ni­sches Schulgesetz
(Schul­ge­setz – SchulG)
Vom 24. Janu­ar 2007*

§ 30 Erhe­bung und Ver­ar­bei­tung von Daten

(1) Per­so­nen­be­zo­ge­ne Daten der Schü­le­rin­nen, Schü­ler und Eltern dür­fen von den Schu­len, den Schul­trä­gern und Schul­auf­sichts­be­hör­den erho­ben und ver­ar­bei­tet wer­den, soweit dies zur Erfül­lung ihrer Auf­ga­ben erfor­der­lich ist.

Es sind dies

1. bei Schü­le­rin­nen und Schülern:
Vor- und Fami­li­en­na­me, Tag und Ort der Geburt, Geschlecht, Adress­da­ten (ein­schließ­lich Tele­fon und E‑Mail-Adres­se), Staats­an­ge­hö­rig­keit, Aus­sied­ler­ei­gen­schaft, Her­kunfts- und Ver­kehrs­spra­che, Kon­fes­si­on, Kran­ken­ver­si­che­rung, Leis­tungs- und Schul­lauf­bahn­da­ten, Daten über das all­ge­mei­ne Lern­ver­hal­ten und das Sozi­al­ver­hal­ten, Daten über son­der­päd­ago­gi­schen För­der­be­darf, soweit sie für den Schul­be­such von Bedeu­tung sein kön­nen, die Ergeb­nis­se der schul­ärzt­li­chen, schul­psy­cho­lo­gi­schen und son­der­päd­ago­gi­schen Unter­su­chun­gen, bei Berufs­schü­le­rin­nen und Berufs­schü­lern die Daten über Vor­bil­dung, Berufs­aus­bil­dung, Berufs­prak­ti­kum und Berufs­tä­tig­keit sowie die Adress­da­ten (ein­schließ­lich Tele­fon) des Aus­bil­dungs­be­trie­bes oder der Praktikumsstelle;

2. bei Eltern:
Name, Adress­da­ten (ein­schließ­lich Tele­fon und E‑Mail-Adres­se). Schü­le­rin­nen, Schü­ler und Eltern haben die erfor­der­li­chen Anga­ben zu machen. Sie sind auf die Rechts­grund­la­ge für die Erhe­bung und Ver­ar­bei­tung der Daten auf­merk­sam zu machen.

(2) Die Daten der Schul­ver­wal­tung dür­fen aus­schließ­lich mit in der Schu­le befind­li­chen Daten­ver­ar­bei­tungs­ge­rä­ten des Schul­trä­gers ver­ar­bei­tet wer­den.

[…]
(10) Die mit Ein­wil­li­gung der Schü­le­rin­nen, Schü­ler und Eltern erho­be­nen Daten dür­fen nur zu dem Zweck benutzt wer­den, zu dem sie von den Betrof­fe­nen mit­ge­teilt wor­den sind. Eine ander­wei­ti­ge Ver­wen­dung bedarf einer erneu­ten Einwilligung.

(11) Soweit es zur Erfül­lung der sich aus die­sem Gesetz erge­ben­den Auf­trä­ge der Schu­le und der Schul­auf­sicht sowie zur Wahr­neh­mung gesetz­li­cher Mit­wir­kungs­rech­te erfor­der­lich und unter Wah­rung der über­wie­gen­den schutz­wür­di­gen Belan­ge der Betrof­fe­nen mög­lich ist, regelt das für Bil­dung zustän­di­ge Minis­te­ri­um durch Verordnung:

1. den zuläs­si­gen Umfang der Ver­ar­bei­tung von Daten,
2. die Daten­über­mitt­lung ein­schließ­lich der Über­mitt­lung zu sta­tis­ti­schen Zwecken,
3. die Sper­rung, Löschung und Auf­be­wah­rung von Daten,
4. die Datensicherung,
5. die Daten der Schul­ver­wal­tung und sons­ti­gen per­so­nen­be­zo­ge­nen Daten, die durch Lehr­kräf­te außer­halb der Schu­le ver­ar­bei­tet wer­den dürfen,
6. die auto­ma­ti­sier­te Datenverarbeitung,
7. die für sta­tis­ti­sche Erhe­bun­gen maß­ge­ben­den Erhe­bungs- und Hilfs­merk­ma­le, den Berichts­zeit­raum und die Periodizität,
8. die für die Auf­ga­be nach Absatz 4 Satz 2 zustän­di­ge Stelle,
9. Zeit­punkt und Stand der nach Absatz 5 zu über­mit­teln­den Daten.

(12) Rege­lun­gen in ande­ren Rechts­vor­schrif­ten über die Erhe­bung und Ver­ar­bei­tung von Daten blei­ben unbe­rührt, soweit sich nicht aus den vor­ste­hen­den Bestim­mun­gen etwas ande­res ergibt.

Mein per­sön­li­cher Kommentar

Das Gesetz in Schles­wig-Hol­stein ist auf den ers­ten Blick wesent­lich enger und restrik­ti­ver gefasst. Ich weiß, dass es unter Mit­wir­kung des ULD ent­stan­den ist. Es ist zudem wesent­lich aktu­el­ler. Eine Schu­le in Schles­wig-Hol­stein weiß aber sehr genau:

  • wel­che Daten sie ver­ar­bei­ten darf (z.B. dass der Beruf der Eltern nicht erfasst wird)
  • dass die­se Daten NICHT in einer Cloud lie­gen dür­fen (z.B. kei­ne digi­ta­len Klas­sen­bü­cher, wenn sie nicht im Hau­se gehos­tet werden)
  • mit wem sie unter wel­chen Vor­aus­set­zun­gen Daten aus­tau­schen darf
  • dass Eltern und Schü­ler die Anga­be bestimm­ter Daten nicht ver­wei­gern dürfen

Wenn der Dienst­herr die Ver­mitt­lung von Medi­en­kom­pe­tenz for­dert, benö­ti­gen Schu­len dafür einen rechts­si­che­ren Rah­men. Natür­lich fal­len in Schles­wig-Hol­stein dann z.B. durch Ver­la­ge ange­bo­te­ne Lern­stands­er­he­bun­gen weit­ge­hend flach. In Nie­der­sach­sen bleibt nach mei­nem Emp­fin­den vor allem eins: Gro­ße Ver­un­si­che­rung, zumin­dest bei mir.

Elternvorträge zur Handy- und Internetnutzung

Ich habe in den letz­ten Wochen zwei Vor­trä­ge zum The­ma Han­dy- und Inter­net­nut­zung vor jeweils ca. 60 Per­so­nen gehal­ten. Die Ver­an­stal­tun­gen wur­den in bei­den Fäl­len aus­gie­big bewor­ben – ein­mal sogar durch einen Radio­spot und es gab immer kon­kre­te Vor­fäl­le im Bereich „Sex­ting“, auf­grund derer ich von Kol­le­gen gefragt und ange­spro­chen wor­den bin. Ich nut­ze für den Vor­trag die­se Pre­zi, vor­wie­gend jedoch mich als Per­son und Din­ge wie Kon­takt zum Publikum:

Pha­se 1:

Ich stel­le mich in mei­nen Funk­tio­nen und Rol­len kurz vor: Medi­en­be­ra­ter, Leh­rer, Blog­ger und Inter­net­nut­zer, Fami­li­en­va­ter. Ich mache das bewusst.

Als Medi­en­be­ra­ter habe ich sehr viel mit unter­schied­li­chen Schu­len und Schul­for­men und deren spe­zi­fi­schen Her­aus­for­de­run­gen zu tun. Aus der „gym­na­sia­len War­te“ stellt sich man­ches etwas ein­ge­färbt dar.

Als Blog­ger erfah­re ich viel im und pro­fi­tie­re stark von „die­sem Inter­net“. Ich stel­le her­aus, dass mei­ne Art zu unter­rich­ten viel mit dem Netz zu tun hat.

Als Vater von gar nicht ein­mal so weni­gen Kin­dern (4,6,8,10,12 Jah­re) bin ich täg­lich mit Her­aus­for­de­run­gen im Bereich der „Bil­dung mit Medi­en“ kon­fron­tiert (wir bevor­zu­gen hier zu Hau­se übri­gens eine mög­lichst medi­en­ar­me Erzie­hung und fah­ren damit bis­her ganz gut – eigent­lich dürf­te es Men­schen wie mich nach Ansicht so man­cher Web2.0er gar nicht geben – mei­ne Jugend war weit­ge­hend frei von vir­tu­ell ver­mit­tel­ter Ver­net­zung bzw. Rea­li­tät, ich glau­be, dass ich das trotz­dem irgend­wie hin­be­kom­me). Gera­de im Umgang mit Eltern pro­fi­tie­re ich davon, zuneh­mend mehr eige­ne schul­pflich­ti­ge Kin­der zu haben.

Pha­se 2:

Im Wesent­li­chen geht es um drei Gedanken:

  1. Ein Han­dy ist kein Tele­fon. Kin­der und Jugend­li­che machen damit alles – außer zu tele­fo­nie­ren. Das ist für manch einen überraschend.
  2. Ein Han­dy ent­hält umfang­rei­che­re und sen­si­ble­re Infor­ma­tio­nen als das gute, alte Tage­buch. Dem­entspre­chend hef­tig wird es gegen Zugrif­fe oder Zugriffs­ver­su­che von außen ver­tei­digt wer­den. Man greift als Eltern­teil in einen essen­ti­el­len Teil des Lebens eines Jugend­li­chen ein, wenn man die Hand auf das Han­dy legt.
  3. Ein Han­dy wird tat­säch­lich zu einer Men­ge sehr nütz­li­cher Din­ge ver­wen­det, z.B. zu schu­li­schen Zwecken.

Pha­se 3:

Ich the­ma­ti­sie­re Sex­ting, Por­no­gra­phie und stell­ver­tre­tend für eine ganz Rei­he von „Ange­bo­ten“ auch Din­ge wie Anore­xie- und „Bor­der­line­fo­ren“ (als Sam­mel­be­griff für vir­tu­el­le Treff­punk­te von Men­schen mit dis­so­zia­ti­ven Stö­run­gen). Ich wei­se dar­auf­hin, dass kei­ne die­ser Erschei­nun­gen die Erfin­dung von Kin­dern und Jugend­li­chen, son­dern ledig­lich Adap­tio­nen aus der Erwach­se­nen­welt sind. Cyber­mob­bing las­se ich bewusst außen vor, da die­ses Feld schon inten­siv beackert wird.

Pha­se 4:

Ein Kern­ge­dan­ke ist der fol­gen­de: Nie­mand wür­de einen Vier­jäh­ri­gen auf einem Fahr­rad im Dun­keln einen unbe­kann­ten Weg fah­ren las­sen und dabei erwar­ten, dass alles glatt geht. Im über­tra­ge­nen Sin­ne pas­siert das aber mei­ner Ansicht nach oft im Bereich der Han­dy­nut­zung: Das Gerät liegt unter dem Weih­nachts­baum und das war es dann oft auch schon an Beglei­tung. Umge­kehrt wür­den nie­mand ernst­haft Kin­dern und Jugend­li­chen das Fahr­rad­fah­ren ver­bie­ten – dafür bie­tet es neben den Gefah­ren ein­fach zu vie­le Vorteile.

Pha­se 5:

Kern­ge­dan­ke: Auch der Umgang mit dem Han­dy braucht Beglei­tung und Inter­es­se. Die­ses Inter­es­se soll­te sich nie auch kon­kre­te Inhal­te, son­dern allen­falls auf Apps bezie­hen, weil das Han­dy eben hoch­gra­dig essen­ti­el­le Funk­tio­nen für eine Jugend­li­chen hat. Viel­leicht lässt sich so Stück für Stück Ver­trau­en auf­bau­en, so dass sich Kin­der mit anstö­ßi­gen Inhal­ten eher an Erwach­se­ne wenden.

Pha­se 6:

Mit ein paar Impul­sen ver­su­che ich nach ca. 45 Minu­ten ein Gespräch im Publi­kum zu initi­ie­ren. Dabei sind inter­es­san­te Din­ge gesche­hen, z.B. bemer­ken Eltern, dass sie mit ihren Pro­ble­men im Umgang mit die­sen Gerä­ten bzw. deren „Regle­men­tie­rung“ nicht allei­ne sind (es kom­men zu sol­chen Aben­den zumeist eh eher die enga­gier­ten Eltern). Es ist kei­ne Schan­de, hilf­los zu sein, kei­ne Patent­re­zep­te zu haben, da gera­de im Bereich des Inter­net gesell­schaft­lich und poli­tisch noch vie­les nicht aus­ge­han­delt ist. Die Hilf­lo­sig­keit ent­bin­det aber nicht davon, etwas zu tun. Die Fra­ge, ob es z.B. „gut“ ist, Nackt­bil­der wei­ter zu ver­tei­len, ist zunächst ein­mal ja kei­ne technische.

Ich kann auf sol­chen Ver­an­stal­tun­gen immer Visi­ten­kar­ten ver­tei­len und kom­me mit Schu­len in Kon­takt. Dar­aus erwächst dann manch­mal eine inten­si­ve­re Zusam­men­ar­beit. Vie­le für mich in mei­ner Arbeit rele­van­ten Akteu­re befin­den sich nicht täg­lich in „die­sem Inter­net“ und wären daher für mich dann nicht erreichbar.

 

Owncloud an bestehende Authentifizierungsysteme anbinden

Own­cloud bie­tet ab der Ver­si­on 6 neben den übli­chen inter­es­san­ten Fea­tures eine kol­la­bo­ra­ti­ve Text­ver­ar­bei­tung an, d.h. meh­re­re Benut­zer kön­nen genau wie bei Ether­pad oder Ether­pad lite gleich­zei­tig an einem Doku­ment arbei­ten. Die For­ma­tie­rungs­mög­lich­kei­ten sind dabei umfang­rei­cher als bei der Ether­pad­de­ri­va­ten, jedoch gegen­über Lösun­gen wir Goo­g­le­Docs noch recht rudi­men­tär. Für vie­le Anwen­dungs­fäl­le reicht es jedoch voll­auf. Wer möch­te, darf das hier nach Ein­ga­be eines Spitz­na­mens ger­ne ein­mal aus­pro­bie­ren. Own­cloud nutzt ODT als nati­ves Format.

Vie­le Schu­len möch­ten ger­ne Own­cloud nut­zen und ver­fü­gen oft schon über eine Schul­ser­ver­lö­sung. Idea­ler­wei­se bie­tet die­se bereits E‑Mailadressen für alle Schul­an­ge­hö­ri­gen über das IMAP-Pro­to­koll an. Das ist z.B. bei IServ der Fall – einer in Nie­der­sach­sen sehr ver­brei­te­ten Lösung. Durch zwei klei­ne Ände­run­gen muss kei­ne sepa­ra­te Nut­zer­ver­wal­tung in Own­cloud mehr betrie­ben wer­den, wenn bereits ein IMAP-Ser­ver im Schul­netz vor­han­den ist.

Es kann eine Grund­in­stal­la­ti­on von Own­cloud als Basis genom­men wer­den. Bei den Apps muss „Exter­nal user sup­port“ zuvor akti­viert wer­den. Eine Datei ist danach zu ändern, eine hinzuzufügen.

Zu ändern­de Datei

Name: config/config.php

Quell­code:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<?php
require_once(dirname(__FILE__).'/../apps/user_external/lib/imap_new.php');
 
$CONFIG = array (
  'instanceid' => '<hier_steht_schon_etwas>',
  'passwordsalt' => '<hier_steht_schon_etwas>',
  'datadirectory' => '<hier_steht_schon_etwas>',
  'dbtype' => 'mysql',
  'version' => '6.0.0.14',
  'dbname' => '<hier_steht_schon_etwas>',
  'dbhost' => 'localhost',
  'dbtableprefix' => 'oc_',
  'dbuser' => '<hier_steht_schon_etwas>',
  'dbpassword' => '<hier_steht_schon_etwas>',
  'installed' => true,
  'forcessl' => true,
  'user_backends'=>array(
   array(
      'class'=>'OC_User_IMAP',
      'arguments'=>array('{<server>:<port>/imap/ssl/novalidate-cert}')
   )
  ),
);

Kom­men­tar:
In Zei­le 2 wird der neu zu erstel­len­de Code (s.u.) ein­ge­bun­den, ab Zei­le 17 wird es inter­es­sant, vor allem in der Zei­le, die mit „argu­ments“ beginnt. Die Anga­ben für Ser­ver und Port sind mit den eige­nen Anga­ben zu fül­len. Ich brau­che für den IServ die Anga­be „nova­li­da­te-cert“, da es sich um ein selbst­si­gnier­tes Cert han­delt – daher zicken auch Apple­ge­rä­te ger­ne mit dem IServ, weil sie sich in der Feh­ler­mel­dung nicht klar aus­drü­cken. Nutzt man eine unver­schlüs­sel­te Ver­bin­dung, was allen­falls zu Test­zwe­cken dien­lich ist, sieht das z.B. so aus:

      'arguments'=>array('{meinserver.xy:143/imap}')

Hin­zu­zu­fü­gen­de Datei:

Name: apps/user_external/lib/imap_new.php

Quell­code:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
<?php
/**
 * Copyright (c) 2012 Robin Appelman <icewind@owncloud.com>
 * This file is licensed under the Affero General Public License version 3 or
 * later.
 * See the COPYING-README file.
 */
 
class OC_User_IMAP extends OC_User_Backend{
        private $mailbox;
 
        public function __construct($mailbox) {
                $this->mailbox=$mailbox;
        }
 
        /**
         * @brief Check if the password is correct
         * @param $uid The username
         * @param $password The password
         * @returns true/false
         *
         * Check if the password is correct without logging in the user
         */
        public function checkPassword($uid, $password) {
 
                $mbox = @imap_open($this->mailbox, $uid, $password);
                imap_errors();
                imap_alerts();
 
 
                if($mbox) {
                        imap_close($mbox);
 
                        if(OC_User::userExists($uid)) {
                                  OC_User::setPassword($uid, $password);
                        } else {
                                  OC_User::createUser($uid, $password);
                                  $uida=explode('@',$uid,2);
                                  if(($uida[1] || '') !== '') {
                                        OC_Group::createGroup($uida[1]);
                                        OC_Group::addToGroup($uid, $uida[1]);
                       }
 
                }
                        return $uid;
                } else {
                        return false;
                }
        }
 
}

Kommentar: 
Die­ses Code­stück sorgt dafür, dass beim ers­ten Log­in eines Benut­zers ein Ein­trag in die User-Daten­bank von Own­cloud erfolgt. Dabei wird auch das Pass­wort ver­schlüs­selt gespei­chert, da ansons­ten kei­ne Nut­zung über die Apps von Own­cloud mög­lich ist. Der Nut­zer muss sich mit den glei­chen Daten wie am E‑Mailserver anmel­den. Ändert der Nut­zer sein Pass­wort im IServ oder auf dem E‑Mailserver, wird die­se Ände­rung bei bestehen­dem Log­in in Own­cloud übernommen. 

Update:
Mit dem Hack funk­tio­niert auch die Nut­zung mit der Own­cloud-App problemlos.

Wir sind die Roboter

Die Dämp­fe von Löt­zinn bren­nen einer kon­zen­triert über den Löt­kol­ben gebeug­ten Schü­le­rin in den Augen, der Geruch von Röst­zwie­beln liegt in der Luft, über­all lie­gen elek­tro­ni­sche und mecha­ni­sche Bau­tei­le her­um. Selt­sa­me Gefähr­te, die an die­je­ni­gen aus der Mad-Max-Trio­lo­gie anzu­knüp­fen schei­nen, fah­ren über den Flur und dre­hen wie von Geis­ter­hand vor Wän­den und Hin­der­nis­sen um. Rechts wird geflucht über die unver­meid­li­chen Trei­ber­pro­ble­me unter Windows8, links lacht sich dar­über der Nut­zer eines Ubun­tu-Desk­tops ins Fäust­chen, wäh­rend die Grup­pe im hin­te­ren Bereich das Schei­tern des letz­ten Algo­rith­mus bei einem kräf­ti­gen Biss in das selbst­ge­bau­te Hot­dog und einer Par­tie Mine­craft verarbeitet.

Die Situa­ti­on ent­stammt nicht dem Ent­wick­lungs­la­bor einer nerdi­gen Elek­tronik­fir­ma, son­dern beschreibt die Atmo­sphä­re in unse­rer neu­en Ardui­no-AG auf dem letz­ten Regio­nal­grup­pen­tref­fen recht genau. Da kann nach nicht ein­mal acht Wochen dann schon sowas herauskommen:

Die Hard­ware habe ich nach einem Schü­ler­ent­wurf nach­ge­baut. Die hier zu sehen­den Komponenten

  • ein Ardui­no UNO-Nachbau
  • ein Adafruit-Motor­s­hield-Nach­bau
  • ein HC-SR04 Ultraschallsensor
  • ein 4WD-Chas­sis
  • sechs Mignon-Akkus
  • ein Bat­te­rie­fach
  • Kabel und ande­rer Kleinkram

kos­ten etwa 50,- Euro, wenn man etwas war­ten kann. Die not­wen­di­ge Soft­ware gibt es kos­ten­los zum Down­load. Pro­gram­miert wird in einem C‑ähnlichen Dia­lekt. Der Robo­ter aus dem Video wird von die­sem Pro­gramm gesteuert: 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
    #include <AFMotor.h>
 
    AF_DCMotor motor_01(1, MOTOR12_64KHZ);
    AF_DCMotor motor_02(2, MOTOR12_64KHZ);
    AF_DCMotor motor_03(3, MOTOR12_64KHZ);
    AF_DCMotor motor_04(4, MOTOR12_64KHZ);
 
    // HC-SR04
    // VCC auf 5V
    // Trig auf Trigger Pin (löst Ultraschallimpuls aus)
    // Echo auf Echo Pin (Zeit in ms bis zum Empfang des Echos)
    // GND auf GND
 
    #define echoPin 15 // Echo Pin
    #define trigPin 14 // Trigger Pin
    int turn = 1;      // Drehrichtungsänderung wenn "festgefahren"
    int count = 0;     // Anzahl der Drehausweichversuche pro Richtung
 
    long duration, distance; // Dauer um Abstand zu berechnen
 
    void setup() {
 
     motor_01.setSpeed(190);  // Wir fahren nicht volle Pulle
     motor_02.setSpeed(190);
     motor_03.setSpeed(190);
     motor_04.setSpeed(190);
 
     Serial.begin (9600);
     pinMode(trigPin, OUTPUT);
     pinMode(echoPin, INPUT);
 
    }
 
    void loop() {
 
 
     /* The following trigPin/echoPin cycle is used to determine the
     distance of the nearest object by bouncing soundwaves off of it. */ 
 
     digitalWrite(trigPin, LOW); 
     delayMicroseconds(2); 
 
     digitalWrite(trigPin, HIGH);
     delayMicroseconds(10); 
 
     digitalWrite(trigPin, LOW);
     duration = pulseIn(echoPin, HIGH);
 
     //Calculate the distance (in cm) based on the speed of sound.
     distance = duration/58.2;
 
     //Delay 50ms before next reading.
     delay(50);
 
     if (distance < 25 && turn > 0 )
 
     {
 
       motor_01.run(FORWARD);   // Motor 1 vorwärts laufen lassen
       motor_02.run(FORWARD);
       motor_03.run(FORWARD);
       motor_04.run(FORWARD); 
 
       delay(200);
 
       motor_01.run(BACKWARD);
       motor_02.run(BACKWARD);  // Motor 2 rückwärts laufen lassen
       motor_03.run(FORWARD);
       motor_04.run(FORWARD);
 
       delay(200);
 
       count++;
 
       if (count >= 3 ) {   
 
         turn = -turn;
 
       }
 
     } 
 
     else if (distance < 25 && turn < 0 )
 
     {
 
       motor_01.run(FORWARD);   // Vorwärts fahren
       motor_02.run(FORWARD);
       motor_03.run(FORWARD);
       motor_04.run(FORWARD); 
 
       delay(200);
 
       motor_01.run(FORWARD);
       motor_02.run(FORWARD);  // Motor 2 rückwärts laufen lassen
       motor_03.run(BACKWARD);
       motor_04.run(BACKWARD);
 
       delay(200);
 
          count++;
 
       if (count >= 3 ) {   
 
         turn = -turn;
 
       }
 
     }
 
     else
 
     {
       motor_01.run(BACKWARD);   // Motor 1 vorwärts laufen lassen
       motor_02.run(BACKWARD);
       motor_03.run(BACKWARD);
       motor_04.run(BACKWARD); 
 
       count = 0;
 
     }
 
    }

Beim Expe­ri­men­tie­ren mit der Ardui­no­platt­form gibt es ganz vie­le ver­schie­de­ne Herausforderungen: 

  • Es muss zumin­dest in Grund­zü­gen pro­gram­miert werden
  • Die­se Pro­gram­me bedür­fen einer stän­di­gen Optimierung
  • Ver­drah­tet“ man mit Löt­kol­ben und Schrau­bern­dre­her oder gleich im Pro­gramm selbst? – Im obe­ren Pro­gramm sind z.B. „falsch“ ange­schlos­se­ne Moto­ren durch ent­spre­chen­de Code­än­de­run­gen kom­pen­siert worden.
  • Wie struk­tu­riert man sein Pro­gramm so, dass man es die Woche dar­auf noch ver­steht? – Mor­gen wer­den wir uns mit Unter­pro­gram­men und der Para­me­ter­über­ga­be beschäftigen.
  • Wie arbei­ten die Sen­so­ren eigent­lich? (Der HC-SR04 muss z.B. so aus­ge­rich­tet wer­den, dass er nicht schon Uneben­hei­ten auf dem Boden als Hin­der­nis erfasst, mit meh­re­ren Sen­so­ren erhö­he ich die Mess­ge­nau­ig­keit usw.)
  • Wie löse ich die vie­len mecha­ni­schen Probleme?
  • Die meis­ten Pro­gram­mier­bei­spie­le im Netz sind auf Englisch …

Ich fin­de es pri­ma, dass Infor­ma­tik hier erfahr­bar wird und dass nicht nur vir­tu­ell ver­mit­tel­te Erfah­run­gen und Lern­an­läs­se vor­han­den sind. Grund­struk­tu­ren zum Pro­gram­mie­ren geben wir in der AG vor, da rei­nes Aus­pro­bie­ren schnell zu Frus­t­er­leb­nis­sen führt, ins­be­son­de­re wenn meh­re­re Akto­ren und Sen­so­ren dazukommen.
Die Schü­le­rin­nen und Schü­ler doku­men­tie­ren das im in einem Doku­Wi­ki, was sie über Akto­ren und Sen­so­ren her­aus­fin­den oder stel­len auch ganz Code­schnip­sel ein. Neben­bei ler­nen sie etwas über Syntax.

Startup – die ersten Tablets sind bereit

Ich woll­te für den ers­ten Ver­such mit Tablets nicht viel Geld ver­bren­nen, ich woll­te als Admi­nis­tra­tor die Gerä­te zen­tral ver­wal­ten und mir die­se Arbeit auch mit ande­ren tei­len kön­nen. Es han­delt sich um Schul­ge­rä­te, die ent­we­der für den ergän­zen­den Ein­satz im Kon­text mit BYOD oder für typi­sche Auf­ga­ben in Grup­pen gedacht sind. Wir wol­len dabei als Schu­le Erfah­run­gen mit die­ser Gerä­te­klas­se sam­meln, bevor wir uns Din­ge wie einen Klas­sen­satz ans Bein binden.

Die Wahl fiel schon im letz­ten Jahr auf die aus­lau­fen­de Nexus7-Rei­he (Modell 2012). Hier waren fol­gen­de Din­ge sichergestellt:

  • Ver­sor­gung mit Betrieb­sys­tem­up­dates durch Goog­le (ins­be­son­de­re das ein­ge­schränk­te Pro­fil war mir hier wichtig)
  • Robust und gut verarbeitet
  • Gute Ver­sor­gung mit Apps
  • zen­tral mana­ge­bar mit Goog­le Apps for Edu­ca­ti­on oder Meraki
  • Preis-/Leis­tungs­ver­hält­nis hervorragend

Wei­ter­hin sind wir eine recht gut ver­netz­te Schu­le. Wir woll­ten auch eine ein­fa­che Mög­lich­keit, Medi­en aller Art indi­vi­du­ell im Unter­richt nut­zen. Die Wahl fiel hier auf den DLNA-Ser­ver medi­atomb. In der Pra­xis wird das so lau­fen, dass Kol­le­gin­nen und Kol­le­gen Medi­en auf unse­ren Schul­ser­ver in ein ent­spre­chen­des Ver­zeich­nis hoch­la­den. Als Hiera­chie wird hier das jewei­li­ge Fach gewählt, das einen Ord­ner für jede Lehr­kraft erhält. Die­ses Ver­zeich­nis wird jeden Tag auf den Media­ser­ver „ent­leert“, dort auto­ma­tisch gescannt und die neu­en Medi­en ste­hen dann am nächs­ten Mor­gen im gesam­ten Schul­netz bereit. Bei uns han­delt es sich dabei vor­ran­gig um Medi­en, für das der Kreis oder das Land Online­li­zen­zen erwor­ben hat.

Sie las­sen sich dann mit einer spe­zi­el­len App, die es für fast alle Platt­for­men gibt, wie am eige­nen Fern­se­her zu Hau­se auf dem jewei­li­gen Medi­en­ge­rät (PC, Lap­top, Han­dy, Tablet, Fern­se­her etc.) abspielen.

Ver­wal­tung mit Meraki

Ich nut­ze für die Ver­wal­tung der Tablets das kos­ten­lo­se Mera­ki. Das geht natür­lich nur leid­lich gut mit Schul­ge­rä­ten, die unter einer ID lau­fen und so Per­so­nen­be­zo­ge­nes zumin­dest ver­wäs­sern. Es ist aus Daten­schutz­grün­den kei­ne Opti­on für 1:1 Lösun­gen! Mit Mera­ki kann man eine Men­ge Sache machen – bei Andro­ids z.B.:

  • die Kame­ra zen­tral ein- oder ausschalten
  • WLAN-Net­ze konfigurieren
  • Apps fern­ge­steu­ert installieren
  • Ver­schlüs­se­lung erzwingen
  • u.v.m.

Das funk­tio­niert über eine spe­zi­el­le, kos­ten­lo­se App. Die­se wie­der­um wird dadurch „ver­am­melt“, dass ich das Fea­ture „ein­ge­schränk­tes Pro­fil“ von Android ab Ver­si­on 4.3 nut­ze. Das Haupt­pro­fil ist mit einem Pass­wort geschützt. Im Haupt­pro­fil kann man fest­le­gen, wel­che Apps im ein­ge­schränk­ten Pro­fil zur Ver­fü­gung ste­hen – lei­der geht genau das noch nicht mit Mera­ki. Ich wer­de das so lösen, dass ich je Monat fünf Apps, die sich Kol­le­gen wün­schen, nach tota­li­tä­ren Kri­te­ri­en aus­wäh­le und dann zur Nut­zung freigebe.

Auch für iOS-Gerä­te könn­te übri­gens Mera­ki eine inter­es­san­te Alter­na­ti­ve zum Apple Con­fi­gu­ra­tor sein. Neben dem übli­chen App-Deploy­ment und einer VPP-Inte­gra­ti­on kann man auf iOS-Gerä­ten zur­zeit fol­gen­de Funk­tio­nen zen­tral administrieren:

iOS_meraki
Dazu kommt noch, dass mit Mera­ki auch ein cloud­ba­sier­tes Manage­ment von WLAN-Net­zen mög­lich ist (ver­gleich­bar Aero­Hi­ve)  – die Gerä­te sind aber cis­co­ty­pisch nicht ganz bil­lig.

 Unheimliches

Mera­ki führt mir zie­mich unsanft vor Augen, dass sowohl Tablets als auch Andro­id­han­dys ziem­li­che gute Über­wa­chungs­ge­rä­te sind. Die Ortung funk­tio­niert auch ohne GPS oder Han­dy­netz adress­ge­nau. Ich kann Para­me­ter wie Lade­zu­stand, ver­füg­ba­re WLAN-Net­ze, Gerä­te-ID, Betriebs­zei­ten, Geo­po­si­ti­on usw. in Echt­zeit adress­ge­nau aus­le­sen. Wenn Mera­ki das per App kann, wird Goog­le es auch kön­nen. Ob es bei iOS anders aus­sieht? Wahr­schein­lich nicht …

1 32 33 34 35 36 148