collapse collapse

* Links de Robótica

* Posts Recentes

Identificar 2 componentes por almamater
[30 de Julho de 2025, 19:31]


+ LASERs por dropes
[16 de Julho de 2025, 12:38]


Cerca eléctrica por SerraCabo
[14 de Junho de 2025, 23:26]


Alguém arranja motores? por almamater
[10 de Junho de 2025, 22:34]


Condensador 4.7uF 0603 por brunus
[09 de Junho de 2025, 15:52]


Lenovo IdeaPad 3 Não liga por jm_araujo
[07 de Maio de 2025, 19:10]


Identificar Diodo Zenner por filjoa
[01 de Maio de 2025, 23:07]


Meu novo robô por dropes
[18 de Março de 2025, 14:51]


JBL partybox On-The-Go por almamater
[21 de Fevereiro de 2025, 23:32]


Talking Reverse Engineering with an Absolute Legend! por SerraCabo
[13 de Fevereiro de 2025, 09:56]

* LusoRobótica - Robótica em Portugal

A robótica é uma das ciências mais desafiantes. A perfeita fusão harmoniosa entre um sem fim número de ciências faz da robótica um excelente desafio, que nos convida a imergir neste grandioso mundo da tecnologia, e utilizar a construção de robots como uma forma única de explorar todas as ideias que nos surgem no dia-a-dia.

Junta-te a nós e aprende como a robótica pode mudar a maneira como observas o mundo. Ajuda-nos a desmistificar a robótica em Portugal!
08 de Dezembro de 2009, 16:08 por TigPT | Visualizações: 24908 | Comentários: 33

A loja do LusoRobótica começa a dar os seus frutos graças ao apoio de todos os que acreditam neste projecto.

Temos grandes planos para o LusoRobótica, e como já deram por isso, estes incluem incentivar mais e mais os projectos e os membros desta comunidade.

Vimos assim divulgar a nova plataforma de sugestões para a loja permitindo assim de uma forma mais fácil ouvir o que vocês pretendem ver na loja, deste ferramentas, a produtos ou críticas visando assim a um ainda maior e melhor crescimento do espaço.

Na barra lateral direita está agora um botão de sugestões onde podem ver o que os outras pessoas sugerem, votar nas sugestões das outras pessoas se gostarem de as ver implementadas e sugerir as vossas próprias sugestões.

Ao clicar no botão abre-se uma janela onde podem ver e abrir sugestões em concreto ou abrir a página de sugestões onde podem inserir ter acesso a todas as opções.


http://loja.lusorobotica.com/


Gostava também de saber o que acham desta medida. ;)
08 de Dezembro de 2009, 04:44 por tr3s | Visualizações: 51911 | Comentários: 41

Olá a todos!

Pois é, depois de muito tempo na escuridão... Finalmente estou de volta!  :D :D

Hoje trago-vos um projecto óptimo para deixarem os vossos familiares boquiabertos este Natal!
Ora bem, vou-vos mostrar como podem usar o vosso Arduino para controlarem a vossa Televisão, DVD, Box, portátil, enfim tudo o que seja controlado por um comando de Infra-Vermelhos! 8)


Vamos precisar de:

Podem ainda ver o tutorial de como Construir um Sensor de próximidade de Infravermelhos por 0€ para verem como é feita a ligação do sensor IR.

Uma breve introdução:
Enquanto estudava e arquitecturava como irá ser feita a comunicação entre os LRSwarmBots, decidi começar a fazer testes. Comecei então a estudar os vários códigos existentes para Infra-Vermelhos. Os mais utilizados hoje em dia são o Sony e o Philips RC5.
O código da Sony é um código bastante fácil de entender. Muito resumidamente consiste num conjunto de 12 bits onde um bit 1 tem um "espaço" a LOW durante 600 microsegundos e um periodo a HIGH durante 1200 microsegundos. O espaço mínimo entre dois códigos sony é de 40 milisegundos e cada mensagem dura 45 milisegundos. A frequência da portadora é 40Khz.


Para este código IR seria muito simples fazer programar algo de modo a receber e enviar mensagens, tanto que projectos para fazer receptores de códigos Sony é o que não falta para aí. Mas atenção é so receptores, não entendendo bem porquê mas as pessoas fogem a sete pés quando vêm que têm de modular sinais... De qualquer maneira, se quiserem fazer algo com estes códigos e precisarem de ajuda é só perguntar!  :)

Tendo em mente que queria fazer algo para os LRSwarmBots decidi escolher os códigos da Philips, RC5. Os motivos foram, cada bit tem a mesma duração, contém mais informação, zonas definidas para endereço e para comando, usa uma portadora numa frequência mais "simpática" (36Khz), é o mais usado mundialmente e não há praticamente nada feito em Arduino com estes códigos, nada como um bom desafio!

