LusoRobótica - Robótica em Português

Sistemas específicos => PIC => Tópico iniciado por: joaopedrocmp em 12 de Junho de 2011, 22:12

Título: Como Começar?
Enviado por: joaopedrocmp em 12 de Junho de 2011, 22:12
Boas pessoal,

Utilizo o arduino ha algum tempo, mas gostava de fazer projectos para um fim especifico, o que me levava a ter que comprar um arduino para cada um.e foi então que me surgiu o PIC.

Não ficava mais barato comprar os pic's, programa-los e inserir num pequeno circuito para o fim especifico?

A programação é muito diferente do arduino?

È fácil transferir dados de pois de programado?

Obrigado
João Pereira
Título: Re: Como Começar?
Enviado por: metRo_ em 12 de Junho de 2011, 22:36
Porque PIC e não um Atmega?! Se calhar estás a confundir os termos.

E porque não Arduinos feitos por ti? http://makebits.net/tutorial-montar-um-breaduino/ (http://makebits.net/tutorial-montar-um-breaduino/) ;)
Título: Re: Como Começar?
Enviado por: joaopedrocmp em 12 de Junho de 2011, 22:45
Então seria so comprar o atmega, e aqueles componentes, fazer uma board, e montar?
E era programado como o arduino, mas ficava mais barato, para projectos que necessitam do equipamento premanentemente.

ja agora, um pic não faz basicamente a mesma função do arduino, mas com mais processamento de dados?
Título: Re: Como Começar?
Enviado por: senso em 12 de Junho de 2011, 23:29
Um PIC é um micro-controlador da Microchip, Atmegas são da Atmel, tirando a parte que são micro-controladores não têm mais nada em comum, para programares um PIC18F podes usar o C18 gratuito da microchip e o MpLab, mas não há cá papinha feita do Arduino tens de mexer tu com os registos para fazer tudo.

Tendo já usado os dois, e sei que os amantes dos PIC's me vão matar os PIC12f, 16F e 18F são um horror comparados com os Atmega, são mais lentos, só têm 2 registos, interrupções por software os timers são muito menos flexiveis, são um pain in the ass mesmo, só para utilizadores experientes se és um user casual de Arduino compra antes uns Atmega 328p com bootloader já programado que custam 4€ cada um na inMotion e na PtRobotics se não me engano, depois é só adicionar um condensador ou 2 de decoupling, resistencia pull up de 10K na linha de reset, cristal e dois condensadores de 12-22pF no cristal, tudo junto deve dar ai 7 ou 8€ ou nem isso, podes simplesmente tirar o Atmega do teu Arduino e ligar o Rx e o Tx que são o digital 0 e 1 e fazes upload normalmente, PIC's não conheço nenhum que se venda com bootloader logo precisas de um PicKit 2 ou 3 para os programar.
Título: Re: Como Começar?
Enviado por: joaopedrocmp em 12 de Junho de 2011, 23:32
Fixe, sendo assim, utilizemos o atmega :P

Muito obrigado
Título: Re: Como Começar?
Enviado por: senso em 12 de Junho de 2011, 23:42
Com os Atmega tens a vantagem de usar o IDE do Arduino e as suas funções simplificadas e podes tambem programar tu directamente os periférios via registos se quiseres aprender mais, se não continuas com as funções do Arduino.
Só uma coisa, nem todos os Atmegas podem ser usados com o IDE do Arduino ou pelo menos não de forma directa.
Título: Re: Como Começar?
Enviado por: joaopedrocmp em 12 de Junho de 2011, 23:46
Sim, mas posso comprar um atmega328, mete-lo no arduino, programar, e depois tirar e meter numa board.

