Browse Source

First commit

dag 5 years ago
parent
commit
2f6453f896
76 changed files with 426 additions and 0 deletions
  1. 61 0
      README.md
  2. 7 0
      mod/__init__.py
  3. BIN
      mod/__pycache__/__init__.cpython-35.pyc
  4. BIN
      mod/__pycache__/crazy.cpython-35.pyc
  5. BIN
      mod/__pycache__/drums.cpython-35.pyc
  6. BIN
      mod/__pycache__/gemuese.cpython-35.pyc
  7. BIN
      mod/__pycache__/jokes.cpython-35.pyc
  8. BIN
      mod/__pycache__/switch.cpython-35.pyc
  9. 84 0
      mod/crazy.py
  10. BIN
      mod/crazy/apf_iphone.ogg
  11. BIN
      mod/crazy/apf_schnip.ogg
  12. BIN
      mod/crazy/apf_strom.ogg
  13. BIN
      mod/crazy/kar_fett.ogg
  14. BIN
      mod/crazy/kar_fleisch.ogg
  15. BIN
      mod/crazy/kar_nakt.ogg
  16. BIN
      mod/crazy/kar_ohja.ogg
  17. BIN
      mod/crazy/ora_burp.ogg
  18. BIN
      mod/crazy/ora_furz.ogg
  19. BIN
      mod/crazy/ora_schuetteln.ogg
  20. BIN
      mod/crazy/ora_special.ogg
  21. BIN
      mod/crazy/pap_leiden.ogg
  22. BIN
      mod/crazy/pap_messer.ogg
  23. BIN
      mod/crazy/pap_sauber.ogg
  24. BIN
      mod/crazy/tom_fleisch.ogg
  25. BIN
      mod/crazy/tom_lachen.ogg
  26. BIN
      mod/crazy/tom_rot.ogg
  27. BIN
      mod/crazy/tom_zitronesein.ogg
  28. BIN
      mod/crazy/zit_froh.ogg
  29. BIN
      mod/crazy/zit_heiratebald.ogg
  30. BIN
      mod/crazy/zit_ohneschale.ogg
  31. BIN
      mod/crazy/zit_schmutzig.ogg
  32. 27 0
      mod/drums.py
  33. BIN
      mod/drums/clap.ogg
  34. BIN
      mod/drums/cymbal.ogg
  35. BIN
      mod/drums/fx.ogg
  36. BIN
      mod/drums/hat.ogg
  37. BIN
      mod/drums/kick.ogg
  38. BIN
      mod/drums/shaker.ogg
  39. BIN
      mod/drums/snare.ogg
  40. BIN
      mod/drums/tom.ogg
  41. 58 0
      mod/gemuese.py
  42. 104 0
      mod/jokes.py
  43. BIN
      mod/jokes/apf_1arm.ogg
  44. BIN
      mod/jokes/apf_apfel.ogg
  45. BIN
      mod/jokes/apf_arzt.ogg
  46. BIN
      mod/jokes/apf_frau_mann.ogg
  47. BIN
      mod/jokes/apf_mathematiker.ogg
  48. BIN
      mod/jokes/apf_wolke.ogg
  49. BIN
      mod/jokes/kar_acht.ogg
  50. BIN
      mod/jokes/kar_chuck.ogg
  51. BIN
      mod/jokes/kar_comp.ogg
  52. BIN
      mod/jokes/kar_kreis.ogg
  53. BIN
      mod/jokes/kar_sebel.ogg
  54. BIN
      mod/jokes/kar_weinen.ogg
  55. BIN
      mod/jokes/ora_assi.ogg
  56. BIN
      mod/jokes/ora_clown.ogg
  57. BIN
      mod/jokes/ora_ikea.ogg
  58. BIN
      mod/jokes/ora_sauna.ogg
  59. BIN
      mod/jokes/pap_abschluss.ogg
  60. BIN
      mod/jokes/pap_besoffen.ogg
  61. BIN
      mod/jokes/pap_kino.ogg
  62. BIN
      mod/jokes/pap_strom.ogg
  63. BIN
      mod/jokes/pap_tom.ogg
  64. BIN
      mod/jokes/tom_himbeer.ogg
  65. BIN
      mod/jokes/tom_landkarte.ogg
  66. BIN
      mod/jokes/tom_parkplaetzchen.ogg
  67. BIN
      mod/jokes/tom_vampir.ogg
  68. BIN
      mod/jokes/zit_bagger.ogg
  69. BIN
      mod/jokes/zit_banane.ogg
  70. BIN
      mod/jokes/zit_biene.ogg
  71. BIN
      mod/jokes/zit_hose.ogg
  72. BIN
      mod/jokes/zit_taube.ogg
  73. 52 0
      mod/switch.py
  74. 33 0
      vgem.py
  75. BIN
      wiring.png
  76. BIN
      wiring_sceem.png

