LusoRobótica - Robótica em Português

Sistemas específicos => Arduino / AVR => Tópico iniciado por: Njay em 24 de Fevereiro de 2015, 15:17

Título: Como funciona um Arduino?
Enviado por: Njay em 24 de Fevereiro de 2015, 15:17
Como é?...
Título: Re: Como funciona um Arduino?
Enviado por: jm_araujo em 24 de Fevereiro de 2015, 15:20
Com eletricidade.  ;D

É mais fácil dar uma boa resposta se fizeres uma boa pergunta.

Sê mais explicito. Que queres saber? Hardware, Software, Plataforma, Instituição? O quê?
Título: Re: Como funciona um Arduino?
Enviado por: Njay em 24 de Fevereiro de 2015, 16:02
:)

Quando compras um recebes uma "cena" que vem dentro duma caixa. Como funciona essa cena?
Pensa num carro. Como funciona um carro?

Vão até ao nível de detalhe que conseguirem.
Título: Re: Como funciona um Arduino?
Enviado por: Nunito em 24 de Fevereiro de 2015, 16:20
Cabo USB.
Programa Arduino IDE v1.....
Exemplos - Basics - Blink
Ligar cabo USB.
Selecionar board- Ferramentas - Placa.
Selecionar porta com - Port - COM....
Carregar no botão Upload.
Ver o led designado por L13 a piscar de 1 em 1 segundo.
Fácil.  :D
Título: Re: Como funciona um Arduino?
Enviado por: senso em 24 de Fevereiro de 2015, 16:38
Tudo começou á 13.8 biliões de anos...

EDIT: correção temporal
Título: Re: Como funciona um Arduino?
Enviado por: Njay em 24 de Fevereiro de 2015, 17:08
13.8 mil milhões ... bilião Português = 1 milhão de milhões... bilião "Inglês" = mil milhões

Mas na verdade ainda não se sabe "como era" antes do big bang :P.
E não perguntei onde começou mas sim como funciona :P
Título: Re: Como funciona um Arduino?
Enviado por: jm_araujo em 24 de Fevereiro de 2015, 17:29
Muito resumido:

Houve uns gajos espertos (mais tipo "chico esperto" do que "o meu cão é esperto", se disser que eram italianos ninguém estranha...) que repararam que havia um grupo de hipsters que nem soldar sabiam mas queriam parecer cool porque punham leds a piscar e percebiam bués de cut&paste mas não sabiam como mostrar esse conhecimento.
Espertos como eram, montaram uma placas por 5€ e venderam-nas por 25€ a esses mesmos hipsters, outros espertos juntaram-se à festa (porque até fazerem os "shields" para fazer coisas mais complicadas como mexer motores obrigava a soldar porque a m*rd* dos pinos nem sequer alinham com uma breadboard), e depois de embalado a negócio outros não tão hipsters mas que também não sabiam soldar juntaram-se à festa e começaram a fazer coisas menos bonitas que leds a piscar mas mais fixes.

Acho que basicamente é isso...

Título: Re: Como funciona um Arduino?
Enviado por: FET_Destroyer em 24 de Fevereiro de 2015, 18:27
Muito resumido:

Houve uns gajos espertos (mais tipo "chico esperto" do que "o meu cão é esperto", se disser que eram italianos ninguém estranha...) que repararam que havia um grupo de hipsters que nem soldar sabiam mas queriam parecer cool porque punham leds a piscar e percebiam bués de cut&paste mas não sabiam como mostrar esse conhecimento.
Espertos como eram, montaram uma placas por 5€ e venderam-nas por 25€ a esses mesmos hipsters, outros espertos juntaram-se à festa (porque até fazerem os "shields" para fazer coisas mais complicadas como mexer motores obrigava a soldar porque a m*rd* dos pinos nem sequer alinham com uma breadboard), e depois de embalado a negócio outros não tão hipsters mas que também não sabiam soldar juntaram-se à festa e começaram a fazer coisas menos bonitas que leds a piscar mas mais fixes.

Acho que basicamente é isso...

(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fmedia2.giphy.com%2Fmedia%2Fb9aScKLxdv0Y0%2Fgiphy.gif&hash=43bd0f4ecaad7ed807591641d6478f70d3dc8e3c)

