{"id":473,"date":"2014-08-08T15:58:30","date_gmt":"2014-08-08T14:58:30","guid":{"rendered":"http:\/\/ofalcao.pt\/blog\/?p=473"},"modified":"2014-08-08T15:58:30","modified_gmt":"2014-08-08T14:58:30","slug":"ev3mp3-um-mp3-player-em-lego","status":"publish","type":"post","link":"https:\/\/ofalcao.pt\/blog\/2014\/ev3mp3-um-mp3-player-em-lego","title":{"rendered":"EV3MP3 &#8211; Um MP3 Player em LEGO"},"content":{"rendered":"<p>Encontrei quase por total acaso um projecto muito interessante: <a title=\"Debian on LEGO MINDSTORMS EV3!\" href=\"http:\/\/www.ev3dev.org\/\">ev3dev<\/a>.<\/p>\n<p>Trata-se de uma vers\u00e3o de Debian para o LEGO Mindstorms EV3. N\u00e3o h\u00e1 qualquer altera\u00e7\u00e3o ao firmware do EV3 &#8211; o bootloader do EV3 arranca a imagem do ev3dev instalada num cart\u00e3o micro-SD.<\/p>\n<p>Alguras horas depois de come\u00e7ar (a maior parte delas apenas a fazer actualiza\u00e7\u00f5es de sistema j\u00e1 que o EV3 \u00e9 cerca de 4x mais lento que um Raspberry Pi e como a vers\u00e3o do chipset USB \u00e9 apenas 1.1 por a liga\u00e7\u00e3o Wi-Fi nunca far\u00e1 mais que 11 mbps) descobri que o ev3dev se d\u00e1 muito bem com muito do hardware que utilizo com o Raspberry Pi, nomeadamente:<\/p>\n<ul>\n<li>Hub USB<\/li>\n<li>ThePiHut Wi-Fi USB card<\/li>\n<li>Audio USB card<\/li>\n<\/ul>\n<p>Com meia duzia de linhas temos um shell script que nos sa\u00fada num portugu\u00eas macarr\u00f3nico e toca uma m\u00fasica em formato MP3 ap\u00f3s ser premido um touch sensor:<\/p>\n<div class=\"jetpack-video-wrapper\"><iframe loading=\"lazy\" title=\"LEGO EV3MP3\" width=\"840\" height=\"473\" src=\"https:\/\/www.youtube.com\/embed\/irCvrDa3TE0?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe><\/div>\n<pre>#!\/bin\/bash\n\n# play deve usar USB sound card\nexport AUDIODEV=hw:1,0\n\n# saudar utilizador\n\ntput clear &gt; \/dev\/tty0\nfiglet -f small \"Carregue\" &gt; \/dev\/tty0\nfiglet -f small \"para\" &gt; \/dev\/tty0\nfiglet -f small \"ouvir\" &gt; \/dev\/tty0\nfiglet -f small \"musica\" &gt; \/dev\/tty0\n\nespeak -v pt-pt \"ol\u00e1\u00a0 queres ouvir uma m\u00fasica?\" --stdout | play -t wav -\n\nBOTAO=0\nwhile [ $BOTAO -ne \"1\" ]; do\n\u00a0 BOTAO=$(cat \/sys\/class\/msensor\/sensor0\/value0)\ndone\n\ntput clear &gt; \/dev\/tty0\nfiglet -f small \"No ar:\" &gt; \/dev\/tty0\nfiglet -f mini \"Highway To Hell\" &gt; \/dev\/tty0\nfiglet -f small \"(AC\/DC)\" &gt; \/dev\/tty0\n\nmpg321 -a hw:1,0 HighwayToHell.mp3 -g 20\n\ntput clear &gt; \/dev\/tty0<\/pre>\n<p>Para quem tmab\u00e9m possa estar interessado, ap\u00f3s os updates de sistema a vers\u00e3o do kernel \u00e9 a 3.14.7:<\/p>\n<pre>root@ev3dev:~# uname -a\nLinux ev3dev 3.14.7-2-ev3dev-pre1 #2 PREEMPT Tue Jul 15 22:29:55 CDT 2014 armv5tejl GNU\/Linux<\/pre>\n<p>e o htop diz que estou a usar 25 dos 57 MB de RAM dispon\u00edveis al\u00e9m de 7 dos 63 MB de swap.<\/p>\n<p>O processador \u00e9 reconhecido como um ARM926EJ-S rev 5 (v5l):<\/p>\n<pre>root@ev3dev:~# cat \/proc\/cpuinfo\nprocessor\u00a0\u00a0 \u00a0: 0\nmodel name\u00a0\u00a0 \u00a0: ARM926EJ-S rev 5 (v5l)\nFeatures\u00a0\u00a0 \u00a0: swp half thumb fastmult edsp java\nCPU implementer\u00a0\u00a0 \u00a0: 0x41\nCPU architecture: 5TEJ\nCPU variant\u00a0\u00a0 \u00a0: 0x0\nCPU part\u00a0\u00a0 \u00a0: 0x926\nCPU revision\u00a0\u00a0 \u00a0: 5\n\nHardware\u00a0\u00a0 \u00a0: LEGO MINDSTORMS EV3 Programmable Brick\nRevision\u00a0\u00a0 \u00a0: 0000\nSerial\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0: 0000000000000000<\/pre>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Encontrei quase por total acaso um projecto muito interessante: ev3dev. Trata-se de uma vers\u00e3o de Debian para o LEGO Mindstorms EV3. N\u00e3o h\u00e1 qualquer altera\u00e7\u00e3o ao firmware do EV3 &#8211; o bootloader do EV3 arranca a imagem do ev3dev instalada num cart\u00e3o micro-SD. Alguras horas depois de come\u00e7ar (a maior parte delas apenas a fazer &hellip; <a href=\"https:\/\/ofalcao.pt\/blog\/2014\/ev3mp3-um-mp3-player-em-lego\" class=\"more-link\">Continuar a ler<span class=\"screen-reader-text\"> &#8220;EV3MP3 &#8211; Um MP3 Player em LEGO&#8221;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","enabled":false},"version":2}},"categories":[16,18,20],"tags":[58,205,82],"series":[],"class_list":["post-473","post","type-post","status-publish","format-standard","hentry","category-geek","category-lego","category-linux","tag-ev3","tag-ev3dev","tag-mindstorms"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p2Mhyv-7D","_links":{"self":[{"href":"https:\/\/ofalcao.pt\/blog\/wp-json\/wp\/v2\/posts\/473","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ofalcao.pt\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/ofalcao.pt\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/ofalcao.pt\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/ofalcao.pt\/blog\/wp-json\/wp\/v2\/comments?post=473"}],"version-history":[{"count":0,"href":"https:\/\/ofalcao.pt\/blog\/wp-json\/wp\/v2\/posts\/473\/revisions"}],"wp:attachment":[{"href":"https:\/\/ofalcao.pt\/blog\/wp-json\/wp\/v2\/media?parent=473"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/ofalcao.pt\/blog\/wp-json\/wp\/v2\/categories?post=473"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/ofalcao.pt\/blog\/wp-json\/wp\/v2\/tags?post=473"},{"taxonomy":"series","embeddable":true,"href":"https:\/\/ofalcao.pt\/blog\/wp-json\/wp\/v2\/series?post=473"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}