All stuff associated to digital primer project.

Gestaltung Protokolen

Design protocols for Your work.

Building a Cafeteria Display in less than an hour

Hardware prerequisities: Raspberry 3B (3B+ if You want Your box to be supplied by Power-over-Ethernet), an >4GB SD CARD, HDMI cable, HDMI screen.

On Your linux host, do 

wget https://downloads.raspberrypi.org/raspbian_latest

Don't forget to unzip the file

unzip raspbian_latest

You should get a file with a name such as 2018-06-27-raspbian-stretch.img as an output. This filename Thou shalt use as a value of the if parameter of the dd command below.

Stick the new SD card into the host machine, find out its block device name (it will most probably appear as something like mmcblk0 at the bottom of the dmesg command), You will used this block device name, prefixed with /dev/, as a an of parameter of the command which allows You to copy the OS image to Your SD card ::

dd bs=4M if=raspbian_latest of=/dev/mmcblk0 conv=fsync

The copy will take few minutes, so go make Yourself a tea, sing a mantra or simply reflect about what You are doing just now, and what will be done in an hour or two.

When all is finished without a trouble (it should) You can check whether all partitions have been successfully created by ejecting and reinserting the SD-card adapter from Your host machine. Two partitions should automount, and having them already mounted, You can start configuring system even before actually starting PI.

You can, for example, prepare Your PI for its service as a component in a vertically (portrait, not landscape) oriented kiosk display, by adding the line

display_rotate = 3

then eject the SD card from the host system, put it into PI, plug the PI to the powersupply, connect keyboard, mice, HDMI screen, go through the main config (do not forget to set up at least reasonably solid password which You will not forget during the night !).

Launch terminal and install the ultra-fast openbox browser by executing


sudo aptitude install openbox obconf obmenu 


and then make a openbox config file with 

