sexta-feira, 25 de dezembro de 2009

VLC com ícone natalino

Olá pessoal, hoje de especial de Natal vim postar sobre o VLC media player, que nesta última semana mudou seu ícone "normal" para um ícone mais natalino. Na imagem a seguir você vai ver o ícone como ficou:
Perceberam a diferença no ícone ? Aquele maldito gorro natalino..  aqui vai mais uma imagem:
 
Fiz esta postagem apenas por um motivo, aparentemente não sei o porque eu não consigo me lembrar se isso aconteceu no natal passado, alias eu não me lembro nada do natal passado..... pelo menos agora está registrado... vamos ver se no ano que vem o ícone vai mudar...
É isso por hoje pessoal, um abraço a todos e um Feliz Natal.... hou.. hou.. hou...

Edit: Hoje, 18 de Dezembro de 2010, quase um ano depois dessa postagem, venho aqui registrar que o VLC novamente alterou seu ícone para essa versão natalina.

sexta-feira, 18 de dezembro de 2009

Processadores ARM

Bom pessoal, resolvi "tomar vergonha na cara" e fazer esta postagem que está a muito tempo prevista, mas nunca encontro tempo para fazê-la, a partir de agora você irá conhecer um pouco mais sobre os processadores ARM, suas caracteristicas, suas aplicações e vantagens.
Atualmente Qualquer dispositivo "inteligente", desde um relógio de pulso até um computador, precisa de um “cérebro eletrônico” que faça o processamento das informações e execute os programas do usuário, este “cérebro” é o que chamamos de processador.

Para quem não sabe, os processadores ARM estão entre nós há quase 3 décadas, foram introduzidos em 1983 e atualmente estão por toda parte, seja no seu iphone, no seu netbook (alguns possuem processadores ARM), ou no seu smartphone.
Diferentemente de processadores da Intel que são fabricados por apenas uma empresa, os processadores ARM são licenciados e produzidos por diversos fabricantes.
A ARM Ltd. é a responsável pelo desenvolvimento dos chips e detentora dos direitos sobre a arquitetura, ela não produz os processadores se limita apenas em licenciar os projetos.
Os fabricantes podem optar por diversos tipos de licença, incluindo opções que permitem modificar os chips e incluir componentes adicionais, como o caso de fabricantes como a QualComm, a Texas Instruments e a Samsung, que desenvolvem soluções próprias, incluindo controladores auxiliares e modificações diversas.
Nos computadores PCs e Macs, os processadores devem ser poderosos, os mais usados pertencem à chamada “família x86”, como os Intel Core 2 Duo e Atom (em Netbooks) seguidos de perto por modelos da rival AMD. Mas em aplicações mais simples, como em celulares ou refrigeradores inteligentes, os x86 não são adequado: esquentam muito, gastam muita energia e são volumosos, além de terem desempenho além do necessário. Nesses casos, um processador mais simples seria mais indicado, é ai que entram os processadores ARM, que são descomplicados para programar, possuem tamanho reduzido e consomem pouca energia.
Os processadores ARM podem ser divididos em duas grandes famílias. A primeira é a dos chips ARM7, ARM9 e ARM11, que são mais antigos (embora sejam ainda os mais usados) e a linha Cortex, que representa a geração mais atual.
Os chips ARM11 são os usados na maioria dos smartphones atuais (praticamente todos os aparelhos com o Symbian ou o Windows Mobile lançados entre 2007 e 2009), enquanto os ARM9 e ARM7 são comuns em aparelhos mais simples e em produtos eletrônicos diversos. Eles são processadores de 32 bits muito baratos e fáceis de programar, o que oferece uma flexibilidade muito grande.
A família Cortex por sua vez é composta for três arquiteturas distintas. Na base da pirâmide temos os Cortex A5, que são chips simples e de baixo consumo, destinados a substituírem os ARM9 e ARM11 e aplicações diversas. Em seguida temos os Cortex A8, que são chips mais poderosos, destinados a smartphones e outros dispositivos móveis e os Cortex A9, que são chips multicore de alto desempenho.
O chip mais promissor é o ARM Cortex A9 MPCore, que é composto por 4 núcleos, cada um com um coprocessador aritmético independente e uma pequena quantidade de memória cache. Colocar um processador com 4 núcleos em um smartphone, cujo consumo elétrico é severamente limitado pela bateria, pode parecer uma idéia bastante estúpida à primeira vista, mas, na prática, não é tão ruim assim, a principal questão é que, assim como outros processadores ARM, o A9 inclui um sistema de gerenciamento de energia bastante eficiente, que permite que o processador seja capaz de ativar e desativar os núcleos de acordo com a demanda.

