浏览代码

First commit

dag 5 年之前
父节点
当前提交
2f6453f896
共有 76 个文件被更改,包括 426 次插入0 次删除
  1. 61 0
      README.md
  2. 7 0
      mod/__init__.py
  3. 二进制
      mod/__pycache__/__init__.cpython-35.pyc
  4. 二进制
      mod/__pycache__/crazy.cpython-35.pyc
  5. 二进制
      mod/__pycache__/drums.cpython-35.pyc
  6. 二进制
      mod/__pycache__/gemuese.cpython-35.pyc
  7. 二进制
      mod/__pycache__/jokes.cpython-35.pyc
  8. 二进制
      mod/__pycache__/switch.cpython-35.pyc
  9. 84 0
      mod/crazy.py
  10. 二进制
      mod/crazy/apf_iphone.ogg
  11. 二进制
      mod/crazy/apf_schnip.ogg
  12. 二进制
      mod/crazy/apf_strom.ogg
  13. 二进制
      mod/crazy/kar_fett.ogg
  14. 二进制
      mod/crazy/kar_fleisch.ogg
  15. 二进制
      mod/crazy/kar_nakt.ogg
  16. 二进制
      mod/crazy/kar_ohja.ogg
  17. 二进制
      mod/crazy/ora_burp.ogg
  18. 二进制
      mod/crazy/ora_furz.ogg
  19. 二进制
      mod/crazy/ora_schuetteln.ogg
  20. 二进制
      mod/crazy/ora_special.ogg
  21. 二进制
      mod/crazy/pap_leiden.ogg
  22. 二进制
      mod/crazy/pap_messer.ogg
  23. 二进制
      mod/crazy/pap_sauber.ogg
  24. 二进制
      mod/crazy/tom_fleisch.ogg
  25. 二进制
      mod/crazy/tom_lachen.ogg
  26. 二进制
      mod/crazy/tom_rot.ogg
  27. 二进制
      mod/crazy/tom_zitronesein.ogg
  28. 二进制
      mod/crazy/zit_froh.ogg
  29. 二进制
      mod/crazy/zit_heiratebald.ogg
  30. 二进制
      mod/crazy/zit_ohneschale.ogg
  31. 二进制
      mod/crazy/zit_schmutzig.ogg
  32. 27 0
      mod/drums.py
  33. 二进制
      mod/drums/clap.ogg
  34. 二进制
      mod/drums/cymbal.ogg
  35. 二进制
      mod/drums/fx.ogg
  36. 二进制
      mod/drums/hat.ogg
  37. 二进制
      mod/drums/kick.ogg
  38. 二进制
      mod/drums/shaker.ogg
  39. 二进制
      mod/drums/snare.ogg
  40. 二进制
      mod/drums/tom.ogg
  41. 58 0
      mod/gemuese.py
  42. 104 0
      mod/jokes.py
  43. 二进制
      mod/jokes/apf_1arm.ogg
  44. 二进制
      mod/jokes/apf_apfel.ogg
  45. 二进制
      mod/jokes/apf_arzt.ogg
  46. 二进制
      mod/jokes/apf_frau_mann.ogg
  47. 二进制
      mod/jokes/apf_mathematiker.ogg
  48. 二进制
      mod/jokes/apf_wolke.ogg
  49. 二进制
      mod/jokes/kar_acht.ogg
  50. 二进制
      mod/jokes/kar_chuck.ogg
  51. 二进制
      mod/jokes/kar_comp.ogg
  52. 二进制
      mod/jokes/kar_kreis.ogg
  53. 二进制
      mod/jokes/kar_sebel.ogg
  54. 二进制
      mod/jokes/kar_weinen.ogg
  55. 二进制
      mod/jokes/ora_assi.ogg
  56. 二进制
      mod/jokes/ora_clown.ogg
  57. 二进制
      mod/jokes/ora_ikea.ogg
  58. 二进制
      mod/jokes/ora_sauna.ogg
  59. 二进制
      mod/jokes/pap_abschluss.ogg
  60. 二进制
      mod/jokes/pap_besoffen.ogg
  61. 二进制
      mod/jokes/pap_kino.ogg
  62. 二进制
      mod/jokes/pap_strom.ogg
  63. 二进制
      mod/jokes/pap_tom.ogg
  64. 二进制
      mod/jokes/tom_himbeer.ogg
  65. 二进制
      mod/jokes/tom_landkarte.ogg
  66. 二进制
      mod/jokes/tom_parkplaetzchen.ogg
  67. 二进制
      mod/jokes/tom_vampir.ogg
  68. 二进制
      mod/jokes/zit_bagger.ogg
  69. 二进制
      mod/jokes/zit_banane.ogg
  70. 二进制
      mod/jokes/zit_biene.ogg
  71. 二进制
      mod/jokes/zit_hose.ogg
  72. 二进制
      mod/jokes/zit_taube.ogg
  73. 52 0
      mod/switch.py
  74. 33 0
      vgem.py
  75. 二进制
      wiring.png
  76. 二进制
      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
