Your browser doesn't support the features requi#EC1C24 by impress.js, so you are presented with a simplified version of this presentation.

For the best experience please use the latest Chrome, Safari or Firefox browser.

NeoPixel Ring
https://www.reichelt.de/entwicklerboards-neopixel-ring-mit-12-ws2812rgb-leds-debo-led-np12-p235468.html
Bibliography
Python virtualenv
sudo pip install virtualenv
virtualenv <NAME OF ENV>
source <NAME OF ENV>/bin/activate

# do pythoning

deactivate
Recordings
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% 
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.
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
PPP IntCom
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))
Cycle 0 :: Tasks
1st meeting: Monday 9th September, 11:30 AM, R313 Kleistpark

Daniel: 
Georgy:
Nik:
Astrid:
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?

 
Inventory
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/

 
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

 

}
ERC DHABL
Knot related to European Research Council Starting Grant proposal.

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
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






 
Schoolscript OTF font
from https://www.skolskepismo.sk
1st boot
AE49100720:20
1st witty-Pi initiated battery-powered boot into fully functional bimanual modus
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
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

 
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/*

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
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




Shells and Frames
https://www.thingiverse.com/thing:1344095
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


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:


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).
 
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)
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

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
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 ?
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...
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
Prototype 1 shell design files
Pi BareBone links
https://github.com/BrianSidebotham/arm-tutorial-rpi

https://github.com/dwelch67/raspberrypi

https://github.com/adamransom/bare_metal
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


Topics
ML hardware etc
Coral
https://coral.withgoogle.com/products/

Intel SpikeNN project
https://www.intel.ai/nervana-nnp/
Credits
Alberto deCampo, Hannes Hoelzl, Nikoloz Kapanadze, Astrid Kraniger,  Georgy Bagdasarov, Constantin Engelmann, Sebastian Wolf, Thomas Maier
mfcc-dtw PiZero prerequisities
apt install python3-numpy
apt install python3-scipy
pip3 install python_speech_features
pip3 install dtw
fibel folder structure
~/fibel/IT8951 C - source for atrament (E-ink) display
~/fibel/mic_hat Python - source for ReSpeaker 2 Mic Array
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")

 


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
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

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");

 

}

 
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
Gestaltung Protokolen
Design protocols for Your work.
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)
Archivillustrationen
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

Use a spacebar or arrow keys to navigate