O Cortex A8 é o chip mainstream dentro da família. Ele é um processador dual-issue (duas unidades de processamento), que processa instruções em ordem (assim como o Intel Atom) e inclui um cache L1 de 64 KB, dividido em dois blocos de 32 KB (dados e instruções). Ele inclui também um grande (do ponto de vista de um chip para sistemas embarcados) cache L2 de 256 KB, que pode ser expandido para até 1 MB de acordo com o nível de desempenho desejado pelo fabricante. Ele incorporou também um pipeline de 13 estágios (contra os 8 estágios do ARM11), o que possibilita o uso de frequências de operação muito mais altas. Os chips produzidos usando uma técnica de 65 nm (como os usados no iPhone 3GS e no Nokia N900) operam na casa dos 600 MHz, mas dispositivos maiores (como no caso dos smartbooks) e também chips produzidos usando técnicas mais avançadas podem vir a operar em frequências muito mais altas, de até 1.0 GHz.
O Cortex A5, que é o caçula da família. Como a numeração sugere, ele é um processador de baixo custo e baixo consumo, destinado a substituir os chips ARM9 e ARM11 nos dispositivos mais simples. Ele pode abrir as portas para a criação de smartphones de baixo custo ou de aparelhos com uma autonomia muito maior, além de ser uma opção ao uso do Cortex A8 e A9 em smartbooks e players de mídia low-end.
Do ponto de vista da arquitetura, ele é basicamente uma versão reduzida do Cortex A8, que mantém o mesmo conjunto de instruções, mas adota uma arquitetura mais simples, baseada em uma única unidade de processamento (single-issue), com um pipeline muito mais curto, de apenas 8 estágios. Essa mudança faz com que ele não seja capaz de atingir frequências de clock tão altas, mas em compensação seja muito menor e ofereça um consumo elétrico por ciclo muito mais baixo.
Muitos desenvolvedores de softwares estão correndo contra o tempo para adaptarem seus programas a essa nova arquitetura, sendo o Google a empresa que mais investe na nova tecnologia. Em contrapartida, a Microsoft anunciou recentemente que a nova versão do Windows não terá suporte a computadores equipados com processadores ARM.
Além disso não existe nenhuma versão do windows que ofereça suporte aos processadores ARM a não ser o Windows Mobile, cujo único ponto em comum com seu “irmão” para PCs é o nome. Todavia, há inúmeras versões de Unix e Linux para ele, entre elas o popular Ubuntu, o Android, o WebOS, sistema operacional do Palm Pre, e o iPhone OS.
O motivo do desinteresse da Microsoft pode ser explicado pelo kernel que o Windows usa. O kernel linux, usado no Linux e Google Chrome,apesar de ainda ser precário, já possuem suporte ao ARM. O Mac OS é muito semelhante ao Linux, por isso a implementação é relativamente simples. No caso do Windows, seria preciso um kernel inteiramente novo.
Hoje vocês poderam conhecer um pouco mais sobre processadores ARM, suas "familias", caracteristicas e aplicações, pretendo fazer mais postagens sobre os processadores ARM que possuem uma vasta area de aplicações e são muito comuns em nosso dia-a-dia.

Este texto foi compilado a partir de trechos retirados das matérias dos sites listados a seguir, para maiores informações visite-os.
- Entenda os processadores ARM;
- O avanço do ARM: Cortex A8 e Cortex A5;
- Termos técnicos GdH: ARM;
- Smartphones: Guia Prático - capítulo 2, Carlos E. Morimoto;
- Arquitetura ARM na wikipédia (em inglês);

quinta-feira, 3 de dezembro de 2009

Projeto de Robô seguidor de Luz

