FVM – Como é que o Raspberry Pi pode acender uma luz?

62 Comentários

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.

mk_ras

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:

mk_ras01

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



E está feito! Agora é só mandar executar o modulo de Python e em seguida proceder à sua execução.
Desde já o nosso agradecimento à empresa MagicKey, pela disponibilização do código fonte e esquema de ligações deste simples e útil projeto. Lembramos que o  pplware.com tem acompanhado de perto o projecto Magickey, projecto esse que nos orgulha como portugueses mas também porque tem como principal objectivo ajudar pessoas com deficiências físicas. Alguns artigos:

Partilhar:
Tags:

Comentários

62

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *

  1. Avatar de Jqms
    Jqms

    Tenham cuidado com o codigo…. esqueceram-se da identação… Esse codigo dá erro, se nao for corrigido

    1. Avatar de Pedro Pinto

      Está feito. O nosso plugin de Higlighting tinha “comido” o código 🙂

      1. Avatar de Rodrigo
        Rodrigo

        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?

  2. Avatar de la_marca
    la_marca

    Qual a função do transistor no esquema? Tá a fazer de switch?

    1. Avatar de Sergio
      Sergio

      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.

      1. Avatar de Sergio
        Sergio

        Estou a admitir que a saída seja do tipo source. Mas mesmo que sujo o inverso o conceito é o mesmo

      2. Avatar de la_marca
        la_marca

        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.

        1. Avatar de la_marca
          la_marca

          *amplificar

          1. Avatar de Sergio
            Sergio

            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é”…

        2. Avatar de Pedro Domingues
          Pedro Domingues

          No fim do dia não é uma questão de voltagem mas sim de corrente, apesar de um estar directamente relacionado com o outro.

      3. Avatar de vvvvv
        vvvvv

        nesse caso substituir o transístor e o relê por um triac não teria o mesmo efeito?

        1. Avatar de Filipe Caetano

          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”.

  3. Avatar de Sergio
    Sergio

    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

    1. Avatar de Pedro Pinto

      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.sitedev.pt/informacao/python-a-linguagem-de-programao-vencedora/

      1. Avatar de Sergio
        Sergio

        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 é

        1. Avatar de Pedro Pinto

          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

        2. Avatar de nrafaello
          nrafaello

          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!

        3. Avatar de Hugo

          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.

          1. Avatar de Sergio
            Sergio

            estou a falar em embebidos

          2. Avatar de nrafaello
            nrafaello

            sim, também me referia a embedded
            de resto há mil e uma aplicações de python….

    2. Avatar de lmx
      lmx

      é igual…para demonstração acho uma boa linguagem, depois podes implementar em C, e dar uns retoque sem assembler…

      cmps

    3. Avatar de Helder Coelho
      Helder Coelho

      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.

      1. Avatar de Rodrigo
        Rodrigo

        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?

  4. Avatar de nuno
    nuno

    onde é que posso comprar uma placa arduino com gsm a bom preço?

    obrigado

  5. Avatar de Dante
    Dante

    Estão a brincar cmg? Um uP a fazer um trabalho de uC… por favor!

    1. Avatar de Sergio
      Sergio

      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

    2. Avatar de nrafaello
      nrafaello

      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 😉

      1. Avatar de Filipe Caetano

        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.

        1. Avatar de nrafaello
          nrafaello

          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!

          1. Avatar de Filipe Caetano

            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.

  6. Avatar de antonio
    antonio

    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

  7. Avatar de César Faria
    César Faria

    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!

    1. Avatar de SamC
      SamC

      para fazer a lâmpada piscar faz sentido ser incandescente

      Bom tutorial, não fazia ideia desta possibilidade do raspberri

  8. Avatar de Daniel
    Daniel

    Excelente artigo!

    Existe algum website que possua mais exemplos deste tipo?

    1. Avatar de Pedro Pinto

      Só conheço o Pplware 🙂

    2. Avatar de Filipe Caetano

      Se ficar atento ao pplware poderão surgir mais em breve…

    3. Avatar de Rui Afonso
      Rui Afonso

      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.

  9. Avatar de Zé

    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 🙂

    1. Avatar de Filipe Caetano

      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.

  10. Avatar de José Oliveira

    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

    1. Avatar de TotalKnockout
      TotalKnockout

      Se fores ver os benchmarks, aquilo tem um desempenho equivalente a um Processador Pentium 2 300 MHz.

  11. Avatar de Rui Afonso
    Rui Afonso

    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

  12. Avatar de antonio
    antonio

    precisava de uma coisa deste género para abrir o portão da garagem.

      1. Avatar de antonio
        antonio

        é 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.

    1. Avatar de la_marca
      la_marca

      Este exemplo é o que tu queres. Não passa de um simples interruptor. A diferença está no comando.

  13. Avatar de Marcelo
    Marcelo

    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

    1. Avatar de lmx
      lmx

      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

  14. Avatar de Nuno
    Nuno

    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?

  15. Avatar de hm
    hm

    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

  16. Avatar de Filipe Caetano

    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 ;
    }

  17. Avatar de Luis Ferreira

    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.

    1. Avatar de Filipe Caetano

      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é.

      1. Avatar de Roberto
        Roberto

        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.

  18. Avatar de Tiago Marques
    Tiago Marques

    Boas,

    Tenho apenas noções básicas de eletrónica.

    Que material preciso de ter para fazer este DIY?

  19. Avatar de Renato Rod
    Renato Rod

    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?

  20. Avatar de Gabriel
    Gabriel

    OK
    qual seria o part number do relé?
    e esse tal diodo que falta?

    Adorei a idéia, tem um esquema mais detalhado?

  21. Avatar de Ovidio Marinho

    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.

  22. Avatar de Francisco Silva
    Francisco Silva

    Será possível ligar e desligar a lâmpada através de um comando de televisão?

  23. Avatar de Miguel Neto
    Miguel Neto

    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

  24. Avatar de Patrick Costa
    Patrick Costa

    Ola, boa noite. Apesar da postagem antiga, me interessei bastante, mas gostaria de fazer para mais lampadas. Como posso proceder? Obrigado!!!