Por enquanto prefiro aprender mais sobre o arduino, e depois talvez passe para outro tipo de programação :P
Título: Re: Como Começar?
Enviado por: senso em 12 de Junho de 2011, 23:52
Mas tem de ter já o bootloader programado, não esquecer.
Título: Re: Como Começar?
Enviado por: beirao em 12 de Junho de 2011, 23:59
senso, o que queres dizer quando dizes que os PICs so têm 2 registos?
Título: Re: Como Começar?
Enviado por: senso em 13 de Junho de 2011, 00:10
O W e o F, á muito muito tempo atrás li um livro inteiro sobre programação de PIC's em assembly e aquilo só tinha w e f, e era só um de cada, mas não me lembro que familia era.
Depois há a parte da divisão do clock por 3, um atmega a 20Mhz pode chegar aos 20Mips, um PIC a correr a 20Mhz pode chegar a 5Mips, o que é uma diferença brutal.
Título: Re: Como Começar?
Enviado por: joaopedrocmp em 13 de Junho de 2011, 00:35
Sim ;) muito obrigado

Digamos este: http://loja.lusorobotica.com/microcontroladores/28-atmega328-with-arduino-bootloader.html (http://loja.lusorobotica.com/microcontroladores/28-atmega328-with-arduino-bootloader.html)
Título: Re: Como Começar?
Enviado por: joaopedrocmp em 13 de Junho de 2011, 00:40
Ja agora, ha preferencia pelo bootloader que teem? decimilia, uno...
Título: Re: Como Começar?
Enviado por: senso em 13 de Junho de 2011, 00:41
Esse não porque a loja do Lusorobótica está neste momento num estado indefinido e podes ficar meses á espera dos componentes.
Penso que tudo o que está á venda usa o bootloader compativel com STK500v2 e é igual em todos os Arduinos menos no Uno que não aconselho porque tem uma carrada de bugs.
Título: Re: Como Começar?
Enviado por: joaopedrocmp em 13 de Junho de 2011, 00:43
Não posso utilizar um atmega com o bootload do decimilia num deumilianove pois nao?
Título: Re: Como Começar?
Enviado por: senso em 13 de Junho de 2011, 00:46
Podes, é tudo igual só muda o nome da placa.
Título: Re: Como Começar?
Enviado por: joaopedrocmp em 13 de Junho de 2011, 00:52
Obrugadão ;)
Título: Re: Como Começar?
Enviado por: Sérgio_Sena em 13 de Junho de 2011, 10:18
Um PIC é um micro-controlador da Microchip, Atmegas são da Atmel, tirando a parte que são micro-controladores não têm mais nada em comum, para programares um PIC18F podes usar o C18 gratuito da microchip e o MpLab, mas não há cá papinha feita do Arduino tens de mexer tu com os registos para fazer tudo.

Conseguem-se facilmente compiladores de C para as séries baixas, não há necessidade de 18.  Essa é uma série que não se sabe ainda bem o sitio dela...  eu salto da 16 directo pra a 24, a 18 já não merece a pena.





Tendo já usado os dois, e sei que os amantes dos PIC's me vão matar os PIC12f, 16F e 18F são um horror comparados com os Atmega, são mais lentos, só têm 2 registos, interrupções por software os timers são muito menos flexiveis, são um pain in the ass mesmo, só para utilizadores experientes  (...) PIC's não conheço nenhum que se venda com bootloader logo precisas de um PicKit 2 ou 3 para os programar.

Colega, nunca vi tanto disparate junto.  ;D  LOOL

Sim, a arquitectura do AVR está mais inteligente que a do PIC, isso está mais que batido. Quando a Atmel começou com os micros, olhos para os erros dos outros e não fez os mesmos. Enqt q a Microchip qd começou, agarrou no que já estava feito (visto ter comprado o IP dos micros) e partiu daí. Como não quis alterar logo, tem até hoje o legacy de problemas de arquitectura, programadores e emuladores... um fracasso. Mas vivemos com ele e temos q o ultrapassar. O serviço deles bate qq outra marca.

São mais lentos por isso mesmo, a arquitectura não está tão bem pensada como os novos AVR, q mesmo os mais antigos continuam a ser novos.

E não teem só dois registos, teem dezenas deles. Deves estar a falar do W e do F, que não são vistos como registos directamente endereçaveis. O W serve de acumulador para a ALU e para o trabalho do CPU. O F não é nada, não é registo. É definição de destino do trabalho. E como destino do trabalho podes ter o W ou o F (registo geral em RAM).