O código IR RC5 da Philips consiste em 14 bits por mensagem. Os 2 primeiros bits são StartBits, servem para o receptor regular o Gain (Automatic Gain Control), o bit seguinte é um indicador de Status e serve para o aparelho receptor saber se a tecla está a ser continuamente pressionada ou se simplesmente foi pressionada uma vez. Se a tecla ficar pressionada por algum tempo o bit passa a 0, se a tecla for apenas pressionada rapidamente o bit é 1. Os 5 bits seguintes são bits de endereçamento e desta forma é possível controlar a TV e não ligar o vídeo :p! As TVs por norma têm o endereço 0, os VCR têm o endereço 5 e por aí fora! Os 6 bits restantes são o comando a ser transmitido, desta forma temos 2048 instruções possíveis (32 endereços com 64 comandos cada). Neste código todos os bits têm a mesma duração (1778 microsegundos) e é por isto que quase ninguém faz alguma coisa com o Arduino e este código, não dá para usar a bela funçao pulseIn() :P! No código RC5 um 0 é representado por uma transição descendente e um 1 é representado por uma transição ascendente. A duração de cada mensagem é de 24,889  milisegundos e a distância mínima entre mensagens é de 88,889ms (50x a duração de bit, ou BitTimes).


A teoria para receber estes sinais é simples. Resumidamente é esperar que o sensor detecte o primeiro StartBit da mensagem e ler os 13 bits restantes. Agora para enviar os códigos a história já é outra. Não é só enviar os bits pela mesma ordem que os recebemos fazendo digitalWrite(High e Low). É necessário modular o sinal numa portadora a 36Khz.


Esta foi a solução que os engenheiros da Philips encontraram para evitar o ruído existente por todo lado, até mesmo aquele que os nossos corpos libertam. Ao colocar o sinal nesta frequência, o receptor vai só olhar para esta frequência e ignorar tudo aquilo que não esteja neste ritmo.
Como fazê-lo?
Uma maneira simples é como fiz:
Sabemos que se tivermos de enviar HIGH durante um segundo temos de fazer o LED piscar 36000 vezes. Cada bit dura 1778 microsegundos e um segundo tem 1000000 (milhão) de microsegundos, então o LED terá de piscar 64 vezes se quisermos enviar HIGH durante 1778 microsegundos. 1778*36000/1000000.

Sabendo que cada bit está 50% do tempo a LOW e 50% a HIGH só queremos que o LED pisque 32 vezes em 889 microsegundos! 1778/2 --- 64/2

Simples hein!?  ;)

Sendo assim, 32x em 889 uSegundos dá que cada ciclo LED ON/OFF tem de durar aprox. 28 uSegundos. 889/32
E para acabar, o LED terá de estar 14 uSegundos a HIGH e outros 14 uSegundos a LOW. 28/2

No código irão perceber que não uso os 14 microsegundos directamente, isto deve-se ao facto da função DigitalWrite da biblioteca Arduino demorar aproximadamente 4 microsegundos e sendo assim, quando colocamos um LED a HIGH ou a LOW já gastámos 4 uSeg., portanto já só podemos esperar 10 uSeg. .

Agora, já sabemos ler mensagens RC5 com o nosso Arduino e já sabemos como modulá-las e fazer o LED piscar esse sinal... Portanto... agora é só fazer código, as ligações e apontar o nosso Arduino para a TV!

Como eu sei que muitos de vocês querem o código já feito :P eu vou fazer o favor de colocar aqui um código muito muito simples que faz isto tudo que acabei de explicar. Basicamente o que o programa faz é aprender o código de um comando e quando carregam no botão ele faz um LED piscar a mensagem que aprendeu. Mais simples, apontem o comando da vossa TV para o receptor, carreguem no botão para mudar de canal por exemplo, apontem o Arduino para a vossa TV e carreguem no botão do Arduino, et voilá a vossa TV acabou de mudar de canal!

Para este exemplo, liguei o sensor IR como no tópico Construir um Sensor de próximidade de Infravermelhos por 0€, liguei um LED IR no pino 13 aproveitando o GND ao lado e um botão no Pin 3 (não é necessário explicar este pois não? :P).

Fica aqui um vídeo que fiz onde mostro o meu Arduino a fazer isto mesmo:


Sendo isto trabalho de investigação para os LRSwarmBots é óbvio que numa aplicação mais a sério nunca iria usar as funções da biblioteca Arduino pois tornaria todo o projecto ineficiente. Por isso, recomendo que se quiserem usar este raciocínio evitem usar funções como digitalWrite e usem antes sintaxe específica AVR (evitam ter de andar a ver quanto tempo dura a funçao digitalWrite :P).


05 de Dezembro de 2009, 13:58 por guibot | Visualizações: 15869 | Comentários: 19

A minha apresentação sobre Robótica Criativa no Codebits.   :)

http://videos.sapo.pt/SbI1UmqKIOO986iWaR7b
Páginas: 1 ... 83 84 [85] 86 87 ... 187

* Quem está online

* Estatística LusoRobótica

  • stats Total de Membros: 4.072
  • stats Total de Mensagens: 106.834
  • stats Total de Tópicos: 9.101
  • stats Total de Categorias: 8
  • stats Total de Quadros: 71
  • stats Recorde utilizadores online: 1.666