mkdir -p ~/.config/openbox && cp /etc/xdg/openbox/* ~/.config/openbox


Then edit the autostart to openthe browser at boot


nano ~/.config/openbox/autostart


remove all the code and past this in:

# Autostart script

#will sleep to make sure everything else loads
sleep 5s && midori --inactivity-reset=120 -e Fullscreen --app=https://LINK-TO-YOUR-APP


that will make it run with fewer options auto resetting after 2 minutes inactivity.


Building a Pi Narrator

Hardware prerequisities:

Raspberry 3B, an >=16GB SD CARD, seeded respeaker 4-mic array HAT, voltcraft 2xUSB 5V-output 8000mA solar battery, USB2microUSB cable, speaker or headphones

host machine ideally running Linux

Setting up Your headless PI and Respeaker drivers

On Your linux host, do 

wget https://downloads.raspberrypi.org/raspbian_lite_latest

To download the "minimalist" variant of the Raspbian OS. Don't forget to unzip the file

unzip raspbian_lite_latest

You should get a file with a name such as YYYY-MM-DD-raspbian-stretch-lite.img as an output.

This filename Thou shalt use as a value of the if parameter of the dd command below.

Stick the new SD card into the host machine, find out its block device name (it will most probably appear as something like mmcblk0 at the bottom of the dmesg command), You will used this block device name, prefixed with /dev/, as a an of parameter of the command which allows You to copy the OS image to Your SD card ::

dd bs=4M if=YYYY-MM-DD-raspbian-stretch.img of=/dev/mmcblk0 conv=fsync

The copy will take few minutes, so go make Yourself a tea, sing a mantra or simply reflect about what You are doing just now, and what will be done in an hour or two.

When all is finished without a trouble (it should) You can check whether all partitions have been successfully created by ejecting and reinserting the SD-card adapter from Your host machine. Two partitions should automount, and having them already mounted, You can start configuring system even before actually starting PI.

Let's say that after automount, the rootfs of PIs SD card is mounted at /media/YourBaseStationUserNameHere/rootfs

Then You can start making Your Narrator to be ultra-autarch and low consumption by disabling the HDMI and ACT LEDs by adding these lines

# Disable HDMI

/usr/bin/tvservice -o

# Disable ACT LEDs
sudo sh -c 'echo none > /sys/class/leds/led0/trigger'
sudo sh -c 'echo none > /sys/class/leds/led1/trigger'
sudo sh -c 'echo 0 > /sys/class/leds/led0/brightness'
sudo sh -c 'echo 0 > /sys/class/leds/led1/brightness'

to the end of PI's /etc/rc.local file (e.g. You can do it in VIM of Your host machine by running vim /media/YourBaseStationUserNameHere/rootfs/etc/rc.local), just above the exit 0 line.

#Later, when all is well setup, You could be even more radical and want to disable both Ethernet adapter as well as USB drivers, You can put
#echo 0x0 > /sys/devices/platform/soc/3f980000.usb/buspower
#into PI's rc.local

Even more importantly, You can turn off WIFI on a very basic level by running the command
echo "dtoverlay=pi3-disable-wifi" >>  /media/YourBaseStationUserNameHere/boot/config.txt

Enable the SSH by creating a file "ssh" on PI's boot partition

touch /media/YourBaseStationUserNameHere/boot/ssh

It is better to do this things directly from the base station because if ever You would like to do it on a running PI, You would have to remount the boot partition in a readwrite mount which is a minor hassle.

Ok, that's it, unmount the SD card from the base station and put it into the PI.

Start it by connecting the Powerbank with the PI with microUSB cable, locate PI's IP address on Your network

sudo nmap -sP 194.95.XXX.0/24 | awk '/^Nmap/{ip=$NF}/B8:27:EB/{print ip}'

You obtain the IP address to which You connect through SSH

ssh pi@IP-ADDRESS-YOU-OBTAINED-IN-PREVIOUS-STEP

default password should be raspberry. Change it immediately by running (already on Your PI, i.e. connected through SSH):

passwd

And now, let the fun begin.


apt install git
git clone https://github.com/respeaker/seeed-voicecard cd seeed-voicecard sudo ./install.sh sudo reboot

#test recording on ReSpeaker 4-mic
#It will capture sound on AC108 and save as helloworld.wav
arecord -Dac108 -f S32_LE -r 16000 -c 4 helloworld.wav
#plug Your headphones in PI's audio out and test it
aplay helloworld.wav

Not bad, hm ?

Making of a digital education artefact #1

Personal Primer (digitale Fibel, fantastische Fibel u.s.w.) is a digital artefact aiming to enrich narrative, mathematical and musical intelligence of a Grundschule pupil. It instantiates 23 attributes divided into...

Who am I ?

  • daniel@udk-berlin.de
  • 36 years, Slovak by origin, European by choice
  • Bc. in Humanities (Charles University in Prague, CZ) & Bc. in Linguistics (Universite de Nice Sophia-Antipolis, FR)
  • certified to use Feuerstein's cognitive Instrumental Enrichement 1 and 2 methods
  • Master in Complex Systems : Natural and Artificial Cognition (Ecole Pratique des Hautes Etudes, Paris, FR)
  • Double PhD. :: Cybernetics (Slovak University of Technology, SK) and Psychology (Universite Paris 8) defended with the Thesis "Evolutionary models of ontogeny of linguistic categories" - c.f. http://wizzion.com/PP.pdf )
  • wizzion.com UG haftungsbeschränkt (now in hibernation)
  • UdK Medienhaus IT Admin between december 2014 and july 2018
  • ECDF / UdK Digital Education W1 professorship since 1.18.2018
  • married, 2 daughters

misc.


    • developmental psycholinguistics
    • child - computer interaction
    • constructivist theories of learning and intelligence
    • cognitive enrichment and cognitive impoverishment
    • child - computer interaction
    • machine learning & machine teaching ("Can machines teach?")
    • machine morality & roboethics
    • natural language processing & computational rhetorics
    • history of ideas and technologies
    • digital diversity, open source (e.g. Linux) and maker movement
    • conservative techno-optimist

Digital Education @ UdK

Three topics of theoretical focus :
  1. Definition of Digital Education ("education-of" or "education-with" ?)
  2. Evaluation criteria for e-didactic tools, media and methods
  3. Parent participation in digital education

Two topics of PRAXIS :
  1. Evaluation and extension of "Computer Science Unplugged" curricula
  2. fibel.digital

Fibel :: Architectural primitives

Hardware is Raspberry Pi, OS is Raspbian which after booting automatically logs in the user fibel whose .bashrc specifies to launch xinit whose .xinitrec specifies to run chromium
Frontend is running in chromium which loads index.html which loads all the rest.

Interaction between backend services / sensors and frontend takes place by means of websockets. Every backend service pipes it outputs into pipes located in /dev/fibel, these pipes are created by bunch of gwsocket-daemons launched at startup, config file for service2port associations is in /etc/fibel/sockets.

All necessary frontend code for dealing with sockets is in js/sockets.js

Hacks and Tricks

Some useful know-how for creation of Your own digital Primer.

raspi(usb)-raspi zero+inkyPhat hack

I just realized that a following hack could be worth trying:

1) we have the main PI with all pins already taken but with an available USB port

2) we connect the cheapest 5$ no-WIFI variant of RasPI Zero to the USB of the "main" PI, and we put the inkyPhat on this pi zero

3) wittyPi starts the main PI

4) power starts to flow to main PI's usb port, hence the small PI starts

5) the main PI can communicate with the zero in a sort of ethernet-emulated through USB, c.f. https://www.thepolyglotdeveloper.com/2016/06/connect-raspberry-pi-zero-usb-cable-ssh ... for example, an image to-be-displayed can be sent from the main PI to the zero

6) once the image is transfered and displayed on the inkyPhat, pi zero can communicate to the main PI that the job was done and halt

7) additionally, the main PI can shut down the USB port through which the zero was powered ... c.f. https://www.raspberrypi.org/forums/viewtopic.php?t=93463 , if  that hub-ctrl.c will work than it is a hammer

8) when a new image is supposed to be displayed on the inkyPHAT, power flow to the USB port can be reactivated and steps 4-7 can be repeated

The idea is to counterbalance the deficit of GPIO pins on a PI with communication with "peripheral" zeros, which have a new full set of GPIOs, are small and cost 5$ a piece...

Session 1 - Primer Properties

Of main properties of the Primer, motivation behind them and means how to implement them

Propaedeutic Enchiridion

Categories of properties

  • Physische Eigenschaften 
    "embooked", einzigartig, wandelbar, modular, robust, zweiseitig
  • Kognitive Eigenschaften
    umgebungs-bewusst, zirkadian und Cron-regiert, launisch, mit Vorlieben, kooperative
  • Didaktische Eigenschaften
    behavioristisch, gewohnheits-hemmend, ludic, meta-ludic, lustig, mnemonisch, multimodal, sprachbasiert, cybertextual & wikipedisch, online-offline, geschützt, skriptbasiert, auge-2-auge, avatarisiert

Physical properties


  • "embooked" :: ist wie ein Buch

  • einzigartig :: jeder π2 kann eigenen "look" haben

  • wandelbar :: Schüler kann eigene Teile (e.g. Einband) "basteln"

  • modular

  • robust

  • bilateral :: 2 Rechnungsmodule, 2 "Augen" (Kameras), 2 "Ohren" (Mikrophonen), 2 Bildschirme (1 x OLED, 1x E-tinte) u.s.w.

Cognitive properties


  • umgebungbewußt :: kennt eigene Position in 4D, Wetter etc. (hat GNSS- / Feuchtigkeit- / Druck- sensoren usw.) 

  • circadian & Cron-basiert :: Betriebsart ändert sich je nach Zeit (e.g. "schläft" wenn das Kind auch schlafen soll)

  • launisch :: hat Launen die nicht 100% verhersehbar sind

  • mit Vorlieben :: Valorisation bestimmter Interaktionsarten

  • kooperative :: hilft dem Kind eine Aufgabe selbst zu lösen

Didactic properties


  • behavioristisch und gewohnheits-hemmend

  • ludic, meta-ludic, lustig

  • narrative :: Standardmodus ist Märchenerzählung

  • sprach-basiert :: Sprachsynthese und Spracherkennung

  • cybertextual & wikipedisch :: alle Inhalte sind gegenseitig verknüpft

  • geschützt :: Lehrer(in) bestimmt wann&wofür das Gerät on-line gehen soll

  • script-basiert:: Lehrer(in) lädt das play-book ein (c.f. Ansible)

Today's work


  • Compose two teams

  • Team 1 :: Pi 3 :: Couple the touch with the screen

  • Team 2 :: Pi Zero :: Transform inkyphat into "hello world" badge

Team 1 Protocol


  1. Establish the connection to Pi 3

  2. Find out all relevant parameters of touch & screen interfaces

  3. Develop a touch2screen mapping formula.

  4. Program a simple handwriting app in pygame

Team 2 protocol


  1. Establish the connection to Pi Zero

  2. ...

Homework

Think about all possible and impossible constraints (and obstacles) which could (and many of them also will ;) during the creative process.

Try to categorize these constraints into 3-5 main categories.

Links and Mirrors

::


Raspberry Pi Kiosk Tutorial

Raspberry Pi Kiosk Tutorial

(mirror of https://bartsimons.me/raspberry-pi-kiosk-tutorial/)

The Raspberry Pi has proven itself to be a great computing device while keeping cost as low as possible. For less than $40 you are getting a great little device…

The Raspberry Pi has proven itself to be a great computing device while keeping cost as low as possible. For less than $40 you are getting a great little device with its 64-bit ARM processor. This made me think, would it be a good idea to turn the Raspberry Pi 3 into a kiosk?

The software that you'll need

A list is not even needed, because you only need three things: Raspbian Jessie Lite installed as the OS, the X11 display stack installed and the Chromium webbrowser installed on the Pi.

Why Chromium

Chromium is the open source variant of the popular Google Chrome browser. It has great potential for this project because of the --kiosk flag. With this option you can create a full-screen browser window inside your empty X11 session.

Installing the X11 display stack

You can install the X11 display stack on your Raspberry Pi with the following command:

sudo apt install xserver-xorg xinit

This will install the X11 server on your Pi together with the X11 server initialisation program. You also have to run this command:

sudo dpkg-reconfigure x11-common

To select who's authorized to start the X11 server. Make sure it is set like this:

x11-common package reconfiguration

Installing Chromium

Just run sudo apt install chromium-browser to install Chromium on your Pi. It's literally that simple.

Writing the .xinitrc script

When you execute the xinit command on your Pi, you will see a terminal window instead of Chromium. To fix this, you'll need to write a file in your home directory called ~/.xinitrc. This file contains everything that gets run when the X11 server starts up. So, edit this file with nano (or any other text editor) and make sure it looks like this:

.xinitrc file with Chromium

Save it, and try running Chromium by invoking the xinit command on your Pi.

But... my window is not fullscreen!

It could be that your Pi shows black borders around the screen, which has to do something with overscan. Open your /boot/config.txt file (with sudo) and add disable_overscan=1 to this file like this:

Disable Overscan

Reboot your Pi and the problem should magically disappear! (at least, that's what happened to me...)

Starting X11 at boot

Raspbian comes with a built-in tool to configure your Pi: raspi-config. Run this command on your Pi and you will be greeted with a command-line dialog window. Go to option 3 and press enter:

raspi-config main menu option 3

And then go for option 2:

raspi-config boot options option 2

Press enter, go to finish and when the program asks for a reboot choose yes.

Once you have rebooted your Pi, you'll have to do one more thing to finish this project: finally starting X11 at boot! My method might be more sophisticated than needed, but hey: it worked for me. Edit the ~/.bashrc file in your favourite text editor and add the following to the bottom of the file:

if [ -z "$SSH_CLIENT" ] || [ -z "$SSH_TTY" ]; then
    xinit -- -nocursor
fi

save the file and reboot your Pi. Enjoy your beautiful self-made Raspberry Pi Kiosk!

Load webpage from an URL specified in a file

A Raspberry Pi with the default partition layout contains two partitions: the OS partition, and the BOOT partition which is formatted in FAT32 and gets automatically mounted at boot. For example: create a new file in /boot/ called website.txt and put your desired URL in it. Finally to make it work you simply replace the URL in your ~/.xinitrc file with $(cat /boot/website.txt) and it should work! The thing is that you can actually see and modify contents of this file in Windows, since the BOOT partition is partitioned as FAT.

Interface directives

LEFT (north, south) :: back in browser history
RIGHT (south, north) :: forward in browser history
DOWN (east, west) :: user info
UP (west, east) :: activity info
AIRWHEEL :: zoom 

Session 2 - Constraints

Of constraints, their usefulness and influence they exerce on design and designers of the Primer artefact

Homework

Think about all possible and impossible constraints (and obstacles) which could (and many of them also will ;) during the creative process.

Try to categorize these constraints into 3-5 main categories.

Motto

Constraints are designer's (strongest) allies.

Categories of constraints

...to which an artefact like digital Primer is to be a subject.




  •  

Team work



    • Presentatio (both teams)

    • :: Briefly present the protocols of last week team work.

    •  

    • Team 1 :: Pi 3 :: Activate the face recognition






  • Team 2 :: Pi Zero :: Activate the skywriter 3d gesture interface

Session 7 :: The minimalist principle

The minimalist principle

Release minimal amount of energy to attain maximal (possible) optimization.

Optimization (a Merriam-Webster dictionary definition)


    • an act, process, or methodology of making something (such as a design, system, or decision) as fully perfect, functional, or effective as possible
    • the mathematical procedures (such as finding the maximum of a function) involved in this

Three references


  • fibel.digital

  • bildung.digital.udk-berlin.de

  • Neal Stephenson - The Diamond Age - Or, a Young Lady's Illustrated Primer

Recordings

What You hear now is just a dim reflection of what You'll hear then.

Was ist das?

Fox once saw a Crow fly off with a piece of cheese in its beak and settle on a branch of a tree. "That's for me, as I am a Fox," said Master Reynard, and he walked up to the foot of the tree.

Utterances

Fables

Animals

Grammatic Stuff

Syllables

Session 8 :: Entwurf

  • 17.1. Entwurf
  • 24.1. Imprint
  • 31.1. Format
  • 7.2. Cybertext
  • 14.2. Fibel

mrGPL

Content of this folder and other recursively embedded folders is given to public domain under a morally restricted GPL licence.

LICENCE

(1) Any morally restricted human or computational agent is allowed to use, execute, copy, distribute, modify any file hereby contained (except this file LICENCE which is to be left intact as it is until time immemorial).

(2) Any form of usage, execution, copying, distribution or modification of data or metadata hereby contained performed by morally unrestricted agents shall result in curse of Adoniram.

(3) In case of any unambiguity, a standard GNU General Public License is to be applied.


DEFINTIONS

Morally Restricted :: A morally restricted is such an agent which shall not use, execute, copym, distribute and/or modify any files hereby contained for immoral activities.

Immoral Activity :: An immoral activity is a life-endangering or military or propaganda or profiling or spying or black-mailing or stealing or brainwashing or compassionless or uselessly harming or lying or violent activity, or any activity which disposes of features of such kind.

Curse of Adoniram :: A half-naked, gold-baken phoenician architect crying "Edris Edris WTF?" shall appear in dream of any morally non-restricted agent which shall dare to use this code in contradiction with points 1 and 2 of this licence.

Daniel D. Hromada

48AE Berlin

Digitale Fibel :: Project Participant Interaction Space 

Daniel :: Hello world !
Gero: hi
Akif:: Hey everyone! (:

Templates

Initial digital primer templates.

wurzburger1

Making of a digital education artefact #2

Make-Your-Own-Device (M.Y.O.D) and upcycling approaches will be combined to attain our common goal.

Keywords: digital artefacts, raspberry PI zero, upcycling, make-your-own-device, creativity, touchless man-machine interaction, zone of proximal development, electronic ink, algorithmic drum circle

MODEA #2 Program

Date Topic
11.4 Introduction
18.4 Art & Artefacts
25.4 Tools & instruments
2.5 Material 
9.5 Modules and components
16.5 Making the Itty Bitty Beat Box
23.5 ECDF visit - Wilhelmstrasse 67
30.5 NO COURSE (Christihimmelfahrt)
6.6 Format 
13.6 Shell
20.6 Berlin Open Lab - Einstein Ufer UdK
27.6Optimizing & testing
4.7 Goal

fibel.digital :: Phase 0 :: Permutations

Prof. Dr. Daniel D. Hromada (ECDF Juniorprofessor for Digital Education) and Nikoloz Kapanadze (Kunst und Medien; Tutor)
 
We present multiple digital artefacts which emerged first stage of construction of a digital Primer. These include: touchscreen&HTML5-based prototype; e-ink screen (recently broken) with touchless sensing embedded in an upcycled old book; and OID-enriched paper page from the Primer "Wir Kinder vom Zirkus Palope". 
 
Aside this, we'll present some additional digital artefacts exploiting the modularity and extensibility of Raspberry Pi technology: Make Your Own Instrument kits, touchless PONG-game, speak2listen headphones and a touch-the-plant botanics education setup. 

 

Hardware

                                               Devices           Office          Daniel    Nikoloz         Georgy    Students    
Pi Zero w                                                        1
Pi Zero                                       1
Raspi 3B+                                  2                    
Raspi 4B+                                  2                     2
Raspi 3A+                                  2                    
Respeaker 4mic                                               2
Respeaker 2mic                                                                     1                                ?
Phat Dat                                                         1
Speaker Phat                                                  1
Witty pi small    2                       1                     1
Witty pi big                                                      2
Inky Phat                                                        1
Grove Sound                                                   1
Grove Ultrasound                                             1
Grove Gesture                          9?
Raspicam                                 1                     1                    1
PITFT                                                              1
Resistive HDMI                         1
Raspi B+                                  1                     1
Phat Stack                               1                      1
Skywriter                                 1                     1
E-ink                                       1
Capacitive HDMI                                              2
Strompi                                                          1
The Slate                                1 MISSING
Raspberrypi Charger               1 MISSING
E-ink 6 inch                             4
E-ink 9 inch                             2                      1 +1 BROKEN
E-ink 4.3 UART                        2                                                                                        1

Main principles


  1. M.Y.O.D. :: Make Your Own device

  2. Upcycle !

  3. Explore the "adjacent possible".

  4. Uniqueness and not mass production.

Session 5 :: Modules and components


  • What is modularity ?

  • What are modules ?

  • What are advantages of a modular system ?

  • What are disadvantages of a modular system ?

Raspberry Pi Modules


  • HATs

  • pHATs

  • ...

Interfaces


  • USB

  • HDMI

  • SPI

  • I2C

  • I2S

  • ... ?

Overall Entwurf

WiSe 2018/2019 Bootstrapping & exploring
SoSe 2019 Playing, specifying, defining
WiSe 2019/2020 E-paper
SoSe 2020 Machine learning, speech technologies, handwriting recognition
WiSe 2020/2021 Testing & optimizing
SoSe 2021 Deploying

WiSe 2021/2022
???

Handouts

Some articles related to our course.

Alan Kay - A personal computer for children of all ages

The KiddiComp concept, envisioned by Alan Kay in 1968 while a PhD candidate,and later developed and described as the Dynabook in his 1972 proposal "A personal computer for children of all ages", outlines the requirements for a conceptual portable educational device that would offer similar functionality to that now supplied via a laptop computer or (in some of its other incarnations) a tablet or slate computerwith the exception of the requirement for any Dynabook device offering near eternal battery life. Adults could also use a Dynabook, but the target audience was children.


Part of the motivation and funding for the Dynabook project came from the need for portable military maintenance, repair, and operations documentation. Eliminating the need to move large amounts of difficult-to-access paper in a dynamic military theatre provided significant US Department of Defense funding.


Though the hardware required to create a Dynabook is here today, Alan Kay still thinks the Dynabook hasn't been invented yet, because key software and educational curricula are missing.

Session 2 - Art & Artefact

Before doing the theory let's test our paper airplanes!

Art

  1. (uncountable) The conscious production or arrangement of soundscoloursformsmovements, or other elements in a manner that affects the senses and emotions, usually specifically the production of the beautiful in a graphic or plastic medium
    There is a debate as to whether graffiti is art or vandalism.
  2. (countable) Skillful creative activity, usually with an aesthetic focus.
    She's mastered the art of programming.
  3. (uncountable) The study and the product of these processes.
    He's at university to study art.

Artifact

artifact (plural artifacts)



  1. An object made or shaped by human hand.

  2. (archaeology) An object, such as a toolweapon or ornament, of archaeological or historical interest, especially such an object found at an archaeological excavation. 

    The dig produced many Roman artifacts.

  3. Something viewed as a product of human conception or agency rather than an inherent element. 

  4. structure or finding in an experiment or investigation that is not a true feature of the object under observation, but is a result of external action, the test arrangement, or an experimental error.

    The spot on his lung turned out to be an artifact of the X-ray process.


  5. (biology) A structure or appearance in protoplasm due to death, method of preparation of specimens, or the use of reagents, and not present during life.

  6. An object made or shaped by some agent or intelligence, not necessarily of direct human origin.

  7. (computing) A perceptible distortion that appears in a digital image, audio or video file as a result of applying a lossy compression algorithm.

Our definitions

Akif - used to be in purpose of creating/reaching Beauty

Anna - creative way of dealing with the world

Kohei - unconvenient and innovative

Ozcan - expression of thoughts/intuitions/desires

mutantC

https://mutantc.gitlab.io/index.html

Over the years we’ve seen the Raspberry Pi crammed into almost any piece of hardware you can think of. Frankly, seeing what kind of unusual consumer gadget you can shoehorn a Pi into has become something of a meme in our circles. But the thing we see considerably less of are custom designed practical enclosures which actually play to the Pi’s strengths. Which is a shame, because as the MutantC created by [rahmanshaber] shows, there’s some incredible untapped potential there.

The MutantC features a QWERTY keyboard and sliding display, and seems more than a little inspired by early smartphone designs. You know, how they were before Apple came in and managed to convince every other manufacturer that there was no future for mobile devices with hardware keyboards. Unfortunately, hacking sessions will need to remain tethered as there’s currently no battery in the device. Though this is something [rahmanshaber] says he’s actively working on.

The custom PCB in the MutantC will work with either the Pi Zero or the full size variant, but [rahmanshaber] warns that the latest and greatest Pi 4 isn’t supported due to concerns about overheating. Beyond the Pi the parts list is pretty short, and mainly boils down to the 3D printed enclosure and the components required for the QWERTY board:  43 tactile switches and a SparkFun Pro Micro. Everything is open source, so you can have your own boards run off, print your case, and you’ll be well on the way to reliving those two-way pager glory days.

We’re excited to see where such a well documented open source project like MutantC goes from here. While the lack of an internal battery might be a show stopper for some applications, we think the overall form factor here is fantastic. Combined with the knowledge [Brian Benchoff] collected in his quest to perfect the small-scale keyboard, you’d have something very close to the mythical mobile Linux device that hackers have been dreaming of.


Keyboards:

https://hackaday.io/project/158454-mini-piqwerty-usb-keyboard

https://hackaday.com/2019/04/23/reaction-video-build-your-own-custom-fortnite-controller-for-a-raspberry-pi/


Main communication channel

https://kastalia.medienhaus.udk-berlin.de

MODEA #2 knot 4162 (i.e. https://kastalia.medienhaus.udk-berlin.de/4162 )

Session 4 - Material & Components

Let's start making it real.

Anna - Water
Akif - Leather, Neopren
Kohei - Metal (Aluminium)
Gero - Displays  
Daniel - paper
Nik - wood, paper, cardboard, fabric, tin

What is nice:
Ceramic, Epoxy, Stones, Marble, Resin, Fibers

Nobody mentioned:
Plastic, Concrete,  

Raspberry pi 

Der Raspberry Pi (engl. Aussprache: ˈɹɑːzbɹi 'paɪ) ist ein Einplatinencomputer, der von der britischen Raspberry Pi Foundationentwickelt wurde. Der Rechner enthält ein Ein-Chip-System von Broadcom mit einem ARM-Mikroprozessor, die Grundfläche der Platine entspricht etwa den Abmessungen einer Kreditkarte. Der Raspberry Pi kam Anfang 2012 auf den Markt; sein großer Markterfolg wird teils als Revival des bis dahin weitgehend bedeutungslos gewordenen Heimcomputers zum Programmieren und Experimentieren angesehen.[1] Der im Vergleich zu üblichen Personal Computern sehr einfach aufgebaute Rechner wurde von der Stiftung mit dem Ziel entwickelt, jungen Menschen den Erwerb von Programmier- und Hardware­kenntnissen zu erleichtern. Entsprechend niedrig wurde der Verkaufspreis angesetzt, der je nach Modell etwa 5 bis 35 USD beträgt.


Bis Ende 2017 wurden mehr als 17 Millionen Geräte verkauft.[2] Die Entwicklung des Raspberry Pi wurde mit mehreren Auszeichnungen bzw. Ehrungen bedacht. Es existiert ein großes Zubehör- und Softwareangebot für zahlreiche Anwendungsbereiche. Verbreitet ist beispielsweise die Verwendung als Mediacenter, da der Rechner Videodaten mit voller HD-Auflösung (1080p) dekodieren und über die HDMI-Schnittstelle ausgeben kann. Als Betriebssystem kommen vor allem angepasste Linux-Distributionen mit grafischer Benutzeroberfläche zum Einsatz; für das neueste Modell existiert auch Windows 10 in einer speziellen Internet-of-Things-Version ohne grafische Benutzeroberfläche. Der Startvorgang erfolgt gewöhnlich von einer wechselbaren SD-Speicherkarte als internes Boot-Medium. Bei der neueren Generation mit dem BCM2837 ist der Start auch von einem USB-Massenspeicher[3] oder Netzwerk[4]möglich. Eine native Schnittstelle für Festplattenlaufwerke ist nicht vorhanden, zusätzlicher Massenspeicher kann per USB-Schnittstelle angeschlossen werden, beispielsweise externe Festplatten bzw. SSDs oder USB-Speichersticks.

Session 6 :: Format


  • In what domains of human activity do we speak about formats ?

  • In these disciplines, what kinds of formats do we know ?

  • Can we imagine other types of formats ? What are their advantages ? What are their disadvantages ?

  • What kinds of formats should we use ?

Paper format (series A, norm ISO 210)

Raspberry Pi Zero

Raspberry Pi 3A+

Image result for raspberry pi 3a+ drawing

Connecting a Bluetooth speaker to a Raspberry Pi Zero W running Raspian Stretch Lite


  1. sudo apt-get update && sudo apt-get dist-upgrade

  2. sudo apt-get install bluealsa

  3. sudo service bluealsa start

  4. Switch on your bluetooth device

  5. sudo bluetoothctl

  6. scan on

  7. pair XX:XX:XX:XX:XX:XX (replace the XXXXX with your device ID)

  8. trust XX:XX:XX:XX:XX:XX

  9. connect XX:XX:XX:XX:XX:XX

  10. exit

  11. aplay -D bluealsa:HCI=hci0,DEV=XX:XX:XX:XX:XX:XX,PROFILE=a2dp /usr/share/sounds/alsa/*

MODEA #2 - Forum

This is the place where we should start communicating.

What to do ?

I am completely lost, what should I do ?

I  T E C

T U R E

P H O T

O G R A

P   H   Y

G R A P H I C D E S  I  G  N

Last works

Here are the

This project is a mereological suggestion based on the serial repetition of discrete parts that the architecture shapes the life of a decentralized and non-hierarchical society after a possible virus catastrophe.

I hiked many hiking trails in beautiful Norway in summer of 2017. I was overwhelmed by magical nature and created such a work.

Photography: Beauty of singularity in Norway

Design: Ortabahçe Magazine 

 # 

sarimakif  

Hello

Hello world

Hello world (correct)

heureka!

Airplane Tutorial

test

test

test2

test2

test3

test3

test4

test4

test5

test5

test6

test6

test7

last_test

Validation

You'll get the signature only when actively participating on creating of an artefact which DOES something, e.g.


  • digital primer

  • music instrument for algorithmic drum circle

  • garden guardian

  • digital primer

  • light source

Session 3 - Tools and Instruments

Nik - soldering iron
Daniel - screwdriver
Anna - pen
Kohei - measure
Akif - Swiss knife
Gero - pen

Respeaker 2 Bluetooth Alsa stream

arecord -Dac108 -f S32_LE -r 16000 -c 2 om.wav & sleep 1 ; aplay -c 2 -D bluealsa:HCI=hci0,DEV=FC:58:FA:BF:4E:0E,PROFILE=a2dp om.wav

 

Contacts

Prof. Dr. Dr. Daniel Hromada


  • daniel at udk-berlin.de

  • Room 313, Medienhaus

  • Sprechstunden 12:30 - 13:30


Tutors & SHK


  • Astrid Kraniger a.kraniger@udk-berlin.de

  • Nikoloz Kapanadze nikoloz-kapanadze@medienhaus.udk-berlin.de

AE49SOSERundgang R311 Artefact List




Artefacts presented at AE49SOSERundgang in R311 of UdK's Medienhaus

Credits: Nikoloz Kapanadze, Astrid Kraniger, Kohei Kimura, Akif Mehmet Sari, Ozcan Ertek, Anna Petzer

Coordinator: Prof. Dr. Dr. Daniel Devatman Hromada (ECDF Juniorprofessor for Digital Education)

Avatar 0

(with Chris Schmidts, Akif Sari)
Head-shaped tridecahedral (13-plane) wooden shell crafted by Chris Schmidts and filled with Raspberry pi 3A+, Seeed Respeaker (4mic circular array, ac108 converter; APA102 12-LED RGB pixel ring) enriched with UltraSonic Ranger System sending UDP packets to "active wall" installation by architecture student Akif Sari.

6-inch e-ink displays page 4. of McGuffey's Ecclectic Primer, a well-known Fibel of Victorian Era. Display is currently powered off and as such has zero carbon dioxide trace (hallo Gretha!) while still teaching Alphabet. To see more interactive e-ink setup please check the artefact CardboardFibel0.

Carboard Primer

(with Astrid Kraniger)
First functional cardboard-embedded artefact combining touchless gesture-based recognition (Seeed Grove Gesture Recognition Sensor PAJ7620U2)with an e-ink controlled by IT8591 board and some ANSI C coded  for the purpose of diagnostics of difficulties in acquisition of learning and writing (Leserechtschreibschwierigkeiten - LRS).

Diagnostics focuses on so-called "Rapid Automatized Naming" which is considered to be one among the most important LRS-predictors.

Visual content ("animal pictures") scanned from reedition of Lumen Picturae et Delineationis (Amsterdam, 1660, BE310).

Instead of a signature, this artefact contains a four-leaf clover (harvested in July) attached by duct-tape above the e-ink screen. Bottom of the cardboard shell is photovoltaic, making it possible to transform PappeFibel 0 or one of its derivatives into an energy-autarch ("eutark"; Hromada, 2019, AE49) digital education artefact.

TASK: Identify mismatch between visual and textual modality. 

INSTRUCTION OF USE: You interact with the device by moving Your hand in front of the Gesture Recognition Sensor (to the right from e-ink screen). Movement along vertical axis (up/down) maps to boolean (true/false, JA/NEIN) answers. Movement along horizontal axis (left/right) is used to browse the content. Rotation is used to switch between "learning" and "testing" mode.

CAVEAT: When changing modes of operation, new data has to be loaded into the buffer of the e-ink controller. This takes few seconds. Be patient. Breathe.

Touchless Ukulele

(with Anna Petzer)
This upcycled, portable, cable-less digital artefact combines touchless gesture-based recognition (Skywriter sensor)with a Raspberry pi 3a+ and integrated bluetooth loudspeaker.

TASK: Play with speed (time), position (space) and quality (suspense) of your hand movements. 

INSTRUCTION OF USE: You interact with the device by moving Your hand in front of the Skywriter sensor (above the sound hole of the instrument). Play the string to observe how the string vibration deforms the field measured by Skywriter. 

sonic

(with Nikoloz Kapanadze)
sonic is an experiment on the topic of screenless computers. what would our smart devices look like, and act like if they were not bound by the rectangular standard of the screen. sonic is a pair of headtracking headphones powered by a Raspberry Pi. the headtracking information is used to control a supercollider program that performs binaural processing. in  other worrds the spatial positions of sound sources are  decoupled from the listeners frame of reference. so to say the sounds stay in place as the user changes the orientation of their head. its like VR but for your ears not your eyes.

the device can also record stereo audio using the two microphones mounted on the two earcups. having microphones so close to where one's ears would be gives the sound a lot of presence.  the componnts are mounted on a pair of headphones that i've had for around five years now and the whole assembly is modular, meaning that faulty components can be easily swapped out.

sonic uses twin i2s mems microphones( SPH0645) for audio recording and a accelerometer+gyroscope+magnetometer(LSM9DS1) ic for head-tracking.

developed by Nikoloz Kapanadze

In a Praise Of Void

The stable "wall" is the very basis of land creatures and thus by "having responsive space rather than the linear presentation of the wall," the body is suddenly made aware of the situation it is in.

With the current housing crises and the reduction of the living space per person, the effect of the occupancy and void becomes more valuable day by day. But this concept, void, which can only be defined by its contrast: fullness, and which can change the perception of everyday spaces we are accustomed like a room, is not easily readable. This situation removes the concept from our daily practices and traps it in the dusty pages of abstract architectural books.

The project based on an example ordinary wall of living space offers a responsive space that will bring up a concept of void on the agenda in order to challenge perceptions of living space and physical context.

This exploration simulates an extreme architecture of responsive variable structure by suggesting a technological infrastructure with hypothetical material.

The narrative analyzes the benefits and limitations of these projects but avoids explaining the necessity and result of living in such a space. It remains speculative, is leaving the questions open for the next phases.

Bowl

(with Kohei Kimura)
Skywriter + raspberry Pi zero + 3W shaker + tibetian singing bowl + physical setup by Kohei Kimura 

CyberPlant 0

(with Ozcan Ertek)

Zeus erscheint Eva in Gestalt einer elliptischen Kurve

Hardware

                                               Devices           Office          Daniel    Nikoloz         Georgy    Students    
Pi Zero w                                                        1
Pi Zero                                       1
Raspi 3B+                                  2                    
Raspi 4B+                                  2                     2
Raspi 3A+                                  2                    
Respeaker 4mic                                               2
Respeaker 2mic                                                                     1                                ?
Phat Dat                                                         1
Speaker Phat                                                  1
Witty pi small    2                       1                     1
Witty pi big                                                      2
Inky Phat                                                        1
Grove Sound                                                   1
Grove Ultrasound                                             1
Grove Gesture                          9?
Raspicam                                 1                     1                    1
PITFT                                                              1
Resistive HDMI                         1
Raspi B+                                  1                     1
Phat Stack                               1                      1
Skywriter                                 1                     1
E-ink                                       1
Capacitive HDMI                                              2
Strompi                                                          1
The Slate                                1 MISSING
Raspberrypi Charger               1 MISSING
E-ink 6 inch                             4
E-ink 9 inch                             2                      1 +1 BROKEN
E-ink 4.3 UART                        2                                                                                        1

Connecting a Bluetooth speaker to a Raspberry Pi Zero W running Raspian Stretch Lite


  1. sudo apt-get update && sudo apt-get dist-upgrade

  2. sudo apt-get install bluealsa

  3. sudo service bluealsa start

  4. Switch on your bluetooth device

  5. sudo bluetoothctl

  6. scan on

  7. pair XX:XX:XX:XX:XX:XX (replace the XXXXX with your device ID)

  8. trust XX:XX:XX:XX:XX:XX

  9. connect XX:XX:XX:XX:XX:XX

  10. exit

  11. aplay -D bluealsa:HCI=hci0,DEV=XX:XX:XX:XX:XX:XX,PROFILE=a2dp /usr/share/sounds/alsa/*

Respeaker 2 Bluetooth Alsa stream

arecord -Dac108 -f S32_LE -r 16000 -c 2 om.wav & sleep 1 ; aplay -c 2 -D bluealsa:HCI=hci0,DEV=FC:58:FA:BF:4E:0E,PROFILE=a2dp om.wav

 

Pi BareBone links

https://github.com/BrianSidebotham/arm-tutorial-rpi

https://github.com/dwelch67/raspberrypi

https://github.com/adamransom/bare_metal

Fibel Compilation

#libfibel.o compilation
cd /home/fibel/IT8951
gcc -shared -Wall IT8951.c miniGUI.c AsciiLib.c -o libfibel.o -lbcm2835

#fibel service compilation
gcc fibel_small.c /home/fibel/IT8951/libfibel.o -o ../fibel

fibel folder structure

~/fibel/IT8951 C - source for atrament (E-ink) display
~/fibel/mic_hat Python - source for ReSpeaker 2 Mic Array

Python virtualenv

sudo pip install virtualenv
virtualenv <NAME OF ENV>
source <NAME OF ENV>/bin/activate

# do pythoning

deactivate

Principles of Operation

0) We are a team aspiring to attain the Goal. The Goal is to be specified at the 1st meeting.
1) We work in two-week cycles. Each cycle is divided into two week-long subcycles.
2) Each cycle is initiated by a meeting ("the Gathering") where all team members participate in person.
3) The first subcycle, the first week, is the week when common team work takes place. That means that asides the Gathering, at least two additional 5-hour sessions of common hacking and exchange take place.
4)  The second subcycle, the second week, is the consolidation week wherein everybody does his work alone. 
5)  During the second week one aims to solve the tasks defined at the end of the first week.
6)  The task is defined as a "challenge or problem where a solution is imaginable and/or reachable" within a week time span


  • every team member gives (him|her)self one task which can be solved within a one week span

  • every team member gives one task to the project integrator

  • project integrator attributes one task to scientific counselor


In a situation where a team is composed of 1 project integrator (PI : Daniel), 1 scientific counselor (SC: Georgy), 1 engineer (ENG: Nik) and 1 data-collector (DC: Astrid), tasks are therefore distributed as follows:


  • PI: 4 tasks 

  • SC: 2 tasks

  • ENG & DC: 1 task


7) At the beginning of the Gathering, everybody presents not only outcome of his efforts to solve the tasks but, more importantly, discusses problems & drawbacks which occured. Also, the failure to accomplish the task does not problem as far as one learned something in the process (e.g. that the imaginable solution is not reachable under certain constraints).
 

1

1) We work in two-week cycles. Each cycle is divided into two week-long subcycles. 

Cycle 0 :: Tasks

1st meeting: Monday 9th September, 11:30 AM, R313 Kleistpark

Daniel: 
    • activation of the second copy
    • generation of new Fibel content after boot up (will most probably use HTML templates in combination with electron to do so)
    • check whether the APA 102 can be updated when e-paper sleeps
    • deploy "YES / NO" boolean speech-recog switch on a PiZero prototype, ideally using one of these technologies https://github.com/gooofy/zamia-speech
Georgy:
    • deploy "YES / NO" boolean speech-recog switch on a PiZero prototype, ideally using one of these technologies https://github.com/gooofy/zamia-speech
    • make the wittyPi boot the prototype every hour for 10 minutes
Nik:
    • first LORA packet sent out from Zero
Astrid:
    • recordings of most frequent German words ( their list is here: https://kastalia.medienhaus.udk-berlin.de/community//knot/5325 )

Most frequent German words

IN ROMANEN DES DUDENKORPUS
RANGDIE HÄUFIGSTEN SUBSTANTIVEDIE HÄUFIGSTEN ADJEKTIVEDIE HÄUFIGSTEN VERBEN
1.Mannander...sein
2.Fraukleinhaben
3.Handgroßwerden
4.Tagerst...können
5.Augegutsagen
6.Zeitaltsehen
7.Jahrganzmüssen
8.Kopflangwollen
9.Gesichtletzt...kommen
10.Mutterneugehen
11.Vaterweitmachen
12.Kindvielgeben
13.Hauseiniglassen
14.Blickjungsollen
15.Lebennahestehen
16.Menschgeradewissen
17.Türeigen...fragen
18.Wortspättun
19.Stimmeeinzignehmen
20.Herrliebhören

PP Useful Links

Sound stuff

https://blog.francoismaillet.com/epic-celebration/ , especially the section "Hooking up to the live audio stream"

ML board
https://coral.withgoogle.com/products/

 

Schoolscript OTF font

from https://www.skolskepismo.sk

ERC DHABL

Knot related to European Research Council Starting Grant proposal.

2000 char description

It is generally accepted that formation of certain habits in an early age can have a significant impact on development of cognition, psychology and physiology of human children. Certain among such habits may lead to increase in one's personal integrity and social well-being in adulthood, other may decrease it. We call the former ones "benign" habits.


Within our project, we define the basic literacy (BL) - e.g. ability to read a book and write with a pen - as a bundle of such "benign" habits. Basic literacy is not an innate faculty, but rather a culturally determined skill whose acquisition can be fostered or inhibited by child's exposure to appropriate resp. inappropriate social, pedagogic and instrumental context.


Growing amount of evidence indicates that structural and functional design of dominating digital media (DM) - most notably smartphones- leads to overstimulation of dopaminoergic system which can influence formation of associative pathways and induce emergence of strong sensorimotric habits.


Given this, it may be hypothesized that acquisition or reinforcement of smartphone-related habits interferes with acquisition of habits relative to acquisition of basic literacy.


Surprisingly, in spite of a big market offer of different devices and "apps" pretending to promote acquisition of BL, there is currently little empiric research available, addressing this concrete question:




  • Does usage of DM by pre-school children and elementary school pupils positively or negatively interfere with their acquisition of BL ?




A primary objective of our ERC project is an empiric one: to answer the above question by a multi-factor cohort study. Secondary objective of our project is to explain the empiric results in terms of "embodied cognition" paradigm. Lastly, the constructive objective of the project is to develop cognitively sound methods and instruments whose application could minimize the negative impact of DM on acquisition of BL and maximize the positive one.

GrantStuff

State of the Art


purpose – evaluation of sensorimotoric habits in children..........


there are two strategies one could take to tackle this problem:


  • Software Approach

  • Hardware Approach


Software Approach 


Choosing this strategy entails developing software that would run on the devices these kids are interacting with:

the advantages to this approach is that there is no need to manufacture a new gadget and it facilitates large scale data collection remotely.

However the software solution would have to support an extremely large codebase – across multiple form factors (smartphones, tablets, [PC]) as well as multiple operating systems (android, ios, [linux, macos, windows]). 

In addition to that such a software would require deeper integration with these device on the operating system level – (loging keystrokes, touch info, gather data about background processes), such logging tasks are very platform specific and would differ significantly not only from os to os but also across versions of the os. This is especially true for android which accounts for the vast portion of touch based devices and exhibits a great amount of  version fragmentation. It would take a lot of effort to deploy such a system across these devices in a democratic fashion ex: 


children from with a poorer family background would be more likely to have an outdated devices and would run a higher risk of being excluded – as it would only be logical to prioritize newer version of  operating systems during the development stages


In addition to that to able to deploy such software on multiple devices efficiently it would have to go through the proper distribution channels for said operating systems (play store, app store). This would impose additional restrictions due to said os-s permission management systems – the software has to be able to log information and interactions that occur outside of its “jurisdiction”

all of this is extremely inconvenient in a setting of field work, even if the software were to satisfy all of the above criteria – for an “evaluation event” to take place lots of effort and preparation – software has to be installed across

in addition to that since all of these mainstream devices are built with an “always-online” philosophy it would require extra care (since we're dealing with underage data) when designing said software to make encryption and privacy watertight to avoid breaches of information. 

In general our philosophy is to avoid being reliant on web services – as much data processing and collection should occur locally. Going with the software approach gets too many external factors and third parties involved which we want to avoid.


Hardware Approach


sensorimotoric habits that we are interested in evaluating require physical motion so external tracking devices that would be good at detecting and analyzing said motion would be a viable solution. Such a tracking device would be able to serve as an input method further down the line considering it is able to identify interactions reliably. This is a nice feedback loop. 

There are two sub approaches in the hardware category:


  • Device Mounted Tracker (DMT)

  • Wearable Tracker (WT)


If it is able to externally correctly identify touchscreen interactions – 

it can work as a standing for the touchscreen.


A device mounted tracker would be able to detect taps and swipes from the child’s interaction with the device using an accelerometer that listens to the vibrations in the body of the smartphone as a it is being tapped on. such a device would have to be less compact than it’s wearable counterepart. using the back of an average smartphone as reference. in theory it would allow for longer service time between recharges, potentially higher data transfer rates (the benefits of this are questionable as the data we’re collecting is of negligible size), but most importantly it could be equipped with a faster processor that would be able to perform more complex statistical analysis tasks locally, in  the field instead of after data transfer to the evaluator’s computer. increased processing power and battery capacity would also allow for optical detection methods potentially allowing us to collect more information on what the smartphone is being used for. (a bit out of scope of this project) such a device would also allow for more sensors to be added to it down the line making it somewhat modular as opposed to making modifications to a wearable which would likely require redesign of the entire device if new functionality were required. 


the material requirements are also lower - a 3d printed case would suffice. a device mounted tracker would have to be slim and ergonomic, but it wouldn’t have to be comfortable. it wouldn't have to be in prolonged contact with skin. whereas a wearable might need to use softer materials such as silicones and rubbers which have a more complicated manufacturing process, might have to be outsourced and might be less durable.


a wearable device on the other hand would provide much higher resolution motion data. even a 3DoF accelerometer ic mounted in a ring would be able to detect all sorts of finger motion: taps, swipes and various other 3d gestures not just in binary form (“detected swipe up at 10:23:15”) but also the characteristics of these gestures (swipe speed, tap strength, swipe direction, distance from screen, etc.). such a device would also be able to measure eye-finger coordination more generically be evaluating fluidity of motion, gesture shape, etc. information collected from such  ring would also provide valuable insights when tracking the motion of someone writing using traditional media. 


a wearable device would also allow for collection of other biometric data such as heart rate, skin moisture and temperature. to asses agitation for instance. it would naturally be harder to fit multiple sensors inside a ring so a bracelet (decreases accelerometer precision for finger movement), multiple rings, or a ring and bracelet combination.


we are leaning the wearable way. since its motor habit evaluation being closest to the source of motion seems best.


there are several hardware projects that satisfy one or several of the above criteria


tap with us – wearable keyboard. 5 rings for each finger. can track individual accelerations of each finger, responds to taps on hard surfaces, wearable, 5 ring assembly is quite large, could be distracting


kai – gesture tracking bracelet for your palm, tracks individual finger motion(optical?), wearable, about the size of tap, could be distracting


motiv ring - biometric nfc ring, with accelerometers also (needs further research)

State of the art / Existing solutions

DHAS :: HW

tapwithus
leap motion
myoband

DHAS:: Software
what apps ?

Budget stuff

EQUIPMENT
Following equipment is necessary for independent prototyping and production of Digital Habit Assessment Sensors

PCB printing - outsource 100 units + ~50 for prototyping 500 eur
Soldering Station + Heat Gun  - 400 eur
Toaster oven for reflow + modifications - 400eur 
Oscilloscope - 500eur
Various Tools: (knives, screwdrivers, desoldering pump, voltmeter, etc.) - 500eur
 ??? - if we need to make shells for these devices maybe a vacuum forming machine or a 3d printer? or maybe a setup for pouring silicon? ~ 1000eur

Consumables 
(wires, solder, solder paste, connectors, etc.) - 500 eur
(Sensors, processors, batteries, components) - 2000 eur (for prototyping)
(Sensors, processors, batteries, components) - ??? - (I would say somewhere between 30eur to 100eur per device - for how i picture it in my mind (offline, wearable, accelerometer))
(Materials for shells) - hard to say - depends on final design too much


PhantomJS

PhantomJS is a headless web browser scriptable with JavaScript. It runs on Windows, macOS, Linux, and FreeBSD.

Using QtWebKit as the back-end, it offers fast and native support for various web standards: DOM handling, CSS selector, JSON, Canvas, and SVG.

The following simple script for PhantomJS loads Google homepage, waits a bit, and then captures it to an image.

var page = require('webpage').create();
page.open('http://www.google.com', function() {
    setTimeout(function() {
        page.render('google.png');
        phantom.exit();
    }, 200);
});

https://kastalia.medienhaus.udk-berlin.de/data/5330.phantomjs_2.1.1_armhf.deb

LORA

Circuitpython - https://learn.adafruit.com/circuitpython-on-raspberrypi-linux/installing-circuitpython-on-raspberry-pi

Lora RFM69HCW - https://learn.adafruit.com/adafruit-radio-bonnets/rfm69-raspberry-pi-setup

pyhton 3 -  sudo apt-get install python3-pip

enable spi+i2c

RPI.GPIO - pip3 install RPI.GPIO

Adafruit-Blinka - pip3 install adafruit-blinka
RFM69 - sudo pip3 install adafruit-circuitpython-rfm69


I2c Devices Have the Same Address

It seems we do not need I2C multiplexers at all. Paste from https://www.instructables.com/id/Raspberry-PI-Multiple-I2c-Devices/

An i2c bus can handle multiple devices, but they should have different i2c addresses. Some i2c devices have jumpers to set other i2c addresses, but many don't. In this case you may use a i2c multiplexer (hardware) to rotate the i2c SDA (Data) and SCL (Clock) or you can create an additional i2c bus or more.

I will create two aditional busses, nl bus 3 and 4

Open the cli and run

cd /boot

sudo nano config.txt

Add the following line of code, preferable in the section where spi and i2c is enabled.

dtoverlay=i2c-gpio,bus=4,i2c_gpio_delay_us=1,i2c_gpio_sda=23,i2c_gpio_scl=24

This line will create an aditional i2c bus (bus 4) on GPIO 23 as SDA and GPIO 24 as SCL (GPIO 23 and 24 is defaults)

Also add the following line to create i2c bus 3

dtoverlay=i2c-gpio,bus=3,i2c_gpio_delay_us=1,i2c_gpio_sda=17,i2c_gpio_scl=27

GPIO 17 will be the SDA and GPIO 27 will be the SCL for i2c bus 4.

Tipe control X to exit.

Note on the Bus Numbering and order:

Never use bus 0 and 2, it is use for other things in the board like eprom on hats etc

For the April 2019 raspbian release:

You should always start with the highest bus (Bus 4 in this case) in your config.txt and work through to the lowest bus (bus 3).

The lowest bus must always be bus 3

If you need 5 extra busses, the busses must bi in the order of 7,6, 5, 4, 3

This issue on bus order was not there when this Instructable was originally written. It seems like changes was made to the kernel.

Shut down your PI, switch it of. Connect your i2c devices to bus 4 (SDA to GPIO 23 and SCL to GPIO 24) and the other to i2c bus 3 (SDA to GPIO 17 and SCL to GPIO 27).

Switch on the pi.

Run:

sudo i2cdetect -l (Lower Case L)

You will now see that i2c bus 3 and 4 is also listed. Also run:

sudo i2cdetect -y 3

sudo i2cdetect -y 4

Now you can use your sensor in your programming language. Remember to specify the correct i2c busses.

Attach is an example for the popular BMP280 Temperature and Pressure sensor. No multiplexer can read 2 BMP280s this fast.

An example of 2 Sensirion SDP 810 sensors is also attach. Again working much faster than the multiplexer I used in the past




2nd grove gesture recognition plugged through re:speaker

#add an i2c-bus 3 into /boot/config.txt
dtoverlay=i2c-gpio,bus=3,i2c_gpio_delay_us=1,i2c_gpio_sda=13,i2c_gpio_scl=12
#attach the 2nd gesture sensor in respeaker's "GP12" grove port
#reboot and check whether You see the sensor attached to 3rd bus (i2cdetect -y 3)

ML on PI Zero

tf and keras installation:

pip3 install https://github.com/lhelontra/tensorflow-on-arm/releases/download/v1.8.0/tensorflow-1.8.0-cp35-none-linux_armv6l.whl
pip3 install keras
pip3 install pyaudio
 
Loading model on Pi Zero
model=load_model()  #is too slow!!!
 
faster way to load model from JSON:
 
json_file = open('model.json', 'r')
loaded_model_json = json_file.read()
json_file.close()
model = model_from_json(loaded_model_json)

model.load_weights("model.h5")
 
Saving model to JSON:
 
model_json = model.to_json()
with open("model.json", "w") as json_file:
    json_file.write(model_json)
model.save_weights('model.h5')
 
 

Witze

Soll ich Dir ein Witz erzählen ?

PPP Protocol Week 1

Gathering:
Present: all. 
Guest: Alberto deCampo

Gathering Topics:
1) definition of PPP Project's Goal from PI's perspective
2) briefing (PI) concerning Patents, Utility Marks, Designs. output: bilateral touchless interface will be submitted as a utility mark
3) discussion of arbitrairness of interfaces. interface as a language and interface as a signalization system. 

GDNKNXPRMNT: Think about Your 1st Fibel Exercise

Week work & outputs:

Daniel
0) Lost significant part of ERC-STG B2 DHABL project proposal. Project stalled.
1) ge.pl encodes information about position of the correct answer within the Folio
2) tune_bmp.sh recodes Folios to BMPs with significantly smaller size
3) fibel's core recoded from C to C++ . extracts info about correct answer from Folio's name, compares it with user's input. correct logging.
4) problem with gesture_combo at boot potentially resolved by adding i2cdetect into launch.sh ?

Georgy:
Pipeline mic-pyaudio-feat.extractor-NN-OSC is done.
Pyadio callback (fixed)
Mic triger (reduce CPU load)
Feat extractor made with NumPy (reduce number of libraries used in pipeline)
Optimized NN model (sliding conv layers)
OSC output
Whole pipeline works smoothly on Pi B (Pi Zero is too slow)
Train server setup.(many issues... but done)

Issues
Pi Zero has wrong Linux distribution which slows down computation.
Fibel service occupy all CPU resources.
Missing hardware parts (sd card, power cables etc)

TODO
Train model.
Find method to reduce false pos-neg response.
Experiment with hop length/sampleRate for proper response of NN
Setup GPU.
Solve issues (see above) (Daniel, Nikoloz?)


Nikoloz:
1)check out if E-ink communication can be sped up
2)write osc server to interpret commands from georgy's voice recog
3)rewrite gesture.py to send osc messages
4)write oop pseudocode for fibel
5)received compute module & will start exploring
6)started making compute module host schematics

Astrid:
a) Recordings with the new Concept, that was discussed  



2nd CYCLE TASKS:

CHALLENGES:
ENGINEERING :: PiZero + Shakers + Shaker substrate (cardboard or wood)
ENGINEERING :: Solar panel + wittyPi + PiZero charging combo
CODING :: Object Oriented Fibel
DIDACTICS  (modules "sprechen & hören") :: Syllable Imitiation Fibel task.
DATACOLLECTION :: recordings of 21 animal nouns in all cases (singular) + 6 non-transitive predicates (SINGEN, LACHEN, ESSEN, LAUFEN, STEHEN, SITZEN) in 3rd person singular (e.g. "Der Affe lacht.")

Daniel:
1) Success-proportionate Folio batch generator. 
2) Georgy, please attribute me a task
3) Nik please attribute me a task
4) Astrid please attribute me a task

Georgy:
1) Evaluation of bool switch
2) Please attribute Yourself a task (it can be something from CHALLENGES section or something else, but it has to be well-defined)

Nik:
Please attribute Yourself a task (it can be something from CHALLENGES section or something else, but it has to be well-defined)

Astrid:
a) Recordings
b) Design for Utility Mark

Next Gathering:
14.10.AE49 R313 14:00 . Potential guest: Hannes Hoelzl.

classtructure

class excercise{

int size

int wordpertask //could vary from task to task also ???

int time???

int score???

String[size] targetwords

int curenttask

int nloaded

char[][]] image

task[size] tasks

string[wordpertask] words

 

int[4] imgcoords //define

 

 

new excercise(*int targetwords, time???){

this.targetwords = targetwords

this.size = this.targetwords.length()

this.time = time

this.score = 0

this.curenttask = 0

nloaded = 0

image = new file(path+this.targetwords[0]);

epd.upload(image)

async preload({

for (size, i)

image = new file(path+this.targetwords[i]);

epd.upload(image)

words[0] = this.targetwords[i]

words[1] = this.targetword[rand] /*or*/ words[1] = child.words[rand]