As interruções não são por software, embora pareçam. Nas séries 12 e 16 há um vector de interrupção, para onde todas convergem, e aí por software é q se verifica qual delas ocorreu.
A série 18 tem dois vectores, cada um com um peso diferente.
As séries superiores teem um vector por cada tipo de interrupção. Mas inteligente e mais dinâmico.

Os timers teem q se saber usar. Mas isto aplica-se a qq micro.
Eu uso dezenas de timers com apenas um timer de hardware. Tenho-os todos em paralelo na interrupção do meu TIMER, e incremento-os individualmente se houver permissão. Já falámos disso noutro post.

E o facto de não haver PICs com bootloader... é pq ainda ninguém se lembrou de o fazer, e porque há milhentos bootloaders disponiveis para PIC. Fica dificil esolher um q seja de concenso geral.
Eu uso pontualmente o Tiny, mas para development apenas. Qd o produto sai, o bootloader desaparece.


Em geral, o AVR é melhor q o PIC.
Mas temos q viver com o que há.


Os AVRs vivem, porque o italiano lembrou-se de fazer o arduino com AVR. Se se tivesse lembrado de fazer com PIC, por esta hora já os AVR estavam extintos.... foi a sorte!
Título: Re: Como Começar?
Enviado por: senso em 13 de Junho de 2011, 21:41
Eu falo em registos de uso do processador, o avr tem 32, mas se falar em registos de configuração e componhia o avr tambem tem centenas deles, digo é registos uteis para o processador usar directamente, sempre tive ideia que os PIC's só têm um ou dois..

Quando falo em interrupções por software é que as mesmas não são vectorizadas, sim o 18f tem uma interrupção de alta prioridade e outra de baixa, mas depois disso é andar a testar flags para saber quem gerou a interrupção, coisa que nos avr's isso é feito no hardware e não no software.

Eu não usei os timers a fundo nos PIC's nem tive paciencia para olhar muito mais para eles, mas acho os timers dos avr's mais flexiveis e faceis de explorar, tanto para uso geral, como compare, ou gerar pwm.

Quando disse não haver PIC's com bootloader é porque efectivamente não se encontra PIC's á venda com bootloader tirando provavelmente os PICAXE que têm todo o interpretador de basic dentro deles, não disse que não havia bootloaders para PIC.

Não sei se foi a sorte se foi o facto de teres um compilador para avr baseado em gcc completamente free e sem limitações quer em tamanho de .hex gerado quer a nivel de optimizações e companhia, porque diga-se de passagem que usar gcc e depois limitar o compilador a O1 é no minimo estranho, mas isso é lá com a Microhip porque não é qualquer estudante que se dá ao luxo de dar 500€ ou 1000€ ou seja que quantia for por um compilador.
Título: Re: Como Começar?
Enviado por: Vatico em 18 de Julho de 2011, 21:12
Boas eu tenho um arduino mas queria começar a experimentar as PIC para projectos mais basicos ou em que nao compense ter la o arduino. Começei a semana passada a ler um livro de introdução as PIC (mais propriamente a 16F84) e gostava de saber se acham que devo continuar e aprofundar este tema das PIC ou se nao vale apena e aprofundo-me nas avr.
Já tenho aqui um programador de PIC emprestado para os de 18 pinos, PICs mesmo a microchip tambem envia samples por isso é que tou em duvida se continuo ou nao o estudo das PICs.

