{"id":556,"date":"2021-02-07T09:31:18","date_gmt":"2021-02-07T08:31:18","guid":{"rendered":"http:\/\/blog.audiophonic.ch\/?p=556"},"modified":"2021-02-07T09:31:18","modified_gmt":"2021-02-07T08:31:18","slug":"phoniebox-das-bastelgeschenk-fur-kinder","status":"publish","type":"post","link":"https:\/\/blog.audiophonic.ch\/?p=556","title":{"rendered":"Phoniebox &#8211; das Bastelgeschenk f\u00fcr Kinder"},"content":{"rendered":"\n<p>Normalerweise kriegen Eltern von ihren Kindern was Gebasteltes als Geschenk. Manchmal freut man sich, manchmal fragt man sich, was man nun damit tun soll. Diesmal ist es jedoch anders: Die Eltern basteln was f\u00fcr die Kinder. Es sollte eine einfache Musikbox werden. F\u00fcr kleinere Kinder sollte es sein und einfach zu bedienen.<\/p>\n\n\n\n<p>Nach einiger Recherche ist meine Wahl auf den Raspberry Pi und der <a rel=\"noreferrer noopener\" href=\"https:\/\/github.com\/MiczFlor\/RPi-Jukebox-RFID\" target=\"_blank\">Phoniebox Software<\/a> als Grundarchitektur gefallen. Die Idee war, die Kiste mit WLAN auszur\u00fcsten und mit Spotify zu verbinden. Beides wird zum Gl\u00fcck schon von der Software unterst\u00fctzt. Mit verschiedenen RFID-Karten sollten dann unterschiedliche Playlisten angestossen werden k\u00f6nnen. Die Zeit war gekommen, ein paar Komponenten zu kaufen und einen Prototyp zu bauen. Ich war mir n\u00e4mlich nicht sicher, ob der Plan mit den Spotify-Playlisten funktionieren w\u00fcrde. Zudem habe ich mich gefragt, ob die Soundqualit\u00e4t ausreichend sein wird und ob die Startzeit des Raspberry Pis nicht allzu viel Zeit in Anspruch nehmen wird.<\/p>\n\n\n\n<!--more-->\n\n\n\n<p>Zuerst habe ich das neueste Raspian auf meinem Rasperry Pi 2 installiert, dann die folgenden Komponenten angeschlossen \/ installiert:<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Tp-Link TL-WN823N &#8211; der WLAN Adapter<\/h2>\n\n\n\n<p>Der Treiber dieses <a href=\"https:\/\/www.tp-link.com\/de\/home-networking\/adapter\/tl-wn823n\/\" target=\"_blank\" rel=\"noreferrer noopener\">USB WLAN Adapters<\/a> ist sehr einfach zu installieren:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: bash; title: ; notranslate\" title=\"\">\nsudo wget http:\/\/fars-robotics.net\/install-wifi -O \/usr\/bin\/install-wifi\nsudo chmod +x \/usr\/bin\/install-wifi\nsudo install-wifi\n<\/pre><\/div>\n\n\n<h2 class=\"wp-block-heading\">Phoniebox Software<\/h2>\n\n\n\n<p>Die Phoniebox Software l\u00e4sst sich am einfachsten mit dem <a rel=\"noreferrer noopener\" href=\"https:\/\/github.com\/MiczFlor\/RPi-Jukebox-RFID\/wiki\/INSTALL-stretch#one-line-install-command\" target=\"_blank\">&#171;one line install&#187;<\/a> &#8211; Kommando installieren. Die <a rel=\"noreferrer noopener\" href=\"http:\/\/phoniebox.de\/\" target=\"_blank\">Videos auf der Phoniebox-Website<\/a> helfen bei Unklarheiten weiter.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">RFID RC522 &#8211; der RFID Reader<\/h2>\n\n\n\n<p>Der RFID Reader von <a rel=\"noreferrer noopener\" href=\"https:\/\/joy-it.net\/de\/products\/SBC-RFID-RC522\" target=\"_blank\">Joy-It <\/a>sollte &#8211; anders als oft beschrieben &#8211; mit allen acht Pins mit dem Raspberry Pi verbunden werden (siehe <a rel=\"noreferrer noopener\" href=\"https:\/\/github.com\/MiczFlor\/RPi-Jukebox-RFID\/wiki\/Wiring_for_RC522_card_reader\" target=\"_blank\">Hilfeseite zum RFID Reader<\/a>). Danach einfach folgendes Script ausf\u00fchren:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: bash; title: ; notranslate\" title=\"\">\nsudo \/home\/pi\/RPi-Jukebox-RFID\/components\/rfid-reader\/RC522\/setup_rc522.sh\n<\/pre><\/div>\n\n\n<h2 class=\"wp-block-heading\">OnOff SHIM &#8211; der Stromw\u00e4chter<\/h2>\n\n\n\n<p>Da der Raspberry Pi keinen Aus-Knopf besitzt und somit immer Strom zieht, auch wenn er heruntergefahren ist, habe ich nach einer L\u00f6sung gesucht, um den Akku zu schonen. Dabei ist meine Wahl auf den <a rel=\"noreferrer noopener\" href=\"https:\/\/shop.pimoroni.com\/products\/onoff-shim\" target=\"_blank\">OnOff SHIM<\/a> gefallen. Dieser steckt man ganz einfach auf die Steckleiste vom Raspberry Pi und nutzt nun die darauf sitzende Micro-USB-Buchse, um den Rechner mit Strom zu versorgen. Auf dem OnOff SHIM hat es auch einen kleinen Taster, womit man nun den Rechner einschalten kann. Herunterfahren \u00fcber den gleichen Taster ist nur m\u00f6glich, wenn man auch die entsprechende \u00c4nderung im System vom Raspberry Pi vorgenommen hat. \u00dcbrigens l\u00e4sst sich statt des internen Tasters auch ein externer Taster anschliessen. Nach der Installation l\u00e4sst sich der Raspberry Pi mit einem l\u00e4ngeren Druck (ca. 3 Sekunden) auf den Taster herunterfahren.<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: bash; title: ; notranslate\" title=\"\">\ncurl https:\/\/get.pimoroni.com\/onoffshim | bash\n<\/pre><\/div>\n\n\n<p>Damit der Raspberry in jedem Fall runterf\u00e4hrt muss er nicht nur auf poweroff sondern auch auf halt h\u00f6ren. Damit muss die Datei in \/lib\/systemd\/system-shutdown\/gpio-shutoff entsprechend ge\u00e4ndert werden:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: bash; highlight: [25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40]; title: ; notranslate\" title=\"\">\n#!\/bin\/sh\n#\n# OnOff SHIM exposed by cyperghost for retropie.org.uk\n# This is mandatory for proper SHIM shutdown!\n    \npoweroff_pin=&quot;4&quot;    \nled_pin=&quot;17&quot;    \n    \nif &#x5B; &quot;$1&quot; = &quot;poweroff&quot; ]; then    \n\n    \/bin\/echo $led_pin &gt; \/sys\/class\/gpio\/export    \n    \/bin\/echo out &gt; \/sys\/class\/gpio\/gpio$led_pin\/direction    \n    \n        for iteration in 1 2 3; do    \n            \/bin\/echo 0 &gt; \/sys\/class\/gpio\/gpio$led_pin\/value    \n            \/bin\/sleep 0.2    \n            \/bin\/echo 1 &gt; \/sys\/class\/gpio\/gpio$led_pin\/value    \n            \/bin\/sleep 0.2    \n       done    \n    \n    \/bin\/echo $poweroff_pin &gt; \/sys\/class\/gpio\/export    \n    \/bin\/echo out &gt; \/sys\/class\/gpio\/gpio$poweroff_pin\/direction    \n    \/bin\/echo 0 &gt; \/sys\/class\/gpio\/gpio$poweroff_pin\/value\nfi\nif &#x5B; &quot;$1&quot; = &quot;halt&quot; ]; then    \n    \n    \/bin\/echo $led_pin &gt; \/sys\/class\/gpio\/export    \n    \/bin\/echo out &gt; \/sys\/class\/gpio\/gpio$led_pin\/direction    \n    \n        for iteration in 1 2 3; do    \n            \/bin\/echo 0 &gt; \/sys\/class\/gpio\/gpio$led_pin\/value    \n            \/bin\/sleep 0.2    \n            \/bin\/echo 1 &gt; \/sys\/class\/gpio\/gpio$led_pin\/value    \n            \/bin\/sleep 0.2    \n       done    \n    \n    \/bin\/echo $poweroff_pin &gt; \/sys\/class\/gpio\/export    \n    \/bin\/echo out &gt; \/sys\/class\/gpio\/gpio$poweroff_pin\/direction    \n    \/bin\/echo 0 &gt; \/sys\/class\/gpio\/gpio$poweroff_pin\/value\nfi\n<\/pre><\/div>\n\n\n<p>Damit die Phoniebox auch richtig runterf\u00e4hrt, habe ich <a href=\"https:\/\/forum-raspberrypi.de\/forum\/thread\/42364-phoniebox-on-off-shim\/?postID=372772#post372772\" target=\"_blank\" rel=\"noreferrer noopener\">diesen Rat<\/a> befolgt und folgendes Script installiert:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: python; title: ; notranslate\" title=\"\">\nimport RPi.GPIO as GPIO\nimport os\nimport time\nfrom subprocess import check_call\nGPIO.setmode(GPIO.BCM)\nGPIO.setwarnings(False)\nGPIO.setup(17, GPIO.IN)\ni = 0\nwhile i &lt; 3:\n  if GPIO.input(17) == GPIO.LOW:\n    i = i + 1\n  if GPIO.input(17) == GPIO.HIGH:\n    i = 0\n  time.sleep(1)\ncheck_call(&quot;\/home\/pi\/RPi-Jukebox-RFID\/scripts\/playout_controls.sh -c=shutdown&quot;, shell=True)\n<\/pre><\/div>\n\n\n<p>Das Script habe ich hier abgelegt: \/home\/pi\/onoffshim\/onoffshim.py und eine zugeh\u00f6rige Servicedatei unter \/etc\/systemd\/system\/onoffshim.service erstellt:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: bash; title: ; notranslate\" title=\"\">\n&#x5B;Unit]\nDescription=OnOffShim\nAfter=network.target iptables.service firewalld.service\n&#x5B;Service]\nType=simple\nRestart=always\nWorkingDirectory=\/home\/pi\/onoffshim\nExecStart=\/usr\/bin\/python \/home\/pi\/onoffshim\/onoffshim.py\nRestartSec=2\n&#x5B;Install]\nWantedBy=multi-user.target\n<\/pre><\/div>\n\n\n<p>Und mit folgendem Kommando den Service aktiviert:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: bash; title: ; notranslate\" title=\"\">\nsudo systemctl enable onoffshim.service\n<\/pre><\/div>\n\n\n<p>F\u00fcgt man folgende Zeile in die \/boot\/config.txt Datei, so kann man \u00fcber Pin 8 (GPIO 14) und Ground eine Status-LED anh\u00e4ngen (Widerstand nicht vergessen).<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: bash; title: ; notranslate\" title=\"\">\nenable_uart=1\n<\/pre><\/div>\n\n\n<h2 class=\"wp-block-heading\">Fazit<\/h2>\n\n\n\n<p>Nach diesem doch sehr zeitaufw\u00e4ndigen Aufbau war es m\u00f6glich, RFID Karten mit Spotify Playlisten zu verbinden und abzuspielen. Die Soundqualit\u00e4t (\u00fcber Kopfh\u00f6rer oder \u00fcber einen Killburn, der tempor\u00e4r daf\u00fcr hinhalten musste) war gar nicht so schlecht. Also gab ich mir selber gr\u00fcnes Licht f\u00fcr den weiteren Aufbau&#8230;<\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-resized is-style-default\"><a href=\"http:\/\/blog.audiophonic.ch\/wp-content\/uploads\/2021\/02\/PrototypeSetup_kl-1.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/blog.audiophonic.ch\/wp-content\/uploads\/2021\/02\/PrototypeSetup_kl-1.jpg\" alt=\"\" class=\"wp-image-598\" width=\"379\" height=\"380\"\/><\/a><\/figure>\n\n\n\n<p>Zum <a href=\"http:\/\/blog.audiophonic.ch\/?p=618\" data-type=\"post\" data-id=\"618\">n\u00e4chsten Phoniebox-Blog<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Normalerweise kriegen Eltern von ihren Kindern was Gebasteltes als Geschenk. Manchmal freut man sich, manchmal fragt man sich, was man nun damit tun soll. Diesmal ist es jedoch anders: Die Eltern basteln was f\u00fcr die Kinder. Es sollte eine einfache &hellip; <a href=\"https:\/\/blog.audiophonic.ch\/?p=556\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":3,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[2],"tags":[],"class_list":["post-556","post","type-post","status-publish","format-standard","hentry","category-technik"],"_links":{"self":[{"href":"https:\/\/blog.audiophonic.ch\/index.php?rest_route=\/wp\/v2\/posts\/556","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.audiophonic.ch\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.audiophonic.ch\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.audiophonic.ch\/index.php?rest_route=\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.audiophonic.ch\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=556"}],"version-history":[{"count":0,"href":"https:\/\/blog.audiophonic.ch\/index.php?rest_route=\/wp\/v2\/posts\/556\/revisions"}],"wp:attachment":[{"href":"https:\/\/blog.audiophonic.ch\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=556"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.audiophonic.ch\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=556"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.audiophonic.ch\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=556"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}