Raspberry Pi / Linux Xubuntu 13.10 – Como instalar um script auto executável para falar ao ligar, reiniciar e desligar o sistema

Adicionar um script para ser ‘carregado’, ou melhor para ser executado na inicialização, pode ser um pouco complicado de fazer, uma vez que geralmente é necessário ficar digitando comandos no console.

Nota: Este processo foi testado em Raspbian wheezy (2014-01-07-wheezy-raspbian) em RPI mod B

E que tal um instalador de script que permita instalar ou desinstalar automaticamente?

Sim, isso é possível e de várias formas, e ainda mais graças a: um script!

Eu explico: o instalador que estou disponibilizando aqui (apenas para uso não comercial), nada mais é do que um script que é executado em linha de comando, no console. É para console porque se for gráfico não dá para rodar pelo ssh com o Putty.

O script está escrito de forma a instalar uma mensagem de inicialização e outra de encerramento do sistema ou quando for reiniciado.

Requisitos:

– ter instalado o espeak:

https://robsoneletronico.wordpress.com/2014/03/21/tts-texto-para-voz-em-linux-raspberry-pi-android-e-windows-em-portugues-br/

– estar com o audio funcionando, se não não dá para ouvir as mensagens. Para ajustar o volume em linha de comando pode rodar:

alsamixer

– para ativar o vnc automaticamente, precisa do tightvncserver instalado e configurado (só para definir senha)

https://robsoneletronico.wordpress.com/2014/03/25/raspberry-pi-vnc-server-com-tightvncserver/

Preparação:

Eu tentei colocar o código do script diretamente aqui, mas devido a problemas de codificação UTF-8, não deu certo na hora de copiar e colar no editor de texto, tentei criar o arquivo no Windows mas não rodou no RPI (Linux) apareceram erros de codificação.

Então segue em arquivo, remova a extensão .doc e deixe somente ‘install_auto_execute.zip’ para poder descompactar:

install_auto_execute.zip

