Para um programador experiente Arduino ou algo mais?

11

Minha experiência:

Eu desenvolvi software há um bom tempo e sou mais ou menos proficiente em C, C ++, Java, Ruby, Erlang, Haskell, Lua e Python. Também participei de uma aula de eletrônica de laboratório, mas, além de um breve laboratório com uma bomba, tratava-se de obter um sinal para entrada e saída de A / D e daí para um x86 com LabView ( não é minha escolha de ambientes de programação). para voltar a mexer no hardware, visando a automação residencial. (Eu acho que posso fazer melhor que isso por menos de US $ 500)

Questão:

Eu ia cortar os dentes em um Arduino, mas quanto mais leio, mais parece que a principal vantagem desse sistema é que é simples de programar. Esse é um bom lugar para um cara de software (que ainda precisa comprar um ferro de soldar) começar ou há algo que me convenha melhor?

(PS eu tenho mais tempo do que dinheiro)

John F. Miller
fonte

Respostas:

4

Quanto às placas de avaliação de microcontroladores prontas para uso fora do portão, existe a família arduino, é claro. mas também considere a barra de ativação do msp430 por US $ 4,30. bom conjunto de instruções e desempenho semelhante ao avr com uma inclinação para baixo custo / energia. Por US $ 20, você pode obter a descoberta stm32f4 (que não deve ser confundida com a descoberta da linha de valor stm32 ou a família stm8), que geralmente é menor do que você pagaria por um arduino utilizável (US $ 35 a US $ 50), mas percorre círculos em torno do ponto flutuante do arduino 168Mhz unidade, caches, etc. Na extremidade superior da faixa de preço do arduino, existe outro braço, o mbed (mbed.org), que provavelmente é o mais próximo da experiência da sandbox do arduino.

Se você quiser ficar em uma caixa de stand-alone e apenas fazer chamadas de API, o arduino provavelmente é onde você quer morar, há o mega para obter mais desempenho ou use o bordo de folhetos que é baseado em braço, mas tenta fornecer a experiência da caixa de areia do arduino.

Você pode obter muito mais desempenho, gastar muito, etc., se assumir um pouco mais de responsabilidade e conhecimento sobre o que está acontecendo. Eu recomendo todas as três plataformas (avr, msp, braço / polegar) e vários fornecedores (avr e msp estão bloqueados, mas o braço é vendido por todos com periféricos e E / S diferentes). Por exemplo, você pode estar acostumado a uma plataforma que não possui flexões nas linhas gpio e deve usar componentes externos, onde outro chip ou fornecedor fornece esse chip a um preço / desempenho comparável. Da mesma forma, você pode gostar de bater um pouco em uma porta serial ou em um barramento spi, mas acha que pelo mesmo dinheiro, potência, tamanho, etc. algum outro fornecedor possui hardware para auxiliar nessa interface.

se nada mais, é do seu interesse como programador e alguém que queira entrar no setor de eletrônicos para saber mais sobre o que está acontecendo fora da caixa de areia. Como uma maneira de entrar nesse mundo da eletrônica de hobby, o arduino é uma transição muito confortável da programação de aplicativos em um sistema operacional. Agora, o sparkfun tem alguns kits que incluem a interface serial e alguns periféricos. Há um kit lilypad (uma plataforma arduino) e talvez um kit profissional, ambos não são o fator de forma do escudo do arduino, se isso importa. O sparkfun vende caixas de varejo e muitos outros tipos de arduinos, uno etc. (as placas st e msp mencionadas acima, você deve começar no site da ti ou st ou ir para github.com/dwelch67 e tenho links para as várias placas na minha exemplos).

old_timer
fonte
8