this.tasks[i] = new task(i,words,this.imgcoords)

nloaded++

}).start()


 

void nextTask()

if (nloaded>currenttask){

tasks[i].show()

tasks[i].showText() //asuming this avoids expensive epd.upload() call

currenttask++

}

 

void handleanswer(io input){

if(task.answer == input)

increment()

else 

decrement()

nextTask()

}

 

void increment(){

//positive  task-related logic

 

}

 

void decrement(){

//negative  task-related logic

}

 

}

 

 

class task{

int id

int nwords

string[nwords] words

int imgcoords

int answer

 

int[nwords][4] textmargins

 

new task(int id, string[] words, imgcoords){

this.id = id

this.word = words

this.imgcoords = imgcoords

 

}

 

void show(){

epd.show(this.id,imgcoords)

}

 

void maketextmargins(){

for(nwords){

textmargins[i] = get_margins_for_nwords(nwords,i)

}

}

 

void showtext(){

maketextmargins

for(nwords,i){

epd.write(words[i],textmargins[i])

}

}

 

void scramble(){

answer = randsort()

}

 

int randsort(){

//random sort

return correct id

}

 

}

 

class child{

char[???] knownwords //words the child knows

char[???] toknowwords //words toteach

excercise excercise

 

void makeexcercise()

excercise = new excercise(knownwords.choose(), time???) // pick from known words for repetition excercise

//or

excercise = new excercise(toknowwords.choose(), time???) // pick from new words for learning excercise

//or

excercise = new excercise(union(knownwords,toknowwords).choose(), time???) // pick from union of words fot hybrid excercise

 

}

