collapse

* Posts Recentes

Amplificador - Rockboard HA 1 In-Ear por almamater
[Ontem às 19:13]


O que é isto ? por KammutierSpule
[26 de Março de 2024, 19:35]


Bateria - Portátil por almamater
[25 de Março de 2024, 22:14]


Emulador NES em ESP32 por dropes
[13 de Março de 2024, 21:19]


Escolher Osciloscópio por jm_araujo
[06 de Fevereiro de 2024, 23:07]


TP4056 - Dúvida por dropes
[31 de Janeiro de 2024, 14:13]


Leitura de dados por Porta Serie por jm_araujo
[22 de Janeiro de 2024, 14:00]


Distancia Cabo por jm_araujo
[08 de Janeiro de 2024, 16:30]


Meu novo robô por josecarlos
[06 de Janeiro de 2024, 16:46]


Laser Engraver - Alguém tem? por almamater
[16 de Dezembro de 2023, 14:23]

Autor Tópico: FiBre Clock  (Lida 24042 vezes)

0 Membros e 1 Visitante estão a ver este tópico.

Offline TigPT

  • Administrator
  • Mini Robot
  • *****
  • Mensagens: 5.372
    • Tiago Rodrigues
Re:FiBre Clock
« Responder #15 em: 20 de Agosto de 2009, 11:36 »
Se tivesses uma ponte H, depois podias colocar um potenciómetro que iria aumentar ou reduzir o pwm injectado na ponte H, podendo assim controlar a velocidade desde 0 a 100% de rotação.

Offline AndréD.

  • Mini Robot
  • *
  • Mensagens: 180
    • AndreD Robotics
Re:FiBre Clock
« Responder #16 em: 20 de Agosto de 2009, 16:56 »
Boas...

Já tenho a minha base nova pronta, em baixo fica o video. Está mais robusta, com maior rotação e nao sai do sitio como podem observar no video...



Outra coisa, para por uma ponte H tenho de ter algo que a controle... Para isso tenho de programar o meu outro Picaxe para que seja este a controla-la.

Até aqui tudo bem, nao estou a ver e como é que queres que controle o pwm (Pulse Width Modulation ou em Tuga - Modulação por largura de pulso), não percebi essa parte...

Se me puderes explicar melhor agradecia...
« Última modificação: 20 de Agosto de 2009, 17:06 por AndréD. »

Offline Rui

  • Mini Robot
  • *
  • Mensagens: 24
Re:FiBre Clock
« Responder #17 em: 20 de Agosto de 2009, 17:12 »
Como o motor só roda numa direção nem precisas de uma ponte H, basta um transístor.
Quanto a PWM, se perceberes inglês esta página deve-te ajudar bastante: http://www.netrino.com/Embedded-Systems/How-To/PWM-Pulse-Width-Modulation
Nessa página falam em controladores separados só para PWM, mas não deve ser difícil de implementar em picaxe usando interrupções.

Offline msaleiro

  • Mini Robot
  • *
  • Mensagens: 691
    • Blog
Re:FiBre Clock
« Responder #18 em: 20 de Agosto de 2009, 17:19 »
Não tenho a certeza.. mas tenho ideia que também podes fazer um controlador PWM utilizando um 555. Consulta o datasheet e vê o que diz por lá. Se não me engano há uma expressão para calcular o duty cycle de acordo com os valores das resistências que usares. Colocando um reostato no lugar de uma das resistências deves conseguir fazer isso de modo a controlares o duty cycle facilmente
« Última modificação: 20 de Agosto de 2009, 17:22 por msaleiro »
msaleiro - Mário Saleiro
UAlg FCT-DEI / VisLab - Instituto de Sistemas e Robótica / eLab Hackerspace
http://thebitbangtheory.com

Offline TigPT

  • Administrator
  • Mini Robot
  • *****
  • Mensagens: 5.372
    • Tiago Rodrigues
Re:FiBre Clock
« Responder #19 em: 20 de Agosto de 2009, 17:58 »
Podes gerar pwm com 555 perfeitamente. Vê o vídeo no 2nd post do link a baixo: http://lusorobotica.com/index.php/topic,31.0.html

Offline AndréD.

  • Mini Robot
  • *
  • Mensagens: 180
    • AndreD Robotics
