sexta-feira, 27 de fevereiro de 2015

Slides da Primeira Aula sobre Microcontroladores ARM Cortex M4 - UNISAL

Slides da Primeira Aula sobre Microcontroladores ARM Cortex M4 - UNISAL, ministrada no Curso de Pós-Graduação em Sistemas Embarcados, em 28/02/2015.

LINK PARA O MATERIAL DA AULA

Exemplo de Código em C que implementa FFT - Fast Fourier Transform

O código abaixo implementa, em linguagem C, a Transformada Rápida de Fourier (FFT) baseado na Relação de Euler e na definição.
Eu testei este código utizando o Compilador DevC++.
Notem que o código é experimental e ainda precisa de aperfeiçoamentos, mas o básico da implementção aí está !


#include <iostream.h>
#include <stdio.h>
#include <math.h>

int i;

int main(void )
{
int n=200;  // 200 pontos de amostra

double* tempo=new double[n];     //armazena as 200 amostras igualmente espaçadas
do sinal
for(i=0;i<n;i++)
tempo[i]=cos(6.2831853*10*((double) i/(double)n)) + cos(6.2831853*25*((double)i/(double)n)) + cos(6.2831853*50*((double)i/(double)n)) + cos(6.2831853*100*((double)i/(double)n));


double *tfr=new double[n]; // armazena a parte real do sinal
double *tfi=new double[n]; // armazena a parte imaginária do sinal

for(int u=1;u<(n/2)+1;u++) {
tfr[u]=0;
tfi[u]=0;
for(int x=0;x<n;x++)

{ // A exponencial de (-j2put)/N da equação eq 1, onde j é o número complexo v-1 é
 //  matematicamente igual a cos((-j2put)/N) – j*sin((-j2put)/N)

tfr[u]+=tempo[x]*cos(6.2831853*u*(double)x/(double)n);
tfi[u]-=tempo[x]*sin(6.2831853*u* (double)x/(double)n);
}
tfr[u]/=(double)n;
tfi[u]/=(double)n;
cout<<"\nNa frequência de "<<u<<" Hz, a amplitude é de "<<sqrt((tfr[u]*tfr[u])+(tfi[u]*tfi[u])); //a raiz quadrada da
//soma dos quadrados das partes reais e imaginárias produz o módulo (amplitude) de cada frequência.
getchar();
}
}

quarta-feira, 25 de fevereiro de 2015

Seminários apresentados no dia 21/02/2015 na FT - UNICAMP

Deixei aqui neste link :


todo o material relativo aos Seminários apresentados no dia 21/02/2015, referentes à Disciplina Microcontroladores, ministrada na FT - Faculdade de Tecnologia da Unicamp.
Obrigado a todos os alunos pelo empenho e pela participação.
O Curso mencionado é este aqui, pós-graduação em MECATRÔNICA:
                       Link para a UNICAMP

Os temas de cada Seminário foram os seguintes:

1- Controlador PID com Arduino e o projeto do Segway
2 - Motores de Passo e Arduino;
3-  Analisador de Energia Elétrica com Arduino
4 - Filtros Digitais
5 - Protocolo MODBUS e Arduino
6 - Controle de Servomotores com Arduino
7 - Protocolo 1-wire e uma implementação em Arduino
8 - Protocolo I2C implementado com Arduino
9 - Geranddo caracteres de video composto com Arduino

Agradeço também ao professor Dr. Arthur Rangel pela oportunidade de trabalhar neste excelente Curso, o qual recomendo a todos os profissionais.

Na foto, o aluno Eng. Igor Massao, mostrando seu projeto de Segway:

Na foto a seguir, alguns alunos apresentando seu projeto:


SERÁ O FIM DO ARDUÍNO ?

Tudo na vida (até mesmo a própria vida !) chega ao final algum dia.

Duas notícias me chamaram a atenção sobre o famoso Projeto Arduino.
Uma delas, de um site alemão:
http://www.heise.de/make/meldung/Arduino-gegen-Arduino-Gruender-streiten-um-die-Firma-2549653.html
e a outra de um site em italiano:
http://www.wired.it/gadget/computer/2015/02/12/arduino-nel-caos-situazione/
que podem anunciar o Princípio do Fim do mais bem sucedido Projeto Open-Source de Sistema Embarcado do mundo.
Numa livre tradução (e não tão perfeita assim, devido à meus limitados conhecimentos desta língua) do site italiano acima:

"O que acontece no Arduino?
Por trás do projeto magnífico de hardware open source, uma  excelência tecnológica italiana, há um confronto entre os gestores que ameaça a própria vida de Arduino
Texto original escrito por Riccardo Meggiato