Melhor explicação de sempre
Título: Re: Como funciona um Arduino?
Enviado por: StarRider em 24 de Fevereiro de 2015, 18:30
Como é?...

Com "copy past"    :D   :D   :D  :D

Título: Re: Como funciona um Arduino?
Enviado por: metRo_ em 24 de Fevereiro de 2015, 18:52
Tens um macaco muito pequeno dentro da placa que faz o que tu lhe mandas! Supondo que a tua ideia seja explicar isto a pessoas que não percebem nada de electrónica!

Não concordo em nada com algumas das ideias de que o Arduino e' para hipsters etc... Quando comecei com micro-controladores não me estava agradar nada a ideia de ter que andar a montar um micro numa breadboard pois se aquilo não funcionasse, no limite, como já me aconteceu, podia ser porque a breadboard estava estragada entre mil e uma outra coisas que não meu o problema. Nessa altura tinhas 2 alternativas, ou arriscavas fazer uma pcb sem experiência nenhuma ou pagavas umas centenas de euros por uma placa de desenvolvimento e por essa mesma altura saiu o Arduino, ainda com porta serie, provavelmente foi a placa de desenvolvimento mais barata do mercado e isto foi uma grande vantagem! Prefiro pagar 20E que perder umas horas a volta de uma breadboard!

A parte ma e' que depois o pessoal acha que sabe mais que o que realmente sabe e faz asneiras, fora isso não vejo mal nenhum o pessoal de artes usar o Arduino para piscar leds desde que depois não se lembre de que se calhar também dão uma perninha de electrónica!

Título: Re: Como funciona um Arduino?
Enviado por: Njay em 24 de Fevereiro de 2015, 20:34
Tcchhhhhh... isto tá pior do que eu pensava; só me dizem como é que apareceu e como é que se utiliza, pelos vistos ninguém sabe como é que funciona um Arduino...

... excepto o metRo_ que acredita que há lá um macaco lol :P, fizeste-me lembrar que na makerfaire disse isso a uma chavala pequenita que me perguntou como funcionava a CNC :) (claro que depois da piada expliquei-lhe o melhor possível como era).
Título: Re: Como funciona um Arduino?
Enviado por: artur36 em 24 de Fevereiro de 2015, 21:02
Guardado dentro do chip tem um fumo mágico azul que o faz funcionar, se libertares o fumo azul ele deixa de funcionar...
:-)
Título: Re: Como funciona um Arduino?
Enviado por: jm_araujo em 25 de Fevereiro de 2015, 11:04
Quando compras um recebes uma "cena" que vem dentro duma caixa. Como funciona essa cena?
Pensa num carro. Como funciona um carro?
Continuas a não saber fazer perguntas:
Que carro?Gasolina (ciclo 4 tempos, 2 tempos, wankel?), Diesel, elétrico ou hibrido? Motor aspirado, com turbo ou compressor?  Carburadores( flat slide ou CV) ou  injeção ( monoponto, multiponto ou direta)? Quantos cilindros, e em que disposição (linha, V (que ângulo?) ou opostos)? Automático(caixa planetária, sequencial, dupla-embraiagem?) ou manual? Tração à frente, tração a trás, 4x4 ou integral? e por aí fora...

Além disso e como sabes Arduino não é uma placa específica mas sim um conceito integrado.

E "detalhe até ao nível que conseguir" com o "meta-conhecimento" de quem passa o tempo ligado à net dá para escrever vários livros (microcontroladores, semicondutores, programação, interfaces, etc) e não estou para isso :P

Se calhar queres algo do género:
"É um microcontrolador ATMEGA com o mínimo de circuitos de suporte(regulador/oscilador) e uma interfaçe USB-Série, programada através de um IDE muito básico(sem debuging, capacidades de edição limitadas e suporte para projetos mais complexos inexistente, todas as coisas boas que quem trabalha na área está habituado e uma das principais motivos de animosidade em relação ao Arduino). A linguagem de programação é um C++ estupidificado, com bibliotecas escritas com uma qualidade de código pavorosa (lentas e consumo de memória excessivo, e não me perguntes sobre o código em headers  >:( ). As portas do ATMEGA estão ligadas a conetores que permitem encaixar diretamente fios ou modulos prontos chamados shields, e que infelizmente não respeitam o espaçamento de uma breadboard, dificultando o trabalho a quem o utiliza.
O original é vendido a preços excessivos, mas felizmente criou-se uma saudável industria de clones chineses, com formatos muito mais interessantes que cabem em breadboards e ocupam muito menos espaço (os nano e pro), e graças à popularidade da plataforma ficam mais baratos que o conjunto dos componentes que os compõe se comprados no mercado ocidental, sendo ótimos para projetos simples e desenrrascanços. "

