Ejemplo n.º 1
0
#concating the slash as anticipation of future command-line laziness, not sure if it could not potentially cause some ITsec issues in future ?
topic = sys.argv[1] + '/'
author = sys.argv[2]
font = sys.argv[3]

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

#white_image = Image.new("1", (600,800), color='#FFFFFF')
#driver.load_image(0,0,white_image,img_addr=driver.img_addr)
#driver.display_buffer_area(0,0,800,600,2,driver.img_addr)

for label_full in os.listdir(topic + '/Units/'):
    print(label_full)
    label = os.path.splitext(label_full)[0]
    folio = ImageText((600, 800), background=(255, 255, 255))
    folio_up = ImageText((600, 100), background=(255, 255, 255))
    folio_up.write_text('center',
                        'center',
                        label,
                        font_filename='Fonts/' + font + '.otf',
                        font_size='fill',
                        max_height=100,
                        max_width=560,
                        color=(0, 0, 0))
    folio.image.paste(folio_up.image, (0, 0))

    folio_down = ImageText((600, 100), background=(255, 255, 255))
    folio_down.write_text('center',
                          'center',
                          label.upper(),
Ejemplo n.º 2
0
def match(amount=50):
    # say("BEGIN Aufgabe 3 :: Berliner digitale Leseprobe")
    global g_back, g_front
    white_image = Image.new("1", (600, 800), color='#FFFFFF')
    display_back.load_image(0, 0, white_image, img_addr=display_back.img_addr)
    display_back.load_image(0,
                            0,
                            white_image,
                            img_addr=display_back.img_addr +
                            (2 * display_back.width * display_back.height + 1))
    #bdlp_image = ImageText((600,200), background=(255,255,255))
    #bdlp_image.write_text(20,0,"Berliner digitale Leseprobe", font_size='fill', max_height=200, max_width=560,color=(0,0,0))
    #display_back.load_image(0,100,bdlp_image.image,img_addr=display_back.img_addr)
    #display_back.display_buffer_area(0,0,800,600,2,display_back.img_addr+(2*display_back.width*display_back.height+1))
    #display_back.display_buffer_area(0,0,800,600,2,display_back.img_addr)
    #sa.WaveObject.from_wave_read(wave.open(root_dir+'Audio/Titles/Aufgabe3-BDLP-ddh', 'rb')).play().wait_done()

    say("Bitte bewege dein Hand in Richtung des gesprochenes Wortes - entweder von dir / nach oben oder zu dir / nach unten."
        )
    labels = sample(os.listdir(root_dir + 'Audio/WLLPR/WAV'), amount)
    for label_full in labels:
        true_label = os.path.splitext(label_full)[0]
        proba = randint(1, 100)
        operator_flag = ""
        if proba < 20:
            false_label = randomString(len(true_label))
            false_image = ImageText((600, 200), background=(255, 255, 255))
            false_image.write_text(20,
                                   0,
                                   false_label,
                                   font_size='fill',
                                   max_height=200,
                                   max_width=560,
                                   color=(0, 0, 0))
            false_label_image = false_image.image
            operator_flag = "random"
            if proba < 10:
                false_label_image = false_label_image.convert('1').rotate(180)
                operator_flag = "random_rotate180"
        else:
            false_label = BDLP_nn_dict[true_label]
            false_label_image = Image.open(root_dir + 'titles_bg255/' +
                                           false_label + '.bmp')
            if proba < 30:
                false_label_image = false_label_image.transpose(
                    Image.FLIP_LEFT_RIGHT)
                operator_flag = "true_verticalflip"
            elif proba < 40:
                false_label_image = false_label_image.transpose(
                    Image.FLIP_TOP_BOTTOM)
                operator_flag = "true_horizontalflip"
        true_label_image = Image.open(root_dir + 'titles_bg255/' + true_label +
                                      '.bmp')
        true_up = bool(getrandbits(1))
        if true_up:
            pointer_true = display_back.img_addr
            pointer_false = display_back.img_addr + (
                2 * display_back.width * display_back.height + 1)
        else:
            pointer_true = display_back.img_addr + (
                2 * display_back.width * display_back.height + 1)
            pointer_false = display_back.img_addr
        display_back.load_image(0, 0, true_label_image, img_addr=pointer_true)
        sa.WaveObject.from_wave_read(
            wave.open(root_dir + 'Audio/WLLPR/WAV/' + true_label + '.wav',
                      'rb')).play()
        display_back.load_image(0,
                                0,
                                false_label_image,
                                img_addr=pointer_false)
        display_front.load_image(0, 0, true_label_image, img_addr=pointer_true)
        display_front.load_image(0,
                                 0,
                                 false_label_image,
                                 img_addr=pointer_false)

        if true_up:
            #front
            display_front.display_buffer_area(500, 0, 200, 600, 2,
                                              pointer_true + 100)
            display_front.display_buffer_area(100, 0, 200, 600, 2,
                                              pointer_false + 500)
            display_back.display_buffer_area(100, 0, 200, 600, 2,
                                             pointer_true - 100)
            display_back.display_buffer_area(500, 0, 200, 600, 2,
                                             pointer_false - 500)
        else:
            display_front.display_buffer_area(500, 0, 200, 600, 2,
                                              pointer_false + 100)
            #if You want content to scroll down then decrease the 1st param while simultaneously increasing the pointer
            display_front.display_buffer_area(100, 0, 200, 600, 2,
                                              pointer_true + 500)
            #back
            display_back.display_buffer_area(100, 0, 200, 600, 2,
                                             pointer_false - 100)
            display_back.display_buffer_area(500, 0, 200, 600, 2,
                                             pointer_true - 500)

        task_start = time.time()
        while True:
            #make sure that gesture sensor polling sequences are random so that no user is prioritized
            cmd = None
            front_first = bool(getrandbits(1))
            if front_first:
                cmd = g_front.get_gesture()
                if cmd:
                    player = 'front'
            else:
                cmd = g_back.get_gesture()
                if cmd:
                    player = 'back'
            if cmd is None:
                if front_first:
                    cmd = g_back.get_gesture()
                    if cmd:
                        player = 'back'
                else:
                    cmd = g_front.get_gesture()
                    if cmd:
                        player = 'front'
            if cmd is None:
                time.sleep(0.07)
                continue
            if cmd == 'C' or cmd == 'A':
                sa.WaveObject.from_wave_read(
                    wave.open(
                        root_dir + 'Audio/WLLPR/WAV/' + true_label + '.wav',
                        'rb')).play()
            if cmd == 'U' or cmd == 'D':
                if cmd == 'U':
                    if true_up:
                        feedback_positive()
                        status = 'T'
                    else:
                        feedback_negative()
                        status = 'F'
                if cmd == 'D':
                    if not true_up:
                        feedback_positive()
                        status = 'T'
                    else:
                        feedback_negative()
                        status = 'F'
                print(player + ";" + cmd + ';' + status + ';' + true_label +
                      ';' + false_label + ';' +
                      str(round(time.time() - task_start, 2)) + ';' +
                      operator_flag)
                break
            time.sleep(0.1)
Ejemplo n.º 3
0
from random import sample, choice, randint, getrandbits

import os, time, sys, string, re
import simpleaudio as sa
import wave

from Fibel.Corpora.BDLP_nn import *
from Fibel.input.gesture import *
import Fibel.drivers.it8951 as driver_it8951

screen_id = sys.argv[1]

#content_image=Image.open('/home/fibel/Primer_v1/Lesen/Tiere/Lectiones/1/cover.bmp')
content_image = Image.open(
    '/home/fibel/Primer_v1/Books/ABC_Buch/intro/bild2.bmp')
text_image = ImageText((600, 800), background=(255, 255, 255))
text_image.write_text(20,
                      0,
                      "Das ABC Buch",
                      font_size='fill',
                      max_height=200,
                      max_width=560,
                      color=(0, 0, 0))
text_image.write_text(20,
                      100,
                      "von Karl Philipp Moritz",
                      font_size='fill',
                      max_height=100,
                      max_width=560,
                      color=(0, 0, 0))
text_image.image.paste(content_image.resize((396, 300)), (102, 210))
Ejemplo n.º 4
0
import Fibel.drivers.it8951 as driver_it8951

epoch_id = sys.argv[1]
epoch = sys.argv[2]
thema_id = sys.argv[3]
thema = sys.argv[4]
lesson_id = sys.argv[5]
thema_dir = 'Lesen/' + thema + '/'
lesson_dir = thema_dir + 'Lectiones/' + lesson_id + '/'
folio_dir = lesson_dir + 'Foliae/'

color = (0, 0, 0)
font = 'schola.otf'
disp_width = 600
disp_height = 800
img_out = ImageText((disp_width, disp_height), background=(255, 255, 255))
img_out.write_text(20,
                   0,
                   "EPOCHE " + epoch_id,
                   font_size='fill',
                   max_height=100,
                   max_width=300,
                   color=color)
img_out.write_text(20,
                   60,
                   epoch.upper(),
                   font_size='fill',
                   max_height=100,
                   max_width=300,
                   color=color)
img_out.write_text(20,
Ejemplo n.º 5
0
import Fibel.drivers.drivers_base as drivers_base
import Fibel.drivers.it8951 as driver_it8951
import os, time, sys

#topic=sys.argv[1]
topic_dir = 'Lesen/' + sys.argv[1] + '/'
lesson_dir = topic_dir + 'Lectiones/' + sys.argv[2] + '/'
folio_dir = lesson_dir + 'Foliae/'

index_image = Image.new("L", (600, 800), color='#FFFFFF')

labels = os.listdir(folio_dir)
print(labels)
counter = 0
for label in sorted(labels):
    label_image = ImageText((120, 80), background=(255, 255, 255))
    uppercase_label_image.write_text(0,
                                     0,
                                     label,
                                     font_filename='Fonts/' + font + '.otf',
                                     font_size='fill',
                                     max_height=70,
                                     max_width=560,
                                     color=(0, 0, 0))
    uppercase_label_image.write_text(0,
                                     0,
                                     label,
                                     font_filename='Fonts/' + font + '.otf',
                                     font_size='fill',
                                     max_height=70,
                                     max_width=560,
Ejemplo n.º 6
0
def BDLP():
    # say("BEGIN Aufgabe 3 :: Berliner digitale Leseprobe")
    white_image = Image.new("1", (600, 800), color='#FFFFFF')
    driver.load_image(0, 0, white_image, img_addr=driver.img_addr)
    driver.load_image(0,
                      0,
                      white_image,
                      img_addr=driver.img_addr +
                      (2 * driver.width * driver.height + 1))
    bdlp_image = ImageText((600, 200), background=(255, 255, 255))
    bdlp_image.write_text(20,
                          0,
                          "Berliner digitale Leseprobe",
                          font_size='fill',
                          max_height=200,
                          max_width=560,
                          color=(0, 0, 0))
    driver.load_image(0, 100, bdlp_image.image, img_addr=driver.img_addr)
    driver.display_buffer_area(
        0, 0, 800, 600, 2,
        driver.img_addr + (2 * driver.width * driver.height + 1))
    driver.display_buffer_area(0, 0, 400, 600, 1, driver.img_addr)
    sa.WaveObject.from_wave_read(
        wave.open(root_dir + 'Audio/Titles/Aufgabe3-BDLP-ddh',
                  'rb')).play().wait_done()

    say("Bitte bewege dein Hand in Richtung des gesprochenes Wortes - entweder von dir / nach oben oder zu dir / nach unten."
        )
    labels = sample(os.listdir(root_dir + 'Audio/WLLPR/WAV'), 50)
    for label_full in labels:
        true_label = os.path.splitext(label_full)[0]
        proba = randint(1, 100)
        operator_flag = ""
        if proba < 20:
            false_label = randomString(len(true_label))
            false_image = ImageText((600, 200), background=(255, 255, 255))
            false_image.write_text(20,
                                   0,
                                   false_label,
                                   font_size='fill',
                                   max_height=200,
                                   max_width=560,
                                   color=(0, 0, 0))
            false_label_image = false_image.image
            operator_flag = "random"
            if proba < 10:
                false_label_image = false_label_image.convert('1').rotate(180)
                operator_flag = "random_rotate180"
        else:
            false_label = BDLP_nn_dict[true_label]
            false_label_image = Image.open(root_dir + 'titles_bg255/' +
                                           false_label + '.bmp')
            if proba < 30:
                false_label_image = false_label_image.transpose(
                    Image.FLIP_LEFT_RIGHT)
                operator_flag = "true_verticalflip"
            elif proba < 40:
                false_label_image = false_label_image.transpose(
                    Image.FLIP_TOP_BOTTOM)
                operator_flag = "true_horizontalflip"
        true_label_image = Image.open(root_dir + 'titles_bg255/' + true_label +
                                      '.bmp')
        true_up = bool(getrandbits(1))
        if true_up:
            pointer_true = driver.img_addr
            pointer_false = driver.img_addr + (
                2 * driver.width * driver.height + 1)
        else:
            pointer_true = driver.img_addr + (
                2 * driver.width * driver.height + 1)
            pointer_false = driver.img_addr
        driver.load_image(0, 100, true_label_image, img_addr=pointer_true)
        sa.WaveObject.from_wave_read(
            wave.open(root_dir + 'Audio/WLLPR/WAV/' + true_label + '.wav',
                      'rb')).play()
        driver.load_image(0, 100, false_label_image, img_addr=pointer_false)
        if true_up:
            driver.display_buffer_area(0, 0, 400, 600, 1, pointer_true)
            driver.display_buffer_area(400, 0, 400, 600, 1,
                                       pointer_false + 1200)
        else:
            driver.display_buffer_area(0, 0, 400, 600, 1, pointer_false)
            driver.display_buffer_area(400, 0, 400, 600, 1,
                                       pointer_true + 1200)
        task_start = time.time()
        while True:
            cmd = g.get_gesture()
            if cmd == 'C' or cmd == 'A':
                sa.WaveObject.from_wave_read(
                    wave.open(
                        root_dir + 'Audio/WLLPR/WAV/' + true_label + '.wav',
                        'rb')).play()
            if cmd == 'U' or cmd == 'D':
                if cmd == 'U':
                    if true_up:
                        feedback_positive()
                        status = 'T'
                    else:
                        feedback_negative()
                        status = 'F'
                if cmd == 'D':
                    if not true_up:
                        feedback_positive()
                        status = 'T'
                    else:
                        feedback_negative()
                        status = 'F'
                print(status + ';' + true_label + ';' + false_label + ';' +
                      str(round(time.time() - task_start, 2)) + ';' +
                      operator_flag)
                break
            time.sleep(0.01)