+

二进制
mod/__pycache__/__init__.cpython-35.pyc


二进制
mod/__pycache__/crazy.cpython-35.pyc


二进制
mod/__pycache__/drums.cpython-35.pyc


二进制
mod/__pycache__/gemuese.cpython-35.pyc


二进制
mod/__pycache__/jokes.cpython-35.pyc


二进制
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])

二进制
mod/crazy/apf_iphone.ogg


二进制
mod/crazy/apf_schnip.ogg


二进制
mod/crazy/apf_strom.ogg


二进制
mod/crazy/kar_fett.ogg


二进制
mod/crazy/kar_fleisch.ogg


二进制
mod/crazy/kar_nakt.ogg


二进制
mod/crazy/kar_ohja.ogg


二进制
mod/crazy/ora_burp.ogg


二进制
mod/crazy/ora_furz.ogg


二进制
mod/crazy/ora_schuetteln.ogg


二进制
mod/crazy/ora_special.ogg


二进制
mod/crazy/pap_leiden.ogg


二进制
mod/crazy/pap_messer.ogg


二进制
mod/crazy/pap_sauber.ogg


二进制
mod/crazy/tom_fleisch.ogg


二进制
mod/crazy/tom_lachen.ogg


二进制
mod/crazy/tom_rot.ogg


二进制
mod/crazy/tom_zitronesein.ogg


二进制
mod/crazy/zit_froh.ogg


二进制
mod/crazy/zit_heiratebald.ogg


二进制
mod/crazy/zit_ohneschale.ogg


二进制
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")
+

二进制
mod/drums/clap.ogg


二进制
mod/drums/cymbal.ogg


二进制
mod/drums/fx.ogg


二进制
mod/drums/hat.ogg


二进制
mod/drums/kick.ogg


二进制
mod/drums/shaker.ogg


二进制
mod/drums/snare.ogg


二进制
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])

二进制
mod/jokes/apf_1arm.ogg


二进制
mod/jokes/apf_apfel.ogg


二进制
mod/jokes/apf_arzt.ogg


二进制
mod/jokes/apf_frau_mann.ogg


二进制
mod/jokes/apf_mathematiker.ogg


二进制
mod/jokes/apf_wolke.ogg


二进制
mod/jokes/kar_acht.ogg


二进制
mod/jokes/kar_chuck.ogg


二进制
mod/jokes/kar_comp.ogg


二进制
mod/jokes/kar_kreis.ogg


二进制
mod/jokes/kar_sebel.ogg


二进制
mod/jokes/kar_weinen.ogg


二进制
mod/jokes/ora_assi.ogg


二进制
mod/jokes/ora_clown.ogg


二进制
mod/jokes/ora_ikea.ogg


二进制
mod/jokes/ora_sauna.ogg


二进制
mod/jokes/pap_abschluss.ogg


二进制
mod/jokes/pap_besoffen.ogg


二进制
mod/jokes/pap_kino.ogg


二进制
mod/jokes/pap_strom.ogg


二进制
mod/jokes/pap_tom.ogg


二进制
mod/jokes/tom_himbeer.ogg


二进制
mod/jokes/tom_landkarte.ogg


二进制
mod/jokes/tom_parkplaetzchen.ogg


二进制
mod/jokes/tom_vampir.ogg


二进制
mod/jokes/zit_bagger.ogg


二进制
mod/jokes/zit_banane.ogg


二进制
mod/jokes/zit_biene.ogg


二进制
mod/jokes/zit_hose.ogg


二进制
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)
+                
+

二进制
wiring.png


二进制
wiring_sceem.png