Estás  mais contente?


(Nem sei porque me dou ao trabalho, claramente andas à caça de gambuzinos, burro sou eu que te dou trela...)
Título: Re: Como funciona um Arduino?
Enviado por: senso em 25 de Fevereiro de 2015, 12:50
É mais um possivel pseudo concurso.
Ou uma daquelas iniciativas do vamos pór o fórum a mexer.

PS.: Esqueceste-te das caixas CVT(correia metálica ou de borracha? lol)
Título: Re: Como funciona um Arduino?
Enviado por: zordlyon em 25 de Fevereiro de 2015, 15:09
Resumindo:

Arduino -> Chip Atmega -> Cheio de Transistors e cenas microscopicas -> Bootloader -> Faz cenas e coisas -> Podes carregar código -> Faz um Led piscar e cenas...  :D

Título: Re: Como funciona um Arduino?
Enviado por: StarRider em 25 de Fevereiro de 2015, 17:31
Boas,

Como funciona um arduino ? Sendo que "arduino" é apenas um conceito de
firmware o seu funcionamento resume-se a:
- Um firmware bootloader
- Uma colecção de rotinas de firmware agrupadas em libs
- Um IDE

Edit: adicionei o terceiro ponto, o do IDE.


Tudo o mais é hardware e o seu funcionamento não pode ser confundido nem agrupado no paradigma que
dá pelo nome de "arduino".

Abraços,
PA

Título: Re: Como funciona um Arduino?
Enviado por: senso em 25 de Fevereiro de 2015, 18:06
Shit storm away..

Qual é o paradigma psicológico em que te encontras para necessitar de escrever arduino entre aspas e em letras minúsculas?

Começa a parecer birra/criancice tanta palhaçada sempre que existe a palavra arduino..

E respondendo agora realmente:
Arduino é uma cópia de Wiring \n\r
Título: Re: Como funciona um Arduino?
Enviado por: StarRider em 25 de Fevereiro de 2015, 18:56
Shit storm away..

Qual é o paradigma psicológico em que te encontras para necessitar de escrever arduino entre aspas e em letras minúsculas?

Começa a parecer birra/criancice tanta palhaçada sempre que existe a palavra arduino..

E respondendo agora realmente:
Arduino é uma cópia de Wiring \n\r

Oh, boy. Here we go again. ;)

O tamanho da letra é directamente proporcional à minha opinião sobre o mesmo, pode ser redutor para
o dito cujo mas é essa a intenção 8) ...

Abraços,
PA
Título: Re: Como funciona um Arduino?
Enviado por: KammutierSpule em 25 de Fevereiro de 2015, 21:21
Desabafo: hoje estou muito mal disposto, vieram-me perguntar:
"O que 'e melhor: arduino ou PIC? ... o meu colega do trabalho usa PIC.."
Título: Re: Como funciona um Arduino?
Enviado por: senso em 25 de Fevereiro de 2015, 21:23
Um i7 octa core dead-bug numa breadboard, com jeitinho liga-se um 595 numa lane PCIe..
Título: Re: Como funciona um Arduino?
Enviado por: StarRider em 25 de Fevereiro de 2015, 22:32
Vem mesmo a calhar, ultimo arduino Mega-XXL:

(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fwww.microastro.com%2Ffotos%2FArduinoMega-XXL.jpg&hash=a2d8ba81c4735fa010c60ecdedfeff0ed6f4e406)