Eu também sou um cara de software por dia. Cerca de dez anos atrás, comecei com os selos BASIC da Parallax e, depois de um longo lapso, voltei recentemente a projetos incorporados. Inicialmente, olhei para o Arduino e suas diferentes partes e percebi que podia ignorar o preço da placa do Arduino, pegar alguns ATMega168s e começar de novo. Isso funcionou na maior parte do tempo, no entanto, muitas vezes eu me deparava com questões em que ter uma placa pré-construída teria sido bom, já que eu não poderia ter estragado a montagem básica.

Acabei pedindo um Arduino e adoro tudo sobre o quadro e as bibliotecas. Como não sou fã do "IDE", clico em 'Usar editor externo' e uso o IDE apenas para compilar e exibir o software na placa. Normalmente, inicio um projeto ou idéia com a placa Arduino e, em seguida, a porta em um mega chip. Isso ajuda a manter os custos baixos, usando apenas as peças necessárias para um projeto, mas ainda me permite criar rapidamente um protótipo.

Boa sorte!

Michael Dillon
fonte
6

O Arduino é uma ótima introdução à programação de um microcontrolador.

Há uma grande diferença entre escrever software para um PC e escrever firmware para um microcontrolador.

O Arduino seria um bom ponto de partida para fazer interface com periféricos, etc, sem ter que se preocupar em lidar com peculiaridades específicas de chips e coisas do tipo.

Mas, como eu disse, é uma introdução.

Comece com o Arduino e depois passe para coisas maiores e melhores.

Eu uso bastante a família PIC de microcontroladores, mas ainda tenho o meu confiável Arduino que uso para testar idéias e testar as coisas rapidamente.

Majenko
fonte
6

Como o "Arduino" compreende várias coisas, acho que pode ser útil analisá-las separadamente:

  • No lado do hardware, um dispositivo compatível com Arduino é basicamente um microcontrolador ATMega com um determinado gerenciador de inicialização. Geralmente, uma placa compatível com Arduino já pronta inclui outros componentes eletrônicos de suporte, como uma interface de porta USB ou serial, regulador de tensão, conectores de pinos para facilitar o acesso aos pinos, etc. Os dispositivos de hardware são bastante acessíveis se você desejar a funcionalidade USB e junto com o carregador de inicialização pré-programado, você economiza a necessidade de comprar um programador separado para fazer o upload do seu software. Então, sim, o Arduino (e clones compatíveis) são úteis como dispositivos de hardware durante a criação de protótipos; para a compilação final, você pode criar o seu próprio com apenas as partes necessárias, para que não seja necessário colocar um Arduino completo em cada projeto.

  • No lado do software, a biblioteca do Arduino é como qualquer biblioteca de programação e sua utilidade depende das suas necessidades. Pessoalmente, acho que ocasionalmente é útil para prototipagem rápida (por exemplo, a funcionalidade da porta serial), mas como programador experiente, não gosto de muitas das simplificações (especialmente a numeração de pinos). Em qualquer caso, você pode usar facilmente as bibliotecas originais do AVR em vez da biblioteca do Arduino ou em adição a ela, mesmo se você programar para um dispositivo Arduino e / ou usar o IDE do Arduino. Portanto, use as bibliotecas do Arduino que julgar úteis, especialmente ao prototipar, mas aprenda o AVR subjacente à medida que avança (consulte Fontes do Arduino e folha de dados do ATMega).

  • Finalmente, o Arduino IDE é o ambiente de programação gráfica com um editor simples, console de porta serial, sistema de compilação semelhante ao "make" (oculto ao usuário) e (um front-end para) ferramentas para fazer upload de seu software para o dispositivo real . Pessoalmente, odeio o IDE e nunca o uso, preferindo trabalhar na linha de comando, mas obviamente isso é apenas uma questão de preferência pessoal.

Arkku
fonte
1
Não sei como eles podem chamar essa monstruosidade de IDE. É a peça mais horrenda de [palavrão excluído] que se possa imaginar. Eu tenho o Anjuta quase configurado para fazer tudo por mim agora que o (não muito) IDE do Arduino faz.
Majenko
4