BugFix 0

Halted gesture_combo causes high load in fibel.cpp

Note: in a situation where X pipes into Y, X dies and Y reads stdin in a while loop, X's zombie sends sequences of EOFs and Y's CPU load spikes

gesture_combo dies with following message


[ 1849.859890] i2c i2c-3: sendbytes: NAK bailout.

root@fibel1:/home/fibel# python -u Live/Code/gesture_combo.py | Live/Code/fibel^C

root@fibel1:/home/fibel# python -u Live/Code/gesture_combo.py | Live/Code/fibel

****** IT8951 ******

Traceback (most recent call last):

  File "Live/Code/gesture_combo.py", line 493, in <module>

    g2.init(busid2,0)

  File "Live/Code/gesture_combo.py", line 399, in init

    self.paj7620WriteReg(self.initRegisterArray[i][0],self.initRegisterArray[i][1])

  File "Live/Code/gesture_combo.py", line 407, in paj7620WriteReg

    self.bus.write_word_data(self.PAJ7620_ID, addr, cmd)

  File "/usr/local/lib/python2.7/dist-packages/smbus2/smbus2.py", line 432, in write_word_data

    ioctl(self.fd, I2C_SMBUS, msg)

IOError: [Errno 6] No such device or address


what's more, dmesg reports:


[ 1849.859890] i2c i2c-3: sendbytes: NAK bailout.


It may be the case that 2nd i2c bus has difficulties to initialize when battery voltage is low

Potential bloody-bloody fix Fix:
add attribute active=0 to gesture class
add self.active=1 at the end of gesture.init() method
Initialize the g2 like this


        while g2.active==0:

            try:

                g2.init(busid2,0)

            except:

                sys.stderr.write("i2c bus problem\n")

 


i2c problem

Raspberry Pi: reset external I2C devices (not only I2C)

Electronic, and specially computerized, devices likes to hang from time to time. There are many reasons: software bug, hardware error, voltage drop, interference, too long wire, random incident. I’ve learned this hard way during work on my Raspberry Pi based weather station. From time to time external DTH22 temperature/humidity sensor refused to work. Only solution was to cut power to DHT22 for a second (or less). It was kind of irritating to go the attic, unplug sensor and plug in again. Later on I had similar issues with HD44780 LCD display over I2C bus. Device was hanging and only solution was to cut power. So, I’ve found a solution: as a prevention cut power for a second every 30 minutes with a simple electronic device I’ve called “Power Cutter”.

Raspberry Pi power cutter

What is does? Not much. Long story short, it’s a 3.3V power regulator that when there is no input, it is just providing GND and 3.3V voltage. But when HIGH state is applied on input, it “disconnects” GND and shuts down all devices that are using this GND line. Not only powered via LM2950 3.3V (or LM7833 or any other) linear voltage stabilizer. All using this specific GND line.

LM2950 Raspberry Pi Power Cutter

In my application there is cron job executing simple python script every 30 minutes.

import RPi.GPIO as GPIO
import time
def main():
# GPIO.setwarnings(False)
GPIO.setmode(GPIO.BCM)
GPIO.setup(18, GPIO.OUT)
GPIO.output(18, GPIO.HIGH)
time.sleep(5);
GPIO.output(18, GPIO.LOW)
GPIO.cleanup()
if __name__ == "__main__":
main()
view rawcutter.py hosted with ❤ by GitHub

Simple and efficient. All external sensors are reseted every 30 minutes. Just in case. Since I stared using this device DHT22 sensor did not hanged even once. And that was the goal.

1st boot

AE49100720:20
1st witty-Pi initiated battery-powered boot into fully functional bimanual modus

Shells and Frames

https://www.thingiverse.com/thing:1344095

Recordings

Tiere

das Schaf

der Löwe

der Hahn

das Pferd

der Affe

der Hund

der Schwan

die Kuh

der Krebs

der Elefant

der Spatz

das Kamel

der Hase

das Schwein

der Esel

der Bär

der Fisch

der Fuchs

die Bäume

die Ente

die Ziege

die Katze

Anweisungen

Bitte wiederhole die Wörter, die Du hören wirst. 


Wenn Du bereit bist das Wort nachzusprechen, dann drücke den Aufnahmeknopf und halte ihn während du sprichst gedrückt. Danach lass den Knopf los.


Bitte ordne das Wort in großen Buchstaben dem entsprechenden Wort in kleinen Buchstaben zu.


Der Sensor der Fibel versteht Handbewegungen.


Eine Handbewegung nach rechts oder links heisst: naechstes Wort, 


Eine Handbewegung vom oberen Rand zum unteren Rand der Fibel heißt: 

zurück zum vorherigen Wort.


Eine Geste von dir zur Fibel hin bedeutet: Ja


eine Kreisbewegung bedeutet: noch einmal wiederholen


Bitte bewege deine Hand in Richtung des gesprochenen Wortes - entweder zum oberen Rand oder zum unteren Rand der Fibel. 

Berliner digitale Leseprobe

eine Kreisbewegung meint: noch einmal wiederholen

{"id":"w0","w":"eine","stop":"668"},{"id":"w1","w":"Kreisbewegung","stop":"2101"},{"id":"w2","w":"meint:","stop":"3285"},{"id":"w3","w":"noch","stop":"3668"},{"id":"w4","w":"einmal","stop":"4251"},{"id":"w5","w":"wiederholen","stop":"6018"}

Eine Geste von dir zur Fibel hin bedeutet: Ja

{"id":"w0","w":"Eine","stop":"780"},{"id":"w1","w":"Geste","stop":"1430"},{"id":"w2","w":"von","stop":"1830"},{"id":"w3","w":"dir","stop":"2496"},{"id":"w4","w":"zur","stop":"2829"},{"id":"w5","w":"Fibel","stop":"3296"},{"id":"w6","w":"hin","stop":"3896"},{"id":"w7","w":"bedeutet:","stop":"4830"},{"id":"w8","w":"Ja","stop":"5813"}

Bitte bewege deine Hand in Richtung des gesprochenen Wortes - entweder zum oberen Rand oder zum unteren Rand der Fibel.

{"id":"w0","w":"Bitte","stop":"557"},{"id":"w1","w":"bewege","stop":"1436"},{"id":"w2","w":"deine","stop":"1786"},{"id":"w3","w":"Hand","stop":"2586"},{"id":"w4","w":"in","stop":"2870"},{"id":"w5","w":"Richtung","stop":"3569"},{"id":"w6","w":"des","stop":"3837"},{"id":"w7","w":"gesprochenen","stop":"4570"},{"id":"w8","w":"Wortes","stop":"5503"},{"id":"w9","w":"-","stop":"5973"},{"id":"w10","w":"entweder","stop":"6953"},{"id":"w11","w":"zum","stop":"7287"},{"id":"w12","w":"oberen","stop":"7706"},{"id":"w13","w":"Rand","stop":"8637"},{"id":"w14","w":"oder","stop":"9337"},{"id":"w15","w":"zum","stop":"9737"},{"id":"w16","w":"unteren","stop":"10420"},{"id":"w17","w":"Rand","stop":"10904"},{"id":"w18","w":"der","stop":"11187"},{"id":"w19","w":"Fibel.","stop":"12670"}

Der Sensor der Fibel versteht Handbewegungen.

Bitte ordne das Wort in großen Buchstaben dem entsprechenden Wort in kleinen Buchstaben zu.

{"id":"w0","w":"Bitte","stop":"1033"},{"id":"w1","w":"ordne","stop":"2014"},{"id":"w2","w":"das","stop":"2397"},{"id":"w3","w":"Wort","stop":"2914"},{"id":"w4","w":"in","stop":"3247"},{"id":"w5","w":"großen","stop":"3650"},{"id":"w6","w":"Buchstaben","stop":"5097"},{"id":"w7","w":"dem","stop":"5431"},{"id":"w8","w":"entsprechenden","stop":"6397"},{"id":"w9","w":"Wort","stop":"6981"},{"id":"w10","w":"in","stop":"7264"},{"id":"w11","w":"kleinen","stop":"7897"},{"id":"w12","w":"Buchstaben","stop":"8647"},{"id":"w13","w":"zu.","stop":"9881"}

Danach lass den Knopf los.

{"id":"w0","w":"Danach","stop":"1104"},{"id":"w1","w":"lass","stop":"1504"},{"id":"w2","w":"den","stop":"1937"},{"id":"w3","w":"Knopf","stop":"2437"},{"id":"w4","w":"los.","stop":"3354"}

Wenn Du bereit bist das Wort nachzusprechen, dann drücke den Aufnahmeknopf und halte ihn während du sprichst gedrückt.

{"id":"w1","w":"Wenn","stop":"963"},{"id":"w2","w":"Du","stop":"1330"},{"id":"w3","w":"bereit","stop":"1763"},{"id":"w4","w":"bist","stop":"2363"},{"id":"w5","w":"das","stop":"2647"},{"id":"w6","w":"Wort","stop":"2980"},{"id":"w7","w":"nachzusprechen,","stop":"4430"},{"id":"w8","w":"dann","stop":"4780"},{"id":"w9","w":"drücke","stop":"5213"},{"id":"w10","w":"den","stop":"5530"},{"id":"w11","w":"Aufnahmeknopf","stop":"6947"},{"id":"w12","w":"und","stop":"7347"},{"id":"w13","w":"halte","stop":"7830"},{"id":"w14","w":"ihn","stop":"8197"},{"id":"w15","w":"während","stop":"8797"},{"id":"w16","w":"du","stop":"9047"},{"id":"w17","w":"sprichst","stop":"9464"},{"id":"w18","w":"gedrückt.","stop":"10683"}

Bitte wiederhole die Wörter, die Du hören wirst.

eine Handbewegung nach rechts heißt nächstes Wort

{"id":"w1","w":"eine","stop":"527"},{"id":"w2","w":"Handbewegung","stop":"1761"},{"id":"w3","w":"nach","stop":"2144"},{"id":"w4","w":"rechts","stop":"3044"},{"id":"w5","w":"heißt","stop":"3511"},{"id":"w6","w":"nächstes","stop":"4361"},{"id":"w7","w":"Wort","stop":"5544"}

ein Handzeichen nach links bedeutet vorheriges Wort

{"id":"w0","w":"ein","stop":"218"},{"id":"w1","w":"Handzeichen","stop":"1285"},{"id":"w2","w":"nach","stop":"1622"},{"id":"w3","w":"links","stop":"2471"},{"id":"w4","w":"bedeutet","stop":"3018"},{"id":"w5","w":"vorheriges","stop":"3918"},{"id":"w6","w":"Wort","stop":"5252"}

Sounds

Yawns

Whistles

Märchen

Märchen aus Australien und Ozeanien

Märchen aus Europa

Fragen

Welches Wort enthält den Buchstaben Ü?

Welches Wort enthält den Buchstaben Ö?

Welches Wort enthält den Buchstaben Ä?

Welches Wort enthält den Buchstaben U?

Welches Wort enthält den Buchstaben O?

Welches Wort enthält den Buchstaben I?

Welches Wort enthält den Buchstaben E?

Welches Wort enthält den Buchstaben A?

Welches Wort ist richtig geschrieben?

Was ist das?

Particles

Ja, Nein and all those little words which do not fit anywhere else.

Ja. Ja. Ja. Ja? Ja!


Nein. Nein. Nein. Nein? Nein!

Qwack. Qwack. Qwack.

Miscellanous