.. ou não  :P
Título: Re: Como funciona um Arduino?
Enviado por: senso em 25 de Fevereiro de 2015, 22:36
Acho que isto é mais hilariante:
http://hackaday.com/2015/02/25/arduino-v-arduino/ (http://hackaday.com/2015/02/25/arduino-v-arduino/)
Título: Re: Como funciona um Arduino?
Enviado por: andElectrons em 25 de Fevereiro de 2015, 22:47
(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fwww.microastro.com%2Ffotos%2FArduinoMega-XXL.jpg&hash=a2d8ba81c4735fa010c60ecdedfeff0ed6f4e406)


LOL tá giro até... vou ficar à espera do Arduino Xenon ou mesmo Arduino AMD :P
Título: Re: Como funciona um Arduino?
Enviado por: metRo_ em 25 de Fevereiro de 2015, 22:47
o njay vai reformular a questao para: "Como funcionava um Arduino?" lool
Título: Re: Como funciona um Arduino?
Enviado por: Electropepper em 27 de Fevereiro de 2015, 13:24
Já agora, que estamos nisto, posso estar a dizer asneira mas cá vai.
A parte do bootloader ainda não percebi se foi desenvolvida pela equipa do arduino até porque dá para perceber que o IDE usa o avrdude que por sua vez usa o ISP do AVR.
Eu já usei o atmega328 com o avr-gcc e um bus pirate para o programar, quer isto dizer que a parte do arduino bootloader está apenas a fazer de programador ISP ou série ?
Estou um pouco confuso mas tambem nunca fui muito fã de arduino, nunca perdi muito tempo com isto.
Título: Re: Como funciona um Arduino?
Enviado por: senso em 27 de Fevereiro de 2015, 13:53
Se tens programador ISP não precisas de bootloader nenhum.
O bootloader é simplesmente um bocado de código que está no fim da flash e que recebe o programa por serial e programar a flash, o bootloader inicial é baseado ou praticamente copiado do stk500v2 da Atmel, o avrdude é um software que serve para programar avr's, seja via ISP, JTAG, serial, PDI e á outro protocolo ainda par aos tiny de 6 patas.
O bootloader não tem magia nenhuma nem é suposto acederes ao bootloader a partir do teu programa, não tens qualquer funcionalidade extra por ter ou não ter um bootloader.
Se estavas a usar5/6 fios no bus pirate estavas a usar ISP, que é um protocolo em cima de SPI.
Título: Re: Como funciona um Arduino?
Enviado por: Electropepper em 27 de Fevereiro de 2015, 14:03
Ok, já percebi :), e quanto á linguagem C++ vem de onde, visto que tambem usa o avr-gcc ?

P.s - Usei o SPI não ISP.
Título: Re: Como funciona um Arduino?
Enviado por: senso em 27 de Fevereiro de 2015, 14:07
O SPI do buspirate que recebe comandos ISP via avrdude.

O C++ vem do avr-g++
Título: Re: Como funciona um Arduino?
Enviado por: Njay em 27 de Fevereiro de 2015, 15:05
(Nem sei porque me dou ao trabalho, claramente andas à caça de gambuzinos, burro sou eu que te dou trela...)
Caçado :P :D!

Quem é que já olhou para o esquema eléctrico de um arduino e porquê, e quem é que já usou um arduino e nunca olhou para o esquema e porquê? Quem é que não sabe que o esquema está disponível na net a quem quiser ver?
Título: Re: Como funciona um Arduino?
Enviado por: senso em 27 de Fevereiro de 2015, 15:49
Eu já vi, mas só porque BDSM está outra vez na moda.
Título: Re: Como funciona um Arduino?
Enviado por: andElectrons em 27 de Fevereiro de 2015, 16:22

50 shades of Arduino





Título: Re: Como funciona um Arduino?
Enviado por: dropes em 27 de Fevereiro de 2015, 17:26
Eu já vi, mas só porque BDSM está outra vez na moda.
Estás sempre a falar por códigos, muitos deles vou pesquisar para não passar por analfabeto...   ???

As siglas de BDSM agrupam diversas práticas sexuais que se podem levar todas a cabo ou optar por alguma que lhe gere maior prazer ou atração:

    B - Bondage
    D - Dominação
    S - Submissão e sadismo
    M - Masoquismo