Sua pergunta é aberta demais para uma resposta direta; portanto, tudo o que podemos fazer é mostrar as vantagens e desvantagens.

O adruino é um microcontrolador revestido de açúcar, embotado pelas massas. Ele é otimizado para fazer as coisas básicas rapidamente, com o mínimo de aprendizado.

No coração de um arduino está um microcontrolador comum, que você também pode usar diretamente. A vantagem é que você pode escolher seu micro exatamente para o que deseja fazer, não tem a idéia de outra pessoa sobre o que deve fazer entre você e o micro e pode fazer o que o micro simples for capaz, o que é um muito mais do que apareceu através da abstração do arduino. A desvantagem é que você realmente precisará aprender alguma coisa, ler algumas 100 páginas de folha de dados é apenas o começo e você não receberá gratificação instantânea.

Somente você pode dizer o que é melhor para você. Você quer abraçar seu idiota interior e ser conduzido alegremente pelo jardim para sempre relegado a dizer "hein?", "O quê?" E "Oh, isso é tão fofo!" para coisas eletrônicas? Ou você prefere percorrer o longo caminho escuro para emergir com um único LED piscando depois de muito trabalho e problemas? Você quer apenas dirigir o carro ou aprender como o motor funciona para que você possa obter o máximo desempenho e ajustá-lo você mesmo?

Olin Lathrop
fonte
1
Olin, você é da velha escola! Quero dizer absolutamente isso como um elogio ... Mas eu respeitosamente discordo de você sobre esse assunto. Lidar com um software medíocre projetado em um sistema operacional mal concebido adicionou zero à minha compreensão da eletrônica. De fato, absorveu dias de tempo valioso quando eu poderia aprender coisas úteis de pessoas qualificadas como você. Eu digo "Viva o Arduino!"
Kaelin Colclasure
2
@KaelinColclasure Seu comentário é um pouco confuso para mim. Você tem problemas com software e SOs ruins, mas Olin não está resolvendo isso. Se você pode considerar o que o arduino faz por você, uma camada de abstração, como o sistema operacional é uma camada de abstração. Aprender a usar um arduino faz muito pouco para ajudá-lo a se tornar um engenheiro melhor, pois a sobrecarga resultará em custos extras que não são necessários. Com isso dito, acho que o Arduino é uma ótima plataforma, mas não deve ser considerado um substituto para a verdadeira compreensão do mundo da eletrônica embarcada.
Kellenjb
Yay analogias de carros! Olin, para muitas pessoas, não se trata de procurar e aprender os detalhes da eletrônica e emergir para ser um engenheiro. Muitas pessoas querem apenas escolher uma ferramenta que permita alcançar seu objetivo e resolver seu problema. Aprender a eletrônica é um meio para atingir um fim em muitos casos, e não é o fim em si. Nem todo mundo está neste jogo pelas mesmas razões que você.
30/11
2
Sim? Então, o que é isso sobre "abraçar seu idiota interior"? Vamos lá. Você está adotando seu idiota interno executando Windows ou Linux ou OS X em vez de criar seu próprio sistema operacional como um Real Man ™? Esses são sistemas operacionais revestidos de açúcar, emburrecidos pelas massas.
nemik
1
@nemik: Abraçar o seu idiota interior foi uma piada, como caminhar pelo longo caminho escuro ... É claro que também há alguma verdade neles.
Olin Lathrop
4

Como programador, eu prefiro programar em uma linguagem usada por muitas outras pessoas, de modo que existem muitos livros, artigos, colegas etc. disponíveis para me ajudar a aprender.

No mundo dos computadores de placa única, o Arduino é, sem dúvida, o mais popular, com o maior respiro de suporte. É uma excelente opção para o seu primeiro microcomputador.

Considerando como essas coisas são baratas (a maioria custa menos de US $ 50), considere adquirir mais de um tipo.

Para alguém familiarizado com o Microsoft Visual Studio e C #, o Netduino é uma excelente opção, pois possui uma cadeia de ferramentas que você já conhece.