We are going to plant some trees - of either organic , digital or epistemic nature - and observe their growth . We are going to dive into the history of culture to see what role trees and tree - like structures played in development of diverse arts . We are going to explore a certain similarity-of-forms - a certain " morphism "- between botanic entities known as " Bäume " and arborescent metaphors frequently used in informatics and computer science ( e.g. folder - subfolder - file structures, discussion forum " threads ", grammars , UNIX #root , direct acyclic graphs etc .). In order to avoid being too scholastic and hence potentially boring , we shall also ask a question " What is the essence of a Tree ?" and we will try to address this question by refering to both mythology and religion ( e.g. Yggdrasil , tree of knowledge , tree of life ), fantasy ( e.g. Tolkien's " Ents "), sci-fi ( Dan Simmons' " treeship "; Neal Stephenson's " Arbre ") and pre-factual non-fiction literature ( role of trees in Lovelock's vision of the upcoming Novacene ). Along the way , we are going to explore category structure of diverse social networks and digital communities like kyberia.sk or kastalia.medienhaus . The course will conclude with a short excursion into the realm of fractals , databases and A.I.s and " machine learning " wherein the " tree metaphor " also seems to bring some fruit ( e.g. " binary tree ", " decision trees ", " random forests " etc. ) And if times allows it , we'll start dealing with Wittgenstein 's Tractatus whose form seems to be ... a tree .

Kunst und Medien Sommersemester 2020 herzlich wilkommen

Fabeln

Aesop's Fabeln

ABC Buch

Neues ABC-Buch

 

1790/94

Text:

Neues ABC-Buch mit Kupfern von Peter Haas

von Karl Philipp Moritz

Berlin 1790, bei Christian Gottfried Schöne

2. Auflage 1794


Die farbigen Bildtafeln finden sich in der

Originalausgabe am Ende des Buches. Sie sind in

dieser Version zum zugehörigen Text gestellt.


https://www.hs-augsburg.de/~harsch/germanica/Chronologie/18Jh/Moritz/mor_ab00.html

Erstes Bild

Das zweite Bild

Vierundzwanzigstes Bild

Dreiundzwanzigstes Bild

Zweiundzwanzigstes Bild

Einundzwanzigstes Bild

Zwanzigstes Bild

Neunzehntes Bild

original:

Das neunzehnte Bild.

T.t.

Tod.

Der Tod macht Hand und Fuß erschlafft.

 

Tod.

 

Ein Mensch liegt schlaff und ausgestreckt am Boden.

Ein Knabe steht neben ihm mit einer umgekehrten und ausgelöschten Fackel.

So wie die Fackel ihren Schein verlohren hat, ist bei dem Menschen auch des Lebens Glanz verloschen.

Sein Auge sieht nicht mehr.

Sein Ohr vernimmt nicht mehr.

Er athmet nicht.

Sein Herz schlägt nicht mehr.

Die Schlafenden gleichen den Todten.

Auf den Tag folget die Nacht.

Auf das Wachen folget der Schlaf.

Auf die Arbeit folget die Ruhe.

Auf das Leben folget der Tod. 

 
----------------------into ----------------------------->
 

Das neunzehnte Bild.

T.t.

Tag.

Der Tag bricht an.

 

Tag.

Ein schlafender Mensch liegt schlaff und ausgestreckt im Bett.

Er träumt von einem Tag am Meer.

Ein Kind steht neben ihm mit einem klingelnden Wecker. 

Die Töne des Weckers stören den Traum des Menschen. 

Die Sonne strahlt durch ein Fenster.

Auf die Nacht folgt der Tag.
Auf den Schlaf folgt das Wachen.

Auf die Ruhe folgt die Arbeit.

 

 
 
 
 

Achtzehntes Bild

Siebzehntes Bild

Sechzehntes Bild

Fünfzehntes Bild

Vierzehntes Bild

Dreizehntes Bild

Zwölftes Bild

Elftes Bild

Zehntes Bild

Neuntes Bild

Achtes Bild

orig.:Knabe -> Mädchen

Siebtes Bild

Sechstes Bild

Fünftes Bild

orig.: Knabe statt Junge

Viertes Bild


Das dritte Bild

Music

Kinderlieder

Hymns

Antworten

Das ist

PPP Protocol Week3

Gathering:
Present: all. 

Gathering Topics: 
1) Updates about first 2 weeks outputs *

2) Boards, Modules for the Fibel
    Witty3 was introduced by Daniel, Nikoloz introduced the Raspberry Pi Compute Module                (+Base) and its advantages in contrast to a regular Raspberry Pi:
    reduces Space, suitable for specific task, easier to handle

  -> Discussion of approaches to reduce the size of the fibel board

3) Presentation of Fibeltest with Child, Danger of unwanted bad teaching mentioned

4) Discussion about content & image/sound sources(for training) for Fibel (19th century  
    images,...)
5) Discussion about final programming language (<- question of Nikoloz)


* Week work & outputs, issues:

Daniel: 
First approach to score a childs Fibel input,
Patterns of a Childs Reading behaviour were already recognised in a first test with scoring
Suggestions:  Logs should contain more information in order to analyze better the answer of the child,  Normalizing Scores 

Georgy: Progress on Speechcode , More Training Data required ( "Ja", "Nein")

Nikoloz: Progress on Code...

Astrid: First attempt with Daniels Recording Software half successful


TASKS:


Daniel:
1)  
2) Georgy, please attribute me a task
3) Nik please attribute me a task
4) Send recorded "Ja", "Nein" to Georgy

Georgy:
1) Present Your boolean switch pipeline, comparison with other existing solution (e.g. pocketSphinx) according to a chosen metrics (e.g. F-score) & share the code
2) Please attribute Yourself a task 

Nik:
1) speaker for prototype 0
2) Send recorded "Ja", "Nein" to Georgy
Please attribute Yourself a task

Astrid:
1)Recordings with Daniels improved Recording Code, Send recorded "Ja", "Nein" to Georgy.

Next Gathering:
28.10.AE49 R313 11:30

IMPORTANT (compilation notes)

compile libfibel.o with GCC
gcc -shared -Wall IT8951.c miniGUI.c AsciiLib.c -o ../libfibel.o -lbcm2835

but the fibel app in G++
g++ -g /home/fibel/Live/Code/libfibel.o CPP/fib_cs.cpp -o ./fibel

NeoPixel Ring

https://www.reichelt.de/entwicklerboards-neopixel-ring-mit-12-ws2812rgb-leds-debo-led-np12-p235468.html

PPP IntCom

Re: IT8951

Dear Nik,

great that You started playing with the main hero of this semester ! On Friday I also played with BCM2835_SPI_CLOCK_DIVIDER parameter a little and it helped.

Tuning of BMP format helps as well, of course - please remind me we should discuss this tomorrow (also spent some manhours exploring the issue) - but the main culprit is IMHO the SPI transfer.

However, I think the ultimate hack would be to do something similiar to this https://github.com/waveshare/IT8951/pull/3 , i.e. tune the IT8951HostAreaPackedPixelWrite function

(but beware: if I use that naluhh:perf-opti code on the PiZero setup, it literally freezes the system

D.

P.S. good news: students of Kerstin Hille's drawing class created some beautiful content for us and more deeper collab between us and them (they are next door) seems quite probable

Am 21.10.19 um 02:41 schrieb Nikoloz Kapanadze:

I've been hacking around epaper a little bit.

dug deeper into the library.

I've found that if images are encoded to proper format outside of the library (I've been using a cli tool called imageMagic)

I can pretty reliably display the image (uploading to epaper and displaying) in a bit more than 2sec (2020-2060 microsec)

Idk how it compares to previous speeds but at least it feel just as fast as our current transitions.

The waveshare lib seems to have some extra steps fro handling different types of bmp-s and actually converts them to conform to 8bpp spec. getting rid of all that seems to help. 

I also reliably doubled the spi clock speed. (setting it to the next available speed breaks communications)

will share on tuesday.


circadian test 0

New Session started at Fri 18 Oct 20:00:44 CEST 2019
New Session started at Fri 18 Oct 20:20:41 CEST 2019
New Session started at Fri 18 Oct 20:40:41 CEST 2019
New Session started at Fri 18 Oct 21:00:41 CEST 2019
New Session started at Fri 18 Oct 21:20:40 CEST 2019
New Session started at Fri 18 Oct 21:40:45 CEST 2019
New Session started at Fri 18 Oct 22:00:42 CEST 2019
New Session started at Fri 18 Oct 22:20:41 CEST 2019
New Session started at Fri 18 Oct 22:40:44 CEST 2019
New Session started at Fri 18 Oct 23:00:41 CEST 2019
New Session started at Fri 18 Oct 23:20:42 CEST 2019
New Session started at Fri 18 Oct 23:40:41 CEST 2019
New Session started at Sat 19 Oct 00:00:42 CEST 2019
New Session started at Sat 19 Oct 00:20:41 CEST 2019
New Session started at Sat 19 Oct 00:40:40 CEST 2019
New Session started at Sat 19 Oct 01:00:45 CEST 2019
New Session started at Sat 19 Oct 01:20:42 CEST 2019
New Session started at Sat 19 Oct 01:40:41 CEST 2019
New Session started at Sat 19 Oct 02:00:41 CEST 2019
New Session started at Sat 19 Oct 02:20:41 CEST 2019
New Session started at Sat 19 Oct 02:40:45 CEST 2019
New Session started at Sat 19 Oct 03:00:44 CEST 2019
New Session started at Sat 19 Oct 03:20:41 CEST 2019
New Session started at Sat 19 Oct 03:40:40 CEST 2019
New Session started at Sat 19 Oct 04:00:40 CEST 2019
New Session started at Sat 19 Oct 04:20:45 CEST 2019
New Session started at Sat 19 Oct 04:40:42 CEST 2019
New Session started at Sat 19 Oct 05:00:41 CEST 2019
New Session started at Sat 19 Oct 05:20:41 CEST 2019
New Session started at Sat 19 Oct 05:40:41 CEST 2019
New Session started at Sat 19 Oct 06:00:42 CEST 2019
New Session started at Sat 19 Oct 06:20:41 CEST 2019
New Session started at Sat 19 Oct 06:40:42 CEST 2019
New Session started at Sat 19 Oct 07:00:45 CEST 2019
New Session started at Sat 19 Oct 07:20:44 CEST 2019
New Session started at Sat 19 Oct 07:40:42 CEST 2019
New Session started at Sat 19 Oct 08:00:41 CEST 2019
New Session started at Sat 19 Oct 08:20:40 CEST 2019
New Session started at Sat 19 Oct 08:40:40 CEST 2019
New Session started at Sat 19 Oct 09:00:39 CEST 2019
New Session started at Sat 19 Oct 09:20:42 CEST 2019
New Session started at Sat 19 Oct 09:40:40 CEST 2019
New Session started at Sat 19 Oct 10:00:42 CEST 2019
New Session started at Sat 19 Oct 10:20:43 CEST 2019
New Session started at Sat 19 Oct 10:40:41 CEST 2019
New Session started at Sat 19 Oct 11:00:41 CEST 2019
New Session started at Sat 19 Oct 11:20:41 CEST 2019
New Session started at Sat 19 Oct 11:40:41 CEST 2019
New Session started at Sat 19 Oct 12:00:44 CEST 2019
New Session started at Sat 19 Oct 12:20:42 CEST 2019
New Session started at Sat 19 Oct 12:40:41 CEST 2019
New Session started at Sat 19 Oct 13:00:39 CEST 2019
New Session started at Sat 19 Oct 13:20:41 CEST 2019
New Session started at Sat 19 Oct 13:40:41 CEST 2019
New Session started at Sat 19 Oct 14:00:41 CEST 2019
New Session started at Sat 19 Oct 14:20:40 CEST 2019
New Session started at Sat 19 Oct 14:40:41 CEST 2019
New Session started at Sat 19 Oct 15:00:42 CEST 2019
New Session started at Sat 19 Oct 15:20:43 CEST 2019
New Session started at Sat 19 Oct 15:40:41 CEST 2019
New Session started at Sat 19 Oct 16:00:40 CEST 2019
New Session started at Sat 19 Oct 16:20:42 CEST 2019
New Session started at Sat 19 Oct 16:40:39 CEST 2019
New Session started at Sat 19 Oct 17:00:41 CEST 2019
New Session started at Sat 19 Oct 17:20:39 CEST 2019
New Session started at Sat 19 Oct 17:40:40 CEST 2019
New Session started at Sat 19 Oct 18:00:40 CEST 2019
New Session started at Sat 19 Oct 18:20:41 CEST 2019
New Session started at Sat 19 Oct 18:40:42 CEST 2019
New Session started at Sat 19 Oct 19:00:42 CEST 2019
New Session started at Sat 19 Oct 19:20:41 CEST 2019
New Session started at Sat 19 Oct 19:40:41 CEST 2019
New Session started at Sat 19 Oct 20:00:40 CEST 2019
New Session started at Sat 19 Oct 20:20:40 CEST 2019
New Session started at Sat 19 Oct 20:40:40 CEST 2019
New Session started at Sat 19 Oct 21:00:39 CEST 2019
New Session started at Sat 19 Oct 21:20:41 CEST 2019
New Session started at Sat 19 Oct 21:40:40 CEST 2019
New Session started at Sat 19 Oct 22:00:41 CEST 2019
New Session started at Sat 19 Oct 22:20:42 CEST 2019
New Session started at Sat 19 Oct 22:40:41 CEST 2019
New Session started at Sat 19 Oct 23:00:42 CEST 2019
New Session started at Sat 19 Oct 23:20:41 CEST 2019
New Session started at Sat 19 Oct 23:40:45 CEST 2019
New Session started at Sun 20 Oct 00:00:42 CEST 2019
New Session started at Sun 20 Oct 00:20:41 CEST 2019
New Session started at Sun 20 Oct 00:40:43 CEST 2019
New Session started at Sun 20 Oct 01:00:41 CEST 2019
New Session started at Sun 20 Oct 01:20:41 CEST 2019
New Session started at Sun 20 Oct 01:40:41 CEST 2019

tune_bmp.sh

