FVM – Como é que o Raspberry Pi pode acender uma luz?
Por Projecto MagicKey do Instituto Politécnico da Guarda para o PPLWARE.COM
O Raspberry Pi é um dos mini PCs mais populares e potentes que tem servido de base a muitos projectos interessantes (pode consultar alguns dos projectos aqui). Este pequeno equipamento tem um custo de apenas 39€ e basta apenas que quem os tem, tenha ideias interessantes para desenvolver projectos que podem fazer a diferença.
Hoje deixamos aqui um pequeno tutorial, produzido pela empresa MagicKey do Instituto Politécnico da Guarda, que visa ensinar como podemos controlar uma lâmpada usando o mini PC Raspberry Pi.
Tal como referido, o objectivo deste artigo é ensinar como podem controlar uma simples e convencional lâmpada, usando um mini PC Raspberry Pi. O esquema de ligações usado foi o seguinte:
Após realizadas as ligações, foi desenvolvido uma pequena aplicação em Python que permite ligar ou desligar a luz, recorrendo às letras L e D, respectivamente. Caso seja inserida a palavra festa é invocado um loop, de 30 ciclos, que alternam entre ligar e desligar a luz.
Aqui fica o código fonte:
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*- import RPi.GPIO as GPIO import time GPIO.setmode(GPIO.BOARD) print "Setup pin 17" GPIO.setup(7, GPIO.OUT) var=1 print "start loop" while var==1 : a=raw_input("Letra L para ligar, Letra D para desligar") if a=="l": print "liga" GPIO.output(7, True) elif a=="d": print "desliga" GPIO.output(7, False) elif a=="festa": i=0 while i<30: GPIO.output(7, False) time.sleep(0.5) GPIO.output(7, True) time.sleep(0.5) i=i+1 print "start loop" |
Veja aqui o resultado
Este artigo tem mais de um ano
Tenham cuidado com o codigo…. esqueceram-se da identação… Esse codigo dá erro, se nao for corrigido
Está feito. O nosso plugin de Higlighting tinha “comido” o código 🙂
Olá Pedro, tenho um projeto parecido, gastaria de sabe qual o esquema você usou no relé, já que a saída do RPI e de 3,3v e você usou um relé de 5v?
Qual a função do transistor no esquema? Tá a fazer de switch?
O transístor esta a fazer com que a corrente que alimenta o relê nao venha directamente do micro. Desta forma a corrente a saída do micro vai ser praticamente nula pois esta ligado a base do transístor.
Estou a admitir que a saída seja do tipo source. Mas mesmo que sujo o inverso o conceito é o mesmo
Pergunto isto, porque o Raspberry tem um output de 3.3V e o relay é de 5V. Já vi pessoal a ligar directo e diz que consegue activar o relay e outro a dizer que tem de ampliar o sinal.
*amplificar
até poderá ser, não li as especificações. Mas a corrente que um micro normalmente permite é muito baixa para alimentar directamente um relé.
Em muitos casos “até” funciona. Mas como disse “até”…
No fim do dia não é uma questão de voltagem mas sim de corrente, apesar de um estar directamente relacionado com o outro.
nesse caso substituir o transístor e o relê por um triac não teria o mesmo efeito?
Sim, teria.
No entanto quando se usam triac’s deve usar-se MOC (foto-copuladores ópticos) para que as correntes de controlo e correntes de funcionamento não se “misturem”.
Porque estão a usar Python?
Nunca deve ser usadas comparações de string em embebidos. O compilador vai ter que gerar assembly para comparar cada um dos caracteres. Além de ocupar mais espaço, torna o código mais lento. É preferível comparar com uma constante
Acho que seria importante explicar o conceito do relê porque a maior parte das pessoas nao sabe. Acerca fo transístor deveria se explicar a sua razão, pois as pessoas podem sentir-se tentadas a ligar o saída directamente ao relê e poderá dar asneira da grossa
Boas Sérgio,
Não sendo a parte da electrónica/programação (para a electrónica) o meu forte e sendo este um exemplo bastante simples, não vejo qualquer problema em usar Python….afinal é esta a linguagem que mais popularidade tem ganho nos últimos anos 🙂
https://pplware.sapo.pt/informacao/python-a-linguagem-de-programao-vencedora/
No mundo dos embebidos utilizar python é um “crime”. Em termos profissionais ninguem usa.
Mas admito que para o público alvo do artigo seja uma uma opção válida.
Não entendas isto como um deitar abaixo, que não o é
Boas Sérgio,
NAo não :), eu gosto de ouvir a opinião dos leitores que são tão validas quanto a minha
Abraco
confirmo!
python cria um overhead de código a nível de compilador que é brutal!
Mas como é para matar uma mosca com um camião :), serve e ao menos pode ser que crie mais interesse em pessoal que não é da área!
Em termos profissionais ninguém usa? LOL
Dois exemplos: Google e Dropbox
Eu uso no trabalho para automatizar algumas tarefas, e para fazer alguns testes e simulações por exemplo.
estou a falar em embebidos
sim, também me referia a embedded
de resto há mil e uma aplicações de python….
é igual…para demonstração acho uma boa linguagem, depois podes implementar em C, e dar uns retoque sem assembler…
cmps
Que ninguém pense ligar um relé directo! Pode queimar a saída dos GPIO. 5mA são extremamente curtos para relés que consomem 50 ou 100mA.
Olá Helder Coelho, estou com um projeto parecido, e gostaria de uma ajuda nessa parte do relé, como posso fazer para ligar um relé de 5v no raspberry pi?
onde é que posso comprar uma placa arduino com gsm a bom preço?
obrigado
Estão a brincar cmg? Um uP a fazer um trabalho de uC… por favor!
tb nao não exageres. Eu percebo-te, mas olha o target do artigo. O objectivo é abrir portas ao pessoal do alto nível. É uma coisa amadora, um hobby. Devemos tentar fazer uma critica construtiva. Apenas estaremos a ajudar
O exemplo está engraçado, e parabéns pela iniciativa! No entanto, até um Arduino era overkill para fazer isto. E o Arduino já tem uma camada de abstracção engraçada 🙂
Acho que ficaria engraçado era o Raspeberry pi utilizar um CCD para “ver” a presença de pessoas. Aí já se justificava a capacidade de processamento.
Como esforço não é nada de novo, como noticia… serve para dar a conhecer estas novas gerações de embedded devices.
Fico à espera de ver aí uma aplicação mais avançada que mereça ser noticia 😉
Boa tarde nrafaello, de facto o exemplo apresentado poderia ser desenvolvido em Arduino, este suportaria sem duvida alguma a tão suave aplicação desenvolvida.
No entanto pretendeu-se apresentar algo extremamente simples para o uso do GPIO do Raspberry. Como diz o Sérgio e muito bem, “target do artigo” não era para pessoas com um conhecimento tão avançado como o nrafaello aparenta ter.
Ficamos então profundamente desiludidos de não lhe poder apresentar algo que o nrafaello encontrasse que “merece-se ser noticia”, quem sabe no futuro.
Sim, dentro do target do artigo, está bem conseguido 🙂
Mas de facto gostaria de ver uma aplicação que merecesse ser publicada, não só aqui, mas também como artigo científico! A deteção da presença de pessoas (não a deteção simples de movimento) associada a funções de domótica, a meu ver é uma área que pode ter impacto direto sobre a qualidade de vida das pessoas. E tem todo o interesse desde o hobbyist, ao geek de electrónica :), ao pessoal mais expert nas camadas superiores!
Good luck!
Boa noite nrafaello, de facto a área que refere, detecção de presença de pessoas também é algo que me interessa bastante, assim como a qualquer outro adepto desta área. Desta forma peço-lhe que se desenvolver algo dentro desta temática publicasse para que assim todos pudéssemos aprender mais um pouco acerca do raspberry.
ora aqui está um tema interessante, e muito bem explicado como já tem sido hábito do pplware. agradecia mais temas (se não for pedir muito). OBRIGADO
Já não se usam lâmpadas incandescentes… 🙂
E onde é que eu posso arranjar uma caixa de um tlm da tmn para fazer a montagem? 🙂 🙂
Bom tutorial!
para fazer a lâmpada piscar faz sentido ser incandescente
Bom tutorial, não fazia ideia desta possibilidade do raspberri
Excelente artigo!
Existe algum website que possua mais exemplos deste tipo?
Só conheço o Pplware 🙂
Se ficar atento ao pplware poderão surgir mais em breve…
Da última vez que fui ao site que te recomendo, já tinha alguma coisa sobre Raspberry Pi, pode ser que algo te interesse http://www.instructables.com/.
Parabéns pelo excelente post. Para alguém como eu leigo em electrónica mas fã do DIY (Do It Yourself), espero que a pplware continue com o excelente trabalho.
Gostei! Mas sinceramente o raspberry pi tem mais recursos a oferecer, este exemplo podia-se adaptar melhor a um arduino. Mas é porreiro para quem não é da área da electrónica 🙂
Sem duvida que um Arduino chegava.
No entanto pretendeu-se mostrar que o Raspberry também permite este tipo de programas. Alem disso o Raspberry disponibiliza um amigável ambiente gráfico que podemos usar, sendo este a preços muito próximo do Arduino.
No entanto deve ter-se em conta que este é apenas um exemplo de como construir uma aplicação simples para controlo de um pino no GPIO do Raspberry.
E porque não em vez de as empresas andarem a pagar por software e por SO’s onde as licenças são um balurdio, o Estado Português não faz um contrato com esta empresa, e as empresas nacionais migram para um sistema operativo simples, e por onde no exemplo da noticia da companhia de seguros Tranquilidadealém dos 80% de poupança, têm uma poupança de 180%?!
Já que estas empresas, a única coisa que precisam é ligação á internet, um browser, pois ja todas as empresas têm os serviços online, ou então numa VPN.
Mas é só uma ideia… 🙂
Cumprimentos
Se fores ver os benchmarks, aquilo tem um desempenho equivalente a um Processador Pentium 2 300 MHz.
Para curiosos e leigos por electrónica como eu (sou dos “betões”..), é muito interessante o desenvolvimento deste tipo de projectos que ligam PC (o Pi ou velhos) a sistemas de: domótica; aquecimento de água através da energia solar; aquecimento de habitações via parede de Trombe; sistemas de produção de energia fotovoltaíca e eólica, etc.
Será pedir muito que empresas gastem tempo e dinheiro em projectos completos e os desponibilizem sem custos ao público, mas creio ser possivel pequenos (grandes..) artigos como este desenvolvam o interesse por soluções “caseiras” (tipo DIY).
Cmprimentos
precisava de uma coisa deste género para abrir o portão da garagem.
Antonio, talvez seja mais isto que pretende…
https://pplware.sapo.pt/hardware/aprenda-a-abrir-um-porto-com-um-arduino-e-um-android/
é uma situação dessas que pretendo, mas neste caso nao especifica que ligaçoes fazer, como nao percebo nada disto nao ajuda muito.
Espero que a equipa do pplware faça mais exemplos destes com o raspberry pi.
Este exemplo é o que tu queres. Não passa de um simples interruptor. A diferença está no comando.
Boas,
Desde já obrigado pelo post.
Ando a pensar comprar uma coisa destas :), alguém sabes quais as versões de Linux compatíveis, com o Raspberry.
Será que consegue correr um Fedora, Ubuntu 🙂
Obrigado,
Marcelo
existem cada vez mais Marcelo…
é melhor instalares uma que suporte virgula flutuante por hardware…
estas são as oficiais mas existem muitas mais…
http://www.raspberrypi.org/downloads
cmps
Antes de mais,
Os meus parabéns por este tutorial.
Já gora alguém me sabe dizer quantos canais (pinos) podemos controlar no total por este método aqui explicado. Por aquilo que percebi este tutorial só esta a fazer uso de 1 pino que é o 17 certo?
A MagicKey e toda a equipa naturalmente são espectaculares assim como todo o trabalho de desenvolvimento que fazem.
Espero que dediquem ainda mais tempo a desenvolverem o MagicEye e que possam ponderar a possibilidade de o tornar mais acessível, quem sabe, recorrendo a um Raspberry destes.
Cumps
Para quem prefere em c, aqui fica o código.
#include
#include
#include
#include
int main (void)
{
char entrada [5];
int i=0;
char festa [] = “festa\n”;
if (wiringPiSetup () == -1)
pinMode (7, OUTPUT) ;
while(1)
{
printf (“Letra L para ligar, Letra D para desligar \n”) ;
scanf(“%s”,&entrada);
i=0;
if(entrada[0]==’l’)
{
digitalWrite (7, 1) ;
}
else if(entrada[0]==’d’)
{
digitalWrite (7, 0) ;
}
else if(strcmp(entrada,festa)!=0)
{
while(i<30)
{
digitalWrite (7, 1) ;
delay (500) ;
digitalWrite (7, 0) ;
delay (500) ;
i++;
}
}
delay (500) ;
}
return 0 ;
}
Existe um erro no circuito que qualquer pessoa com os mínimos conhecimentos de electrónica identificaria.Falta colocar um díodo para proteger o transístor .O mais certo é o circuito actual não durar muito tempo no entanto continua válido para testes mas é claro que o hardware é extremamente exagerado para o efeito.
Luís de facto no esquema apresentado falta um díodo, no entanto se atentar um pouco no video poderá vê-lo soldado nos terminais da bobine do Relé.
O duro é que o iniciante não vai notar esse detalhe e vai acabar danificando o transistor e/ou o GPIO. Sugiro que edite o post e coloque esse detalhe para o bem dos novatos.
Ótimo projeto, simples e funcional. Parabéns.
Boas,
Tenho apenas noções básicas de eletrónica.
Que material preciso de ter para fazer este DIY?
Muito legal. Estou aguardando o meu raspberry pi chegar e enquanto isso coletando algumas informações. Muito obrigado pelas dicas.
PS: Que gambiarra na lâmpada heim! Cadê o soquete?
OK
qual seria o part number do relé?
e esse tal diodo que falta?
Adorei a idéia, tem um esquema mais detalhado?
para evitar este extenso comentario , não seria melhor ter comentado o codigo linha a linha, fazendo todo mundo entender o que o programa faz no seu passo a passo.
Será possível ligar e desligar a lâmpada através de um comando de televisão?
sim
Boas pessoal, estou com um problema ai, estou a utilizar esse codigo , fiz as ligações todas iguais como está no esquema, mas quando vou correr o modulo dá um erro nesta linha
(import RPi.GPIO as GPIO), a dizer que nao tenho permissões de acesso e diz para eu fazer login como root mas eu ja estou como root, sabem qual poderá ser o problema?
obrigado
Ola, boa noite. Apesar da postagem antiga, me interessei bastante, mas gostaria de fazer para mais lampadas. Como posso proceder? Obrigado!!!