E aí pessoal, hoje estreia aqui no blog uma nova categoria, robótica, nesta categoria irão ficar noticias relacionadas ao mundo da robótica e inteligência artificial  bem como alguns projetos de robôs que eu irei encontrando na internet com o passar do tempo. Para começar achei na internet um esquema de como fazer um simples robô seguidor de luz, já montei o meu e não é nenhum pouco dificil, funciona perfeitamente bem. Ai vai uma lista do que precisa:

Materiais:
- 1 circuito integrado LM555;
- 2 Resistores dependentes de luz (LDR);
- 2 pequenos motores elétricos iguais
- Bateria de 9V (aquelas de controle remoto sem fio)

O Robô:
De forma muito simplificada com uma eletrônica muito simples dependendo de apenas alguns componentes, esse robô detecta, assim que ativado, uma fonte de luz e vai na sua direção. Conforme são sensibilizados seus sensores de luz (os LDRs) eles enviam o sinal até o circuito LM555 que aciona os motores.

O circuito:

Vídeo de exemplo de um robô seguidor de luz:

Atenção: não se trata do mesmo robô, mas de um robô com o mesmo princípio de funcionamento !!!

OBS.:
1) onde aparece um + no esquema significa que estes pontos são todos ligados no positivo da bateria, os outros dois pontos com sinal de "aterramento" vão no negativo.
2) terminais 2 e 6 são conectados entre si.
Para aqueles que querem um pouco mais de conhecimento segue para download o datasheet do LM555, para baixar clique no botão abaixo
Observações importantes:
1) O sensor que ativa o motor do lado esquerdo, deve ficar do lado direito do robo e vice-versa. ou seja, os sensores devem ficar em lados opostos aos motores que ativam.
2) Os sensores LDR devem ficar o mais proximo possivel dos motores para ficar mais preciso.
3) Não faça um robô muito rápido, quanto mais lento melhor, assim ele se tornará mais preciso.
4) Não mova a fonte de luz muito rapidamente pois os LDR não são tão rápidos e o robô não conseguirá "processar" os dados e enviar o sinal aos motores rapidamente, se o robô "perder de vista" a fonte luminosa ele começará a girar ao redor de si próprio pois ficará ativo o último motor acionado (pelo menos foi o que aconteceu com o meu nos testes que fiz).

Controle
Para o controle do robô como descrito você deve ter uma fonte luminosa (lanterna) e aponta-la para a frente do robô (cerca de 5cm de distancia dos LDR) assim terá o controle total dele.

Obs referentes a fonte luminosa
Eu testei com várias lanternas, vários focos e diametros diferentes do foco da lanterna, o meu robô mede 5cm de largura e 7 de comprimento, os sensores estão a 4cm de distância entre eles e o foco da lanterna (aquela parte central que brilha mais quando você aponta ela para o chão) tem cerca de 3cm e este foi o diâmetro que fez eu ter um maior controle sobre o robô e ele ficou mais preciso. Uma luz muito forte com diametro maior que a distancia entre os sensores fez com que o robo não funcionasse corretamente a medida que o diâmetro aumentava.
Testei com várias lanternas e fontes luminosas diferentes e montei uma tabela, segue os resultados: (considere a distância entre os sensores de 4cm). Obs, testes realizados em ambiente com pouquíssima luz ambiente.

Fonte luminosa: lanterna de luz amarela (incandescente)
Diâmetro do foco: 3cm
Nível de Controle: total

Fonte luminosa: lanternas de LEDs de alto brilho
Diâmetro do foco: grande, mas com o auxilio de um cone de cartolina reduzi para os 3cm e obtive um resultado tão bom quanto o anterior, sem o cone o não se tem controle sobrê o robô
Nível de Controle: com cone: total | sem cone: nenhum

Fonte luminosa: lanterna de luz amarela (incandescente)
Diâmetro do foco: 8cm
Nível de Controle: muito baixo, quanto maior o diametro do foco em relação a distância entre os sensores é menor o controle.

Fonte luminosa: Laser Pointer (sim eu tinha que testar com lasers...)
Diâmetro do foco: uns 3mm
Nível de Controle: médio, como o ponto luminoso é pequeno demais, é muito fácil do robo "se perder" e não encontrar o ponto novamente, e começar a girar em torno de si. Para adquirir o controle novamente eu precisava da lanterna.


É isso pessoal, caso alguém tenha alguma dúvida na construção do robô pode me perguntar que irei ajudar. Um abraço a todos e até a próxima.