LusoRobótica - Robótica em Português

Robótica => Projectos de robótica => Projectos Concluídos => Tópico iniciado por: Tayeb em 03 de Setembro de 2010, 18:56

Título: Robô baseado no 8051 "Robo-51" e bluetooth
Enviado por: Tayeb em 03 de Setembro de 2010, 18:56
Olá membros e visitantes,

O Pedro Vicente, aluno do 3º ano do IST, engenharia de electrotecnia e de computadores, esteve a estagiar na Aliatron durante as férias de Verão.

Hoje, no seu último dia na Aliatron finalisou um projecto com o Robo-51 da Inex e comunicações bluetooth com controlo pela Internet.

O projecto será Open Source e publicado em breve pelo Pedro., incluindo aqui neste fórum.

Existem algumas soluções inovadoras que o Pedro preconizou.

Tayeb



Título: Re: Robô basedo no 8051 "Robo-51" e bluetooth
Enviado por: GnGz em 03 de Setembro de 2010, 19:13
Fixe! Pode ser o começo para alguns !
Título: Re: Robô basedo no 8051 "Robo-51" e bluetooth
Enviado por: Tayeb em 03 de Setembro de 2010, 20:15
Como adicional ao projecto do Pedro, fiz algo interessante ligando Processing (http://processing.org/) ao Robo-51.

Alto lá para quem pensa que se trata de um projecto com Arduino. Não, sr! Trata-se sim, de Processing com 8051! O bluetooth é só um meio de comunicação série. Até que podia ser uma cabo USB ou DB-9.

Esperarei pelo Pedro que ele publique o seu trabalho, para que depois eu explique aqui como é que liguei Processing ao bluetooth e por sua vez ao Robo-51.

Espero que tenha despertado interesse dos entusiastas da robótica deste espaço.
Título: Re: Robô basedo no 8051 "Robo-51" e bluetooth
Enviado por: GnGz em 03 de Setembro de 2010, 20:32
Como funciona o 8051
Título: Re: Robô basedo no 8051 "Robo-51" e bluetooth
Enviado por: Tayeb em 03 de Setembro de 2010, 20:37
Não entendí a sua pergunta. 8051 é a mãe de todos os micrcontroladores, e um padrão na Indústria quando se deseja um micrcontrolador robusto. Os chineses e os indianos são fãs do 8051.

Se está a perguntar como o programei, explico que foi o Pedro que o programou, usando linguagem C, tal como se faz com o Arduino.
Título: Re: Robô basedo no 8051 "Robo-51" e bluetooth
Enviado por: senso em 03 de Setembro de 2010, 21:39
Um 8051 é mais uma especie de mini computador que um micro-controlador devido aos interfaces extra que tem, tipo dma e coisas assim.
Título: Re: Robô basedo no 8051 "Robo-51" e bluetooth
Enviado por: GnGz em 03 de Setembro de 2010, 21:47
A intel tem bons microcontroladores ?
Título: Re: Robô basedo no 8051 "Robo-51" e bluetooth
Enviado por: senso em 03 de Setembro de 2010, 22:10
A intel não faz micro-controladores.
Para o iniciante atmega ou pic é o melhor, mas tens micro-controladores da ti, os msp, tens os xmos que se baseiam muito em processamento paralelo pois tem mesmo vários cores, e depois tens todo um mundo de arm's, sendo os mais virados para o hobby os cortex m3 e m0.
Título: Re: Robô basedo no 8051 "Robo-51" e bluetooth
Enviado por: GnGz em 03 de Setembro de 2010, 22:13
A intel não faz micro-controladores.
Para o iniciante atmega ou pic é o melhor, mas tens micro-controladores da ti, os msp, tens os xmos que se baseiam muito em processamento paralelo pois tem mesmo vários cores, e depois tens todo um mundo de arm's, sendo os mais virados para o hobby os cortex m3 e m0.
Tipo nunca ouvi falar muito dos microcontroladores  da Intel
Título: Re: Robô basedo no 8051 "Robo-51" e bluetooth
Enviado por: senso em 03 de Setembro de 2010, 22:15
Porque não existem, a intel só faz processadores, á muitos anos atrás fez micro-processadores que podem ser tornados com a ajuda de circuitos externos em micro-controladores, um exemplo é o 8051, ou o 80186.
Título: Re: Robô basedo no 8051 "Robo-51" e bluetooth
Enviado por: GnGz em 03 de Setembro de 2010, 22:16
Porque não existem, a intel só faz processadores, á muitos anos atrás fez micro-processadores que podem ser tornados com a ajuda de circuitos externos em micro-controladores, um exemplo é o 8051, ou o 80186.

Tou a falar desses antigos ...
Título: Re: Robô basedo no 8051 "Robo-51" e bluetooth
Enviado por: senso em 03 de Setembro de 2010, 22:17
Mas nem os encontras porque são raridades e compiladores C para aquilo são mais velhos que sei lá o que e é quase c proprietário, eu usei um 80186 numa cadeira e aquilo é um horror.
Título: Re: Robô basedo no 8051 "Robo-51" e bluetooth
Enviado por: GnGz em 03 de Setembro de 2010, 22:19
Até mete medo...
Título: Re: Robô basedo no 8051 "Robo-51" e bluetooth
Enviado por: ivitro em 03 de Setembro de 2010, 22:30
Título: Re: Robô basedo no 8051 "Robo-51" e bluetooth
Enviado por: Tayeb em 04 de Setembro de 2010, 01:18
Venho só desmistificar algumas coisas sem querer ofender ninguém:

A arquitectura Harvard é a arquitectura dos microcontroladores modernos tais como os PICs. Vêr na Wikipédia em:

http://pt.wikipedia.org/wiki/Arquitetura_Harvard (http://pt.wikipedia.org/wiki/Arquitetura_Harvard)

Para distinguir microcontroladores e microporcessadores, vêr em:

Não acho que seja importante se o 8051 é uma cópia do Zilog Z80. Neste contexto podemos dizer que as instruções dos PICs são cópias do 8051. O próprio Z80 copiou as instruções do Intel 8080. De qualquer modo Z80 era um microprocessador e não um microcontrolador. O conceito de microcontrolador advém do 8051 daí o facto de eu ter chamado 8051 mãe dos microcontroladores.

http://www.picvietnam.com/download/Basic%20Conceptions.pdf (http://www.picvietnam.com/download/Basic%20Conceptions.pdf)

Os 8051 é só um nome que se dá actualmente aos micrcontroloadores modernos daquela família. O anterior foi 8031 que ainda é utilizado. O microcontrolador que estivemos a usar no robô não é o 8051 de há 30 anos atrás, o qual era executado a partir duma EPROM externa. O que usamos hoje em dia são 8052 ou 8053 e são fabricados por empresas tão conceituadas como Atmel, o mesmo fabricante dos AVRs. O microcontrolador é de família CMOS e tem memória EEPROM e é veloz. É tão moderno como os seus congéneres PICs, AVRs, ARMs, etc. É tão moderno que a Cypress incorporou 8051 nos PSoCs.

Quando treinamos estagiários na Aliatron nem nos preocupamos em explicar o interior dos micrcontroladores. Eles são como caixas negras. Cingimo-nos só às entradas/saídas e à capacidade de memória e à velocidade. Acho que se devem usar compiladores como ferramentas de desenvolvimento. A nossa preferência é pela linguagem C (embora eu pessoalmente tenho uma preferência especial pela linguagem Basic) e se possível utilizar ferramentas Open Source. No caso actual o Pedro usou versão gratuita do compilador C da Raissonance

O microcontrolador 8051 é muito popular no meio académico porque é ainda ensinado e porque ainda existem muitas placas de desenvolvimento nestes meios. Esta talvez seja a razão porque nos países mais populosos como a China e a India o microcontrolador 8051 continue a ser muito popular.

Em suma não importa qual o microcontrolador que escolhemos mas sim os compiladores. Os compiladores da Keil são excelentes e eu por exemplo gosto de utilizá-los. O suporte técnico que oferecem é excelente.

Já agora o seguinte artigo explica porque 8051 é ainda tão popular. A chave é interrupts. No projecto do Pedro utilizou-se a porta P3.2 para o efeito:

http://www.replacelaptop.com/computing/the-popularity-of-8051-microcontrollers-the-role-of-c-in-programming-them-4860.html (http://www.replacelaptop.com/computing/the-popularity-of-8051-microcontrollers-the-role-of-c-in-programming-them-4860.html)

 
Título: Re: Robô baseado no 8051 "Robo-51" e bluetooth
Enviado por: Tyran em 04 de Setembro de 2010, 12:13
O meu primeiro contacto com micro controladores foi com um "8051" (AT89C51RD2 da atmel, uma máquina acreditem :) ) e sem dúvida que me marcou e criou logo ali uma paixão :D Até me está agora a dar vontade e fazer qualquer coisa com a minha plaquinha, talvez aprenda agora a programar em C para lá que quando comecei foi em assembly, o que também trouxe as suas vantagens no aperfeiçoamento de algoritmia na minha tola   :o