Note que este script acima também poderá configurar uma secção de vnc automaticamente ao iniciar, assim caso queira é só descomentar os comandos, para facilitar a procura estão listados abaixo (para descomentar basta remover o símbolo: #):

# echo ‘ espeak -ven+$voice -s 180 -p 99 “Starting vnc at port 5 9 0 1 for user” >> /dev/null 2>&1’ >> RPI-auto-execute.sh
# echo ‘ vncserver :1 -geometry 1024×780 -depth 24’ >> RPI-auto-execute.sh
# echo ‘ espeak -ven+$voice -s 180 -p 99 “Starting vnc at port 5 9 0 5 for root” >> /dev/null 2>&1’ >> RPI-auto-execute.sh
# echo ‘ sudo vncserver :5 -geometry 1024×780 -depth 24’ >> RPI-auto-execute.sh
# echo ‘ espeak -ven+$voice -s 180 -p 99 “Use the Real VNC programm to connect” >> /dev/null 2>&1’ >> RPI-auto-execute.sh

Como pode observar acima, o vnc será configurado para a porta 5901 para usuário padrão (por exemplo usuário: ‘pi’) e para ter acesso ao sistema como root, o vnc é configurado na porta 5905, note que a diferença é o comando ‘sudo’.

Para alterar a resolução troque 1024×780 po outra, por exemplo 1280×720 (wide screen)

Para saber como instalar, configurar o vnc (servidor) acesse:

https://robsoneletronico.wordpress.com/2014/03/25/raspberry-pi-vnc-server-com-tightvncserver/

Para saber como usar o vnc (cliente) acesse:

https://robsoneletronico.wordpress.com/2014/03/21/raspberry-pi-vnc/

Depois de criar o arquivo ‘ install_auto_execute.sh’, tem que dar permissão de execução, em linha de comando: entre na pasta onde o arquivo está e execute o chmod:

 sudo chmod a+x install_auto_execute.sh

Para entrar nas pastas use o comando ‘cd’:

cd nome_da_pasta

cd /home

cd ..

Para listar o conteudo da pasta use ‘ls’ (LS em minúsculo):

ls

 

Instalação:

Depois de criar o arquivo e dar permissão de execução, pode executar ele diretamente na linha de comando, ou seja no console, basta adicionar o código ‘./’ antes do nome do arquivo, mas para funcionar tem que estar na pasta do arquivo.

./install_auto_execute.sh

As messagens serão exibidas na tela e serão faladas,

para instalar pressione a tecla ‘I’, para desinstalar pressione a tecla ‘U’ e pressione ‘Enter’, mas qualquer outra tecla cancelará a operação, ou somente a tecla ‘enter’.

 

Depois de instalar, observe a tela, e em caso de erro na instalação, deve aparecer mensagem:

[Fail]

Se isso acontecer é preciso verificar a versão do sistema do RPI, lembrando que foi testado na versão indicada no início deste post:

Raspbian wheezy (2014-01-07-wheezy-raspbian) em RPI mod B

Para resolver erros pode ser necessário adaptar o script.

 

O que o script faz:

– cria um arquivo chamado RPI-auto-execute.sh na pasta /etc/init.d

– define a permissão de execução do arquivo acima, se não for do tipo executável o sistema não consegue executar ele.

– atualiza as configurações, isso vai adicionar os links simbólicos nos níveis de execução.

– testa e informa se deu certo ou não.

Para saber em que nível será executado, veja as linhas:

echo ‘# Default-Start: 2 3 4 5’ >> RPI-auto-execute.sh
echo ‘# Default-Stop: 0 1 6’ >> RPI-auto-execute.sh

onde:

Default-Start: 2 3 4 5

define que será executado nos níveis 2, 3, 4, 5 como start, ou seja vai iniciar o script.

Já para encerrar, ou matar (kill):

Default-Stop: 0 1 6

de forma similar, define que será executado nos níveis 0, 1, 6 como stop, ou seja vai matar o script.

Os níveis de execução (run level) são descritos como segue:

0 Desliga o sistema.
1,s, single É utilizado para manutenção do sistema, é chamado de monousuário e somente o essencial é executado.
2 Modo multiusuário sem suporte de rede.
3 Nível de execução padrão, multiusuário com todos os serviços habilitados e login do sistema em modo texto.
4 Indefinido ou não utilizado.
5 Nível de execução padrão, multiusuário com todos os serviços habilitados e login do sistema em modo gráfico.
6 Executa o reboot do sistema.

Fonte: http://www.vivaolinux.com.br/artigo/Sistema-de-boot-niveis-de-execucao-e-shutdown?pagina=4

Para saber mais como isso funciona, acesse o site acima.

 

Resultado:

– Com o script instalado, ao iniciar o sistema (carregar o boot do RPI) uma fala avisa sobre a inicialização

– E ao desligar ou reiniciar o RPI, outra fala é pronunciada, mas não é a mesma da inicialização

 

Sobre a voz:

Se caso não queira que seja falado durante a instalação (sem voz a instalação fica super rápida) basta comentar a linha do comando de voz, são as linhas que tem o comando ‘espeak’, comente também as linhas com a instrução sleep (são para aguardar a fala terminar) para comentar adicione # e um espaço, por exemplo:

espeak -ven+$voice -s 180 -p 99 “Preparing for install” >> /dev/null 2>&1
sleep 1

vai ficar assim:

# espeak -ven+$voice -s 180 -p 99 “Preparing for install” >> /dev/null 2>&1
# sleep 1

As mensagens e a voz estão configuradas para o Ingles, veja um exemplo:

echo ‘The installer has been canceled!’
espeak -ven+$voice -s 180 -p 99 “The installer has been canceled!” >> /dev/null 2>&1

O código ‘echo’ significa que vai exibir na tela:

echo ‘The installer has been canceled!’

Para deixar em portugues, bastaria trocar a mensagem para:

echo ‘O instalador foi cancelado!’

E para a voz, o espeak tem suporte ao Portugues do Brasil, basta trocar o en para pt:

espeak -vpt+$voice -s 180 -p 99 “The installer has been canceled!” >> /dev/null 2>&1

os outros códigos são:

$voice = define o modelo de voz, predefinido logo no inicio, na linha:

voice=”f5″

 

-s 180 = velocidade da fala

 

-p 99 = velocidade do passo da fala (pitch)

 

>> = vai redirecionar o que seria mostrado na tela

 

 

/dev/null 2>&1 = vai descartar a mensagem, poderia ser direcionada para um arquivo de log.

 

Para deixar com voz masculina troque os parametros:

de f para m e o ‘pitch’ também faz muita diferença, por exemplo, digite isso no seu console:

espeak -vpt+m5 -s 180 -p 10 “Hello!”

e agora este:

espeak -vpt+m5 -s 180 -p 99 “Hello!”

Note ainda que tem um numero que acompanha a letra m, neste caso é o 5, mas pode estar entre 0 e 5

 

O arquivo gerado:

O script de instalação vai gerar um arquivo RPI-auto-execute.sh (executável) na pasta /etc/init.d:

#!/bin/bash
### BEGIN INIT INFO
# Provides: RPI-auto-execute
# Required-Start:
# Required-Stop:
# Should-Start:
# Should-Stop:
# X-Start-Before:
# X-Stop-After:
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# X-Interactive:
# Short-Description: single_line_description
# Description: multiline_description
# location: /etc/init.d/RPI-auto-execute.sh
### END INIT INFO

case “$1” in
start)
echo “Starting service…”
# redirect stdout and stderr to logfile
exec >>/var/log/init-RPI.log 2>&1

# print log
echo “$(date +%d/%b/%y %X) $(uname -n) $(basename $0): Initializing”

# Starting Raspberry Pi
# python /home/script/init-RPI
espeak -ven+$voice -s 180 -p 99 “Starting Raspberry Pi” >> /dev/null 2>&1
espeak -ven+$voice -s 180 -p 99 “Starting vnc at port 5 9 0 1 for user” >> /dev/null 2>&1
# vncserver :1 -geometry 1024×768 -depth 24
# espeak -ven+$voice -s 180 -p 99 “Starting vnc at port 5 9 0 5 for root” >> /dev/null 2>&1
# sudo vncserver :5 -geometry 1024×768 -depth 24
# espeak -ven+$voice -s 180 -p 99 “Use the Real VNC programm to connect” >> /dev/null 2>&1

