- Caixa de música LEGO
- Caixa de música LEGO – o software
Tópicos:
- Pré-requisitos
- Preparação do cartão SD
- Configurações do sistema
- Script em python
- Automatismo
- Vários
Pré-requisitos
Convém ter um cartão SD com capacidade 4 GB ou superior, categoria 4 ou superior. O cartão pode ser micro- ou mini-SD desde que se disponha de um adaptador para o formato SD.
É também necessário um computador equipado para lidar com cartões SD ou então um adaptador SD USB.
Estas indicações são para um sistema Linux (mais concretamente Ubuntu 14.04). Não é difícil adaptar para um sistema Windows mas já há muito não uso nenhum.
Preparação do cartão SD
É necessário um sistema operativo para Raspberry Pi. Eu prefiro o Raspbian por ser baseado em Debian tal como o Ubuntu que venho utilizando há já alguns anos. A versão mais recente está sempre disponível na Raspberry Pi Foundation – o ficheiro .zip contém um ficheiro único, uma imagem de um cartão inteiro pronto a usar (na versão de Junho de 2014 a imagem tem 3.0 GB pelo que um cartão de 4 GB continua a ser suficiente).
O Ubuntu tem uma aplicação gráfica “Disks” (na linha de comando “gnome-disks”) que permite entre outras coisas escrever imagens. Seleccionamos o cartão SD (qualquer coisa como “4 GB Block Device | /dev/mmcblk0”) e depois “Restore disk image” escolhendo o ficheiro .img do Raspbian.
O cartão tem agora duas partições:
- BOOT
- 2.9 GB Volume
A primeira será usada como “/boot” e a segunda como “/” como é habitual ma maioria das instalações Linux. Não existe a habitual partição para swap porque [pelo menos no Raspbian] é utilizado um ficheiro dentro de “/”.
Antes de colocar o cartão no Raspberry é necessário alterar alguns ficheiros para ter um sistema funcional. Se montamos a segunda partição (“2.9 GB Volume”) como /X precisamos criar ou editar 2 ficheiros:
- /X/etc/hostname
- /etc/network/interfaces
sudo /X/etc/hostname
Este ficheiro deve conter uma única linha, com o nome pelo qual o sistema operativo vai responder:
caixademusica
sudo /X/etc/network/interfaces
Este ficheiro contém a configuração da rede Wi-Fi:
auto lo allow-hotplug wlan0 iface wlan0 inet dhcp wpa-ssid "RedeWiFi" wpa-psk "PasswordDaRedeWifi" iface default inet dhcp
Podemos mais tarde utilizar um endereço IP estático em vez de recorrer ao cliente DHCP (deve acelerar ligeiramente o arranque e utilizar ligeiramente menos RAM). Neste exemplo defini só uma rede Wi-Fi mas é possível definir várias, ver o meu artigo “Raspberry Pi – headless + wireless” (para mim é suficientemente uma única rede já que tenho um router 3G de bolso configurado de forma semelhante à rede de casa e assim quando levo um Raspberry Pi comigo para testes ou demonstrações uso sempre a mesma configuração).
O cartão já pode ser colocado no Raspberry Pi, podemos confirmar o endereço IP na página de configuração do router (se estivermos a usar DHCP) e aceder remotamente por SSH:
ssh pi@192.168.1.67
(“pi” é o utilizador pré-configurado no Raspbian – a password é “raspberry”, convém alterar mais tarde com o comando “passwd” – e 192.168.1.67 é o endereço que no router aparece atribuido ao host “caixademusica”).
Configurações do sistema
Tendo acesso remoto à Caixa de Música é necessário expandir o file system do cartão de modo a utilizar toda a capacidade deste (como referi, até Junho de 2014 a imagem ocupa apenas 3 GB pelo que num cartão de 4 GB fica 1 GB por alocar e que pode fazer falta)
sudo raspi-config
Escolher “Expand Filesystem” e no final se não for dada opção de reboot (não recordo) dar o comando
sudo reboot
No próximo login o cartão deverá ter cerca de 1.4 GB disponíveis:
df -h
Filesystem Size Used Avail Use% Mounted on
rootfs 3.6G 2.0G 1.4G 60% /
/dev/root 3.6G 2.0G 1.4G 60% /
devtmpfs 211M 0 211M 0% /dev
tmpfs 44M 232K 44M 1% /run
tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs 88M 0 88M 0% /run/shm
/dev/mmcblk0p1 56M 19M 38M 34% /boot
Já é bastante mas como não vou utilizar ambiente gráfico (desktop) posso libertar mais algum espaço (cerca de 1.2 GB mais) e reduzir o peso de futuros updates com os dois comandos:
sudo apt-get --purge remove cups.* xserver.* x11.* sudo apt-get autoremove
Vamos agora actualizar o Raspbian para a última versão de todos os pacotes instalados:
sudo apt-get update sudo apt-get dist-upgrade
E instalar as ferramentas necessárias:
sudo apt-get install htop mpg321 mp3gain
- htop não é necessário mas gosto de utilizá-lo em vez do top nativo.
- mpg321 é um player não-gráfico de ficheiros mp3 que vai servir para tocar a música que acompanha a «bailarina».
- mp3gain permite ajustar o ganho dos ficheiros mp3, muito útil quando estes parecem ouvir-se pior que a maioria dos restantes
sudo apt-get install python-pip python3-pip sudo pip install sh sudo pip3 install sh
- sh é uma library de python que permite invocar comandos da shell (do sistema operativo) e que vou usar no meu programa por isso preciso de instalar primeiro.
- pip é um gestor de libraries para python (instalo duas versões – para python v2 e python v3 – provavelmente bastará a última)
Script em pyhton
[por completar]
Automatismo
[por completar]
Vários
[por completar]