Quanto ao keil então, nunca mais vi melhor sinceramente, o avr studio está a anos luz daquilo...   ::)
(ok claro que estamos a comparar com uma ferramenta profissional e que deve ser bem cara nem sei... mas eu usava a básica e apesar daquilo dar sempre os avisos chatos uma pessoa habitua-se... hmm mas agora já nem sei se depois não teria trocado a básica pela normal ali do canto  ;D )
Título: Re: Robô baseado no 8051 "Robo-51" e bluetooth
Enviado por: ivitro em 04 de Setembro de 2010, 16:17
ola...

atençao que eu nao disse que era harvard mas sim um principio dessa arquitectura que hoje esta implementada em varios micros...

na minha opinião é importante saber minimamente como o micro funciona por dentro por senão somos programadores e nao electrotecnicos... inda por cima a programar assembly convem saber isso...

quando disse que tem 30, não quer dizer que nao seja actual... um motor boxer duma bmw tem mais de 70 anos e ainda hoje é utilizado...

não estou a criticar...so disse isto para não me interpretarem mal...

abraço
Título: Re: Robô baseado no 8051 "Robo-51" e bluetooth
Enviado por: senso em 04 de Setembro de 2010, 16:58
Pois, a base pode ter 70 anos no caso do motor ou 30 no caso do micro, mas ao longo do tempo vão incorporando novas tecnologias e é isso que cria a evolução, a base pode ser a mesma mas um 8051 antigo não devia conseguir correr a 20 ou 30mhz e há até modelos que chegam aos 150Mhz, assim como um boxer antigo não tinha mais que 20 ou 30cv
Título: Re: Robô baseado no 8051 "Robo-51" e bluetooth
Enviado por: Tayeb em 04 de Setembro de 2010, 18:39
Caro ivitro,