exit 3
;;
stop)
echo “Stopping service…”
# redirect stdout and stderr to logfile
exec >>/var/log/halt-RPI.log 2>&1

echo “$(date +%d/%b/%y %X) $(uname -n) $(basename $0): Stopping”

# Shutdown Raspberry Pi
# python /home/script/halt-RPI
espeak -ven+$voice -s 180 -p 99 “Closing system” >> /dev/null 2>&1
;;

restart)
echo “Restarting service…”
# command to restart service
;;

*)
echo “Operation not supported”
;;
esac

:

Dicas:

Este script pode ser alterado para rodar qualquer outro aplicativo, ou fazer qualquer outra operação, para executar a operação ao iniciar o RPI, basta editar as linhas que estão a partir de:

echo ‘ start)’ >> RPI-auto-execute.sh

E para que seja executado ao encerrar o sistema, altere a partir da linha:

echo ‘ stop)’ >> RPI-auto-execute.sh

 

Outra dica é para facilitar a edição e controle de arquivos sem a necessidade de uso do vnc:

Para criar o arquivo de script no computador e enviar para o RPI, pode ser utilizado o SFTP, um protocolo de transferencia de arquivos, que já está configurado por padrão no RPI.

veja mais em:

https://robsoneletronico.wordpress.com/2014/03/25/raspberry-pi-windows-sftp-cliente-ssh-com-filezilla/

 

Para evitar problemas de codificação com UTF-8 / ISO-8859-1 evite editar os arquivos de Linux em computador com Windows ou utilize um editor adequado.

Atualizado em 14/04/2014: Converter Scripts editados no Windows para executar no Linux

Mais referencias:

Níveis de execução:

http://www.dicas-l.com.br/arquivo/niveis_de_execucao.php#.UzGuE6KAC00

Executando scripts na inicialização Raspberry Pi:

http://0jln.wordpress.com/2013/05/21/executando-scripts-na-inicializacao-raspberry-pi/

Atualizado em 14/04/2014: Caractere especial no código do Script do Python

Boa sorte!

 

 

 

 

Raspberry Pi / Windows – SFTP Cliente (ssh) com Filezilla

Com SFTP é possível ver pastas e arquivos, além das operações como enviar, receber, deletar renomear arquivos.

Como o RPI já é preconfigurado para uso do ssh, o SFTP cliente pode logar e rodar sem precisar de nenhuma alteração no RPI.

Para isso basta instalar o cliente de SFTP, como no caso o Filezilla, existem outros, mas acredito que este seja bem simples de operar. Também já testei o WinSCP, é um pouco mais complicado de logar, mas é similar.

O site do Filezilla:

https://filezilla-project.org/download.php?type=client

Depois de instalar, abra o Filezilla, digite o IP (192.168.1.100), usuário (pi) , senha (raspberry) e porta (22) do RPI,

Filezilla logado no RPI

Filezilla logado no RPI

 

Tem que colocar o IP que está configurado no RPI, para saber o número, pode usar o Putty, ou direto no console do RPI digitar:

ifconfig

IP RPI ifconfig

IP RPI ifconfig

O Filezilla funciona como um explorador de arquivos, suporta arrastar e soltar (testado no W7) e tudo mais.

Mas caso queira alterar alguma pasta ou arquivo e aparecer a mensagem (em vermelho):

Erro: … permission denied

é porque o usuário que está sendo usado (no caso ‘pi’) não tem permissão de escrita.

Para ter acesso completo, pode logar como um usuário de previlégios, como o root, mas tem que tomar cuidado para não alterar nada que não seja necessário, caso contrario o RPI pode até precisar ser reinstalado.

 

Erro: Usuário sem permissão

Erro: Usuário sem permissão

Para ver um vídeo sobre o instalação, e uso do Filezilla, copie o site abaixo e cole na barra de endereços do seu navegador, adicione antes o www:

youtube.com/watch?v=y9MZEovpSWA

 

Boa sorte!

 

Raspberry Pi – VNC server com tightvncserver

Para instalar o tightvncserver no RPI, basta dar o comando:

sudo apt-get install tightvncserver

Já para iniciar uma secção para logar como usuário comum:

vncserver :1 -geometry 1024×728 -depth 24

E para iniciar uma secção para logar como super usuário (root):

sudo vncserver :1 -geometry 1024×728 -depth 24

Note que na primeira vez que a secção for executada será solicitado para criar uma senha, que devá ser repitida novamente, para validar.

os parametros são:

:1 define a porta da secção para 1 a porta vai ser 5901, se colocar 5 vai ser a porta 5905 e assim por diante.

 

– geometry 1024×768 define a resolução da tela, pode ser outra por exemplo 1280×720 (wide screen)

 

-depth 24 é a definição de cor de 24 bits, para ficar mais rápido pode colocar 16, mas fica um pouco ruim para imagens.