ps: corrijam-me se estiver errado, não sei o que vai na cabeça do @senso ou a descrição tem a ver com arduinos :o
Título: Re: Como funciona um Arduino?
Enviado por: metRo_ em 27 de Fevereiro de 2015, 17:30
Eu já vi, mas só porque BDSM está outra vez na moda.
Estás sempre a falar por códigos, muitos deles vou pesquisar para não passar por analfabeto...   ???

As siglas de BDSM agrupam diversas práticas sexuais que se podem levar todas a cabo ou optar por alguma que lhe gere maior prazer ou atração:

    B - Bondage
    D - Dominação
    S - Submissão e sadismo
    M - Masoquismo

ps: corrijam-me se estiver errado, não sei o que vai na cabeça do @senso ou a descrição tem a ver com arduinos :o

Basicamente ele esta a dizer que gosta de sofrer, por isso e que foi ver o esquema do arduino!
Título: Re: Como funciona um Arduino?
Enviado por: Njay em 27 de Fevereiro de 2015, 17:33
Ele gostar gostar não gosta de sofrer, mas como tá na moda...

Ó dropes, usar siglas é a única maneira dele conseguir escrever a mais de 1/10 da velocidade a que pensa :D
Título: Re: Como funciona um Arduino?
Enviado por: senso em 27 de Fevereiro de 2015, 17:46
É um esquema um bocado, digamos que ranhoso, é uma palavra engraçada que se vê poucas vezes nas internetz.

Sendo a pseudo bandeira do hardware open source, define um standard muito baixo, tudo muito em monte, nets sem grande sentido, pistas no ar sem nome, enfim..
Título: Re: Como funciona um Arduino?
Enviado por: senso em 27 de Fevereiro de 2015, 17:47
Eu até que nem escrevo muito devagar, agora a mente, é com cada derrapagem temática  ::)
Título: Re: Como funciona um Arduino?
Enviado por: Njay em 27 de Fevereiro de 2015, 17:52
Não sei já repararam que um arduino (com o ATmega328) é umas 16 10 vezes mais rápido e tem quantidades de memória (flash e ram) semelhantes ao computador de navegação da Apollo, que levou os americanos à Lua.
Título: Re: Como funciona um Arduino?
Enviado por: dropes em 27 de Fevereiro de 2015, 18:40
Bem, fiquei mais esclarecido e vamos rezar para que os astronautas não venham com invenções e tenham a infeliz ideia de começar a usar arduinos com shields nas suas missões  ;D

Agora deu-me para ir ver o tão famoso esquema, uma coisa já me fazia confusão à algum tempo... do duemilanove para o uno, foi colocado um ftdi e mais tarde trocado pelo mega8, funcionando em vusb.

Então a minha dúvida é, porque é que não se liga directamente a porta usb ao atmega328, a resposta é simples usb <> rs232 e o bootloader só suporta rs232, a ideia de unir o vusb de 4kB ao bootloader era bom se funcionasse.
Neste caso o vusb seria um programa que interpretaria os sinais vindos do usb e gravaria na flash, excluindo o bootloader por assim dizer.

Isto é possível?
Título: Re: Como funciona um Arduino?
Enviado por: andElectrons em 27 de Fevereiro de 2015, 18:53
Bem, fiquei mais esclarecido e vamos rezar para que os astronautas não venham com invenções e tenham a infeliz ideia de começar a usar arduinos com shields nas suas missões  ;D


Houve há uns anos um projecto de crowdfunding em que queriam mandar um arduino para o espaço. Não sei como foi que isso ficou mas tenho alguma curiosidade visto que os atmegas 'normais' não são radiation-hardened para trabalharem fora da atmosfera.


Então a minha dúvida é, porque é que não se liga directamente a porta usb ao atmega328, a resposta é simples usb <> rs232 e o bootloader só suporta rs232, a ideia de unir o vusb de 4kB ao bootloader era bom se funcionasse.
Neste caso o vusb seria um programa que interpretaria os sinais vindos do usb e gravaria na flash, excluindo o bootloader por assim dizer.

Isto é possível?

Não sei se será esta a razão mas implementar vusb no bootloader iria aumentar o tamanho do mesmo, deixando menos espaço para o codigo do utilizador, visto que o serial tem suporte nativo e usb não.


