Qual PIC escolher? - Programação de microcontroladores - Clube do Hardware
Qual PIC escolher?
Por wstomasiv8, 6 de abril de 2015 em Programação de microcontroladores
wstomasiv8 0
Boa noite galera, meu primeiro tópico aqui e queria saber sobre pic...
Estou no Tcc da faculdade, e meu professor sugeriu montar um dispositivo antifurto de veículos mais ou menos assim...
Vou montar uma placa que vai ficar ficar acoplada ao veiculo (que vai corta ou a bomba de gasolina ou a ignição do carro vou fazer o estudo ainda) e quero controlar por SMS.
Exemplo meu veiculo foi roubado eu mando um SMS para o numero estabelecido vou utilizar um chip nessa placa que fica no carro também e ele desliga o carro mais quero controlar também o movimento do carro pelo cel pelo google maps.
Sou estudante de eng. elétrica e sempre trabalhei com alta tensão nunca tive muito domínio com microcontroladores e programação.
Então queria saber qual PIC posso usar, em qual linguagem programar e se puder qual programas devo usar.. sei que como estudante do ultimo ano deveria saber disso mais meu orientador é físico e também não tem grande domínio nessa parte e eu não tive contato com professores de outras áreas então é isso se puderem me ajudar abrir minha mente por onde começar etc. para começar estudar pois estou estacionado rsrs.
Valeu galera boa noite.
Essa é uma dúvida básica (e apesar de eu estar um pouquinho avançado do básico, já é algo que eu tenho esclarecido).
Os meus graus de requisitos para escolha são:
O teu projeto vai dizer qual a quantidade de pinos, ADs, Timers, Bits por comando e portas que teu PIC deverá ter
Por exemplo: Tu não vai usar um PIC de 40 pinos para controlar um relé por uma chave
2) Disponibilidade no Brasil
Existem PICs que só importando
3) Preço e compatibilidade com gravadores de PIC
O preço é importante pois um projeto consiste em alto desempenho com baixo custo, e além disso, tem que verificar se o gravador que tu vai usar é compatível com o PIC que tu vai escolher.
Dá uma olhada no site da microship.
E quanto a linguagem, eu estou aprendendo C com o programa CCS mas tu pode programar em visual basic, assembler e até em Ladder (existe um programa que converte uma linguagem ladder para .hex)
A linguagem tu escolhe qual tu se sinta mais confortável.
Isso não vai te ajudar diretamente, mas há vida além do pic sabia? Existem mc´s atmega com mais recursos e mais baratos do que o dito cujo. P.ex. pesquise qual atmega 'os cara' colocam no arduino o qual já foi pro espaço (literalmente).
A não ser que seu orientador EXIJA pic...
wstomasiv8
Bom dia ! obrigado pelas respostas.
Isadora, é que na minha faculdade não estão aceitando arduino para TCC :/ mais muito obrigado.
Rafael, muito obrigado. Então eu vou começar agora também e acho que vou utilizar C pois acho que tenho ajuda mais fácil. O propósito é saber como o receptor entende uma mensagem e o numero e inserir na programação para apenas utilizar os números estabelecidos por mim entende.. Ai eu mando uma mensagem exemplo SOS ele ativa o relé e desliga o carro, é mais ou menos essa rotina não comecei aprofundar os estudos ainda pra dizer com clareza estou começando agora.
Então eu e sua faculdade temos algo em comum. Só pra constar: não disse pra usar o arduino.
Pois éééééééééééééééééééé !!!!!
E no Primeiro Mundo, os projetos de TCC são integrados em várias turmas, e saem satélites de experimentos a serem lançados por foquetes que vão à Estação Espacial, sistemas robóticos para coletar pedras em outros planetas, Sistemas que acabaram sendo usados em submarinos nucleares..... e tudo feito com Arduínos ......
E aqui, no Brasil varonil....... sistema de alarme de veículo por SMS usando PIC.... coisa que existem às dezenas em tudo que é site, e claro, a grande maioria usando Arduíno....
E ainda tenho de ler isto : uma faculdade que não aceita Arduíno em TCC .......
Aonde vamos parar ?????? em 2025 ainda vamos ver TCC usando Pic 16F877A ?
Depois ninguém sabe o porque somos E seremos sempre o eterno gigante adormecido, o país exportador de comodities e importador de bens de consumo....
@wstomasiv8, não pense que estou desmerecendo o seu TCC, estou desmerecendo mesmo é essa faculdade que prefere ver os alunos amarrados em âncoras do que vê-los voando livremente ! No meu tempo, meu TCC podia ser feito como eu quisesse, com qualquer família de CPU.
Pesquise que tem muita coisa sobre seu TCC por aí, até é interessante ver os projetos com Arduíno, entender o funcionamento dos chips de comunicação via SMS ( haja código AT .... ) e adaptar para um Pic.
@wstomasiv8 Como a Isadora disse, se for usar um ATmega não necessariamente precisa ser um arduino, afinal um Arduino é um ATmega328p mas um ATmega328p não é um arduino (momento reflexão...huehuehue). O compilador BASCOM te dao uma facilidade imensa na hora de manipular a serial, o WinAVR é um compilador de C/C++ Incrível (meio chatinho no começo), mas uma ferramenta poderosíssima.... Se ainda optar pelos PIC's já te digo de cara, esqueça a serie 16F 300 bytes de RAM mal vão conseguir armazenar a tabelinha de comandos AT.... Um 18F da vida (tipo um 452) acho que resolve, e ainda tem a opção do PLL para multiplicar o Clock por 4 e dar uma melhorada no desempenho...hehe.....
@aphawk Acho que esta "posição" tomada pela faculdade seja para "forçar" os alunos a pesquisarem/estudarem para desenvolver seus TCC's, pois tenho certeza que se permitissem o uso de Arduino, teria muitos "engraçadinhos" copiando e colando de algum projeto pronto(e todos nos sabemos que estes projetos existem aos milhares no google), temos a prova disso aqui mesmo no forum, chega fim de ano vem toda uma galera desesperada pedindo "ajuda" (entre um aspas gigante) com aquele mesmo papo, "Não sei programar e não tenho tempo de aprender", "Meu professor não me ensinou isso", "O projeto e para daqui a duas semanas".... A meu ver a faculdade dele esta fazendo a coisa certa (impedir o comodismo) da maneira errada (proibindo o uso da ferramenta), se esta é realmente a intenção dos orientadores dele, eu não sei, mas me parece a única explicação plausível para esta situação...heheh
por enquanto nada a acrescentar nas palavras do amigo @LuizGBarrio . Em 2025... quem sabe.
Com ou sem a permissão (não solicitada) do amigo xultz do asm51.eng, transporto pra cá suas letras...
"O arduíno no ensino fundamental é uma benção.
Na universidade, é um câncer."
Bom ... eu penso diferente , pois eu encontrei ontem mesmo 3 projetos com Pic, prontinhos, com fontes em C ( um em Assembler ), e um deles tem até comunicação bidirecional , bem interessante. Se eu, que não tenho a necessidade, encontrei, quem dirá quem precisa encontrar para fazer um TCC ????
E mesmo com Arduíno, o fonte sempre teria de ser um pouco adequado ao projeto, ninguém seria tão doido de copiar 100% um projeto e entregar como TCC hehehe !
O que eu acho muito válido seria a faculdade fazer algo tipo TEM DE USAR UM ARM .
Aí sim, vai fazer o aluno ter de estudar um projeto com Pic ou com Arduíno, aprender sobre os Arms, e fazer todo o projeto de hardware e software. Isso me parece digno de um TCC.
Olha, existem projetos usando Bascom em vários porta-aviões, tem um usuário antio do Fórum do Bascom que utiliza isso fazem mais de 10 anos para desenvolver projetos militares, e faz alguns dias ele colocou um post dizendo que tem hardwares com Bascom rodando em porta-aviões e em submarinos nucleares ingleses. Ou seja, não é uma brincadeira como muita gente pensa aqui no Brasil.
Eu nem citei nada sobe linguagens nesse TCC, só me revolto em ver uma exigência do tipo ARDUINO NÃO . É ir contra tudo o que o primeiro mundo incentiva ! Porisso que sempre seremos terceiro-mundo na educação.....
Se a faculdade tem medo que seja copiado, ué, o professor da matéria não deve ser um cara fácil de se enganar, deve saber achar fácilmente os projetos na Internet, e se perceber que o aluno "colou" , avisa o grupo que eles tem mais uma semana para fazer um projeto real por conta própria. Isso eu acho uma atitude correta !
Como tudo na vida, sempre teremos prós e contras... Mas o Xultz vai adorar ver este link :
http://blog.atmel.com/2015/03/27/here-are-some-unbelievable-projects-to-help-celebrate-arduino-day/
De onde ele pensa que as pessoas aprendem a fazer isso tudo ?
Eu creio que professores modernos agem desta maneira :
http://meetingorganizer.copernicus.org/EGU2015/EGU2015-10301.pdf
Claro que o Xultz também pode fazer esses projetos em Assembler, mas demorando 10 vezes mais tempo, ou até mais. O mundo evoluiu, mas algumas pessoas ainda se sentem desconfortáveis em ver que o que faziam árduamente anos atrás hoje é feito por crianças como brincadeira, graças ao ensino mais arrojado e muito mais motivador.
Por tudo que disse acima é que evito o termo ARDUINO, mas sim AVRs.
Falar arduino ficou coisa coisa banal, agora falar AVR assusta os PICqueiros. Mas quando são ousados e usam 1 vez, não retrocedem mais.
Uso um Aduino mega2560 e um Duemilanove + Erhernet Shield W5100 com cartão SD, todos apenas para desenvolver protótipos. Depois de testado, é só fazer o esquema usando somente o AVR (ATmega328, 168, 88 ou 8 que têm pinagem compatíveis) e criar o layout dedicado.
Projetos maiores uso o mega2560. Eu adoraria se no Brasil tivesse ATXmega fácil de encontrar, por isso estou partindo para ARM.
Sim, é o mesmo procedimento que eu faço, sempre parto de um Arduino uno ou um Arduino Mega2560, uso os módulos prontos para Wifi / Internet, como os ESP8266 que são fantásticos para Wireless, e depois monto o projeto só com o AVR mesmo.
Só não uso aqui os ATXMEGA por causa do encapsulamento, eu gosto mesmo de DIP kkkk !
Mas você conseguiu comprar ATXmega no Brasil?
A farnell vendia, mas de 1 ano pra cá parece que não tem mais estoque de nada!!!
http://www.farnellnewark.com.br/searchresults.aspx?dskeyword=atxmega&idproducttype=0&idproductcolor=0&iddept=0&nupricerangestart=1&nupricerangeend=9999999&type=2
O preço deste está ótimo, mas o estoque...
http://www.farnellnewark.com.br/circuitointegradomicrocontrolador8bit32mhztqf,product,1748558,0.aspx
Eu tenho facilidade para importar chips se for em uma boa quantidade. Se for pouco não compensa.
Eu também penso assim, só que ao meu ver ao falar de arduino, acho que a "pessoa" se refere a plataforma de desenvolvimento Arduino ou seja todo o conjunto a não apenas ao AVR soldado na placa.... Com mil licenças, aphawk, se me permite toma-lo como exemplo: Programa no BASCOM e usa o bootloader do arduino por facilidade na hora da programação, passa bem longe da IDE de desenvolvimento do Arduino ou seja da "plataforma" Arduino aproveita só o AVR mesmo....
E a maioria das criticas, são a IDE do Arduino.... Pois é uma IDE que esconde tudo do "programador" com rotinas que te permitem programar sem nem saber o código do uC que esta na placa, a prova disso são pessoas que escrevem tutorial instruindo os demais a colocar resistor de pull-up nos pinos de entrada do arduino UNO, sendo que o ATmega328p tem resistores de pull-up internos que podem ser acionados através do registrador PORT, e isso é "erro" de quem nunca pegou um Datasheet na mão, essa IDE esta proporcionando a criação de uma legião de "Carneiros", pois tem aqueles que fazem do jeito certo (vocês) e o resto do digitalRead(); digitalWrite();.....
Não que me diga respeito, mas vou dar outro exemplo para vocês.... um desses arduineiros criou um super programa que analisa uma entrada digital quando ela vai para 1 o arduino joga 1 em um dos pinos de saida e mantem a saida alta enquanto a entrada estiver alta.... Não estou desmerecendo o projeto do rapaz mas digo que eu faria algo estão útil quanto e com um arduino a menos..... huahuahua
(o programa em questão era para acionar um Buzzer auto oscilante (beeeep) sempre que houvesse um acionamento no sensor de saida digital..... Nada que um resistor e um transistor não resolvesse)
Por isso as criticas a IDE do arduino e olha que a culpa nem e da IDE, pois cada um escolhe o caminho que trilha, mas o problema e que ultimamente tem muita gente no caminho do "Carneiro" (talvez porque a IDE te de essa opção, mas como eu disse antes, cada um trilha seu caminho).
Isso torna este assunto muito complexo.....
Eu também penso assim, só que ao meu ver ao falar de arduino, acho que a "pessoa" se refere a plataforma de desenvolvimento Arduino ou seja todo o conjunto a não apenas ao AVR soldado na placa....
Com mil licenças, aphawk, se me permite toma-lo como exemplo: Programa no BASCOM e usa o bootloader do arduino por facilidade na hora da programação, passa bem longe da IDE de desenvolvimento do Arduino ou seja da "plataforma" Arduino aproveita só o AVR mesmo....
Minha modéstia opinião:
Total apoio as palavras DITAS ATÉ AGORA.
Dizer que é programador e não conhecer o que é um datasheet, é como se fosse dizer:
Sou um motorista, com carta, mas não entendesse nada de motor a combustão.
Não que me diga respeito, mas vou dar outro exemplo para vocês....
um desses arduineiros criou um super programa que analisa uma entrada digital quando ela vai para 1 o arduino joga 1 em um dos pinos de saida e mantem a saida alta enquanto a entrada estiver alta....
Não entendi direito, mas vamos a análise:
um desses arduineiros criou um super programa que analisa uma entrada digital quando ela vai para 1...
ESTA PARTE PRECISA SER MELHOR ESCLARECIDA, DIGO, COM VÍRGULAS E PONTOS. SENÃO DÁ DUPLO SENTIDO.
O RESTO TÁ MAIS DIFÍCIL DE ENTENDER AINDA
Não estou desmerecendo o projeto do rapaz mas digo que eu faria algo estão útil quanto e com um arduino a menos..... huahuahua
Toda e qualquer opinião é bem vinda neste forum, desde que sejam respeitadas 2 coisas, no meu ponto de vista:
1- O companheiro e membro do mesmo.
2- As próprias regras do forum.
Concordo com muita coisa que voce disse. Realmente a IDE é um pouco confusa, e eu sempre achei que falta uma explicação mais detalhada sobre as Interrupções e a IDE. Porém, eu vejo uma vantagem muito grande no "sistema Arduíno" : mesmo pessoas com pouquíssimo conhecimento conseguem fazer coisas simples com ele.
Imagino que quem faz algo funcionar pela primeira vez com um Arduíno vai se interessar muito mais em aprender do que se pegasse um módulo simples com um AVR e tivesse que começar do nada, ou pelo Bascom, ou pelo C mesmo.
Uma grande vantagem é a padronização e compatibilidade entre os módulos básicos padrão Arduíno, fica bem simples de se acrescentar funções.
O próprio Fórum arduino.cc tem muita informação, muitos exemplos, às vezes eu pego algum hardware mais chatinho, vou direto no arduino,cc e sempre acho um programa com ele ou uma biblioteca prontinha, já é melhor do que começar do nada lendo datasheets....
Para mim, usar o hardware padronizado do Arduíno sempre me facilita, e se por acaso eu fizer alguma "kaka" e queimar a placa, pego outra e continuo. Já adaptei algumas bibliotecas do Arduíno para usar com o Bascom.
Quanto ao superprograma que analiza a entrada...... olha, vou te confessar que de vez em quando eu também tenho de fazer umas coisas meio idiotas ..... eu estou terminando um projetinho legal para sistemas de radiocontrole, muito útil para quem usa drones, aviões ou planadores, é um sistema que decodifica a telemetria padrão do FRSKY, e projetei uma plaquinha para ser colada atrás de um display colorido e afixada ao rádio, onde tem os joysticks e botoeira de controle. Nem havia percebido que o sinal serial que vem do módulo na verdade é invertido ! Depois de pastar que nem um jumento, percebí que teria de inverter o sinal antes de ser aplicado à Usart do Atmega.
Fiquei montando um circuitinho com um transistor para inverter o sinal, aí já ficava pendurado na placa, feio pacas, e tava nessa quando comentei com um colega que tinha feiro essa besteira e agora ia ter de jogar a placa fora porque tinha de colocar o transistor nela para inverter. O colega entende um pouco de microprocessadores, e deu uma sugestão que eu não tinha pensado : " não dá para usar um outro pino de entrada que esteja livre, e ficar monitorando ela, e sempre colocando em um pino de saída que esteja livre o sinal invertido, e esse sinal voce leva na entrada da Usart ? " .......
Bom, claro que a ideia foi excelente, só cortei uma trilha na entrada e fiz dois jumpres com fio por baixo da placa, e pronto, estou usando isso dessa maneira. Nada que uma interrupção por mudança de nível não resolva, certo ????
O que eu quis dizer contando isso é que esse tal de superprograma que você falou pode resultar num dia em uma ideia semelhante que pode ajudar muito nas horas difíceis..... acho que a prática sempre traz aprendizado, mesmo com projetos aparentementes bobos.... quem está montando sempre está aprendendo !
Mas, voltando ao post do autor, estou a postos, esperando ver quais as dúvidas que irão aparecer, posso ajudar no hardware. Creio que ele está primeiro procurando exemplos na Internet, e logo veremos as dúvidas dele, pois irá precisar utilizar algum sistema módulo de celular, e como existem vários, prefiro esperar a definição dele.
Existem módulos que não são quadribanda, e existem módulos bem complicados de se usar também, mas eu creio que essa escolha faz parte do aprendizado; caso seja uma escolha não muito feliz, sempre podemos orientar uma mudança.
Quanto ao Pic, creeio que um PIC que tenha uns 16K de flash e 1K de Ram está ótimo para esse projeto.
Desculpe se me expressei confusamente.... Primeiramente não me referia a ninguém aqui do fórum (só um exemplo qualquer encontrado na internet, nem lembro em que site), o que eu quis realmente dizer e que alguns culpam essa IDE por propiciar este tipo de "programador" que vai escrevendo por que é fácil e se preocupa pouco com o "caminho tomado para se chegar ao resultado" da coisa em si.... Citei este exemplo pois como eu disse dava para fazer sem o arduino (com um resistor excitando a base de um transistor) foi a facilidade em escrever o código que gerou essa "falta de vontade" em procurar um caminho alternativo (mais simples e fácil) para resolver o problema...... Desrespeitar alguém ou as regras não e minha intenção... Tudo que eu quis foi explicitar o que acabei de escrever ai em cima....
Parece que minha maneira "informal" de escrever dificulta o entendimento da real ideia que eu quero passar aos demais, acho que ta na hora de mudar minha postura....hauhauauhuahua.....
Valeu Pelo Toque...rsrs!!
Só concluindo: foi algo útil e pratico para você, mas foi demasiado e desnecessário para o caso em questão... Para nível de aprendizado OK, vale tudo, tudo conta como experiencia... Mas em termos de praticidade? Eu ja peguei equipamentos para consertar que tinha um arduino uno dentro (e o pior, utilizava apenas 3 pinos digitais para realizar o processo) algo que dava para fazer com um ATtiny de 8 pinos ou um 12F675... Ou seja a falta de praticidade pode contar para o aprendizado mas esta se estendendo para fora do campo de aprendizagem..... Foi isso que eu também quis dizer..... hehe
Concordo com muita coisa que voce disse. Realmente a IDE é um pouco confusa, e eu sempre achei que falta uma explicação mais detalhada sobre as Interrupções e a IDE. Porém, eu vejo uma vantagem muito...
Beleza... chegamos a um acordo!
Parabéns pela educação e cavalheirismo.
Esses dias eu vi uma palestra da plataforma da freescale, nunca usei ela, porém, você programa ele igual arduino e o compilador é online, veja essa maravilha: http://www.farnellnewark.com.br/product.aspx?idproduct=28W5033, fica ai a dica,porém, é salgadinho no preço, mas o uC é bom veja se ele tem o que você precisa da uma pesquisada.
Pela documentação, ele suporta os hardwares que seguem a pinagem do Arduíno Uno, digo, os conectores dos módulos padrão Arduíno encaixam nessa placa.
Mas sobre o software, não há compatibilidade a nível de libraries, e não sei se existe algum tipo de IDE semelhante à do Arduíno a nível de comandos.
Mas é um Arm bem mais potente que um Arduíno, é uma excelente opção para quem precisa de poder de CPU.
Paulo beleza, então esse uC ele usa o IDE online e o compilador também, você pode salvar seu projeto em um servidor, portanto,a programação dele esta muito simples ela foi facilitada igual ao Arduino veja esse PDF:http://lusorobotica.com/index.php?PHPSESSID=mqpj796hip9gfqgagjbsm90jm1&action=dlattach;topic=7164.0;attach=2633, o sinistro é que você grava ele igual pendrive kkkkkkkkkkk
É o que eu falei acima, os comandos da IDE são compatíveis com os do Arduíno, mas as libraries só podem ser usadas as que estão no site do mbed.org. Se usar alguma library custom, que existem aos milhares, não tem como fazer funcionar.
Mas é uma excelente opção, precisa ver se existem hardware compatível na China, pois costumam custar bem mais barato !