Depois de instalar e configurar o vnc, basta estar com o RPI em rede com um computador e com um vnc cliente (Testado com o RealVNC) logar no endereço de IP seguido da porta, como exemplo:

192.168.1.100:5901

Será informado sobre a conexão e vai pedir a senha preconfigurada no RPI.

Para referencia acesse o site:

 

Boa sorte!

Raspberry Pi – Instalar navegador Firefox + Flash Player

Para instalar o Firefox, na realidade um navegador com o sistema do Firefox e o plugin do Flash Player:

(obs.: foi testado em março de 2014 e funcionou para o Youtube)

sudo apt-get install iceweasel browser-plugin-gnash

A fonte dessa informação está no vídeo:

youtube.com/watch?v=mR45h-FAHlU

Observação: para ver o vídeo copie o endereço acima, adicione o www mais o ponto (.) e cole na barra de endereço do seu navegador (a caixa na parte superior)  fiz isso porque o wordpress adiciona automaticamente o vídeo aqui no post e isso deixa o post mais lento de carregar, me desculpe.

 

Boa sorte!

 

Raspberry Pi – compartilhar arquivos com samba para linux (ou windows)

Infelizmente acredito que acabei pegando vírus no Raspberry Pi e como já tinha varias configurações resolvi salvar pelo menos alguns arquivos que eu criei e o cache de apt-get.

Só para constar, acredito que seja vírus porque o processador fica rodando no máximo, vejo isso no canto inferior direito e com o comando de console top, assim eu mato o processo com o comando kill + PID, em de pois de poucos instantes, ou executando um aplicativo aleatório um novo processo fica consumindo processamento denovo, mas sempre muda o nome e o PID.

Notas:

1- Pode usar um pendrive em vez de fazer o compartilhamento, assim a rede ficará mais segura.

2- Vou me referir ao (servidor) Raspberry Pi como RPI e ao Linux (cliente) como Xubuntu

3- Para colar (o control+v genérico) no console do Xubuntu o comando é ‘control+shift+v’

4- O scroll (rodinha) do mouse também funciona no console do Xubuntu

E para compartilhar os arquivos do RPI para o Xubuntu (porque meu Windows ainda não acessa rede, vírus, vou ter que formatar os dois!) eu pesquisei e tem vários meios de fazer compartilhamento, mas acabei encontrando um post que facilitou bem, vou descrever brevemente a dica diretamente aqui neste post, mas segue o post original:

http://www.seucurso.com.br/index.php?option=com_content&view=article&id=187:como-instalar-o-samba-no-raspberry-pi-raspbian&catid=914:raspberry-pi&Itemid=74

Segue 2 dicas, o console tem várias funções que facilitam:

1- digite dir ou ls para ver o conteúdo da pasta

2- inicie o nome da pasta ou arquivo e tecle TAB para preencher automaticamente, mas caso exista mais arquivos com parte do nome igual, tem que continuar a digitar manualmente.

Primeiro tem que logar com o usúario que possa executar o sudo.

Depois verifique a conexão com a internet, pelo console digite:

ping http://www.google.com

(Para parar o ping tecle ‘control+c’)

Se o resultado do ping aparecer ‘0% loss’ significa que a internet está funcionando normalmente.

Ative o super-usuário (evita ter que digitar a senha para cada comando de instalação):

sudo bash

(digite a senha se pedir)

Atualize a lista do apt-get:

apt-get update

Instale o samba:

apt-get install samba samba-common-bin

Crie uma pasta para compartilhar:

mkdir /home/share

Redefina a permissão (ficará insegura, mas como é só para backup, depois pode desativar a permissão)

chmod 777 /home/share

Faça backup do arquivo de configuração

cp /etc/samba/smb.conf /etc/samba/smb.conf.old

Edite o arquivo com nano:

nano /etc/samba/smb.conf

Adicione as configurações a seguir ao final do arquivo:

[share]

comment = Compartilhamento Geral

path = /home/share

create mask = 0777

directory mask = 0777

writable = true

security = share

browseable = true

public = yes

Para salvar tecle ‘control+o’ e para fechar tecle ‘control+x’

Reinicie o servidor:

service samba restart

Se não ocorrer nenhum erro, o servidor está rodando.

Agora para acessar o compartilhamento pelo Windows (dica não testada):

(Certifique de que a rede está funcionando)

Abra o Windows Explorer e na barra de endereços digite:

\\192.168.1.110\share

ou seja:

\\o endereço ip do raspberry pi\pasta compartilhada

– para testar a rede, pode digitar ifconfig no RPI e anotar o seu IP

– no Windows abra o console: procure por cmd.exe, já no console digite:

ping 192.168.1.100

Onde 192.168.1.100 é o IP do RPI

O ping funciona de forma similar ao Linux.

Obs.: O comando compatível com o ifconfig do Linux para Windows é o ipconfig

Agora para montar (acessar) o compartilhamento pelo Linux:

(dica de: http://www.vivaolinux.com.br/dica/Montar-compartilhamentos-via-Samba-%28antigo-smbmount%29)

Primeiro tem que criar uma pasta no Linux (no meu caso o Xubuntu) para montar o compartilhamento nela:

sudo mkdir /mnt/RPI-share

Instale o cifs:

sudo apt-get install cifs-utils

Comando de montagem:

descrição:

sudo mount -t cifs -o username=nome_usuário,password=senha //ip_da_maquina/nome_compartilhamento /ponto_de_montagem

exemplo:

sudo mount -t cifs -o username=pi,password=senha //192.168.1.100/share /mnt/RPI-share

Onde 192.168.1.100 é o IP do RPI

Agora abra o seu gerenciador de arquivos (Linux Xubuntu)

e procure pela pasta em /mnt/RPI-share

Pronto, é isso.

Boa sorte!

Raspberry Pi – full diagram (completo) GPIO info USB

Está procurando informação mais detalhada sobre o Raspberry Pi?

Que tal o esquema elétrico do Modelo B? (Modelo A tem algumas diferenças)

Clique para acessar o Raspberry-Pi-R2.0-Schematics-Issue2.2_027.pdf

Clique para acessar o Raspberry-Pi-R2.0-Schematics-Issue2.2-027.pdf

Alimentação?

E para saber exatamente qual é a tensão de trabalho do Raspberry Pi?

Tenha em mente que os C.I.s principais estão sendo alimentados por reguladores de tensão, isso garante a estabilidade, por outro lado a entrada de alimentação esperada deve ser pela porta USB de um computador ou uma fonte compatível, é aí que deve-se prestar atenção.

Já li em alguns sites e até em arquivos de documentos de pessoas que talvez não entendam muito de eletronica, que pode até conectar diretamente pilhas na entrada de alimentação, mas isso está errado! Pode ocasionar desde mau funcionamento até danos nos dispositivos ligados no circuito de 5V.

A porta USB tem uma especificação padronizada e estas características devem ser herdadas pelos dispositivos que se aproveitam ou dependem deste tipo de porta.

Para maior fidelidade nas informações, obtenha as especificações diretamente do site usb.org, depois de baixar, descompacte o arquivo zip e abra o documento usb_20.pdf (Revision 2.0 April 27, 2000) na página 175 em “7.2.2 Voltage Drop Budget” tem orientações sobre uma série de parametros de tensão, observe essa e outras características nos documentos:

http://www.usb.org/developers/docs/usb20_docs/usb_20_031114.zip

No site do fabricante do Raspberry Pi, tem uma recomendação muito interessante e para maior segurança é bom seguir:

“USB Output Power

The resetable fuses protecting the USB outputs have been removed. This feature was implemented on some later revision 1.0 PCBs by replacing the fuses with links; revision 2.0 permanently implements this modification. It is now possible to reliably power the RPI from a USB hub that back feeds power, but it is important that the chosen hub cannot supply more than 2.5A under fault conditions.”

http://www.raspberrypi.org/archives/1929

Em outras palavras, a versão B está sem fusíveis rearmaveis de proteção, e o Raspberry Pi pode ser alimentado pelo HUB (que tenha fonte externa) mas este não deve fornecer mais de 2.5A em caso de problemas como curtocircuito.

Neste mesmo artigo, do link citado acima, tem outras informações como explicação da expectativa de uso do conector P5 e mais uma outra informação importante:

“Warning: If used to permanently mount the PCB – do not over tighten screws or drill out to fit larger screws, as this will lead to damage to the PCB.”

Ou seja: Não aumente o diametro do furo de fixação, porque isso poderá danificar alguma trilha da placa e vai ocasionar danos ao circuito! Embora seja um pequeno furo, procure obter parafusos compatíveis que garantam a fixação e integridade da placa.

Quanto aos pinos de GPIO:

No link logo abaixo da imagem, tem as especificações das entradas e saídas da GPIO, uma informação interessante é que o chip Broadcom BCM2835 incorpora um núcleo do processador ARM1176, e diversos outros módulos.

Saída?

Uma característica importante deve ser atentamente observada: A somatoria dos pinos da GPIO (de qualquer conector P1, P5 ou outro) em estado ativo, ou seja que estejam configurados como saída e fornecendo corrente, não devem consumir mais do que os 50 mA informados e não deve passar de 16 mA por pino.

Para evitar problemas como sobreaquecimento ou sobrecarga do regulador, das trilhas (que são finíssimas)  ou até do chip de GPIO e com isso causar danos ao circuito, recomenda-se utilizar buffer ou driver de saída.

Diversos são os meios de fazer um buffer ou driver de saída, como por exemplo:

– com transistores de uso geral como os de 100mA BC548 (NPN) e BC558 (PNP), também tem os de mais de 500mA BC337 (NPN) e BC327 (PNP);

– com C.I. dedicado como o ULN2803 (que internamente é composto de transistores, veja o circuito equivalente no seu datasheet). Também pode ser empregado C.I. de famílias de portas lógicas como o 74LS373 ou seu similar melhorado o 74LS573.

Para reduzir ainda mais o consumo nos pinos GPIO, poderia ser utilizado C.I.s serial/paralelo, como por exemplo o 74LS595 ou o 74Ls164, destes dois exemplos o primeiro é mais completo.

E não se esqueça de que a tensão e trabalho é de 3V3, e não são tolerantes a 5V. Para usar a GPIO como entrada e conectar um sinal de valor de tensão diferente, faça a adaptação de patamar de tensão corretamente com C.I.s dedicados ou com resistores em configuração de divisor de tensão. Note que o pino de GPIO é ‘protegido’ com diodos reversamente polarizados e conectados ao pino de 3V3 e GND, mas isso acarreta ainda mais problemas, em vez de danificar o pino, vai danificar todo modulo da GPIO, por isso não passe do limite, se não vai queimar.

Entrada?

Uma outra dica, que talvez tenha passado despercebida pela maioria das pessoas que postam suas utilidades com o Raspberry Pi:

É possível ativar ‘Pull Up’ e ‘Pull Down’ para os pinos configurados como entrada! Observe a imagem mais acima do circuito equivamente da GPIO, está lá o resistor no ‘meio’.

Traduzindo, o resistor que ‘puxa’ para o 5V ou para o GND já ‘existe’ internamente na GPIO, basta dar a instrução em linha de código na programação, e assim não é necessário um fio extra e um resistor externo. procure melhor a instrução para seu código, pois existem diversas linguagens de programação, mas cada uma com sua sintaxe.

S.O.?

Quanto ao sistema operacional, lembre-se de que assim como acontece de um arquivo corromper-se e o computador não ligar mais (não dar boot) pode acontecer isso também com o Raspberry PI, ele é um tipo de computador e deve ser desligado corretamente, a instrução de desligamento encerra diversos aplicativos e desmonta partições do cartão SD, ou outro dispositivo de armazenamento.

Portanto se sua aplicação fica ligada diretamente na rede elétrica, sugiro que providencie um sistema de nobreak ou uma pequena bateria (recarregável) que garanta a alimentação para o tempo de desligamento enquanto um comando (entrada na GPIO) de falta de energia pede para desligar o S.O. seguramente.

Temperatura?

Quanto ao aquecimento dos componentes, observe a imagem acima, para evitar que os componentes sofram com o excesso de calor, recomenda-se que seja adicionado um dissipador de calor ‘heat sink’ nos principais C.I.s acesse o link (incorporado a figura) para maiores detalhes.

Terminando, em sites pela internet já existem diversas pessoas pedindo ajuda para resolver danos no Raspberry Pi, e para não tornar-se mais um na estatística é melhor estar bem informado e não ‘fingir’ que o circuito eletronico vai ‘aguentar’, porque informática e eletronica ‘andam de mãos dadas’ e para esta ultima que é também uma ciencia exata, tem apenas dois estados possíveis: funcionar ou não funcionar (só espera-se que tudo não vire uma fumaça!).

Bom é isso, espero que estas linhas ajudem alguém a manter seu Raspberry Pi funcionando por mais tempo, e que cada vez mais as informações estejam disponíveis, compartilhe!

Boa sorte!!!

Raspberry Pi – VNC – Cliente Windows (Wine)

Para quem está começando a desvendar essa pequena placa, mas não tem um monitor ou tv extra para ver a tela do Raspberry Pi, ou quer apenas continuar a usar seu computador de uso cotidiano para controlar e programar via vnc, segue uma dica, que acabei experimentando e deu certo.

Como a maioria dos programadores podem dizer, fazer uso do root é uma questão de segurança, mas acabei fazendo uso para permitir uma seção do vnc com privilégios de super usuário.

Depois de instalar o vnc server no RPI (de agora em diante vou chamar assim o Raspberry Pi) e iniciar uma seção manualmente via console, eu iniciei uma secção com o RealVNC no Windows, tudo funcionou corretamente, com uma pequena mas implicante problemática, não estava em busca de uso do RPI, mas programar, criar pastas e arquivos com scripts e executáveis, o problema é que não poderia fazer nenhuma alteração em arquivos protegidos.

Nem mesmo com ‘sudo’, não, não funcionava mesmo! Sempre informava que não tinha privilégios.

Assim, procurando muito na internet, não encontrei como liberar de outra forma todos os aplicativos e pastas como se eu estivesse com o teclado e mouse direto no RPI.

Minha alternativa foi realmente de usar o root para iniciar uma secção de vnc.

Com o ‘putty’ loga-se como root, e digita por exemplo (note que o símbolo # é porque está logado como root):

#vncserver :1 -geometry 1280×720 -depth 24

A resolução de 1280×720 é para ficar mais comoda na minha tela que é de apenas 10″, mas o RPI suporta bem mais altas resoluções.

Assim tenho acesso total aos programas e pastas, com o vnc cliente.

Lembrando que não precisa digitar sudo para comandos de console, e que os arquivos criados e editados passam a ser de propriedade do root, assim, esta seção só é recomendada em ultimo caso, onde o vnc bloqueia a operação. Ou então será necessário redefinir as permissões dos arquivos e pastas para que o usuário comum possa operar.

Também realizei outro experimento, ainda que desnecessário, mas eu rodei o RealVNC para Windows 32bits com o Wine instalado no Xubuntu, já tinha instalado o Wine para rodar um simulador de circuitos eletronicos e funcionou perfeitamente.

Para quem estava apenas em busca de instalar o vnc no RPI:

Raspberry Pi – VNC server com tightvncserver

Este outro é a fonte, segue o tutorial bem explicado:

Para instalar o Wine e rodar aplicativos do Windows:

http://www.linux.org/threads/installing-and-configuring-windows-emulator-wine.4368/

Nota no artigo sobre o Wine, tem um comando de instalação assim:

‘sudo add-apt-repository ppa:ubuntu-wine/ppa; sudo apt-get install wine’

notei que o comando ‘add-apt-repository’ esta com a ordem trocada, deve ser ‘apt-add-repository’

desta forma o repositório pode ser adicionado, caso contrário vai ocorrer erro.

Para executar um aplicativo exe, eu cliquei com o direito e pedi para abrir com o Wine,

isso na primeira vez, depois ao clicar no aplocativo já abre como se fosse nativo no Linux.

Boa sorte com seu RPI!

Raspberry Pi / Linux / Windows / Android – TTS (texto para voz) – Em Portugues Br e com acento

Se você estava procurando um TTS para seu Android, Linux ou Windows que fale em Português Br, seu problema pode estar prestes a se resolver!

Adicionado em 12/09/2015: Está disponível o conversor (tts) da Google para Android, chega de ter que pagar por algo decente!

Existe o eSpeak um software TTS que tem suporte a diversas línguas, incluindo Português Br.

Eu instalei em Linux (Xubuntu 13.10) e em Andriod (2.3.6), ambos funcionaram perfeitamente.

Também tive a oportunidade de testar esse TTS na placa Raspberry Pi com S.O. Raspbian (2014-01-07-wheezy-raspbian) e me pareceu que a voz ficou ainda melhor do que no computador ou celular, incrível!

Infelizmente não consegui ainda testar em Windows, porque acabei pegando vírus que não me deixa conectar a nenhuma rede. Por sorte já tinha instalado o Xubuntu, aproveito para comentar que ele é muito leve e estável, além poder funcionar sem instalar, a versão Live roda direto do DVD, e depois de instalado permite atualização automática de novidades e melhorias dos programas em uso, muito legal mesmo!!!

Obs.: verifique a licença de uso do espeak para seu sistema, caso sua aplicação seja para uso especial. Me parece que a versão para Android não é do mesmo desenvolvedor que para Linux e Windows.

Mas fica a dica para quem está a procura de TTS, procure por ‘espeak’, abaixo os endereços:

Android:
https://play.google.com/store/apps/details?id=com.googlecode.eyesfree.espeak
https://code.google.com/p/eyes-free/downloads/list

Nota: tem que definir o espeak como TTS padrão e escolher a Língua, lá no menu configurações.

Obs.: eu já instalei uma ROM que não tinha opção de configuração de TTS, e neste caso acabei optando por outra ROM.

Linux/Windows (GPL3):
http://espeak.sourceforge.net/
http://espeak.sourceforge.net/download.html

Nota: testei em linha de comando (linux), a escolha do idioma português br é feita com o parâmetro: -vpt

-v é o parâmetro de escolha de idioma e pt é a referencia para o idioma br.

Acentuação (editado):

A acentuação em linha de comando do linux não poderá ser pronunciada se o caractere não puder ser digitado.

Se o seu console exibir uma interrogação (?) ao tentar digitar o caractere com acento, então tem que configurar o sistema para aceitar a acentuação, somente depois de o sistema estar devidamente configurado o espeak poderá funcionar corretamente com letras acentuadas, uma outra possibilidade de funcionamento do espeak seria de pronunciar diretamente o fonema.

Veja neste blog como foi instalado e espeak em linux:
http://smtlinux.blogspot.com.br/2013/08/linux-falando-sintetizador-espeak.html

Atualizado em 14/04/2014: Alternativa de TTS em portugues

Atualizado em 14/04/2014: Caractere especial no código do Script do Python

Adicionado em 12/09/2015: Está disponível o conversor (tts) da Google para Android, chega de ter que pagar por algo decente!

Boa sorte!

Raspberry Pi – Primeiro Projeto com esta placa – Automação – Timer – Player de Música – Motor de passo – Sinalizador – Acesso Remoto

Como adicionar funcionalidades de rede segura e um sistema microcontrolado sem aumentar muito o consumo de energia?

O projeto existente:
– controle de motor de passo (24VDC)
– controle de sinalizadores (220VAC)
– controle de execução de musica (via arquivo em cartão SD)
– ajuste de parametros apenas local via painel com display LCD
– saída analógica de áudio

Atualização:
– ajuste de parametros remotamente via computador
– enviar arquivos pelo computador remoto para o cartão SD

“O grande desafio de um projetista é atender a necessidade sem disperdícios”, já li isso em algum lugar!

Com isso quero dizer que os microcontroladores empregados para as tarefas do projeto existente são realmente dedicados e escolhidos para atender a necessidade que foi imposta.

Mas como adicionar um sistema de rede, se os microcontroladores já estão com sua capacidade sendo bem utilizada?

A resposta possivelmente seria a de trocar de microcontrolador, escolher um com capacidade extra, para uma possível futura expansão, além da que já estará sendo realizada.

O projeto existente é robusto e foi projetado para executar operações de controle com base em datas e horarios, como um timer. Utiliza RTC, cartão SD, comunicação em RS485, display LCD 16×2 e sensor de temperatura interno (LM35).

Mas ao pesquisar as disponibilidades do mercado atual, encontrei facilmente ‘shields’ para Arduino, uma delas foi testada.

No teste, foi criado um servidor web! Sim com um servidor web é possível fazer o controle de sistemas microcontrolados como Arduino.

O grande problema é a transferencia de arquivos, embora já exista quem tenha feito tal façanha, ainda é uma tarefa que exige uma boa capacidade de um microcontrolador, e este precisa ser de altos MIPs para que a operação seja feita em tempo satisfatório.

Uma alternativa seria o uso de um um celular, ou ainda de um Mini Pc, talvez com Android, já tive a oprtunidade de testar um servidor de SFTP com Android e realmente é rápido e facil de instalar, sem contar a configuração, alguns clicks apenas!

Novamente um problema surge, a maioria destes Mini Pc não tem saída analógica de áudio, necessitando de um conversor de HDMI para analógico RCA, um custo de aproximadamente 100 Reais.

E no caso de celular não tem portas I/O, sendo necessário a utilização de adaptadores como por exemplo Bluetooth, ou ainda para celular com USB Host, pode ser utilizado um adaptador USB para serial, do tipo que se utiliza em computador.

Tem também um ‘shield’ de USB host, que permite a conexão de um dispositivo USB device como um celular, ou um pendrive e a comunicação com microcontrolador ocorre via serial.

Já a placa Raspberry Pi modelo B é uma alternativa interessante (ao preço anunciado no site no fabricante de 25 Dólares, claro que o consumidor final deve pagar mais para ter em mãos, pelo menos aqui, o custo é cerca de 200 Reais!), mas que pode perfeitamente atender a necessidade atual e futura, pois já possui:

– 1 saída analógica de áudio (conector P2, tipo fone de ouvido),
– 1 sáida de vídeo composto RCA compatível com TV analógica,
– 1 saída de áudio e vídeo HDMI para as novas TVs e monitores.
– 1 porta serial
– 1 porta SPI
– 1 porta i2c
– 1 porta de rede Ethernet
– 1 porta GPIO
– 1 porta para camera CSI
– 1 porta para display DSI
– suporta cartão SD de até 32GB

Porta GPIO em detalhes, note ainda que alguns pinos possuem diversas funções assim como em microcontroladores, mas ao primeiro contato (via programação em Python) não oferece maiores dificuldades como ocorre nos uC.

Resumindo é um Mini Pc, com Sistema Operacional Linux, ou seja, programe seu script e seja feliz!

A grande justificativa para o uso desta pequena grande Raspberry Pi neste projeto fica por conta da placa Ethernet juntamente com o sistema Linux, isso realmente faz com que o processador de apenas 700MHz e seus 512MB de memória RAM sejam a mais viável alternativa de implementação de:

– servidor SFTP,
– tocador de música,
– temporizador e
– controlador.

Tudo isso são operações basicas de um computador que sempre está disponível ao usuário de redes sociais, mas ao preço e tamanho de um celular, e ainda é bem provável que o consumo seja ainda menor.

Nota: Para a operação da placa Raspberry Pi modelo A é recomendada uma fonte de 5V x 0,7A, e para o modelo B é recomendada uma fonte de 5V x 1.2A.

Atente também para as características eletricas da GPIO, porta de comunicação e uso geral, sua especificação sugere a necessidade de drivers de potencia, como por exemplo o C.I. ULN2803 ou talvez o C.I. L293.

Com a placa Raspberry Pi já em mãos, iniciou-se com apoio de um amigo a atualização do projeto, que conta com uma interface executável (Windows) em computador remoto e script em linguagem Python (Raspbian) para o controlador com o Raspberry Pi, Python é nativo para a maioria dos sistemas Linux, além de possuir bibliteca oficial para as funcionalizades da placa Raspberry Pi, incluindo a adaptação de RTC.

Este RTC acho que deveria ser nativa na placa, pois os celulares tem uma pequena bateria que mantém o relógio em funcionamento. Quem sabe para uma versão ‘C’ seja adicionado o RTC, assim torna-se de fato um Nano Computador completo, aja visto que os sites atuais baseiam a segurança dos certificados na data atualizada.

Para evitar que o post tenha um tamanho maior e massante, ‘utilizar-se-á’ de outros posts com a continuação.

Nota: para uso contínuo com alto processamento, recomenda-se utilizar dissipador de calor (heat sink) para os chips do Raspberry Pi, desta forma a placa poderá durar muito mais tempo.

Ps.: Em outro post algumas dicas de funcionamento para ajudar a manter seu Raspberry Pi sempre ‘contente’:

Raspberry Pi – full diagram (completo) GPIO info USB