+ 61 - 0
README.md

@@ -0,0 +1,61 @@
+# vgem
+
+Using the adafruit *MPR121 capacitiv touch sensor* and a *RaspberryPi* to teach some vegetables to speek.
+
+## Requirements
+
+### Hardware
+
++ [Rraspberrypi](https://www.amazon.de/Raspberry-Pi-Official-Desktop-Starter/dp/B01CI58722/ref=sr_1_5/258-7958823-6093354?ie=UTF8&qid=1549352578&sr=8-5&keywords=raspberrypi) 
++ [MPR121 capacitiv touch sensor](https://www.amazon.de/Adafruit-12-Key-Capacitive-Sensor-Breakout/dp/B00SK8PVNA/ref=sr_1_3?ie=UTF8&qid=1549352918&sr=8-3&keywords=capacitive+touch+sensor) 
++ [extra stuff](https://www.amazon.de/Freenove-Raspberry-Beginner-Processing-Tutorials/dp/B06WD5FTVD/ref=sr_1_3?ie=UTF8&qid=1549353586&sr=8-3&keywords=Freenove+Basic+Starter+Kit)
+
+### Wiring
+You need to wire the MPR121 and the LED's as desciped in the [wiring.png](https://git.foxhole.li/moetom/vgem/src/branch/master/wiring.png) and [wiring_sceem.png](https://git.foxhole.li/moetom/vgem/src/branch/master/wiring_sceem.png) file which you can also see below this text. For the LED's we use GPIO 17, 22 and 27, but you can change this easily in the python code on the 'switch' module.
+
+## Installation
+
+First you need to install [Raspbian Stretch](https://www.raspberrypi.org/downloads/raspbian/) by following these [installation guide](https://www.raspberrypi.org/documentation/installation/installing-images/README.md).
+
+### Configure the RaspberryPi
+
+#### Activate *i2c*, *ssh* and *vnc* 
+```
+    # sudo raspi-config   (5. Interfacing Options)
+```
+
+### Install software and dependencies
+
+#### Upgrade packages
+```
+    # sudo apt update && sudo apt dist-upgrade
+```
+#### Install *python3* environment, *git* and library for *gpiozero* and *pygame*
+```
+    # sudo apt install python3 python3-pip git python3-gpiozero python3-pygame
+```
+#### Install *MPR121* Library
+```
+    # sudo pip3 install adafruit-circuitpython-mpr121
+```
+#### Install *Spyder3* (if you like to develop directly on the RaspberryPi's GUI)
+```
+    # sudo apt install spyder3
+```
+
+## Start testing
+The basic funktionality of the MPR121 is descriped [here](https://learn.adafruit.com/adafruit-mpr121-12-key-capacitive-touch-sensor-breakout-tutorial/python-circuitpython).
+
+#### Download vgem folder (you need to get an account from Tomás C.)
+```
+    # git clone https://git.foxhole.li/moetom/vgem.git
+```
+
+#### Run *vgem.py* on console or in Spider3
+```
+    # python3 vgem.py
+```
+## Wiring pictures
+![picture](wiring.png)
+
+![picture](wiring_sceem.png)

+ 7 - 0
mod/__init__.py

@@ -0,0 +1,7 @@
+#
+import mod.gemuese
+import mod.switch
+import mod.drums
+import mod.jokes
+import mod.crazy
+

BIN
mod/__pycache__/__init__.cpython-35.pyc


BIN
mod/__pycache__/crazy.cpython-35.pyc


BIN
mod/__pycache__/drums.cpython-35.pyc


BIN
mod/__pycache__/gemuese.cpython-35.pyc


BIN
mod/__pycache__/jokes.cpython-35.pyc


BIN
mod/__pycache__/switch.cpython-35.pyc


+ 84 - 0
mod/crazy.py

@@ -0,0 +1,84 @@
+#!/usr/bin/env python3
+# -*- coding: utf-8 -*-
+"""
+Created on MON APR  1 29:11:41 2019
+
+@author: moetom
+"""
+
+import mod.gemuese as gemuese
+import pygame.mixer as mixer
+mixer.init()
+
+""" Tomate """
+t1 = mixer.Sound("mod/crazy/tom_lachen.ogg")
+t2 = mixer.Sound("mod/crazy/tom_rot.ogg")
+t3 = mixer.Sound("mod/crazy/tom_zitronesein.ogg")
+
+t1s = "-lacht verrückt-"
+t2s = "Mhh, wenn du mich so anfasst werde ich ganz rot"
+t3s = "Ich bin sehr gerne eine Tomate. Aber eigentlich wollte ich eine Zitrone sein!"
+
+gemuese.tomate.AddVocab([t1, t2, t3], [t1s, t2s, t3s])
+
+""" Apfel """
+a1 = mixer.Sound("mod/crazy/apf_strom.ogg")
+a2 = mixer.Sound("mod/crazy/apf_schnip.ogg")
+a3 = mixer.Sound("mod/crazy/apf_iphone.ogg")
+
+a1s = "Bssst - Ich steh voll unter Strom!"
+a2s = "Schnip Schnip - Apfelmus!"
+a3s = "Mich kannst du essen, ein iPhone nicht."
+
+gemuese.apfel.AddVocab([a1, a2, a3], [a1s, a2s, a3s])
+
+""" Paprika """
+p1 = mixer.Sound("mod/crazy/pap_sauber.ogg")
+p2 = mixer.Sound("mod/crazy/pap_leiden.ogg")
+p3 = mixer.Sound("mod/crazy/pap_messer.ogg")
+
+p1s = "Hee, fass mich nicht an! Ich hoffe deine Hände sind sauber!"
+p2s = "Ich kann dich nicht leiden!"
+p3s = "Ey, ich hab heute noch ein Rendezvous. Mit einem Messer!"
+
+gemuese.paprika.AddVocab([p1, p2, p3], [p1s, p2s, p3s])
+
+""" Orange """
+o1 = mixer.Sound("mod/crazy/ora_schuetteln.ogg")
+o2 = mixer.Sound("mod/crazy/ora_furz.ogg")
+o3 = mixer.Sound("mod/crazy/ora_burp.ogg")
+
+o1s = "-schüttelt sich sabbernd-"
+o2s = "-furzt- Was kommt rein - Muss raus!"
+o3s = "-burp-"
+
+gemuese.orange.AddVocab([o1, o2, o3], [o1s, o2s, o3s])
+
+
+""" Zitrone """
+z1 = mixer.Sound("mod/crazy/zit_heiratebald.ogg")
+z2 = mixer.Sound("mod/crazy/zit_schmutzig.ogg")
+z3 = mixer.Sound("mod/crazy/zit_ohneschale.ogg")
+z4 = mixer.Sound("mod/crazy/zit_froh.ogg")
+
+
+z1s = "Hey Kartoffel, ich heirate bald."
+z2s = "Aber ich lade dich nicht ein. Weil du schmutzig bist."
+z3s = "Aber wenn du kommen willst, bitte nackt ohne Schale!"
+z4s = "Aber wirklich wenn du nakt kommst dann freue ich mich sehr! -jubel-"
+
+gemuese.zitrone.AddVocab([z1, z2, z3, z4], [z1s, z2s, z3s, z4s])
+
+
+""" Kartoffel """
+k1 = mixer.Sound("mod/crazy/kar_nakt.ogg")
+k2 = mixer.Sound("mod/crazy/kar_fett.ogg")
+k3 = mixer.Sound("mod/crazy/kar_ohja.ogg")
+k4 = mixer.Sound("mod/crazy/kar_fleisch.ogg")
+
+k1s = "OK! Dann komm ich nackt auf die Hochzeit."
+k2s = "Schnell, schnell, wirf mich ins heiße Fett! Los!"
+k3s = "OH JA! Ich mag es wenn du mich berührst!"
+k4s = "Mmhh, ich hab lust auf Fleisch!"
+
+gemuese.kartoffel.AddVocab([k1, k2, k3, k4], [k1s, k2s, k3s, k4s])

BIN
mod/crazy/apf_iphone.ogg


BIN
mod/crazy/apf_schnip.ogg


BIN
mod/crazy/apf_strom.ogg


BIN
mod/crazy/kar_fett.ogg


BIN
mod/crazy/kar_fleisch.ogg


BIN
mod/crazy/kar_nakt.ogg


BIN
mod/crazy/kar_ohja.ogg


BIN
mod/crazy/ora_burp.ogg


BIN
mod/crazy/ora_furz.ogg


BIN
mod/crazy/ora_schuetteln.ogg


BIN
mod/crazy/ora_special.ogg


BIN
mod/crazy/pap_leiden.ogg


BIN
mod/crazy/pap_messer.ogg


BIN
mod/crazy/pap_sauber.ogg


BIN
mod/crazy/tom_fleisch.ogg


BIN
mod/crazy/tom_lachen.ogg


BIN
mod/crazy/tom_rot.ogg


BIN
mod/crazy/tom_zitronesein.ogg


BIN
mod/crazy/zit_froh.ogg


BIN
mod/crazy/zit_heiratebald.ogg


BIN
mod/crazy/zit_ohneschale.ogg


BIN
mod/crazy/zit_schmutzig.ogg


+ 27 - 0
mod/drums.py

@@ -0,0 +1,27 @@
+#!/usr/bin/python3
+# -*- coding: utf-8 -*-
+"""
+Created on Thu Jan 30 18:18:45 2019
+
+@author: moetom
+"""
+
+import mod.gemuese as gemuese
+import pygame.mixer as mixer
+mixer.init()
+
+
+clap = mixer.Sound ('mod/drums/clap.ogg')
+hat = mixer.Sound ('mod/drums/hat.ogg')
+kick = mixer.Sound ('mod/drums/kick.ogg')
+shaker = mixer.Sound ('mod/drums/shaker.ogg')
+snare = mixer.Sound ('mod/drums/snare.ogg')
+tom = mixer.Sound ('mod/drums/tom.ogg')
+
+gemuese.tomate.AddVocab(clap, "clap")
+gemuese.apfel.AddVocab(hat, "hat")
+gemuese.paprika.AddVocab(kick, "kick")
+gemuese.orange.AddVocab(shaker, "shaker")
+gemuese.zitrone.AddVocab(snare, "snare")
+gemuese.kartoffel.AddVocab(tom, "tom")
+

BIN
mod/drums/clap.ogg


BIN
mod/drums/cymbal.ogg


BIN
mod/drums/fx.ogg


BIN
mod/drums/hat.ogg


BIN
mod/drums/kick.ogg


BIN
mod/drums/shaker.ogg


BIN
mod/drums/snare.ogg


BIN
mod/drums/tom.ogg


+ 58 - 0
mod/gemuese.py

@@ -0,0 +1,58 @@
+#!/usr/bin/env python3
+# -*- coding: utf-8 -*-
+"""
+Created on Thu Jan 30 18:15:12 2019
+
+@author: moetom
+"""
+
+import mod.switch
+gemList = []    # Gemueseliste
+
+class Gemuese:
+    
+    def __init__ (self, art):
+        self.art = str(art)
+        self.vocab = []             # Vocabular / sounds
+        self.vocabStr = []          # Vocabular / strings 
+        self.variation = 0          # variation file in current mode
+        self.sleepTime = 0
+        gemList.append(self)
+        
+    def AddVocab (self, sound, text):
+        """ adds the sounds and texts into lists """
+        self.vocab.append(sound)
+        self.vocabStr.append(text)
+            
+    def ResetVariation(self, activMode):
+        """ reset variation and play again """
+        self.variation = 0
+        self.Play(activMode)
+        
+    def Play(self, activMode):
+        """ plays sound and print text from lists """
+        if mod.switch.modeList[activMode] != mod.switch.drums:   # no len(self.vocab[mode][self.variation]) possible for drums
+            if self.variation < len(self.vocab[mod.switch.activMode]):  # check if variation is not out of range
+                self.vocab[activMode][self.variation].play()
+                print("["+self.art+"]\n{}\n".format(self.vocabStr[activMode][self.variation]))
+                self.sleepTime = self.vocab[mod.switch.activMode][self.variation].get_length()
+                self.variation = self.variation + 1
+            else:
+                self.ResetVariation(activMode)
+        else:                                               # drum mode has no variation
+            self.vocab[activMode].play()
+            print("["+self.art+"] - {}".format(self.vocabStr[activMode]))
+            
+
+
+tomate = Gemuese ("Tomate")
+apfel = Gemuese ("Apfel")
+paprika = Gemuese ("Paprika")
+orange = Gemuese ("Orange")
+zitrone = Gemuese ("Zitorne")
+kartoffel = Gemuese ("Kartoffel")
+
+
+
+
+

+ 104 - 0
mod/jokes.py

@@ -0,0 +1,104 @@
+#!/usr/bin/env python3
+# -*- coding: utf-8 -*-
+"""
+Created on Sun Feb  3 20:14:38 2019
+
+@author: moetom
+"""
+
+import mod.gemuese as gemuese
+import pygame.mixer as mixer
+mixer.init()
+
+""" Tomate """
+t1 = mixer.Sound("mod/jokes/tom_vampir.ogg")
+t2 = mixer.Sound("mod/jokes/tom_landkarte.ogg")
+t3 = mixer.Sound("mod/jokes/tom_parkplaetzchen.ogg")
+t4 = mixer.Sound("mod/jokes/tom_himbeer.ogg")
+
+t1s = "Was macht ein Vampir der keine Zähne mehr hat? - Er steigt um auf Tomatensuppe!"
+t2s = "Wo haben Flüsse kein Wasser? - Auf der Landkarte!"
+t3s = "Was essen Autos am liebsten? - Park-Plätzchen!"
+t4s = "Was ist groß, rot und gefährlich? - Ein Him-bär!"
+
+gemuese.tomate.AddVocab([t1, t2, t3, t4], [t1s, t2s, t3s, t4s])
+
+""" Apfel """
+a1 = mixer.Sound("mod/jokes/apf_1arm.ogg")
+a2 = mixer.Sound("mod/jokes/apf_apfel.ogg")
+a3 = mixer.Sound("mod/jokes/apf_arzt.ogg")
+a4 = mixer.Sound("mod/jokes/apf_frau_mann.ogg")
+a5 = mixer.Sound("mod/jokes/apf_mathematiker.ogg")
+a6 = mixer.Sound("mod/jokes/apf_wolke.ogg")
+
+a1s = "Was macht ein Einarmiger in der Einkaufspasge? - Er sucht den Second-Hand-Shop"
+a2s = "Sagt eine Frau zum Verkäufer: Ich suche Äpfel für meinen Mann. Sind die hier mit Gift gespritzt? Sagt der Verkäufer: NeNe, das müssen sie schon selber machen!"
+a3s = "Der Arzt zum Patienten: Wenn sie nicht aufhören zu trinken müssen sie bald sterben. Fragt der Patient: Warum denn? Sagt der Arzt: Weil es mein Bier ist!"
+a4s = "Sagt die Ehefrau zu Ehemann: Schatz, meine haut juckt, ist total trocken und hat Schuppen. Sagt der Ehemann: Ist normal bei Drachen!"
+a5s = "Was macht ein Mathematiker beim Skifahren? - Er rechnet mit Brüchen! \nUnd was steht auf dem Grabstein eines Mathematikers? - Damit hab ich nicht gerechnet!"
+a6s = "Was macht eine Wolke bei Juckreitz? - Sie fliegt zum Wolkenkratzer! \nUnd wie nennt mann einen Bauer der studiert hat? - Akkerdemiker!"
+
+gemuese.apfel.AddVocab([a1, a2, a3, a4, a5, a6], [a1s, a2s, a3s, a4s, a5s, a6s])
+
+""" Paprika """
+p1 = mixer.Sound("mod/jokes/pap_abschluss.ogg")
+p2 = mixer.Sound("mod/jokes/pap_besoffen.ogg")
+p3 = mixer.Sound("mod/jokes/pap_kino.ogg")
+p4 = mixer.Sound("mod/jokes/pap_strom.ogg")
+p5 = mixer.Sound("mod/jokes/pap_tom.ogg")
+
+p1s = "Sagt der Lehrer in der Schule: 80% von euch werden den Schulabschluss nicht schaffen. Sagt Fritz: So viele sind wir doch gar nicht!"
+p2s = "Ein betrunkener Autofahrer wird von der Polizei angehalten. Da fragt der Polizist: Wie viel haben sie denn getrunken? Sagt der Betrunkene: Drei Bullen Herr Jägermeister!"
+p3s = "Ein Typ geht mit seiner Freundin ins Kino. An der Kasse sagt er: Zwei Karten bitte. Fragt der Kassierer: Für den Hobbit? Sagt der Typ: Nein, das ist meine Freundin!"
+p4s = "Fragt der Lehrer in der Klasse: Kids, wo kommt der Strom her? Antwortet Fritz: Aus dem Jungel! Fragt der Lehrer: Aus dem Jungel, wie kommst du auf sowas? Sagt Fritz: Mein Vater sagt immer: Jetzt haben sie Affen schon wieder den Strom abgestellt!"
+p5s = "Sagt der Lehrer: Tom! Du gehst jetzt sofort vor die Türe, dein Gelaber interesiert hier niemand! Sagt Tom: Dann können sie ja gleich mitkommen!"
+ 
+
+gemuese.paprika.AddVocab([p1, p2, p3, p4, p5], [p1s, p2s, p3s, p4s, p5s])
+
+""" Orange """
+o1 = mixer.Sound("mod/jokes/ora_ikea.ogg")
+o2 = mixer.Sound("mod/jokes/ora_clown.ogg")
+o3 = mixer.Sound("mod/jokes/ora_sauna.ogg")
+o4 = mixer.Sound("mod/jokes/ora_assi.ogg")
+
+o1s = "Was glaubt ihr was passiert wenn ihr beim IKEA klaut? - Die vermöbeln euch!"
+o2s = "Ein Clown im Bürro, was macht der? - Natürlich Faxen!"
+o3s = "Welche Sprache wird in der Sauna gesprochen? - Schwitzer-Deutsch!"
+o4s = "Welche Sprache spricht ein Assi? - Assiatisch!"
+
+gemuese.orange.AddVocab([o1, o2, o3, o4], [o1s, o2s, o3s, o4s])
+
+
+""" Zitrone """
+z1 = mixer.Sound("mod/jokes/zit_biene.ogg")
+z2 = mixer.Sound("mod/jokes/zit_bagger.ogg")
+z3 = mixer.Sound("mod/jokes/zit_hose.ogg")
+z4 = mixer.Sound("mod/jokes/zit_banane.ogg")
+z5 = mixer.Sound("mod/jokes/zit_taube.ogg")
+
+z1s = "Warum summen Bienen? - Weil sie den Text nicht kennen..."
+z2s = "Was ist gelb und kann nicht schwimmen? - Ein Bagger!"
+z3s = "Was hat zwei Beine und kann nicht laufen? - Eine Hose..."
+z4s = "?????????????????????????????????????"
+z5s = "Welche Vögel hören nichts? - Die Tauben!"
+
+gemuese.zitrone.AddVocab([z1, z2, z3, z4, z5], [z1s, z2s, z3s, z4s, z5s])
+
+
+""" Kartoffel """
+k1 = mixer.Sound("mod/jokes/kar_comp.ogg")
+k2 = mixer.Sound("mod/jokes/kar_chuck.ogg")
+k3 = mixer.Sound("mod/jokes/kar_sebel.ogg")
+k4 = mixer.Sound("mod/jokes/kar_kreis.ogg")
+k5 = mixer.Sound("mod/jokes/kar_weinen.ogg")
+k6 = mixer.Sound("mod/jokes/kar_acht.ogg")
+
+k1s = "Was macht ein Pirat wenn er vor dem Computer sitzt? - Er drückt die Entertaste!"
+k2s = "Chuck Norris soll mal einen Kampf mit einem Piraten verloren haben. Aber das ist natürlich nur ein Gerückt. Er selbst hat es verbreitet, um noch mehr Piraten anzulocken."
+k3s = "Was macht ein Pirat am liebsten mit seinem Sebel? - Er sitcht in See!"
+k4s = "Warum können Piraten keinen vernünftigen Kreis berechnen? - Weil sie Pi raten!"
+k5s = "Piraten weinen nicht! - Sie heulen Rum!"
+k6s = "Was hat 8 beine und 8 Augen? - 8 Piraten!"
+
+gemuese.kartoffel.AddVocab([k1, k2, k3, k4, k5, k6], [k1s, k2s, k3s, k4s, k5s, k6s])

BIN
mod/jokes/apf_1arm.ogg


BIN
mod/jokes/apf_apfel.ogg


BIN
mod/jokes/apf_arzt.ogg


BIN
mod/jokes/apf_frau_mann.ogg


BIN
mod/jokes/apf_mathematiker.ogg


BIN
mod/jokes/apf_wolke.ogg


BIN
mod/jokes/kar_acht.ogg


BIN
mod/jokes/kar_chuck.ogg


BIN
mod/jokes/kar_comp.ogg


BIN
mod/jokes/kar_kreis.ogg


BIN
mod/jokes/kar_sebel.ogg


BIN
mod/jokes/kar_weinen.ogg


BIN
mod/jokes/ora_assi.ogg


BIN
mod/jokes/ora_clown.ogg


BIN
mod/jokes/ora_ikea.ogg


BIN
mod/jokes/ora_sauna.ogg


BIN
mod/jokes/pap_abschluss.ogg


BIN
mod/jokes/pap_besoffen.ogg


BIN
mod/jokes/pap_kino.ogg


BIN
mod/jokes/pap_strom.ogg


BIN
mod/jokes/pap_tom.ogg


BIN
mod/jokes/tom_himbeer.ogg


BIN
mod/jokes/tom_landkarte.ogg


BIN
mod/jokes/tom_parkplaetzchen.ogg


BIN
mod/jokes/tom_vampir.ogg


BIN
mod/jokes/zit_bagger.ogg


BIN
mod/jokes/zit_banane.ogg


BIN
mod/jokes/zit_biene.ogg


BIN
mod/jokes/zit_hose.ogg


BIN
mod/jokes/zit_taube.ogg


+ 52 - 0
mod/switch.py

@@ -0,0 +1,52 @@
+#!/usr/bin/env python3
+# -*- coding: utf-8 -*-
+"""
+Created on Thu Jan 30 18:16:23 2019
+
+@author: moetom
+"""
+
+from gpiozero import LED
+
+activMode = 0
+modeList = []
+
+class Mode:
+    
+    def __init__ (self, name, gpio):
+        self.name = str(name)
+        self.led = LED(gpio)
+        self.activ = 0
+        modeList.append(self)
+        
+    def ModeOn(self):
+        """ Activates the Mode """
+        self.led.on()
+        self.activ = 1
+        global activMode 
+        activMode = modeList.index(self)
+        print ("\n[MODE] - " + self.name + "\n")
+        
+    def ModeOff(self):
+        """ Deactivates the Mode """
+        self.led.off()
+        self.activ = 0
+
+drums = Mode ("DRUMS", 17)
+jokes = Mode ("WITZE", 27)
+crazy = Mode ("CRAZY", 22)
+
+
+modeList[0].ModeOn()  # Startmode
+
+def NextMode ():
+    """ Cecks which Mode is activ, then change to next """
+    for mode in range(len(modeList)):
+        if modeList[mode].activ == 1:
+            modeList[mode].ModeOff()
+            if mode == len(modeList)-1:
+                modeList[0].ModeOn()                        # Return to the first Mode on list
+            else:
+                modeList[mode+1].ModeOn()                   # Activate the next Mode on list
+                break
+   

+ 33 - 0
vgem.py

@@ -0,0 +1,33 @@
+ #!/usr/bin/python3
+# -*- coding: utf-8 -*-
+"""
+Created on Thu Jan 30 18:14:35 2019
+
+@author: moetom
+"""
+
+import time
+import board
+import busio
+import adafruit_mpr121
+import mod
+
+i2c = busio.I2C(board.SCL, board.SDA)
+mpr121 = adafruit_mpr121.MPR121(i2c)
+
+
+while True:
+    for sensor in range(7):
+        if mpr121[sensor].value:
+            """ Checks which sensorimput got an value """
+            if sensor < 6:
+                mod.gemuese.gemList[sensor].Play(mod.switch.activMode)           
+                if mod.switch.modeList[mod.switch.activMode] != mod.switch.drums:    # only drums need a very short gap
+                   time.sleep(mod.gemuese.gemList[sensor].sleepTime)
+                else:
+                    time.sleep(0.2)   
+            else:
+                mod.switch.NextMode()
+                time.sleep(1)
+                
+

BIN
wiring.png


BIN
wiring_sceem.png