Se o seu ambiente preferido é o Unix, você pode gostar de uma placa como o Raspberry Pi, que deve sair em janeiro de 2012:

O que é um Raspberry Pi? O Raspberry Pi é um computador do tamanho de um cartão de crédito que se conecta à TV e ao teclado. É um pequeno PC capaz que pode ser usado para muitas das coisas que seu PC de mesa faz, como planilhas, processamento de texto e jogos. Também reproduz vídeo de alta definição. Queremos vê-lo sendo usado por crianças de todo o mundo para aprender programação.

Quando o dispositivo estará disponível para compra? Esperávamos ter o Raspberry Pi disponível para encomenda até o final de 2011. Ainda esperamos leiloar alguns dos nossos primeiros lotes de placas beta antes do final do ano (fique de olho no site depois do Natal); mudaremos para a produção principal em janeiro.

Quanto vai custar? O Modelo A custará US $ 25 e o Modelo B, US $ 35.

A boa notícia é que existem muitos microcontroladores de baixo custo disponíveis, com mais lançamentos o tempo todo.

Finalmente, há o Launchpad da Texas Instruments MSP-430, que está disponível por US $ 4,30 com frete grátis. A um preço tão barato, como você não compra um?

JonnyBoats
fonte
4

Comece com o Arduino para aprimorar sua ideia e criar um protótipo de trabalho mínimo e apenas aprenda a interagir com o básico que você precisará para seu produto (motores, sensores, serial para comunicação).

Posteriormente, como você deseja obter mais funcionalidades (dispositivos USB, Ethernet), passe para os chips ARM Cortex M-series. O ARM de 32 bits significa que eles são muito poderosos e agora geralmente mais baratos e com mais periféricos que os chips de 8 ou 16 bits de ponta, como os AVRs e PICs. O mbed do NXP (http://mbed.org) é uma introdução muito gentil a essa plataforma, se você vem do Arduino.

nemik
fonte
2

Quando as pessoas dizem que o Arduino é "simples de programar", o que elas realmente querem dizer é que o conjunto de ferramentas basicamente funciona. Funciona em um Mac, no Windows e no Linux. Você conecta sua placa, escreve seu código, faz o upload e ele continua.

Para oferecer um pouco de contraste, eu mesmo "atualizei" o STK600 da Atmel e o ambiente de desenvolvimento do AVR Studio 5. Ele só funciona no Windows, então eu tive que instalar o VMware no meu Mac. Então eu tive que instalar o driver USB do Jengo, que demorou um dia lendo posts do fórum. Então tive que descobrir por que poderia falar com a placa de desenvolvimento do IDE, mas não com a placa filha ATmega2560 que acompanha o STK600 ... (O cabo JTAG foi conectado incorretamente, porque segui um tutorial ilustrado sobre o Web que acabou tendo uma imagem mostrando o cabo conectado ao contrário.)

Até o momento, não escrevi uma linha de código com o AVR Studio 5, mas provavelmente passei mais tempo brincando com ele do que o tempo total usando o IDE do Arduino. E eu escrevi dezenas de esboços do Arduino.

A linguagem na qual você está programando é basicamente C ++ com um pouco de pré-processamento. Com o seu histórico, você não terá problemas para descobrir como transplantar os esboços que desejar para um ambiente "profissional" posteriormente, se necessário. Para mim, a necessidade surgiu apenas quando eu fui além de mexer no hardware do Arduino e comecei a projetar minha própria placa. YMMV, é claro ...

Espero que isto ajude. :-)