Título: Re: Como funciona um Arduino?
Enviado por: dropes em 27 de Fevereiro de 2015, 19:59
Sim, chegaram mesmo a enviar um arduino para o espaço, espero que não volte LoL :P
(nunca se sabe os shields que lhe colocaram e levar com um na carola deve doer)

Quanto ao 2 em 1 seria complicado a nível de programação, é mais bonito ter um micro para cada função mas tirar o mega8 seria vantajoso mesmo para os nanos.
Passar de 32K para 28K não era grave, se bem que tens razão numa coisa, o 328 tem série por hardware... seria uma coisa a estudar já que os códigos são open source.

@Njay, o Homem dos desafios, tenho um novo para ti  ;D hehehe
Título: Re: Como funciona um Arduino?
Enviado por: senso em 27 de Fevereiro de 2015, 20:34
RS-232 é um protocolo que define tambem a parte em hardware da coisa, ou seja, para ser RS-232 tem de ter o mark e o space a variarem entre -12v e +12v, houve muita alteração ao protocolo, mas o atmega em si só tem uma UART, se queres RS-232 tens de atirar com um transceiver(tipicamente o MAX232).

Não é um atmega8 que adicionaram mas sim um Atmega8U2 que tem suporte USB nativo.

Poderias usar o VUSB, mas depois ficas sem comunicação serial para debug(ou outra coisa qualquer) com o pc sem usares um conversor usb-serial externo, estarias a tirar funcionalidade á placa, e o V-USB sendo USB bit-bang consome alguns/bastantes recursos(a nivel de RAM e tempo de processamento), irias limitar demasiado o micro-controlador, para além de que o USB podia ou não funcionar, dado que é só uma aproximação das especificações do USB por hardware(ou com mais ajuda de hardware).
Título: Re: Como funciona um Arduino?
Enviado por: andElectrons em 27 de Fevereiro de 2015, 20:56

É engraçado estarmos a falar aqui de VUSB pq tentar usar isso amanhã num projecto que partilhei aqui há +/- um mês atrás.



Título: Re: Como funciona um Arduino?
Enviado por: dropes em 27 de Fevereiro de 2015, 22:28
RS-232 é um protocolo que define tambem a parte em hardware da coisa, ou seja, para ser RS-232 tem de ter o mark e o space a variarem entre -12v e +12v, houve muita alteração ao protocolo, mas o atmega em si só tem uma UART, se queres RS-232 tens de atirar com um transceiver(tipicamente o MAX232).

Não me estava a referir dos níveis de tensão da comunicação RS232 mas ao protocolo em si usado pelo UART, talvez por gostar mais do nome referi RS232, ups

Citar
Não é um atmega8 que adicionaram mas sim um Atmega8U2 que tem suporte USB nativo.

Desconhecia, isso faz toda a diferença e lá se foi a minha ideia pro galheiro.

Citar
Poderias usar o VUSB, mas depois ficas sem comunicação serial para debug(ou outra coisa qualquer) com o pc sem usares um conversor usb-serial externo, estarias a tirar funcionalidade á placa, e o V-USB sendo USB bit-bang consome alguns/bastantes recursos(a nivel de RAM e tempo de processamento), irias limitar demasiado o micro-controlador, para além de que o USB podia ou não funcionar, dado que é só uma aproximação das especificações do USB por hardware(ou com mais ajuda de hardware).

Sem dúvida, estava a achar um pouco estranho o código ser tão pequeno para simular USB, e suportar uma velocidade decente, claro.
A porta UART perdia, não vejo forma de comunicar com o PC depois de ser programado, e o código nunca poderia ser confirmado se fora bem gravado.

Após uma pequena visita ao google, a velocidade não é critica USB1.1 = +-1.43 MB/s mais que suficiente quando se quer gravar 32kB.

V-USB:
Fully USB 1.1 compliant low-speed device.
Only about 1150 to 1400 bytes code size.
Runs on any AVR microcontroller with at least 2 kB of Flash memory, 128 bytes RAM and a clock rate of at least 12 MHz.

