NeoPixel Ring
https://www.reichelt.de/entwicklerboards-neopixel-ring-mit-12-ws2812rgb-leds-debo-led-np12-p235468.html
Python virtualenv
sudo pip install virtualenv
virtualenv <NAME OF ENV>
source <NAME OF ENV>/bin/activate
# do pythoning
deactivate
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
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 KleistparkDaniel:
- 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 )
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?
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
- sudo apt-get update && sudo apt-get dist-upgrade
- sudo apt-get install bluealsa
- sudo service bluealsa start
- Switch on your bluetooth device
- sudo bluetoothctl
- scan on
- pair XX:XX:XX:XX:XX:XX (replace the XXXXX with your device ID)
- trust XX:XX:XX:XX:XX:XX
- connect XX:XX:XX:XX:XX:XX
- exit
- 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
- 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).
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
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)
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