Concorco consigo que devemos conhecer a parte interna do micrcontrolador, porém pela experiência própria, alguém que se incia deve em primeiro lugar começar com as coisas simples (por exemplo piscar um led) e gradualmente evoluir.

Cedo terá que conhecer o interior do micrcontrolador. A linguagem C tem a vantagem de nos obrigar muito cedo a compreender o funcionamento interno do microcontroloador devido às bibiliotecas que temos que utilizar.  Basta a biblioteca não fazer o que sejamos fazer, e lá estamos nós sem querer a analisar o funcionamento interno do micrcontrolador.

Tayeb

Título: Re: Robô baseado no 8051 "Robo-51" e bluetooth
Enviado por: Tayeb em 04 de Setembro de 2010, 18:48
Pois, a base pode ter 70 anos no caso do motor ou 30 no caso do micro, mas ao longo do tempo vão incorporando novas tecnologias e é isso que cria a evolução, a base pode ser a mesma mas um 8051 antigo não devia conseguir correr a 20 ou 30mhz e há até modelos que chegam aos 150Mhz, assim como um boxer antigo não tinha mais que 20 ou 30cv

Se lermos a história dos micrcontroladores, tudo começa com 8470 que era usado pela Intel para controlar o teclado e há ainda teclados que levam um chip idêntico. O microprocessador Z80 nasceu com a saída de um engenheiro da Intel daí que as instruções de Z80 são idênticas às do velho Intel 8080. É fascinante. Porém ninguém tenta reinventar a roda. Melhora-se a roda e usam-se conceitos novos mas ninguém tenta reinventar a roda.

Como disse e bem o velho 8051 de há 30 anos coitado não podia correr a 20 ou 30MHz. É interessante saber que o PIC foi o primeiro micrcontrolador a incorporar memória Flash. Eu sou ainda do tempo em que o programa era guardado numa EPROM.
Título: Re: Robô basedo no 8051 "Robo-51" e bluetooth
Enviado por: Tayeb em 06 de Setembro de 2010, 20:22
Como adicional ao projecto do Pedro, fiz algo interessante ligando Processing (http://processing.org/) ao Robo-51.

Alto lá para quem pensa que se trata de um projecto com Arduino. Não, sr! Trata-se sim, de Processing com 8051! O bluetooth é só um meio de comunicação série. Até que podia ser uma cabo USB ou DB-9.

Esperarei pelo Pedro que ele publique o seu trabalho, para que depois eu explique aqui como é que liguei Processing ao bluetooth e por sua vez ao Robo-51.

Espero que tenha despertado interesse dos entusiastas da robótica deste espaço.

Já concluí o projecto com Processing. Acrescentei ao projecto suporte de voz. Espero escrever o tutorial nas próximas horas. Logo que Pedro publique o seu trabalho, publicarei o meu, que como já expliquei utiliza Processing.

Acho que poderá inspirar muitos a explorar o uso de Processing. Há tempos atrás escreví aqui também sobre Scratch (http://scratch.mit.edu/), que tem por trás Processing. A programação de Scratch  (http://lusorobotica.com/index.php?topic=1713.0) é por linguagem gráfica. Processing e Scratch acrescentam interactividade aos projectos. As coisas estavam na prateleira e tudo renasceu quando Pedro fez o seu trabalho com bluetooth. Enfim, quando lerem o tutorial perceberão melhor.

Tayeb