Título: Re: Como funciona um Arduino?
Enviado por: senso em 27 de Fevereiro de 2015, 22:58
Sim, a biblioteca não é monstruosa, e até cabe na secção do bootloader, logo não perdes capacidade de verificação, e podes fazer uma coisa á lá NXP que tem funções pré-compiladas numa ROM e depois é só fazer a chamada das mesmas, podia-se manter o VUSB funcional fazendo o que se pode chamar de syscalls para a secção do bootloader, a coisa é que tens o INT0 a bombar interrupções a 1ms se não estou em erro.
É um bocado estilo RPi, USB é semi-software, perdes uma interrupções tens perda de pacotes, ou desliga-se o USB.
Título: Re: Como funciona um Arduino?
Enviado por: Njay em 27 de Fevereiro de 2015, 23:20
Ao arrancar o bootloader pode espreitar a ver se há aqueles pull-up/downs do USB; se houver, então activa-se como USB e fica à espera de comunicação (código, etc) do host, caso contrário desactiva tudo e o código de aplicação depois pode invocar as rotinas do bootloader para usar o USB como menciona o senso ou usa a UART ou o que quiser. Tinha que haver uma maneira de activar/desactivar os pulls USB (há várias soluções para isto).
Título: Re: Como funciona um Arduino?
Enviado por: jmiguelff em 28 de Fevereiro de 2015, 17:49
Comprei um Arduino NANO por 2€ até a cabo tive direito a cabo USB e headers. :)

Título: Re: Como funciona um Arduino?
Enviado por: dropes em 28 de Fevereiro de 2015, 18:28
Só agora é que tive oportunidade de ler as vossas mensagens.  :)
A preocupação da verificação do código gravado sempre pode ser feita, pois ainda está no modo Bootloader e falhou-me esse aspecto.

Não fazia ideia que era possível um programa compilado pelo arduino ir buscar rotinas dentro do Bootloader, ou melhor, muita coisa teria de ser alterada, isto para manter as funcionalidades compatíveis com o arduino e mesmo retirando um interruptor ou direcionar o UART para o VUSB só iria criar conflitos com o programa.

A ideia até não era má, ligar um micro ligado directamente ao USB tipo PEN, creio que isso pode ser feito mas a 1ª coisa a excluir seria tudo o que estivesse relacionado com o arduino, programação em GCC, Bascom, Assembler, etc... e micro com bootloader VUSB para uma porta série virtual.
Título: Re: Como funciona um Arduino?
Enviado por: artur36 em 28 de Fevereiro de 2015, 20:59
Só para dar a dica... O Arduino Leonardo usa USB nativo no mesmo chip "onde corre o programa". Penso que é isso que " procuram" nos últimos posts, um microcontrolador que possa ser programado por USB com o mínimo de componentes externos e que permita também a utilização do protocolo USB durante a execução do programa para comunicação com o PC. O clube de robótica do IS Leiria tem um tutorial online sobre programar um PIC 18f2550 por USB directo usando um bootloader
Título: Re: Como funciona um Arduino?
Enviado por: senso em 28 de Fevereiro de 2015, 21:32
Á milhares de micros com USB em software, não se está efectivamente a falar de nada com um rumo definido.
Título: Re: Como funciona um Arduino?
Enviado por: artur36 em 28 de Fevereiro de 2015, 21:42
Referi por se estar a falar de USB por software quando existe Arduino com USB por hardware, simplificando a meu ver as coisas
Título: Re: Como funciona um Arduino?
Enviado por: dropes em 28 de Fevereiro de 2015, 22:41
Obrigado @artur36 pela informação.
Não sou adepto do arduino e desconheço as suas variantes.
Sempre programei em ISP, antes em interface paralela, nada de bootloaders... simplesmente surgiu o tema e faz-me confusão uma placa tão grande e ter um micro só dedicado à interface com o PC.
Título: Re: Como funciona um Arduino?
Enviado por: StarRider em 28 de Fevereiro de 2015, 23:10
Boas,

É somente uma opinião, mas nunca me passaria pela cabeça usar um "emulador" USB, a comunicação
USB é muito mais complexa do que um simples protocolo serie (UART, SPI, I2C), essa tal VUsb deve deixar
o AVR de rastos ...

Depois temos ainda que pelo que pode ler (muito na diagonal) essa VUsb implementa somente a classe HID
pelo que uma VCOM é impossível ... pelo menos não encontrei qualquer referencia a CDC no que pude ler
sobre essa lib.


Abraços,
PA