Re:FiBre Clock
« Responder #20 em: 20 de Agosto de 2009, 21:22 »
Boas...

 >:( ??? >:(

Tou a ficar variado do cerebro com esse circuito... Já montei o circuito 7 vezes e nao consigo por a trabalhar...

Testei com um led, o Led acende mas nao diminui nem aumenta a sua luminosidade....

Uma coisa, eu pus todos os componentes que estavam no circuito menos os diodos 1N34, troquei por 1N4148 que era o que tinha, será por causa disso?

Cumps
AndréD.

Offline AndréD.

  • Mini Robot
  • *
  • Mensagens: 180
    • AndreD Robotics
Re:FiBre Clock
« Responder #21 em: 21 de Agosto de 2009, 14:38 »
Boas Pessoal...

Mais progressos.....

Já consegui finalmente por o circuito a funcionar... Mas utilizei este.

Depois liguei a uma ponte H e apliquei a maravilhosa teoria da polaridade inversa... Resultado: Magnifico (O fumo que saiu da ponte H foi maravilhoso).

Bom queimei aquilo tudo, mas por distração minha, mas tenho o circuito feito e funciona e so trocar a ponte e ta a andar depois é montar tudo e testar.

Já agora alguem tem para ai umas pontes H que me desenrasque?

Cumps
AndréD.
« Última modificação: 22 de Agosto de 2009, 03:22 por AndréD. »

Offline maurosmartins

  • Mini Robot
  • *
  • Mensagens: 483
    • msm
Re:FiBre Clock
« Responder #22 em: 22 de Agosto de 2009, 15:48 »
Olá AndréD. Não precisas de ponte H para aquilo que queres fazer!!! no circuito da imagem basta ligar à saída do NE555 (pino 3) um resistência e um transístor de potencia! assim podes controlar a velocidade do motor!

A ponte H só é precisa se quiseres controlar tb a direcção e penso que para este projecto isso não seja preciso!

Cumprimentos, Mauro.


Offline PDI

  • Mini Robot
  • *
  • Mensagens: 677
Re:FiBre Clock
« Responder #23 em: 24 de Agosto de 2009, 22:23 »
Alfredo Garcia

Offline AndréD.

  • Mini Robot
  • *
  • Mensagens: 180
    • AndreD Robotics
Re:FiBre Clock
« Responder #24 em: 26 de Agosto de 2009, 14:51 »
Boas Pessoal...

Depois de muito trabalho e de arranjar o material certo (Arduino), dou ete projecto como: Concluido

Agora é assim, eu fiz um video da coisa a funcionar, mas aconteceu-me um problema e dos grandes que passo a mostrar no printscreen que fiz com a wcam na configuração de audio e video do msn:



Vinha a ver o video e a subir as escadas para vir para o meu escritorio, e BOOM, telemovel pelas escadas a baixo...

Resultado: LCD partido, Camera deixou de funcionar, algumas teclas e o bluetooth funciona ate quando lhe apetece (ao passar o filme para o pc, umas vezes perde ligação aos 50%, outras aos perto dos 90% - basicamente bluethoot lixado tambem).

Assim que tiver condiçoes para colocar o video aqui estará... E podem mover para projectos concluidos se assim o entenderem...

Só mais uma coisa, este projecto pode ser alvo de mais modificações, mas por agora tá acabado...

Obrigado a todos por me ajudarem no que foi preciso...

Cumps
AndréD.

Offline metRo_

  • Administrator
  • Mini Robot
  • *****
  • Mensagens: 3.753
Re:FiBre Clock
« Responder #25 em: 26 de Agosto de 2009, 15:09 »
Podias colocar no tópico mais informação, na minha opinião tens pouca informação técnica :S que possa ajudar outros utilizadores a fazer algo idêntico :S

Offline AndréD.

  • Mini Robot
  • *
  • Mensagens: 180
    • AndreD Robotics
Re:FiBre Clock
« Responder #26 em: 26 de Agosto de 2009, 16:33 »
Boas...

Concordo contigo, tive a dar uma vista de olhos no topico e realmente quem quiser fazer um não tem muita informação.

Entao vou disponibilizar aqui tudo o que utilizei para que o pessoal possa desenvolver um "brinquedo" parecido...

Apresentação do Projecto

O projecto baseia-se no conceito POV (Persistence of Vision).
Já tinha em mente fazer um projecto destes á algum tempo mas nao sabia como, foi entao que passei pelo blog do amigo Ricardo Dias e vi o magnifico projecto dele o Round’Aclock, a partir dai comecei a desenvolver o meu proprio POV.

Vou colocar aqui algumas da estapas que sequi para que o pessoal possa seguir tambem:


1ª Etapa

Primeiramente tinha feito a base com uma caixa de cd's, depois de alguns testes conclui que a coisa podia correr mal e levar com uma breadboard pela cabeça, foi entao que decido fazer uma base bem robusta para aguentar a rotação da plataforma.

Material Para Construção da Base e plataforma Giratorio:

- Madeira 1cm
- Parafusos Para Madeira
- Aparafusadora
- Berbequim
- Brocas de 5, 6 e 7 mm
- Acrilico
- Motor 8.4V
- Bateria 8.4V (Fonte de alimentação, etc...)
- Botao ON/OFF

Esquema com o motor:



Depois da bae feita convem testa-la, ver se a plataforma gira como deve de ser, ver se está o mais centrada possivel para que a base fique estavel.



2ª Etapa

Desenvolver toda a parte Electronica.

Comecei inicialmenete por utilizar o sistema PICAXE, mas mais tarde vi que não era limitado para o que queria fazer, entao adquiri o meu Arduino Duemilenove (Grande compra).

Aqui fica o Esquema que utilizei com o arduino:



Em baixo o esquema que utilizei para o receptor e para o emissor de Infra Vermelhos. (Nota: Baseado no esquema do topico do amigo metRo_)

Receptor:




Emissor:



3ª Etapa

Esta etapa foi a de programação do arduino, antes de mais quero agradecer á fantastica ajuda que os membros desta comunidade me deram no meu (ainda) inicio em C.

O codigo que desenvolvi foi o seguinte:

Código: [Seleccione]
/* FIRST PROGRAM IN ARDUINO 0017
BY: AndréD.
Project POV FiBre Clock */

int timer=300; // Tempo entre cada letra em MicroSegundos
int timer1=500; // Tempo entre cada letra em MicroSegundos
int x=0;
int var_sensorIR = 0;  |
int sensorIR = 0;         |-> Variaveis Correspondentes ao Sensor de Infravermelhos

void setup()   {
  Serial.begin(9600);
  pinMode (8, OUTPUT);      |
  pinMode (9, OUTPUT);      |        
  pinMode (10, OUTPUT);    |---- >   Configuração das portas para os leds
  pinMode (11, OUTPUT);    |
  pinMode (12, OUTPUT);    |
  
}

void loop()
{

  var_sensorIR = analogRead(sensorIR); \\ Leitura do valor do Sensor e escrita desse mesmo valor na variavel "val_sensorIR"

  if(var_sensorIR < 400){ \\ Condição SE o valor do sensor for menos que 400 entao começa a sequencia dos Leds.
 
      /* LETRA L */
        PORTB = B00000000;          \\ Escrita em varios Pinos o que permite acender os leds pretendidos.
        delayMicroseconds(timer); \\ Tempo de espera em Microsegundos
        PORTB = B00011111;
        delayMicroseconds(timer);
        PORTB = B00010000;
        delayMicroseconds(timer);
        PORTB = B00010000;
        delayMicroseconds(timer);
        PORTB = B00010000;
        delayMicroseconds(timer1);
        PORTB = B00000000;
        delayMicroseconds(timer);  
    
     /* LETRA U */
       PORTB = B00001111;
       delayMicroseconds(timer);  
       PORTB = B00010000;
       delayMicroseconds(timer);
       PORTB = B00010000;
       delayMicroseconds(timer);
       PORTB = B00010000;
       delayMicroseconds(timer);
       PORTB = B00001111;
       delayMicroseconds(timer);
       PORTB = B00000000;
       delayMicroseconds(timer1);
      
     /* LETRA S */
       PORTB = B00010010;
       delayMicroseconds(timer);  
       PORTB = B00010101;
       delayMicroseconds(timer);
       PORTB = B00010101;
       delayMicroseconds(timer);
       PORTB = B00010101;
       delayMicroseconds(timer);
       PORTB = B00001001;
       delayMicroseconds(timer);
       PORTB = B00000000;
       delayMicroseconds(timer1);  
  
     /* LETRA O */
       PORTB = B00001110;
       delayMicroseconds(timer);  
       PORTB = B00010001;
       delayMicroseconds(timer);
       PORTB = B00010001;
       delayMicroseconds(timer);
       PORTB = B00010001;
       delayMicroseconds(timer);
       PORTB = B00001110;
       delayMicroseconds(timer);
       PORTB = B00000000;
       delayMicroseconds(timer1);            
  
  /* ESPAÇO */
  
        PORTB = B00000000;
        delayMicroseconds(timer);
        PORTB = B00000000;
        delayMicroseconds(timer);
        
     /* LETRA R */
       PORTB = B00011111;
       delayMicroseconds(timer);  
       PORTB = B00000101;
       delayMicroseconds(timer);
       PORTB = B00000101;
       delayMicroseconds(timer);
       PORTB = B00001101;
       delayMicroseconds(timer);
       PORTB = B00010010;
       delayMicroseconds(timer);
       PORTB = B00000000;
       delayMicroseconds(timer1);            
    
     /* LETRA O */
       PORTB = B00001110;
       delayMicroseconds(timer);  
       PORTB = B00010001;
       delayMicroseconds(timer);
       PORTB = B00010001;
       delayMicroseconds(timer);
       PORTB = B00010001;
       delayMicroseconds(timer);
       PORTB = B00001110;
       delayMicroseconds(timer);
       PORTB = B00000000;
       delayMicroseconds(timer1);            
    
     /* LETRA B */
       PORTB = B00011111;
       delayMicroseconds(timer);  
       PORTB = B00010001;
       delayMicroseconds(timer);
       PORTB = B00010101;
       delayMicroseconds(timer);
       PORTB = B00010101;
       delayMicroseconds(timer);
       PORTB = B00001010;
       delayMicroseconds(timer);
       PORTB = B00000000;
       delayMicroseconds(timer1);            
    
     /* LETRA O */
       PORTB = B00001110;
       delayMicroseconds(timer);  
       PORTB = B00010001;
       delayMicroseconds(timer);
       PORTB = B00010001;
       delayMicroseconds(timer);
       PORTB = B00010001;
       delayMicroseconds(timer);
       PORTB = B00001110;
       delayMicroseconds(timer);
       PORTB = B00000000;
       delayMicroseconds(timer1);            
    
     /* LETRA T */
       PORTB = B00000001;
       delayMicroseconds(timer);  
       PORTB = B00000001;
       delayMicroseconds(timer);
       PORTB = B00011111;
       delayMicroseconds(timer);
       PORTB = B00000001;
       delayMicroseconds(timer);
       PORTB = B00000001;
       delayMicroseconds(timer);
       PORTB = B00000000;
       delayMicroseconds(timer1);            
    
     /* LETRA I */
       PORTB = B00000000;
       delayMicroseconds(timer);  
       PORTB = B00010001;
       delayMicroseconds(timer);
       PORTB = B00011111;
       delayMicroseconds(timer);
       PORTB = B00010001;
       delayMicroseconds(timer);
       PORTB = B00000000;
       delayMicroseconds(timer);
       PORTB = B00000000;
       delayMicroseconds(timer1);            
  
     /* LETRA C */
       PORTB = B00011111;
       delayMicroseconds(timer);  
       PORTB = B00010001;
       delayMicroseconds(timer);
       PORTB = B00010001;
       delayMicroseconds(timer);
       PORTB = B00010001;
       delayMicroseconds(timer);
       PORTB = B00000000;
       delayMicroseconds(timer);
       PORTB = B00000000;
       delayMicroseconds(timer1);            
    
     /* LETRA A */
       PORTB = B00011110;
       delayMicroseconds(timer);  
       PORTB = B00000101;
       delayMicroseconds(timer);
       PORTB = B00000101;
       delayMicroseconds(timer);
       PORTB = B00000101;
       delayMicroseconds(timer);
       PORTB = B00011110;
       delayMicroseconds(timer);
       PORTB = B00000000;
       delayMicroseconds(timer1);            
  
    
 
 }
}



4ª Etapa

Por fim efectuei os testes. Ligar tudo, Colocar a andar e visualizar o resultado.



Video - FiBre Clock



Resta pedir desculpa pela qualidade (telemovel, mas da para ver e perceber...), outra coisa e a os fps do telemovel que como devem perceber nao conseguem apanhar as letras fixas, mas a "olho nu" esta impecavel....

Agradecimentos:

Forum LusoRobotica
Blog Ricardo Dias

Agradecimentos Pessoais (Por toda a ajuda dada neste topico):

- TigPT
- FIFAS
- metRo_
- PDI
- mauromartins
- msaleiro
- Rui

Cumps
AndréD.
« Última modificação: 27 de Agosto de 2009, 22:08 por AndréD. »

Offline ricardo-reis

  • Administrator
  • Mini Robot
  • *****
  • Mensagens: 1.338
Re:FiBre Clock
« Responder #27 em: 26 de Agosto de 2009, 16:40 »
no esquema do motor há um erro.. os pinos do interruptor.. akilo assim nunca liga.. de resto.. tá tudo com mt bom aspecto.. (diga-se k n olhei prós circuitos restantes..)

Offline Rebel

  • Mini Robot
  • *
  • Mensagens: 153
    • Raspberry Pi
Re:FiBre Clock
« Responder #28 em: 26 de Agosto de 2009, 16:50 »
Olha lá, onde está o sensor IR no esquema do Arduino???? ;)

Offline AndréD.

  • Mini Robot
  • *
  • Mensagens: 180
    • AndreD Robotics
Re:FiBre Clock
« Responder #29 em: 26 de Agosto de 2009, 16:54 »
Boas....

Obrigado Pelo teu reparo no circuito do motor...

E já coloquei o resto dos circuitos que me tinha esquecido, ou seja o do Receptor e do Emissor IR...

Cumps
AndréD.