Ingrid Bergman gostava de dizer que "O sucesso é conseguir o que se  quer, mas a felicidade é querer o que você tem.".  Neste sentido, Massimo Banzi, um dos arquitetos do Arduino, o sucesso  foi obtido com certeza, mas a felicidade (completa), agora, tem que esperar. Porque sua criação pode apresentar vários sinais de abrandamento, devido a uma divisão interna que, como ele mesmo diz, só faz mal para o nome do Arduino.

Mas o que aconteceu, exatamente? Primeiramente, vamos começar por dizer que, por trás do nome do Arduino, o príncipal kit eletrônico eleito dos fabricantes de sistemas embarcados de todo o mundo, estar sempre ligada ao nome  de Banzi,, na verdade, também operam outras quatro pessoas: David Cuartielles, Tom  Igoe, Gianluca Martino e David Mellis.

Para os usuários finais, saber disso não muda muito: só em 2013, foram vendidos mais de 700 mil kits, para estabelecer o sucesso de um projeto fabuloso de hardware open source tão versátil e econômico.

Mas do ponto de vista dos negócios, esta gestão de cinco cabeças deu alguns problemas.

Em poucas palavras, Arduino é um projeto "open source", que qualquer pessoa pode produzir as placas por si mesmo, em qualquer lugar do mundo.

No entanto, sendo o nome do produto protegido por direitos autorais, todas as placas ("originais", que podem carregar o nome Arduino) são fabricados a partir de uma única fábrica em Ivrea.

 À frente da fábrica está o engenheiro Gianluca Martino, um dos cinco
Até aí tudo bem, só que os outros quatro membros, há algum tempo, pressionam para internacionalizar a marca, com o que  Martino, no entanto, não concorda.

E assim, de acordo com Banzi, aqui está o problema: encarregou da fábrica, como CEO, Federico Musto, uma pessoa externa ao projeto inicial sem, no entanto, avisar demais os membros.


Neste ponto, desencadeou-se uma briga: na verdade, por um lado encontramos Martin e Musto, enquanto, por outro, Banzi, Cuartillies, Igoe e Mellis.  Para levantar uma cortina de dúvida, um caso de coincidência surgiu  recentemente:. A empresa que produz placas  com o nome oficial, com Musto como gerente, tem como seu website www.arduino.org , enquanto o grupo que gerencia o projeto de código aberto, e, em seguida, Banzi e os outros três, mantém o site www.arduino.cc

Não surpreendentemente, o ".org" website é de propriedade diretamente  de Federico Musto, como demonstrado por uma consulta simples ao domínio "Whois".

Ao que parece, Musto e Martin, numa jogada planejada, comunicaram uma "virada corporativa"  no grupo Arduino, e anunciando alianças que em vez disso, nas palavras de Banzi, foram sancionadas pelo Pohl.

Basicamente, de acordo Banzi, a estratégia de Musto Martino é atrair a atenção do mundo sobre a sua empresa, tentando remover do projeto Arduino a  visibilidade em Creative Commons.
O professor, que nasceu em Monza, entre outras coisas, argumenta que quatro membros estavam empurrando para a internacionalização do projeto, enquanto a dupla que defende o  Arduino original (a do ".org") é mais refratário a esse tipo de expansão.

Difícil determinar o que realmente está acontecendo. O que é certo é que este dano está provocando um caos  no mundo inteiro dos usuários de Arduino.

A explicação do mistério pode ser uma mistura entre a confusão criada entre a realidade comercial e de código aberto, e a furada comercial  ao encontrar uma confirmação no campo internacional, principalmente pressionada pela demanda dos clones de Arduinos chineses.

A não perder os prêmios, mas é um fato que concorrentes  para o Arduino não faltam (e, como no caso de Raspberri PI, também são muito agressivos) e, no fundo, poderia estar escondendo  um mercado fragmentado e menos rentável do que  a realidade, pelo menos para as placas fabricadas na Itália.

 Hipótese  sugestiva:   Estaria o Projeto Arduino  em crise,  além dos problemas internos?

Alianças como a anunciada  com a  Intel parecem refutar esta hipótese, mas precisa se saber quais são os termos econômicos de associações como esta.
A história parece estar apenas começando. "



terça-feira, 24 de fevereiro de 2015

Curso de ARM Cortex ministrado na UNICAMP (FEEC)

Aulas de Cortex M4, faculdade de Engenharia Elétrica da Unicamp, preparadas pela professora Wu Shin Ting e pelo professor Antonio Quevedo.
A disciplina foi ministrada na FEEC no segundo semestre de 2014 e foi baseada nos microcontroladores ARM Cortex fabricados pela FreeScale (Kinectis).
O compilador utilizado por eles foi o CodeWarrior.
O código da disciplina é EA871 e o material está disponivel aqui:

Disciplina EA871 -Link da Unicamp

Só estão disponiveis os materiais referentes às aulas n. 5,6,8,9,10,11,12 e 13

As demais aulas não foram disponibilizadas.

Deixei aqui todo o material disponivel:

LINK DO MATERIAL DO CURSO

domingo, 22 de fevereiro de 2015

Sintonizador FM em kit - vendido pela JME

Em meados dos anos 80, a Revista Saber Eletrônica, da qual eu fui um colaborador com alguns artigos, publicou um projeto de um ótimo sintonizador de FM, de circuito super-heteródino, cuja foto da placa montada eu mostro abaixo:

Este kit era comercializado por uma empresa chamada JME Comércio e Indústria Eletrônica LTDA., cuja sede ficava na Rua Timbiras, região do Bairro de Santa Ifigênia, no Centro comercial de São Paulo.
Eu tive a sorte de adquirir um desses kits em meados de 1986.
Disponibilizo assim o Manual de Instruções e Montagem do Kit Sintonizador FM da JME, com exclusividade, pela primeira vez na internet brasileira:
LINK PARA O MANUAL DESTE KIT

O artigo foi publicado diversas vezes na revista Saber Eletrônica, com algumas variações, mas o Manual do Kit eu nunca encontrei na internet, então eu o estou disponibilizando no link acima.

Aqui um video do Youtube mostrando este receptor em funcionamento:
Video do Sintonizador no YouTube

O colega radioamador e técnico em eletrônica Luciano Sturaro também montou o mesmo circuito, e fez alterações interessantes. Aqui um vídeo do Projeto do Luciano:https://www.youtube.com/watch?v=FTChIohkvg8
E aqui o link do Projeto completo no site do Luciano: http://www.py2bbs.qsl.br/explorador_vhf.php




Fonte para Video-Game Profissional (ARCADE) marca KZV

Em meados dos anos 80 (mais precisamente por volta de 1989) eu era técnico em Eletrônica e fui contratado para dar assistência técnica em um Fliperama (para quem não sabe o que é isso, eram as lojas que mantinham os video-games profissionais, os chamados "Arcades" e os jogos eletrônicos do tipo "Pinball") aqui na minha cidade.
As máquinas Arcade usavam, naquela época, fontes de alimentação do tipo linear (as fontes chaveadas, tão pequenas e tão baratas, produzidas na China, que estão hoje em dia dentro do gabinete de todos os computadores PC do tipo desktop praticamente não existiam, eram raras).
Uma fonte de alimentação muito popular naquela época era a da marca KZV.
Era uma fonte fabricada aqui mesmo, no interior de São Paulo, estabilizada, com um enorme transformador (e muito pesado também) capaz de fornecer as seguintes tensões: 5 volts DC com corrente de 5 amperes, 12 volts DC com corrente de 0,9A, -5V com corrente máxima de 0,4A e -12V DC com corrente de 0,7A.
Deixe aqui o manual de uma destas fontes:
LINK PARA O MANUAL DA FONTE KZV
Aqui o esquema elétrico da fonte KZV modelo 15S.

Notem o uso de um circuito integrado regulador de tensão do tipo LM 723 e dois transístores do tipo 2N3055, que ocupavam um bom dissipador de calor.

domingo, 8 de fevereiro de 2015

Gerando onda Senoidal com Microcontrolador PIC

Minha versão para o Firmware do RomanBlack

Escrevi minha propria versão para o Firmware Gerador de onda Senoidal (na verdade, qualquer forma de onda...) a partir de um artigo do site do RomanBlack

Esse é o artigo original:

http://www.romanblack.com/onesec/Sine1kHz.htm

Segue minha versão em anexo para quem interessar:



O Hardware é um pouco diferente, ao invés de usar um PIC16F628, eu usei um PIC12F683  com oscilador interno de 8 MHz ( o original usa um cristal de 20 MHz)

Por conta disso, aumentei o capacitor do integrador para 1uF ao invés de 330 nF (ver figura anexo):

Meu programa (Firmware, escrito no Compilador CCS para PIC12F683 mas adaptavel para qualquer outro modelo de microcontrolador PIC que possua pelo menos um PWM por hardware):

Meu Firmware em C

Experimentei o programa do RomanBlack antes.

O dele foi escrito para Compilador MikroC  (versão 8.xx)

O meu foi escrito para compilador CCS  PCWHD  (versão 4.xx )

Modéstia à parte, eu experimentei os dois, e o meu ficou melhor do que o dele: senoide mais pura, menos ripple e menos harmonicos... alem do tamanho do codigo, depois de compilado, ter ficado menor