Kaelin Colclasure
fonte
3
Não para te pegar ... mas eu discordo de você novamente. A razão pela qual as pessoas dizem que um Arduino é simples de programar é porque elas adicionaram essencialmente uma camada de abstração que você não obteria de outra forma. Você também exibe o C ++, isso é muito raro de se ver no mundo incorporado. Às vezes, é necessário para projetos específicos, mas também adiciona alguma sobrecarga que você simplesmente não pode ter quando está tentando cortar cada centavo.
Kellenjb
@Kellenjb, eu posso codificar C ++ com quase nenhuma sobrecarga, às vezes as seções podem ter até 10%, mas muitas seções com 0 sobrecarga. Mas sim, é raro porque você precisa prestar mais atenção ao que está fazendo com o seu idioma, mas espere, o mesmo é verdadeiro em C. Vi usuários experimentarem malloc () em c antes, incorporados para obter resultados não excelentes.
Kortuk
1

O Arduino disponibiliza uma plataforma flexível de saída, fornecendo muitas E / S digitais A / D, D / A (pelo menos como PWM), um LED programável na placa, serial para USB e módulos prontos disponíveis para muitos outros tipos de hardware. Se você deseja criar a sua própria experiência de aprendizado, não precisa dela. Se você deseja que uma plataforma instale algo em funcionamento apenas por diversão ou enquanto estiver projetando a versão de hardware de baixo custo, algo está pronto para ser usado. São decisões de design, estratégicas e econômicas que são perfeitamente válidas para serem tomadas da maneira que melhor se adequar aos seus objetivos. Não há nada de "idiota" em fazer trocas - é o que os engenheiros fazem - e devem fazer - todos os dias.

JRobert
fonte
1

A experiência de John quase coincide com a minha há 15 anos, quando me aposentei do ensino de ciências da computação (basicamente Programação em linguagem Assembly e C) para estudantes de graduação. Percebi então que acompanhar os avanços da computação seria proibitivamente caro, então minha esposa sugeriu voltar à eletrônica como hobby, pois eu gostava de ser engenheiro elétrico nos anos 50. Fiz isso, apesar de ter encontrado apenas transistores brevemente e nunca ter visto um amplificador operacional, por isso tive muito aprendizado delicioso a fazer. Mantive meu amor pela linguagem Assembly e, quando o Microchip Pics apareceu, em meados dos anos 90, fiquei viciado nelas.

Não posso compará-los com o Arduino, sobre o qual não sei nada, mas uma vantagem de usar o Pics é que é barato configurá-lo, pois o Microchip fornece todas as informações gratuitamente, com um IDE brilhante, e você pode aprender a usá-los , como eu fiz, pelo que eles publicam. Você pode começar com um programador caseiro, com muitos designs na Internet, por isso custaria apenas alguns quilos para começar com alguns chips Pic. Mas eu recomendaria o PicKit 2, que possui muitos recursos internos para facilitar o desenvolvimento do programa. Talvez não o PicKit 3, no entanto, veja:

http://www.eevblog.com/2009/10/21/eevblog-39-pickit-3-programmerdebugger-review/ Embora isso tenha sido atualizado, consulte as notas nesta referência.

Há um grande número de livros sobre o Pics, mas alguns são lixo, cuidado. Para um começo fácil, uma excelente introdução ao Pic é:

"Projetando sistemas incorporados com microcontroladores PIC: princípios e aplicações" [Paperback] de Tim Wilmshurst, £ 22-66 na Amazon, que inclui Assembler e C. Evitei o C por um tempo porque parecia afastar a intimidade com o hardware que o Assembler fornece, mas com o compilador C fornecido pela Microchip, você também pode ver o código do Assembler que é gerado.

Para uma cobertura geral, boa e técnica (sem medo de colocar a matemática) da eletrônica moderna, recomendo: "Eletrônica prática para inventores" 2 / E [Brochura] de Paul Scherz, 19-95 na Amazon.

Paguei £ 26-99 e £ 22-99, respectivamente, por esses livros nas lojas, e não me arrependo.

Não posso cobrir o suficiente aqui, ficaria feliz em responder por e-mail sobre este assunto: [email protected] (e, por precaução, estou muito cauteloso com o que leio, baixo ou respondo.)

Harry Weston
fonte