Postagens

Mostrando postagens de maio, 2014

Consertando o slot de cartão SD do Raspberry Pi

Imagem
Estava trabalhando com o RPi e após uma travada ele não reiniciou mais, ficando sempre com o LED vermelho power aceso direto, sem nenhuma outra atividade. Somente após retira-lo do case percebi que o slot do cartão SD estava quebrado, como não tinha outro de imediato, o jeito foi improvisar.

Gravando um live CD Linux no pendrive sem o drive físico de CD/DVD ROM

Imagem
A maioria das distribuições Linux existentes hoje, como Ubuntu, Arch Linux, Puppy Linux, etc... possuem a opção de Live CD, mas e se você tiver um PC sem o drive de CD? Muito comum hoje nos Ultrabooks. Você pode fazer um live USB stick, que é o pendrive rodando a imagem live. Mas mesmo assim, pelos meios comuns, você vai precisar rodar o live CD em alguma maquina para gravar no pendrive. Existe um programa que resolve este problema, o UNetbootin , com ele você consegue de forma fácil fazer seu pendrive live sem a necessidade de um drive de CD/DVD físico. Primeiro baixe o UNetbotin de acordo com o seu OS. Você pode baixar a imagem Linux desejada, espetar o pendrive, rodar o programa, escolher a opção "Imagem de disco", buscar sua imagem, selecionar o tipo/unidade e no ok mandar gravar. Ou selecionar "Distribuição", escolher a distribuição desejada e ele irá baixar e gravar. Após a finalização seu pendrive já estará pronto para o uso. Para quem deseja gravar

Lendo valores analógicos na GPIO do Raspberry Pi

Imagem
O RPi não possui entradas analógicas, não sendo possível ler diretamente valores analógicos. Uma forma de fazer leituras analógicas é usar um ADC como o MCP3008 mostrado aqui . Outra forma nem tanto precisa, porém mais simples e barata, é usar um capacitor em conjunto com o circuito. O funcionamento consiste em um contador definido pela carga do capacitor até ele chegar à tensão de 1,4V. Porque a partir de 1,4V o RPi considera nível alto na entrada. Com isto temos um parâmetro para trabalhar, que vai de 0 a X, onde o valor de X dependerá do circuito montado. Aumentando o valor do capacitor teremos um tempo de resposta menor, porem uma resolução maior e com um de menor valor temos um tempo de resposta rápido, mas com a resolução menor. No exemplo foi usado um capacitor de 1uF e um potenciômetro de 50k ohms onde o valor lido foi de 0 a 2700 aproximadamente. No exemplo abaixo, o loop (while True:) roda a função RCtime, onde inicialmente o pino 24 estará como uma saída em nível baixo fecha

Trabalhando com PWM na interface GPIO do Raspberry Pi

Imagem
Nas postagens anteriores, mostrei como trabalhar com entradas e saídas na GPIO do RPi através do modulo GPIO.RPi e Python. Nas saídas podemos também trabalhar com PWM . No RPi se compararmos com o Arduino, temos um controle melhor, já que podemos alterar afreqüência também. Para começar, primeiro precisamos criar a instancia PWM com: p = GPIO.PWM (channel, frequency) Onde channel será o pino usado e frequency a freqüência PWM em HZ. Para iniciar o PWM usamos: p.start(dc) Onde dc é o duty cycle (ciclo de trabalho) que varia de 0 a 100. Para parar o PWM usamos: p.stop() Para alterar a freqüência usamos: p.ChangeFrequency(freq) Onde freq é a freqüência usada. Para alterar o ciclo de trabalho usamos: p.ChangeDutyCycle(dc) Onde novamente dc é o ciclo de trabalho de 0 a 100.

Ligando e desligando o Raspberry Pi com um botão pela GPIO

Imagem
Comentei aqui que é possível ligar o RPi fechando temporariamente o pino 5 (GPIO3) para o terra. Com um simples programa em Python e o modulo RPi.GPIO instalado, podemos desligá-lo também da mesma forma. Vimos aqui , aqui e aqui como trabalhar com a interface GPIO. Utilizando o modulo subprocess.call em conjunto com as instruções de porta de entrada da GPIO, podemos fazer um programa como o abaixo. Onde através do modulo subprocess.call podemos rodar um comando bash pelo Python. Neste caso chamaremos o comando halt que desliga o RPi.

Utilizando a Interface GPIO do Raspberry Pi – Parte 3

Imagem
No post anterior vimos como trabalhar com entradas da GPIO em polling. Aqui veremos como fazer o mesmo porém com interrupções, o que não ocupa muito recurso do processador. Não esquecer que as entradas trabalham apenas com 3,3v, portando não confundam em ligar nas entradas 5V, que também estão disponíveis na GPIO. Para o RPi temos interrupções por detecção de borda (subida, descida e mudança). Em um primeiro exemplo usaremos um try/except, onde o programa fica em espera por alguma ação. A ação no caso será a wait_for_edge ou aguardando pela borda, neste exemplo ele fica esperando uma borda de subida (GPIO.EDGE) Apertando o botão ele mostra na tela "Entrada em nível alto" e sai. Ou pressionando CRTL+C sai do programa direto. O circuito usado é o abaixo: Aqui o programa:  

Utilizando a Interface GPIO do Raspberry Pi – Parte 2

Imagem
Depois dos testes com saídas , iniciei os testes com as entradas. Para quem chegou direto aqui, recomendo antes ler os testes com saídas . Uma informação importante é que as entradas trabalham apenas com 3,3v, portando não confundam em ligar nas entradas 5V, que também estão disponíveis na GPIO. Irei dividir o assunto de entradas em mais de uma parte para o texto não ficar muito extenso. Primeiro precisamos saber que caso algum pino seja designado como entrada ele precisa ter algo conectado, caso contrario a entrada irá “flutuar”, reportando erros de leitura. Uma forma de não deixar a entrada flutuando é usar um resistor de pull-up ou pull-down. No RPi isto pode ser feito via hardware ou software. Via hardware basta ligar um resistor de 10k ohms do pino desejado para o 3,3V (pull-up) ou para o terra (pull-down). Via software basta na hora de definir as entradas colocar pull_up_down=GPIO.PUD_UP ou pull_up_down=GPIO.PUD_DOWN. Para definir as entradas é usada a mesma função que definimos

Retropie - instalando uma grande variedade de emuladores no Raspberry Pi

Imagem
Em busca de como instalar um emulador de SNES no Raspberry Pi, encontrei este projeto muito bacana. De forma a facilitar a vida de quem deseja rodar emuladores no RPi, este projeto com poucos comandos, deixa tudo pronto para rodar a lista de emuladores abaixo:

Instalando um emulador de GBA no iOS sem jailbreak

Imagem
Tem um projeto muito interessante que permite instalar alguns emuladores de VG antigos no iOS em iPhone e iPad. Operação até então não permitida pelos meios legais Apple. Para quem tinha seu aparelho jailbreak isto já era possível. Porém através da base de desenvolvimento de app, conseguiram uma brecha, onde qualquer aparelho instale estes emuladores. Eu testei apenas dois, o GBA4iOS que funciona muito bem e o SNES4iOS que apesar do app instalar, não consegui instalar ROM nele.