Já agora alguem me pode dizer qual é que consome mais: se uma pic16f84A ou um atmega 168 ou 328. Tenho a certeza que encontro a informação nos datasheets mas já agora se alguem souber mais ou menos de cabeça ;)
Título: Re: Como Começar?
Enviado por: senso em 18 de Julho de 2011, 21:28
Porque não usas os avr's simplesmente sem ser num Arduino?
Tens desde os tinys com 8 pinos até aos 1280 por exemplo com 40 patas, 128Kb de flash e 16Kb de ram tudo em DIP.
Mas se queres mesmo usar PIC's, força nisso, mas são um pouco diferentes dos avr's, e com o mesmo clock um avr é sempre mais rápido, mas isso só depende da aplicação, se precisas ou não de capacidade de processamento, se não forem chips XLP um avr consome menos mA/Mhz que um PIC.
Título: Re: Como Começar?
Enviado por: joaopedrocmp em 18 de Julho de 2011, 21:37
e ha esse 1280 com o boatloader do arduino? :P
Título: Re: Como Começar?
Enviado por: senso em 18 de Julho de 2011, 21:44
Á venda não sei, mas comprar programador por comprar, compras um avr ISP, que tens no eBay os USBasp que custam 18€ e programam tudo quanto é Atmega da Atmel.
Título: Re: Como Começar?
Enviado por: CBX em 18 de Julho de 2011, 22:08
o dip com 128k de flash é o 1284, dá para programar o bootloader do arduino, procura por "sanguino" mas vais precisar de um programador para gravar o bootloader e depois um cabo usb-serial para enviar as "sketchs"

o usbasp como disse o senso arranja-se no ebay mas por menos de 5€, +\- 18 é o SKT500
Título: Re: Como Começar?
Enviado por: Vatico em 18 de Julho de 2011, 23:09
Sim senso o que eu tava a pensar era só usar mesmo o atmega em si para o projecto e nao o arduino todo. Tenho de ir fazer um bocado de pesquisa e ver se vale a pena começar a investir nas 16f84a.

Cumps ;)
Título: Re: Como Começar?
Enviado por: PDI em 18 de Julho de 2011, 23:38
Se queres algo económico experimenta o paperduino:
http://lusorobotica.com/index.php?topic=847.msg9061#msg9061 (http://lusorobotica.com/index.php?topic=847.msg9061#msg9061)

Ou um breaduino:
http://lusorobotica.com/index.php?topic=1359.msg13395#msg13395 (http://lusorobotica.com/index.php?topic=1359.msg13395#msg13395)
Título: Re: Como Começar?
Enviado por: senso em 19 de Julho de 2011, 01:42
Não gosto dos PIC's de 8bits, para mim 8bits é avr, 16 bits é PIC, 32 bits é PIC ou ARM.
É claro que o saber não ocupa lugar, e podes usar um pic á vontade, mas esquece lá as funções todas pipis do arduino.
Título: Re: Como Começar?
Enviado por: maurosmartins em 19 de Julho de 2011, 12:07
Viva pessoal,

não tenho dado a minha opiniao sobre este assunto em vários tópicos porque acho que é uma perda de tempo, mas acho que está na altura.

Em todas as áreas a umas pessoas que gostam mais de umas coisas que outras, PC/MAC windows/linux IOS/ANDROID e claro o tema da conversa, PIC/AVR.

Tudo depende da pessoa!!! pessoalmente não gosto de AVR, acho que a documentação é estranha e as toolchains complicadas, mas enfim isso provavelmente deve-se ao tempo que já trabalho com PICs.

A verdade é que vejo alguma pessoas a defenderem vigorosamente os microcontroladores que usam e dps vem com arms de 32 bits e coisas assim e na verdade nao sabem fazer piscar sequer um led com nenhum deles!!!

Esqueçam essa "guerra" e usem o que vos apetece!!!

todos tem vantagens e desvantagens, a questão  é conhecer bem a máquina que usam e os resultados vão ser bons!

Se quiserem até podem usar o 8051!!! vejam na net há coisas impressionantes com micros bem básicos e estes resultados não são porque é PIC ou ATMEGA ou Texas ou Motorola é simplesmente porque alguem percebe do que está a fazer!!!

Factores de decisao quanto a mim, seriam, documentacao, disponibilidade, ferramentas e nao marca A ou B.

Para que depois possam mandar vir comigo :P eu uso PICs, nao porque sou fanático ou fã, mas porque foi por onde comecei e não vejo necessidade de mudar! fazem tudo tal e qual os outros, e nao quero influenciar novos utilizadores, devem ser eles a pesquisar e ver o que lhes serve melhor.

Cumprimentos, Mauro.