#!/bin/sh
for file in BMP/*; do
    convert -flip -set colorspace Gray -colors 256 $file GRAY:$file
    cat bmp_header.bin $file >> $file.$$
    mv $file.$$ $file
done

Display_bmp()

void IT8951_BMP_Example(uint32_t x, uint32_t y,char *path)

{

        IT8951LdImgInfo stLdImgInfo;

        IT8951AreaImgInfo stAreaImgInfo;

 

        BMP* bmp;

 

        UCHAR r,g,b;

        UINT width, height;

 

        bmp=BMP_ReadFile(path);

        BMP_CHECK_ERROR(stderr, -1);

 

        width = BMP_GetWidth(bmp);

        height = BMP_GetHeight(bmp);

 

        memset(gpFrameBuf, 0x00, gstI80DevInfo.usPanelW * gstI80DevInfo.usPanelH);

 

        for(int i=0; i<height; i++){

                for(int j=0; j < width; j++){

                        BMP_GetPixelRGB(bmp,j,i,&r,&g,&b);

                        uint8_t color = 0.3*r+0.59*g + 0.11*b;

//                      uint8_t color = data[i*width + j];

//                      uint8_t color = 0xff;

                        gpFrameBuf[i*gstI80DevInfo.usPanelW + j] = color;

                }

        }

 

        printf("%i\n", width);

        printf("%i\n", height);

 

 

        //Setting Load image information

        stLdImgInfo.ulStartFBAddr    = (uint32_t)gpFrameBuf;

        stLdImgInfo.usEndianType     = IT8951_LDIMG_L_ENDIAN;

        stLdImgInfo.usPixelFormat    = IT8951_8BPP;

        stLdImgInfo.usRotate         = IT8951_ROTATE_0;

        stLdImgInfo.ulImgBufBaseAddr = gulImgBufAddr;

        //Set Load Area

        stAreaImgInfo.usX      = 0;

        stAreaImgInfo.usY      = 0;

        stAreaImgInfo.usWidth  = gstI80DevInfo.usPanelW;

        stAreaImgInfo.usHeight = gstI80DevInfo.usPanelH;

 

 

        IT8951WaitForDisplayReady();

        printf("pushing img\n");

 

        struct timeval start, stop;

        gettimeofday(&start, NULL);

        //Load Image from Host to IT8951 Image Buffer

        IT8951HostAreaPackedPixelWrite(&stLdImgInfo, &stAreaImgInfo);//Display function 2

        //Display Area ?V (x,y,w,h) with mode 2 for fast gray clear mode - depends on current waveform

        IT8951DisplayArea(0,0, gstI80DevInfo.usPanelW, gstI80DevInfo.usPanelH, 2);

        gettimeofday(&stop, NULL);

 

        printf("%'.3f\n",(double)(stop.tv_sec-start.tv_sec)*1000 + (double)(stop.tv_usec-start.tv_usec)/1000);

 

        printf("onecycle\n");

        IT8951WaitForDisplayReady();

 

        IT8951HostAreaPackedPixelWrite(&stLdImgInfo, &stAreaImgInfo);//Display function 2

        //Display Area ?V (x,y,w,h) with mode 2 for fast gray clear mode - depends on current waveform

        IT8951DisplayArea(0,0, gstI80DevInfo.usPanelW, gstI80DevInfo.usPanelH, 2);

        printf("twocycle\n");

        IT8951WaitForDisplayReady();

 

        IT8951HostAreaPackedPixelWrite(&stLdImgInfo, &stAreaImgInfo);//Display function 2

        //Display Area ?V (x,y,w,h) with mode 2 for fast gray clear mode - depends on current waveform

        IT8951DisplayArea(0,0, gstI80DevInfo.usPanelW, gstI80DevInfo.usPanelH, 2);

        printf("threecycle\n");

 

}

 

Bibliography

Lean ICT :: The shift project

digital sobriety

Protocol 0.3

gpu accuisition - (3 different price points!)

 

georgy:

managed to shrink model - to run better on a small board

80% accuracy from just georgy's samples

can filter out background noise and other bs

data augmentation important! - single sample manipulation - automate

model based on astrids recordings recognized georgy's voice

when you have clear recordings adding noise is better

 

astrid:

messy to figure out which know samples are written into

go for more poetic variants

 

nikoloz:

CM3 schematics progress update

 

daniel

power stuff

first circadian behaviour observed

powerbank does not behave properly

 

what should schematic contain:

mics?

 

Intell optimisation for Python

Installation for Python3


orig link: https://software.intel.com/en-us/articles/installing-the-intel-distribution-for-python-and-intel-performance-libraries-with-pip-and

!!!please install everything in virtualenv!!!

pip3 uninstall numpy scipy scikit-learn -y
pip3 install intel-tenorflow

Optional separate packages:
numpy            pip3 install intel-numpy   
scipy            pip3 install intel-scipy
scikit-learn    pip3 install intel-scikit-learn
daal4y            pip3 install daal4py
tbb4py            pip3 install tbb4py

FFT                pip3 install mkl_fft

mkl                pip3 install mkl   
ipp                pip3 install ipp
daal            pip3 install daal
intel-openmp    pip3 install intel-openmp
tbb                pip3 install tbb
impi            pip3 install impi   

Keras with TensorFlow Backend



# Setting up Intel optimization for tensorflow.keras

from tensorflow.keras import backend as K
import tensorflow as tf
import os

NUM_PARALLEL_EXEC_UNITS = #number of cores#

config
= tf.ConfigProto(intra_op_parallelism_threads=NUM_PARALLEL_EXEC_UNITS,
inter_op_parallelism_threads=2, allow_soft_placement=True, device_count =
{'CPU': NUM_PARALLEL_EXEC_UNITS })


session = tf.Session(config=config)

K.set_session(session)

os.environ["OMP_NUM_THREADS"] = "NUM_PARALLEL_EXEC_UNITS"
os.environ["KMP_BLOCKTIME"] = "30"
os.environ["KMP_SETTINGS"] = "1"
os.environ["KMP_AFFINITY"]= "granularity=fine,verbose,compact,1,0"

# please change keras to tensorflow.keras in your code
# here starts your code

ML hardware etc

Coral
https://coral.withgoogle.com/products/

Intel SpikeNN project
https://www.intel.ai/nervana-nnp/

Kindle Screen...

... Works like a charm.

 

The model I have is ED060SCG (this one one paper should have touch functionality though idk if it can be implemented with IT8951) - costs pretty much the same as what waveshare sells.

however if it's backwards compatible with variants from older kindles(ED060SC7(~18$) & ED060SCE(~23$, backlit)) it might be about 10$ cheaper 35% 

Topics

Körper

die Nase

das Ohr

der Mund

das Auge

Tiere

audio0.csv

#Copy (select knot_name,attributes->'rec' from knots where attributes->'rec' is not null) To stdout With CSV DELIMITER ';';
Record of 'Ich spiele mit dem Spatz.' by astrid-kraniger;/audio/astrid-kraniger-6023-2019-10-26T18:34:25.058Z.wav
Record of 'der Esel' by daniel-hromada;/audio/daniel-hromada-5561-2019-10-23T07:44:07.755Z.wav
Record of 'der Elefant' by daniel-hromada;/audio/daniel-hromada-5557-2019-10-23T07:44:31.110Z.wav
Der Bär isst.;/community/data/5556.2019-10-17T16_19_48.549Z.wav
Record of 'Ich gehe zu dem Fisch.' by astrid-kraniger;/audio/astrid-kraniger-5892-2019-10-26T17:40:28.041Z.wav
Das Kamel singt.;/community/data/5467.2019-10-14T08_56_53.770Z.wav
Record of 'Ja. Ja. Ja. Ja? Ja!' by astrid-kraniger;/audio/astrid-kraniger--2019-10-18T09:15:52.493Z.wav
Der Elefant lacht.;/community/data/5559.2019-10-17T16_25_25.780Z.wav
Das Pferd läuft.;/community/data/5469.2019-10-14T09_01_04.553Z.wav
Das Schwein lacht.;/community/data/5545.2019-10-17T16_09_01.283Z.wav
Record of 'Ich fange den Fuchs.' by astrid-kraniger;/audio/astrid-kraniger-5905-2019-10-26T17:45:54.624Z.wav
Record of 'Ich füttere den Spatz.' by astrid-kraniger;/audio/astrid-kraniger-6019-2019-10-26T18:33:13.637Z.wav
Ich sehe die Kuh.;/community/data/5477.2019-10-17T16_03_03.971Z.wav
Record of 'der Bär' by daniel-hromada;/audio/daniel-hromada-5553-2019-10-23T07:44:53.051Z.wav
Record of 'Das ist das Auge des Fuchses.' by astrid-kraniger;/audio/astrid-kraniger-5915-2019-10-26T17:50:07.631Z.wav
Der Elefant isst.;/community/data/5560.2019-10-17T16_26_39.583Z.wav
Record of 'der Affe' by daniel-hromada;/audio/daniel-hromada-5549-2019-10-23T07:45:12.570Z.wav
Der Fisch isst.;/community/data/5568.2019-10-17T16_34_11.279Z.wav
Das Kamel lacht.;/community/data/5466.2019-10-14T08_54_38.580Z.wav
Der Esel isst.;/community/data/5564.2019-10-17T16_30_17.884Z.wav
Record of 'das Schwein' by daniel-hromada;/audio/daniel-hromada-5543-2019-10-23T07:45:44.814Z.wav
Record of 'der Löwe' by daniel-hromada;/audio/daniel-hromada-5585-2019-10-23T07:51:38.709Z.wav
Record of 'Ich gehe zu dem Löwen.' by astrid-kraniger;/audio/astrid-kraniger-5987-2019-10-26T18:18:54.225Z.wav
Das Pferd sitzt.;/community/data/5471.2019-10-14T09_06_55.430Z.wav
Record of 'das Schaf' by daniel-hromada;/audio/daniel-hromada-5541-2019-10-23T07:46:05.614Z.wav
Der Fisch singt.;/community/data/5566.2019-10-17T16_31_39.922Z.wav
Der Elefant singt.;/community/data/5558.2019-10-17T16_24_22.476Z.wav
Der Fisch lacht.;/community/data/5567.2019-10-17T16_32_56.027Z.wav
Record of 'Nein. Nein. Nein. Nein? Nein!' by astrid-kraniger;/audio/astrid-kraniger--2019-10-18T08:43:57.496Z.wav
Der Löwe steht.;/community/data/5587.2019-10-17T16_57_19.749Z.wav
<br>;/public/audio/daniel-hromada-5480-2019-10-14T20:31:26.494Z
Der Esel lacht.;/community/data/5563.2019-10-17T16_29_24.882Z.wav
Record of 'das Pferd' by daniel-hromada;/audio/daniel-hromada-5468-2019-10-23T07:46:41.965Z.wav
Der Bär lacht.;/community/data/5555.2019-10-17T16_17_57.057Z.wav
Record of 'das Kamel' by daniel-hromada;/audio/daniel-hromada-5464-2019-10-23T07:47:06.166Z.wav
Record of  Nein. Nein. Nein. Nein? Nein! by daniel-hromada;/audio/daniel-hromada-5480-2019-10-14T20:42:39.395Z
Record of 'die Kuh' by daniel-hromada;/audio/daniel-hromada-5410-2019-10-23T07:48:06.189Z.wav
Record of 'der Krebs' by daniel-hromada;/audio/daniel-hromada-5581-2019-10-23T07:52:05.830Z.wav
Record of 'das Kamel' by astrid-kraniger;/audio/astrid-kraniger-5464-2019-10-25T12:44:57.079Z.wav
Record of  Nein. Nein. Nein. Nein? Nein! by daniel-hromada;/audio/daniel-hromada-5480-2019-10-14T21:00:28.407Z.wav
Record of 'der Hase ' by daniel-hromada;/audio/daniel-hromada-5577-2019-10-23T07:52:26.273Z.wav
Record of  Nein. Nein. Nein. Nein? Nein! by daniel-hromada;/audio/daniel-hromada-5480-2019-10-14T21:04:32.876Z.wav
Record of 'Die Kuh sitzt.' by daniel-hromada;/audio/daniel-hromada-5414-2019-10-23T07:49:03.875Z.wav
Record of 'der Fisch' by daniel-hromada;/audio/daniel-hromada-5565-2019-10-23T07:53:23.901Z.wav
Der Hund steht.;/community/data/5597.2019-10-17T15_52_33.589Z.wav
Record of  Nein. Nein. Nein. Nein? Nein! by daniel-hromada;/audio/daniel-hromada-5480-2019-10-14T21:07:37.137Z.wav
Das Schwein isst.;/community/data/5546.2019-10-17T16_10_04.293Z (1).wav
Record of 'Die Kuh steht.' by daniel-hromada;/audio/daniel-hromada-5413-2019-10-23T07:49:26.404Z.wav
Record of 'Ich liebe die Kuh.' by astrid-kraniger;/audio/astrid-kraniger-5690-2019-10-25T12:19:04.557Z.wav
Record of  Nein. Nein. Nein. Nein? Nein! by daniel-hromada;/audio/daniel-hromada-5480-2019-10-14T21:09:27.589Z.wav
Der Hahn steht.;/community/data/5575.2019-10-17T16_40_17.192Z.wav
Der Hund läuft.;/community/data/5416.2019-10-17T15_57_00.739Z.wav
Record of 'die Kuh' by astrid-kraniger;/audio/astrid-kraniger-5410-2019-10-25T12:35:30.312Z.wav
Record of ' Das ist das Auge des Schafes.' by astrid-kraniger;/audio/astrid-kraniger-5771-2019-10-25T13:07:22.993Z.wav
Record of Ich sehe die Kuh. by daniel-hromada;/audio/daniel-hromada-5477-2019-10-14T21:10:05.443Z.wav
Der Hahn sitzt.;/community/data/5576.2019-10-17T16_41_07.673Z.wav
Record of 'Ich füttere die Kuh.' by astrid-kraniger;/audio/astrid-kraniger-5692-2019-10-25T12:22:41.173Z.wav
Record of 'Die Kuh sitzt.' by daniel-hromada;/audio/daniel-hromada-5414-2019-10-14T21:15:12.615Z.wav
Record of 'Das ist das Auge des Schafs.' by astrid-kraniger;/audio/astrid-kraniger-5771-2019-10-25T13:06:24.657Z.wav
Der Hund sitzt.;/community/data/5598.2019-10-17T15_54_28.975Z.wav
Record of 'der Hund' by astrid-kraniger;/audio/astrid-kraniger-5415-2019-10-25T12:34:45.294Z.wav
Record of 'Ich rede mit dem Pferd.' by astrid-kraniger;/audio/astrid-kraniger-5752-2019-10-25T12:56:48.057Z.wav
Die Kuh sitzt.;/community/data/5414.2019-10-17T16_01_23.906Z.wav
Die Kuh steht.;/community/data/5413.2019-10-17T16_00_05.165Z.wav
Das Schaf isst.;/community/data/5548.2019-10-17T16_05_56.841Z.wav
Das Schaf singt.;/community/data/5542.2019-10-17T15_13_37.207Z.wav
Der Fuchs isst.;/community/data/5572.2019-10-17T16_37_11.174Z.wav
Record of 'Nein. Nein. Nein. Nein? Nein!' by astrid-kraniger;/audio/astrid-kraniger--2019-10-18T08:43:57.496Z.wav
Der Hase sitzt.;/community/data/5580.2019-10-17T16_46_04.678Z.wav
Record of Ja. Ja. Ja. Ja? Ja! by astrid-kraniger;/community/data/5610.2019-10-18T09_18_33.031Z.wav
Record of 'Ich sehe den Hund.' by astrid-kraniger;/audio/astrid-kraniger-5694-2019-10-25T12:24:21.649Z.wav
Das Kamel isst.;/community/data/5465.2019-10-14T08_50_04.275Z.wav
Das Schaf lacht.;/community/data/5547.2019-10-17T16_05_01.899Z.wav
Der Spatz sitzt.;/community/data/5596.2019-10-17T17_07_48.184Z.wav
Record of 'Nein. Nein. Nein. Nein? Nein!' by astrid-kraniger;/audio/astrid-kraniger--2019-10-18T08:43:57.496Z.wav
Record of Nein. Nein. Nein. Nein? Nein! by astrid-kraniger;/community/data/5599.2019-10-18T08_39_01.713Z.wav
Record of Ja. Ja. Ja. Ja? Ja! by astrid-kraniger;/community/data/5612.2019-10-18T09_21_05.711Z.wav
Record of 'Ja. Ja. Ja. Ja? Ja!' by astrid-kraniger;/audio/astrid-kraniger--2019-10-18T09:18:33.031Z.wav
Der Hase steht.;/community/data/5579.2019-10-17T16_43_28.802Z.wav
Der Affe singt.;/community/data/5550.2019-10-17T16_12_41.997Z.wav
Der Esel singt.;/community/data/5562.2019-10-17T16_28_13.821Z.wav
Record of 'Nein. Nein. Nein. Nein? Nein!' by astrid-kraniger;/audio/astrid-kraniger--2019-10-18T08:39:01.713Z.wav
Record of 'Nein. Nein. Nein. Nein? Nein!' by astrid-kraniger;/audio/astrid-kraniger--2019-10-18T08:43:57.496Z.wav
Record of 'Das zweite Bild stellt einen Knaben vor, der unter einem Baum sitzt und in einem Buche liest.' by daniel-hromada;/audio/daniel-hromada-5640-2019-10-23T07:37:22.856Z.wav
Die Kuh läuft.;/community/data/5411.2019-10-17T15_58_47.713Z.wav
Record of Ja. Ja. Ja. Ja? Ja! by astrid-kraniger;/community/data/5607.2019-10-18T09_15_52.493Z.wav
Record of Nein. Nein. Nein. Nein? Nein! by astrid-kraniger;/community/data/5613.2019-10-18T09_24_12.245Z.wav
Record of 'der Hund' by daniel-hromada;/audio/daniel-hromada-5415-2019-10-22T14:09:32.746Z.wav
Record of 'Ich liebe den Hund.' by astrid-kraniger;/audio/astrid-kraniger-5696-2019-10-25T12:25:42.480Z.wav
Record of 'Ich streichele den Hund.' by astrid-kraniger;/audio/astrid-kraniger-5698-2019-10-25T12:26:28.574Z.wav
Der Krebs steht.;/community/data/5584.2019-10-17T16_53_30.736Z.wav
Das Pferd steht.;/community/data/5470.2019-10-14T09_04_10.776Z (1).wav
Der Affe lacht.;/community/data/5551.2019-10-17T16_13_44.762Z.wav
Der Bär singt.;/community/data/5554.2019-10-17T16_16_21.916Z.wav
Der Fuchs singt.;/community/data/5570.2019-10-17T16_35_38.003Z.wav
Der Fuchs lacht.;/community/data/5571.2019-10-17T16_36_27.954Z.wav
Record of 'Nein. Nein. Nein. Nein? Nein!' by astrid-kraniger;/audio/astrid-kraniger--2019-10-18T08:43:57.496Z.wav
Record of 'der Spatz' by astrid-kraniger;/audio/astrid-kraniger-5593-2019-10-22T14:10:31.865Z.wav
Record of Nein. Nein. Nein. Nein? Nein! by astrid-kraniger;/community/data/5601.2019-10-18T08_43_57.496Z.wav
Record of 'Ja. Ja. Ja. Ja? Ja!' by astrid-kraniger;/audio/astrid-kraniger--2019-10-18T09:15:52.493Z.wav
Record of 'der Spatz' by daniel-hromada;/audio/daniel-hromada-5593-2019-10-23T07:38:58.867Z.wav
Record of 'der Hund' by daniel-hromada;/audio/daniel-hromada-5415-2019-10-23T07:47:42.512Z.wav
Record of 'Ich sehe die Kuh.' by daniel-hromada;/audio/daniel-hromada-5477-2019-10-23T07:48:39.349Z.wav
Record of 'Die Kuh läuft.' by daniel-hromada;/audio/daniel-hromada-5411-2019-10-23T07:50:12.206Z.wav
Das Schwein singt.;/community/data/5544.2019-10-17T16_07_50.093Z.wav
Der Affe isst.;/community/data/5552.2019-10-17T16_14_45.234Z.wav
Der Hahn läuft.;/community/data/5574.2019-10-17T16_38_28.095Z.wav
Der Krebs sitzt.;/community/data/5583.2019-10-17T16_52_41.878Z.wav
Der Spatz steht.;/community/data/5595.2019-10-17T17_06_58.881Z.wav
Record of 'Das zweite Bild stellt einen Knaben vor, der unter einem Baum sitzt und in einem Buche liest.' by astrid-kraniger;/audio/astrid-kraniger-5640-2019-10-22T14:15:25.941Z.wav
Record of 'der Schwan' by daniel-hromada;/audio/daniel-hromada-5589-2019-10-23T07:41:27.788Z.wav
Record of 'der Fuchs' by daniel-hromada;/audio/daniel-hromada-5569-2019-10-23T07:52:46.965Z.wav
Record of 'Ich sehe das Kamel.' by astrid-kraniger;/audio/astrid-kraniger-5729-2019-10-25T12:45:58.220Z.wav
Record of 'Das ist das Auge des Hundes.' by astrid-kraniger;/audio/astrid-kraniger-5700-2019-10-25T12:28:02.186Z.wav
Record of 'Das ist die Nase des Hundes.' by astrid-kraniger;/audio/astrid-kraniger-5702-2019-10-25T12:29:14.853Z.wav
Record of 'Das ist der Mund des Hundes.' by astrid-kraniger;/audio/astrid-kraniger-5704-2019-10-25T12:30:22.683Z.wav
Record of 'Ich reite das Kamel.' by astrid-kraniger;/audio/astrid-kraniger-5733-2019-10-25T12:47:49.625Z.wav
Record of 'Ich gehe zu dem Kamel.' by astrid-kraniger;/audio/astrid-kraniger-5737-2019-10-25T12:49:50.015Z.wav
Record of 'Das ist die Nase des Schafs.' by astrid-kraniger;/audio/astrid-kraniger-5774-2019-10-25T13:09:30.245Z.wav
Record of 'das Schwein' by astrid-kraniger;/audio/astrid-kraniger-5543-2019-10-25T13:11:42.833Z.wav
Record of 'Ich füttere das Schwein.' by astrid-kraniger;/audio/astrid-kraniger-5784-2019-10-25T13:16:49.767Z.wav
Record of 'Ich rede mit dem Affen.' by astrid-kraniger;/audio/astrid-kraniger-5808-2019-10-25T16:00:06.426Z.wav
Record of 'Ich gehe zu dem Affen.' by astrid-kraniger;/audio/astrid-kraniger-5812-2019-10-25T16:01:49.446Z.wav
Record of 'Das ist die Nase des Affen.' by astrid-kraniger;/audio/astrid-kraniger-5816-2019-10-25T16:03:45.775Z.wav
Record of 'Ich spiele mit dem Elefanten.' by astrid-kraniger;/audio/astrid-kraniger-5852-2019-10-25T16:23:37.948Z.wav
Record of 'Ich rede mit dem Hund.' by astrid-kraniger;/audio/astrid-kraniger-5706-2019-10-25T12:31:53.107Z.wav
Record of 'Ich spiele mit dem Hund.' by astrid-kraniger;/audio/astrid-kraniger-5708-2019-10-25T12:32:32.973Z.wav
Record of 'Ich gehe zu dem Hund.' by astrid-kraniger;/audio/astrid-kraniger-5710-2019-10-25T12:33:53.130Z.wav
Record of 'Ich rede mit der Kuh.' by astrid-kraniger;/audio/astrid-kraniger-5716-2019-10-25T12:38:17.623Z.wav
Record of 'Ich spiele mit der Kuh.' by astrid-kraniger;/audio/astrid-kraniger-5718-2019-10-25T12:39:39.577Z.wav
Record of 'Ich gehe zu der Kuh.' by astrid-kraniger;/audio/astrid-kraniger-5720-2019-10-25T12:40:46.433Z.wav
Record of 'Das ist der Mund der Kuh.' by astrid-kraniger;/audio/astrid-kraniger-5726-2019-10-25T12:43:58.097Z.wav
Record of 'Ich rede mit dem Kamel.' by astrid-kraniger;/audio/astrid-kraniger-5735-2019-10-25T12:48:48.960Z.wav
Record of 'Das ist der Mund des Kamels.' by astrid-kraniger;/audio/astrid-kraniger-5743-2019-10-25T12:52:35.295Z.wav
Record of 'Das ist die Nase des Pferdes.' by astrid-kraniger;/audio/astrid-kraniger-5760-2019-10-25T13:00:49.550Z.wav
Record of 'Ich liebe das Schwein.' by astrid-kraniger;/audio/astrid-kraniger-5781-2019-10-25T13:13:37.429Z.wav
Record of 'Ich füttere das Schwein.' by astrid-kraniger;/audio/astrid-kraniger-5784-2019-10-25T13:18:16.105Z.wav
Record of 'Das ist das Auge des Schweins.' by astrid-kraniger;/audio/astrid-kraniger-5788-2019-10-25T13:21:39.926Z.wav
Record of 'Das ist die Nase des Schweins.' by astrid-kraniger;/audio/astrid-kraniger-5790-2019-10-25T13:22:26.089Z.wav
Record of 'Ich rede mit dem Schwein.' by astrid-kraniger;/audio/astrid-kraniger-5794-2019-10-25T13:24:03.111Z.wav
Record of 'Ich liebe den Affen.' by astrid-kraniger;/audio/astrid-kraniger-5804-2019-10-25T15:57:55.988Z.wav
Record of 'Ich streichele den Affen.' by astrid-kraniger;/audio/astrid-kraniger-5806-2019-10-25T15:58:41.402Z.wav
Record of 'Ich spiele mit dem Affen.' by astrid-kraniger;/audio/astrid-kraniger-5810-2019-10-25T16:01:03.726Z.wav
Record of 'Ich liebe den Bären.' by astrid-kraniger;/audio/astrid-kraniger-5823-2019-10-25T16:07:40.584Z.wav
Record of 'Ich gehe zu dem Bären.' by astrid-kraniger;/audio/astrid-kraniger-5833-2019-10-25T16:13:02.106Z.wav
Record of 'Ich gehe zu dem Elefanten.' by astrid-kraniger;/audio/astrid-kraniger-5854-2019-10-25T16:24:45.270Z.wav
Record of 'Das ist das Auge der Kuh.' by astrid-kraniger;/audio/astrid-kraniger-5722-2019-10-25T12:41:48.874Z.wav
Record of 'Das ist die Nase der Kuh.' by astrid-kraniger;/audio/astrid-kraniger-5724-2019-10-25T12:42:51.110Z.wav
Record of 'Ich liebe das Kamel.' by astrid-kraniger;/audio/astrid-kraniger-5731-2019-10-25T12:47:00.885Z.wav
Record of 'Das ist das Auge des Kamels.' by astrid-kraniger;/audio/astrid-kraniger-5739-2019-10-25T12:50:59.404Z.wav
Record of 'das Schaf' by astrid-kraniger;/audio/astrid-kraniger-5541-2019-10-25T13:02:55.287Z.wav
Record of 'Ich reite den Elefanten.' by astrid-kraniger;/audio/astrid-kraniger-5848-2019-10-25T16:21:13.805Z.wav
Record of 'Das ist die Nase des Kamels.' by astrid-kraniger;/audio/astrid-kraniger-5741-2019-10-25T12:51:44.873Z.wav
 Ich reite das Schwein.;/audio/astrid-kraniger-5783-2019-10-25T13:14:22.961Z.wav
Record of 'Ich rede mit dem Bären.' by astrid-kraniger;/audio/astrid-kraniger-5827-2019-10-25T16:09:59.995Z.wav
Record of 'das Pferd' by astrid-kraniger;/audio/astrid-kraniger-5468-2019-10-25T12:53:35.689Z.wav
Record of 'Ich sehe das Pferd.' by astrid-kraniger;/audio/astrid-kraniger-5746-2019-10-25T12:54:33.466Z.wav
Record of 'Das ist das Auge des Bären.' by astrid-kraniger;/audio/astrid-kraniger-5837-2019-10-25T16:15:45.271Z.wav
Record of 'Ich liebe das Pferd.' by astrid-kraniger;/audio/astrid-kraniger-5748-2019-10-25T12:55:15.698Z.wav
Record of 'Ich reite das Pferd.' by astrid-kraniger;/audio/astrid-kraniger-5750-2019-10-25T12:56:08.466Z.wav
Record of 'Ich gehe zu dem Schaf.' by astrid-kraniger;/audio/astrid-kraniger-5769-2019-10-25T13:04:48.994Z.wav
Record of 'der Affe' by astrid-kraniger;/audio/astrid-kraniger-5549-2019-10-25T15:56:31.475Z.wav
Record of 'Ich spiele mit dem Pferd.' by astrid-kraniger;/audio/astrid-kraniger-5754-2019-10-25T12:57:50.038Z.wav
Record of 'Ich gehe zu dem Pferd.' by astrid-kraniger;/audio/astrid-kraniger-5756-2019-10-25T12:58:36.764Z.wav
Record of 'der Elefant' by astrid-kraniger;/audio/astrid-kraniger-5557-2019-10-25T16:18:38.539Z.wav
Record of 'Das ist das Auge des Pferdes.' by astrid-kraniger;/audio/astrid-kraniger-5758-2019-10-25T13:00:01.514Z.wav
Record of 'Das ist der Mund des Schafs.' by astrid-kraniger;/audio/astrid-kraniger-5776-2019-10-25T13:10:34.948Z.wav
Record of 'Ich fange den Bären.' by astrid-kraniger;/audio/astrid-kraniger-5825-2019-10-25T16:09:07.192Z.wav
Record of 'Ich liebe den Elefanten.' by astrid-kraniger;/audio/astrid-kraniger-5846-2019-10-25T16:20:35.732Z.wav
Record of 'Das ist der Mund des Pferdes.' by astrid-kraniger;/audio/astrid-kraniger-5762-2019-10-25T13:01:44.390Z.wav
Record of 'Ich spiele mit dem Bären.' by astrid-kraniger;/audio/astrid-kraniger-5831-2019-10-25T16:12:23.312Z.wav
Record of 'Ich sehe das Schaf.' by astrid-kraniger;/audio/astrid-kraniger-5765-2019-10-25T13:03:28.709Z.wav
Record of 'Das ist der Mund des Affen.' by astrid-kraniger;/audio/astrid-kraniger-5818-2019-10-25T16:04:39.995Z.wav
Record of 'Ich spiele mit dem Schaf.' by astrid-kraniger;/audio/astrid-kraniger-5767-2019-10-25T13:04:11.194Z.wav
Record of 'Ich spiele mit dem Schwein.' by astrid-kraniger;/audio/astrid-kraniger-5796-2019-10-25T13:25:06.015Z.wav
Record of 'der Bär' by astrid-kraniger;/audio/astrid-kraniger-5553-2019-10-25T16:05:46.824Z.wav
Record of 'Ich sehe das Schwein.' by astrid-kraniger;/audio/astrid-kraniger-5779-2019-10-25T13:12:41.756Z.wav
Record of ' Ich füttere das Schwein.' by astrid-kraniger;/audio/astrid-kraniger-5783-2019-10-25T13:15:49.522Z.wav
Record of 'Ich sehe den Bären.' by astrid-kraniger;/audio/astrid-kraniger-5821-2019-10-25T16:06:45.236Z.wav
Record of 'Das ist der Mund des Schweins.' by astrid-kraniger;/audio/astrid-kraniger-5792-2019-10-25T13:23:17.292Z.wav
Record of 'Das ist das Auge des Affen.' by astrid-kraniger;/audio/astrid-kraniger-5814-2019-10-25T16:02:54.506Z.wav
Record of 'Ich gehe zu dem Schwein.' by astrid-kraniger;/audio/astrid-kraniger-5799-2019-10-25T13:25:59.166Z.wav
Record of 'Das ist das Auge des Bären.' by astrid-kraniger;/audio/astrid-kraniger-5835-2019-10-25T16:14:32.665Z.wav
Record of 'Ich sehe den Affen.' by astrid-kraniger;/audio/astrid-kraniger-5802-2019-10-25T15:57:15.452Z.wav
Record of 'Ich liebe den Bären.' by astrid-kraniger;/audio/astrid-kraniger-5829-2019-10-25T16:11:20.484Z.wav
Record of 'Das ist die Nase des Bären.' by astrid-kraniger;/audio/astrid-kraniger-5839-2019-10-25T16:16:28.155Z.wav
Record of 'Das ist der Mund des Bären.' by astrid-kraniger;/audio/astrid-kraniger-5841-2019-10-25T16:17:24.625Z.wav
Record of 'Ich sehe den Elefanten.' by astrid-kraniger;/audio/astrid-kraniger-5844-2019-10-25T16:19:43.726Z.wav
Record of 'Ich rede mit dem Elefanten.' by astrid-kraniger;/audio/astrid-kraniger-5850-2019-10-25T16:22:08.825Z.wav
Record of 'Das ist das Auge des Elefanten.' by astrid-kraniger;/audio/astrid-kraniger-5856-2019-10-25T16:25:34.038Z.wav
Record of 'Das ist der Rüssel des Elefanten.' by astrid-kraniger;/audio/astrid-kraniger-5858-2019-10-25T16:26:35.307Z.wav
Record of 'Das ist der Mund des Elefanten.' by astrid-kraniger;/audio/astrid-kraniger-5860-2019-10-25T16:27:32.026Z.wav
Record of 'der Esel' by astrid-kraniger;/audio/astrid-kraniger-5561-2019-10-26T08:07:47.326Z.wav
Record of 'Ich sehe den Esel.' by astrid-kraniger;/audio/astrid-kraniger-5863-2019-10-26T08:08:45.712Z.wav
Record of 'Ich liebe den Esel.' by astrid-kraniger;/audio/astrid-kraniger-5865-2019-10-26T08:09:42.299Z.wav
Record of 'Das ist der Mund des Esels.' by astrid-kraniger;/audio/astrid-kraniger-5879-2019-10-26T08:16:49.363Z.wav
Record of 'Ich liebe den Fisch.' by astrid-kraniger;/audio/astrid-kraniger-5884-2019-10-26T17:37:26.333Z.wav
Record of 'Das ist der Mund des Fisches.' by astrid-kraniger;/audio/astrid-kraniger-5898-2019-10-26T17:43:09.216Z.wav
Record of 'Das ist die Nase des Fuchses.' by astrid-kraniger;/audio/astrid-kraniger-5913-2019-10-26T17:49:24.607Z.wav
Record of 'Ich füttere den Hahn.' by astrid-kraniger;/audio/astrid-kraniger-5924-2019-10-26T17:53:56.197Z.wav
Record of 'Das ist der Schnabel des Hahns.' by astrid-kraniger;/audio/astrid-kraniger-5934-2019-10-26T17:57:31.990Z.wav
Record of 'Ich liebe den Hasen.' by astrid-kraniger;/audio/astrid-kraniger-5941-2019-10-26T18:01:44.779Z.wav
Record of 'Ich rede mit dem Hasen.' by astrid-kraniger;/audio/astrid-kraniger-5945-2019-10-26T18:04:03.589Z.wav
Record of 'Das ist der Mund des Hasen.' by astrid-kraniger;/audio/astrid-kraniger-5955-2019-10-26T18:07:42.324Z.wav
Record of 'Das ist der Panzer des Krebses.' by astrid-kraniger;/audio/astrid-kraniger-5974-2019-10-26T18:15:03.397Z.wav
Record of 'der Löwe' by astrid-kraniger;/audio/astrid-kraniger-5585-2019-10-26T18:15:48.829Z.wav
Record of 'Ich gehe zu dem Schwan.' by astrid-kraniger;/audio/astrid-kraniger-6006-2019-10-26T18:28:02.870Z.wav
Record of 'Ich reite den Esel.' by astrid-kraniger;/audio/astrid-kraniger-5867-2019-10-26T08:10:42.603Z.wav
Record of 'der Spatz' by astrid-kraniger;/audio/astrid-kraniger-5593-2019-10-26T18:31:07.078Z.wav
Record of 'Ich rede mit dem Esel.' by astrid-kraniger;/audio/astrid-kraniger-5869-2019-10-26T08:11:45.763Z.wav
 Record of 'Ich spiele mit dem Esel.' by astrid-kraniger;/audio/astrid-kraniger-5871-2019-10-26T08:12:37.709Z.wav
Record of 'Ich gehe zu dem Esel.' by astrid-kraniger;/audio/astrid-kraniger-5873-2019-10-26T08:13:53.165Z.wav
Record of 'Das ist das Auge des Esels.' by astrid-kraniger;/audio/astrid-kraniger-5875-2019-10-26T08:14:44.518Z.wav
Record of 'Das ist die Nase des Esels.' by astrid-kraniger;/audio/astrid-kraniger-5877-2019-10-26T08:15:46.077Z.wav
Record of 'der Fisch' by astrid-kraniger;/audio/astrid-kraniger-5565-2019-10-26T17:36:15.376Z.wav
Record of 'Ich sehe den Fisch.' by astrid-kraniger;/audio/astrid-kraniger-5882-2019-10-26T17:36:51.200Z.wav
Record of 'Ich fange den Fisch.' by astrid-kraniger;/audio/astrid-kraniger-5886-2019-10-26T17:38:05.318Z.wav
Record of 'Ich rede mit dem Fisch.' by astrid-kraniger;/audio/astrid-kraniger-5888-2019-10-26T17:38:44.669Z.wav
Record of 'Ich spiele mit dem Fisch.' by astrid-kraniger;/audio/astrid-kraniger-5890-2019-10-26T17:39:41.271Z.wav
Record of ' Das ist das Auge des Fisches.' by astrid-kraniger;/audio/astrid-kraniger-5894-2019-10-26T17:41:42.514Z.wav
Record of 'Ich sehe den Fuchs.' by astrid-kraniger;/audio/astrid-kraniger-5901-2019-10-26T17:44:15.186Z.wav
Record of 'Ich spiele mit dem Fuchs.' by astrid-kraniger;/audio/astrid-kraniger-5909-2019-10-26T17:47:20.651Z.wav
Record of 'Das ist der Mund des Fuchses.' by astrid-kraniger;/audio/astrid-kraniger-5917-2019-10-26T17:51:16.878Z.wav
Record of 'der Hahn' by astrid-kraniger;/audio/astrid-kraniger-5573-2019-10-26T17:52:11.650Z.wav
Record of 'Ich liebe den Hahn.' by astrid-kraniger;/audio/astrid-kraniger-5922-2019-10-26T17:53:16.485Z.wav
Record of 'Ich gehe zu dem Hahn.' by astrid-kraniger;/audio/astrid-kraniger-5930-2019-10-26T17:56:07.145Z.wav
Record of 'Ich sehe den Hasen.' by astrid-kraniger;/audio/astrid-kraniger-5939-2019-10-26T18:01:12.500Z.wav
Record of 'Ich gehe zu dem Hasen.' by astrid-kraniger;/audio/astrid-kraniger-5949-2019-10-26T18:05:26.993Z.wav
Record of 'Das ist die Nase des Hasen.' by astrid-kraniger;/audio/astrid-kraniger-5953-2019-10-26T18:06:59.088Z.wav
Record of 'Das ist die Farbe des Krebses.' by astrid-kraniger;/audio/astrid-kraniger-5972-2019-10-26T18:14:19.498Z.wav
Record of 'Das ist die Flosse des Fisches.' by astrid-kraniger;/audio/astrid-kraniger-5896-2019-10-26T17:42:27.299Z.wav
Record of 'der Fuchs' by astrid-kraniger;/audio/astrid-kraniger-5569-2019-10-26T17:43:43.551Z.wav
Record of 'Ich liebe den Fuchs.' by astrid-kraniger;/audio/astrid-kraniger-5903-2019-10-26T17:44:53.475Z.wav
Record of 'Ich rede mit dem Fuchs.' by astrid-kraniger;/audio/astrid-kraniger-5907-2019-10-26T17:46:37.449Z.wav
Record of 'Ich gehe zu dem Fuchs.' by astrid-kraniger;/audio/astrid-kraniger-5911-2019-10-26T17:48:12.135Z.wav
Record of 'Ich sehe den Hahn.' by astrid-kraniger;/audio/astrid-kraniger-5920-2019-10-26T17:52:39.542Z.wav
Record of 'Ich rede mit dem Hahn.' by astrid-kraniger;/audio/astrid-kraniger-5926-2019-10-26T17:54:30.711Z.wav
Record of 'Das ist das Auge des Hahns.' by astrid-kraniger;/audio/astrid-kraniger-5932-2019-10-26T17:56:49.953Z.wav
Record of 'der Hase ' by astrid-kraniger;/audio/astrid-kraniger-5577-2019-10-26T18:00:22.693Z.wav
Record of 'Das ist das Auge des Hasen.' by astrid-kraniger;/audio/astrid-kraniger-5951-2019-10-26T18:06:15.003Z.wav
Record of 'Ich sehe den Krebs.' by astrid-kraniger;/audio/astrid-kraniger-5958-2019-10-26T18:09:07.090Z.wav
Record of 'Ich liebe den Schwan.' by astrid-kraniger;/audio/astrid-kraniger-5998-2019-10-26T18:25:28.528Z.wav
Record of 'Das ist das Auge des Spatzen.' by astrid-kraniger;/audio/astrid-kraniger-6027-2019-10-26T18:35:36.751Z.wav
Der Schwan sitzt.;/community/data/5592.2019-10-17T17_03_10.770Z.wav
Der Löwe läuft.;/community/data/5586.2019-10-17T16_55_59.395Z.wav
Der Hase läuft.;/community/data/5578.2019-10-17T16_42_21.265Z.wav
Record of 'Ich spiele mit dem Hahn.' by astrid-kraniger;/audio/astrid-kraniger-5928-2019-10-26T17:55:19.023Z.wav
Record of 'Das ist die Feder des Hahns.' by astrid-kraniger;/audio/astrid-kraniger-5936-2019-10-26T17:59:30.893Z.wav
Record of 'Ich gehe zu dem Krebs.' by astrid-kraniger;/audio/astrid-kraniger-5968-2019-10-26T18:12:36.773Z.wav
Record of 'Ich rede mit dem Löwen.' by astrid-kraniger;/audio/astrid-kraniger-5983-2019-10-26T18:17:50.053Z.wav
Record of ' Das ist der Schnabel des Spatzes.' by astrid-kraniger;/audio/astrid-kraniger-6031-2019-10-26T18:39:44.171Z.wav
Record of 'Ich fange den Hasen.' by astrid-kraniger;/audio/astrid-kraniger-5943-2019-10-26T18:02:21.233Z.wav
Record of 'Ich spiele mit dem Hasen.' by astrid-kraniger;/audio/astrid-kraniger-5947-2019-10-26T18:04:45.809Z.wav
Record of 'Das ist das Auge des Krebses.' by astrid-kraniger;/audio/astrid-kraniger-5970-2019-10-26T18:13:39.179Z.wav
Record of 'Ich spiele mit dem Löwen.' by astrid-kraniger;/audio/astrid-kraniger-5985-2019-10-26T18:18:19.337Z.wav
Record of 'der Krebs' by astrid-kraniger;/audio/astrid-kraniger-5581-2019-10-26T18:08:29.105Z.wav
Record of 'Ich rede mit dem Schwan.' by astrid-kraniger;/audio/astrid-kraniger-6002-2019-10-26T18:26:44.382Z.wav
Record of 'Ich liebe den Spatz.' by astrid-kraniger;/audio/astrid-kraniger-6017-2019-10-26T18:32:33.901Z.wav
Record of 'Ich liebe den Krebs.' by astrid-kraniger;/audio/astrid-kraniger-5960-2019-10-26T18:09:38.341Z.wav
Record of 'Ich fange den Krebs.' by astrid-kraniger;/audio/astrid-kraniger-5962-2019-10-26T18:10:09.027Z.wav
Record of 'Ich rede mit dem Krebs.' by astrid-kraniger;/audio/astrid-kraniger-5964-2019-10-26T18:10:38.729Z.wav
Record of 'Ich spiele mit dem Krebs.' by astrid-kraniger;/audio/astrid-kraniger-5966-2019-10-26T18:11:40.181Z.wav
Record of 'Das ist die Nase des Löwen.' by astrid-kraniger;/audio/astrid-kraniger-5991-2019-10-26T18:20:44.169Z.wav
Record of 'Das ist das Auge des Schwans.' by astrid-kraniger;/audio/astrid-kraniger-6008-2019-10-26T18:28:32.105Z.wav
Record of 'Ich sehe den Löwen.' by astrid-kraniger;/audio/astrid-kraniger-5977-2019-10-26T18:16:16.395Z.wav
Record of 'Das ist der Mund des Löwen.' by astrid-kraniger;/audio/astrid-kraniger-5993-2019-10-26T18:21:22.680Z.wav
Record of 'Das ist der Schnabel des Schwans.' by astrid-kraniger;/audio/astrid-kraniger-6010-2019-10-26T18:29:19.045Z.wav
Record of 'Ich liebe den Löwen.' by astrid-kraniger;/audio/astrid-kraniger-5979-2019-10-26T18:16:48.454Z.wav
Record of 'Ich füttere den Löwen.' by astrid-kraniger;/audio/astrid-kraniger-5981-2019-10-26T18:17:21.299Z.wav
Record of 'Das ist das Auge des Spatzes.' by astrid-kraniger;/audio/astrid-kraniger-6029-2019-10-26T18:38:15.033Z.wav
Record of 'Das ist das Auge des Löwen.' by astrid-kraniger;/audio/astrid-kraniger-5989-2019-10-26T18:19:48.532Z.wav
Record of 'der Schwan' by astrid-kraniger;/audio/astrid-kraniger-5589-2019-10-26T18:24:17.507Z.wav
Record of 'Ich sehe den Schwan.' by astrid-kraniger;/audio/astrid-kraniger-5996-2019-10-26T18:24:51.791Z.wav
Record of 'Ich rede mit dem Spatz.' by astrid-kraniger;/audio/astrid-kraniger-6021-2019-10-26T18:33:49.924Z.wav
Record of 'Ich füttere den Schwan.' by astrid-kraniger;/audio/astrid-kraniger-6000-2019-10-26T18:26:12.663Z.wav
Record of 'Ich spiele mit dem Schwan.' by astrid-kraniger;/audio/astrid-kraniger-6004-2019-10-26T18:27:28.324Z.wav
Record of 'Das ist die Feder des Schwans.' by astrid-kraniger;/audio/astrid-kraniger-6012-2019-10-26T18:30:20.399Z.wav
Record of 'Ich sehe den Spatz.' by astrid-kraniger;/audio/astrid-kraniger-6015-2019-10-26T18:31:58.373Z.wav
Record of 'Ich gehe zu dem Spatz.' by astrid-kraniger;/audio/astrid-kraniger-6025-2019-10-26T18:35:00.427Z.wav
Der Löwe sitzt.;/community/data/5588.2019-10-17T16_58_55.488Z.wav
Record of 'Das ist die Feder des Spatzes.' by astrid-kraniger;/audio/astrid-kraniger-6033-2019-10-26T18:40:31.667Z.wav
Der Schwan steht.;/community/data/5591.2019-10-17T17_01_29.395Z.wav
Der Spatz läuft.;/community/data/5594.2019-10-17T17_04_52.088Z.wav
Der Krebs läuft.;/community/data/5582.2019-10-17T16_51_41.031Z.wav
Der Schwan läuft.;/community/data/5590.2019-10-17T17_00_29.291Z.wav

Inventory

Literature

Name ISBN Price Location
Automata 978-2-36511-134-8  55.00  
Epic Struggle of Internet of Things 978-5-906264-30-5 9.00  
Voynich Manuscript 978-0-300-21723-0 42.50  
Speichern und Strafen 978-3-406-74179-1 16.95  
Digitalisierung der Lebenswert 978-3-95832-170-0 34.90  
Digital Minimalism 978-0-241-34113-1 16.80  
Intelligence and Spirit 978-0-9975674-0-3 29.80  
New Dark Age 978-3-406-74177-7 25.00  
Virtual Reality 978-0-262-53752-0 14.80  
Haptics 978-0-262-53580-9 14.80  
Legasthenie als Talent 9783426775066 12.99  
Machine Learning 9781492047544 14.00  
Python Crash Course 9781593279289 39.50  Astrid
Kinder sind Anders 9783608945355 15.00  
Python for Data Science 9781119647624 35.50  
SmartSchool 9783658248727 20.44  
Neurodidaktik 9783170297111 34.00  
LRS Schwierigkeiten  9783780049629 29.95  
Legasthenie LRS 9783825248161 28.99  
Freinet Waldorf 9783407254443 24.90  
Machine Learning 9780262529518 19.50  
Superintelligence 9780198739838 12.00  
What Algorithms Want 9780262536042 23.00  
Data Science 9780262535434 19.50  
Who Owns The Future 9780241957219 12.50  
Novacene 9780241399361 22.00  
Enlightenment Now 9780141979090 14.00  
Metadata 9780262528511 19.50  
Permanent Record 9781529035667 19.50  
Lüge der digitalen Bildung     borrowed by Kathrin

Hardware

Others

Item Quantity Location Broken? Missing?
ISKN Slate 1     1
Phat Stack 4 3x-GRU 313, 1x-Prototype 0    

Tools

Item Quantity Location Broken? Missing?
Battery Charger Universal 1 1x-GRU 313    
Battery Charger LiPo 3s 1 1x-GRU 313    
Battery Tester 1 1x-GRU 313    
Voltmeter 1 1x-GRU 313    
Power Meter 1 1x-GRU 313    
Power Logger 1 1x-GRU 313    
Soldering Iron 1 1x-GRU 313    

Telecomm

Item Quantity Location Broken? Missing
LoRa 2 2x-Nick    
GPS 1 1x-GRU 313    
GPRS 1 1x-GRU 313    

Screens

Item Quantity Location Broken? Missing?
HDMI LCD Touch 3 2x-GRU 313, 1x-ML PC 1  
TFT 240x320 1 1x-GRU 313    
TFT 320x480 1 1x-GRU 313    
Grove OLED 1 1x-GRU 313    

Sensors

Item Quantity Location Broken? Missing?
Grove Hat 1 1x-GRU 313    
Grove Gesture 11 7x-GRU 313, 2x-Nick, 2x-Daniel  
Grove Temp&Humidity 1 1x-GRU 313    
Grove Moisture 1 1x-GRU 313    
Grove Sound 1 1x-GRU 313    
i2c Multiplexer 5 4x-GRU 313, 1x-Nick    
Drum Hat 1 1x-GRU 313    
Capacitive Hat 3 2x-GRU 313, 1x-Georgy    
Pi Camera 3 1x-GRU 313, 1x-Nick?, 1x Kohei
   
Ultrasound 1 1x-Akif's Artefact    
Skywriter 2 1x-Klangschale, 1x-Ukulele    

E-Ink

Item Quantity Location Broken? Missing?
E-Ink 800x600 4 1x-GRU 313, 1x Georgy?, 1 x Hara
2 given to Kohei
 
E-Ink 1280x800 2 1x-GRU 313, 1x-BOL Repaired by Hibiki and given to her
 
E-Ink UART 2 1x-GRU 313, 1x-Soledad    
Inkyphat 1 1x-GRU 313    
IT8951 Controller6 3x-GRU 313, 1xNick, 1xDaniel, 1x-Georgy 1  

Processing

Item Quantity Location Broken? Missing?
Raspi Pi 4 2GB 2 2x-GRU 313    
Raspi Pi 3 2 1x-ML PC, 1x-Georgy?    
Raspi pi A 3 1x-GRU 313, 1x-Ukulele, 1x-Akif's Artefact    
Raspi Zero W 4 1x-GRU 313, 1x-Prorotype Zero, 1x-Klangschale, 1x-Georgy?    
Raspi Zero 1 1x-GRU 313 1  
Compute Module 32GB 3 3x-GRU 313    
Arty 1 1x-Nick    
Matrix Creator 1 1x-GRU 313    
Arduino 2 2x-GRU 313    
Rock Pi 1 1x-GRU 313    
Coral Accelerator 2 1x-GRU 313, 1x-Georgy?    
Seeduino Nano 2 2x-GRU 313    

Audio

Item Quantity Location Broken? Missing?
Renkforce Bluetooth Cube 4 4x-GRU 313    
Renkforce Bluetooth Wheel 1 1x-GRU 313    
Plugin Speaker 6 6x-GRU 313    
Goldmaster Speaker 1 1x-GRU 313    
Respeaker 4mic 2 1x-GRU 313, 1x Akif's Artefact    
Respeaker 2mic 3 1x-GRU 313, 1x-Georgy?, 1x-Daniel    
Kemo Amp 2 1x-GRU 313, 1x-Klangschale    
Shaker 13mm 3w 3 1x-GRU 313, 1x-Nick, 1x-Klangschale    
Shaker 9mm 0.5w 2 1x-GRU 313, 1x-Nick    
Shaker 9mm 1w 1 1x-GRU 313    
Shaker Big 1 1x-GRU 313    
Phat Dac 1 1x-Klangschale   Nick's Phatdac Lost
Speaker Phat 2 2x-GRU 313 1  
Phat Beat 1 1x-GRU 313    

Power

Item Qtty Location Broken? Missing?
Witty Pi 3 4 4x-GRU 313    
Witty Pi 2 3 3x-GRU 313    
Witty Pi mini 2 2x-GRU 313    
StromPi 1 1x-GRU 313    
LiPo 3.7v 2000mAh 2 1x-GRU 313, 1x-Ukulele    
LiPo 3.7v 500mAh 3 3x-GRU 313    
LiPo 3.7v 400mAh 1 1x-GRU 313    
LiPo 7.4v 350mAh 1 1x-GRU 313    
Voltage Readout 4 3x-GRU 313, 1x-Nick    
Powerbank Goobay 1 1x-GRU 313    
Powerbank Intenso 1 1x-GRU 313    
Powerbank Voltcraft Solar 1 1x-GRU 313    
Powerbank Voltcraft Leds 1 1x-Akif's Artefact    
Solar Module 2 2x-GRU 313    
Goal Zero 1 1x-GRU 313    
Grove Relay 2 1x-GRU 313, 1x-ML PC    
12v DC adapter 1 1x-GRU 313    
5v DC adapter 1 1x-GRU 313    
PI4 type-C adapter 1 1x-GRU 313    
Raspi microUSB adapter 1     1

Python for e-paper IT8951

I updated original PaperTTY lib so there are extra features.
it uses Pillow for images so any image format can be used (check Pillow documentation)
plus any Pillow features for drawing, animation, text etc (Pillow is pretty powerfull for image processing)

requirements for using python IT8951 lib:
enable SPI in raspi-config
install python libs: Pillow, RPi.GPIO, spidev
should work without sudo

library is at  Fibel / Code / e-paper-python3.7
put driver folder in your code folder
original PaperTTY lib is driver_it8951.py
mine version is it8951.py

here is example of using it:


from PIL import Image, ImageDraw
import drivers.drivers_base as drivers_base
# import my version of lib with extra features
import drivers.it8951 as driver_it8951

# if you wanna use original PaperTTY lib change the line to
import drivers.driver_it8951 as driver_it8951

# init communication with IT8951
driver=driver_it8951.IT8951()
driver.init(partial=True)

# get address of 0 page (first page of framebuffer)
img_addr=driver.img_addr

# get values for black and white
black = driver.black
white = driver.white

# get size of your screen
width = driver.width
height = driver.height

# this function convert page number to address of framebuffer
def pageList(img_addr,page):
    return img_addr+page*(2*driver.width*driver.height+1)

# load image with Pillow
filename = '' # please provide path to your file
image=Image.open(filename)
# and convert it to BW format
image=image.convert('1')

   
pageNumber = 0 # define page of frambuffer where to load the image
driver.load_image(0,0,image,img_addr=pageList(img_addr,pageNumber))

# display image from specified page of framebuffer (pageNumber)
driver.display_buffer_area(0,0,width,height,1,pageList(img_addr,pageNumber))

# you can use any function of Pillow lib to draw and print the text
# here is example of drawing simple line

image = Image.new('1',(image.width,image.height),white)
draw = ImageDraw.Draw(image)
draw.line((0,0,width,height),fill=black)

# load it to page 1 so we can keep previous loaded image
pageNumber = 1
driver.load_image(0,0,image,img_addr=pageList(img_addr,pageNumber))
driver.display_buffer_area(0,0,width,height,1,pageList(img_addr,pageNumber))


use at your own risk






 

mfcc dynamic time warping

#code inspired by https://github.com/pierre-rouanet/dtw/blob/master/examples/speech-recognition.ipynb

import time
import glob
import librosa
import numpy as np
from dtw import dtw

datadir="./tokens/"
labels={'Ja','Nein'}
cepstra=3

mfccs = []
true_labels = []

for l in labels:
    sounds = glob.glob(datadir+l+'*.wav')
    np.random.shuffle(sounds)

    for s in sounds:
        y, sr = librosa.load(s)
        mfcc = librosa.feature.mfcc(y, sr, n_mfcc=cepstra)
        mfccs.append(mfcc.T)
        true_labels.append(l)
       
mfccs = np.array(mfccs)
true_labels = np.array(true_labels)

val_percent = 0.5
n_val = int(val_percent * len(true_labels))

def cross_validation(train_indices, val_indices):
    score = 0.0
    for i in val_indices:
        x = mfccs[i]
        dmin, jmin = np.inf, -1
        for j in train_indices:
            y = mfccs[j]
            d, _, _, _ = dtw(x, y, dist=lambda x, y: np.linalg.norm(x - y, ord=1))

            if d < dmin:
                dmin = d
                jmin = j

        score += 1.0 if (true_labels[i] == true_labels[jmin]) else 0.0
       
    return score / len(val_indices)

rec_sum=0
start = time.time()
for i in range(1,20):
    I = np.random.permutation(len(true_labels))
    I_val, I_train = I[:n_val], I[n_val:]
    rec_rate = cross_validation(I_train, I_val)
    rec_sum=rec_sum+rec_rate
    print('Recognition rate {}%'.format(100. * rec_rate))

end=time.time()
print('{};{};{}%'.format(cepstra,rec_sum/20,end-start))

mfcc-dtw PiZero prerequisities

apt install python3-numpy
apt install python3-scipy
pip3 install python_speech_features
pip3 install dtw

Prototype 1 shell design files

Prototype 1 shell design files v1.2

hello paul

https://kastalia.medienhaus.udk-berlin.de/community/data/6915.fibel_v1.1_front.ai

DF1 A5 50mm

prototype 1.3

Credits

Alberto deCampo, Hannes Hoelzl, Nikoloz Kapanadze, Astrid Kraniger,  Georgy Bagdasarov, Constantin Engelmann, Sebastian Wolf, Thomas Maier

Resistive Draw

Plug arduino in USB port.

maybe: pip install pyserial

should work from Fibel_V1 root dir

in tests 5x5 seems the smallest chunk you can pass display_buffer_area
 

 
 
import Fibel.drivers.it8951 as driver_it8951
import serial
import time
from PIL import Image, ImageDraw
from Fibel.image_utils import ImageText
from random import sample,choice,randint,getrandbits
 
import os,time,sys,string,re
 
white_image = Image.new("1", (600,800), color='#FFFFFF')
black_image = Image.new("1", (600,800), color='#000000')
 
driver_front=driver_it8951.IT8951()
driver_front.init(rotate=2)
 
pointer_front=driver_front.img_addr
pointer_front2=driver_front.img_addr+(2*driver_front.width*driver_front.height+1)
 
driver_front.load_image(0,0,white_image,img_addr=pointer_front)
driver_front.load_image(0,0,black_image,img_addr=pointer_front2)
 
driver_front.display_buffer_area(0,0,800,600,2,pointer_front)
 
ser = serial.Serial('/dev/ttyUSB0')
print(ser.name)
 
time.sleep(2)
 
x=0;
y=0;
x_prev = x
y_prev = y
 
while(True):
        s=ser.readline().strip()
        values = s.decode('ascii').split(',')
        x_prev = x
        y_prev = y
        x=values[1]
        y=values[0]
        #print(x,'  ',y)
        if(x!=x_prev or y!=y_prev):
                x_p = int(x)/1024.0*800.0
                y_p = int(y)/1024.0*600.0
                driver_front.display_buffer_area(int(x_p),int(y_p),5,5,1,pointer_front2)

pizero webcam grayscale bmp snapshot

raspistill -w 800 -h 600 -e bmp -cfx 128:128 -hf -o dada1.bmp

Protocoll Assembly Fibel 16.06.20

Notes on the Assembly of the Fibel: The waveshare wm8960 "can operate at up to 5.5V, providing 1W per channel into 8 ohm loads". Varios speaker provide diffrent resistance, but slightly under or over the value seems to work fine aswell. The connector of the epaper hat seem just to work with the down side marked connector

WARNING :: Do not mess too much with e-paper replugging in the IT8951 controller when controller is under power. You may brick the controller->IT8951 circuitry badly.

Connection PI -> Screendriver


+--------------------------+
| |
| RPI PIN Screen |
| Controler|
| |
| 2 5v |
| |
| 6 GND |
| |
| 21 miso |
| |
| 19 Mosi |
| |
| 23 SCK |
| |
| 24 CS |
| |
| ALC RST |
| |
| 18 HRDY |
| |
| |
| |
| |
+--------------------------+

Design Files for fibel0

Archivillustrationen

Illustrationen Grimm Märchen

Illustrationen Königin Drosselbärtin

Illustrationen Tischlein deck dich

Illustrationen Schneeweißchen und Rosenrot

Illustrationen Rapunzel

Illustrationen Frau Holle

Illustrationen Froschkönig

Illustrationen Die tapfere Schneiderin

Illustrationen Hänsel und Gretel

Illustrationen Dornröschen

Illustrationen Hans im Glück

Markt:::

Illustrationen Aschenputtel

Illustrationen Rumpelstilzchen

Illustrationen Rotkäppchen