노련한 프로그래머 Arduino 또는 다른 것?


11

내 배경:

나는 꽤 오랫동안 소프트웨어를 해왔으며 C, C ++, Java, Ruby, Erlang, Haskell, Lua 및 Python에 능숙합니다. 나는 또한 실험실 전자 공학에서 수업을 들었지만 펌프로 하나의 간단한 실험실을 만들었습니다. 프로그래밍 환경이 아닌 LabView를 사용하여 신호와 A / D를 가져오고 x86으로 가져 오는 것이 전부였습니다. 홈 오토메이션을 염두에두고 하드웨어로 땜질을 다시 시작하십시오. (나는 그때 더 잘 할 수 있다고 생각 미만 $ 500)

질문:

Arduino에서 이빨을 자르려고했지만 더 많이 읽을수록 해당 시스템의 가장 큰 장점은 프로그래밍이 간단하다는 것입니다. 소프트웨어 (납땜을 사야하는 사람)가 시작하기에 좋은 장소입니까, 아니면 나에게 더 적합한 것이 있습니까?

(PS 나는 돈보다 시간이 더 많다)

답변:


4

마이크로 컨트롤러 평가 보드가 게이트에서 사용할 수있는 한 arduino 제품군도 있습니다. 또한 msp430 런치 패드를 $ 4.30에 고려하십시오. 좋은 명령 세트와 낮은 전력 / 비용으로 기대어 avr과 유사한 성능을 제공합니다. $ 20의 경우 stm32f4 발견 (stm32 value line discovery 또는 stm8 제품군과 혼동하지 않아야 함)을 얻을 수 있으며 일반적으로 사용 가능한 arduino ($ 35- $ 50)에 비해 지불 비용은 적지 만 arduino 168Mhz 주변에 원을 표시합니다. arduino 가격대의 상단에는 mbed (mbed.org)가 있으며, 아마도 arduino 샌드 박스 경험에 가장 가까운 것입니다.

standbox에 머물면서 arduino가 당신이 살고 싶은 곳일 것입니다.

무슨 일이 일어나고 있는지에 대한 책임과 지식을 조금 더 가지고 있으면 더 많은 성능을 얻고, 돈을 벌 수 있습니다. 세 가지 플랫폼 (avr, msp, arm / thumb)과 여러 공급 업체 (avr 및 msp는 잠겨 있지만 팔은 다른 주변 장치 및 I / O를 가진 모든 사람이 판매)를 권장합니다. 예를 들어 gpio 라인을 끌어 올리지 않는 플랫폼에 익숙 할 수 있으며 다른 칩이나 공급 업체가 비슷한 가격 / 성능 지점에서 온칩을 제공하는 외부 구성 요소를 사용해야합니다. 마찬가지로 직렬 포트 또는 spi 버스를 비트 뱅킹하는 것이 좋을 수도 있지만 같은 돈, 전력, 크기 등의 다른 공급 업체는 해당 인터페이스를 지원하는 하드웨어가 있음을 알 수 있습니다.

다른 것이 없다면 프로그래머와 취미 전자 장치에 들어가서 샌드 박스 외부에서 일어나는 일에 대해 더 알고 싶어하는 사람이 가장 좋습니다. 이 취미 전자 분야에 들어가기위한 방법으로 arduino는 운영 체제의 응용 프로그램 프로그래밍에서 매우 편안한 전환입니다. sparkfun은 이제 직렬 인터페이스를 포함하는 일부 키트를 가지고 있으며 몇 가지 주변 장치에는 lilypad 키트 (arduino 플랫폼)와 아마도 프로 키트가 있습니다. 두 키트 모두 중요한 경우 arduino shield 폼 팩터가 아닙니다. sparkfun은 소매 상자 및 다른 많은 arduinos, uno 등을 판매합니다. 위에서 언급 한 st 및 msp 보드는 ti 또는 st 웹 사이트에서 시작하거나 github.com/dwelch67로 이동하여 내 다양한 ​​보드에 대한 링크가 있습니다. 예).


8

나는 또한 매일 소프트웨어 녀석이다. 약 10 년 전에 저는 시차의 BASIC 스탬프를 시작했으며, 오랜 시간이 지난 후 최근에 임베디드 프로젝트로 돌아 왔습니다. 처음에 나는 Arduino와 그 다른 부분을 살펴 보았고 Arduino 보드의 가격표를 건너 뛰고 ATMega168을 가져 와서 다시 시작할 수 있음을 깨달았습니다. 이것은 대부분 효과가 있었지만 기본 어셈블리를 망칠 수 없었기 때문에 미리 빌드 된 보드를 사용하는 것이 좋았던 문제가 자주 발생했습니다.

나는 결국 Arduino를 주문하고 보드와 도서관에 관한 모든 것을 좋아합니다. 저는 "IDE"의 팬이 아니므로 'Use External Editor'를 클릭하고 IDE를 순수하게 컴파일하여 보드에 소프트웨어를 플래싱합니다. 일반적으로 Arduino 보드로 프로젝트 또는 아이디어를 시작한 다음 메가 칩으로 이식합니다. 이렇게하면 프로젝트에 필요한 부품 만 사용하여 비용을 절감 할 수 있지만 프로토 타입을 빠르게 만들 수 있습니다.

행운을 빕니다!


6

Arduino는 마이크로 컨트롤러 프로그래밍에 대한 훌륭한 소개입니다.

PC 용 소프트웨어 작성과 마이크로 컨트롤러 용 펌웨어 작성에는 큰 차이가 있습니다.

Arduino는 특정 칩 문제를 처리하는 데 어려움을 겪지 않고 주변 장치와의 인터페이스를 둘러 볼 수있는 좋은 출발점이 될 것입니다.

그러나 내가 말했듯이 소개입니다.

Arduino로 시작한 다음 더 크고 더 나은 것으로 넘어갑니다.

저는 PIC 마이크로 컨트롤러 제품군을 많이 사용하지만 아이디어를 시험하고 빠르게 테스트하는 데 사용하는 신뢰할 수있는 Li'l Arduino를 보유하고 있습니다.


6

“아두 이노”는 여러 가지로 구성되어 있기 때문에 별도로 살펴 보는 것이 도움이 될 것입니다.

  • 하드웨어 측면에서 Arduino 호환 장치는 기본적으로 특정 부트 로더가있는 ATMega 마이크로 컨트롤러입니다. 일반적으로 기성품 Arduino 호환 보드에는 USB 또는 직렬 포트 인터페이스, 전압 조정기, 핀에 쉽게 액세스 할 수있는 핀 헤더 등과 같은 다른 지원 전자 장치도 포함됩니다. USB 기능을 원할 경우 하드웨어 장치는 매우 저렴합니다. 사전 프로그래밍 된 부트 로더와 함께 소프트웨어를 업로드하기 위해 별도의 프로그래머를 구입할 필요가 없습니다. 예, Arduino (및 호환 가능한 클론)는 프로토 타이핑하는 동안 하드웨어 장치로 유용합니다. 최종 빌드의 경우 필요한 부분만으로 자체 빌드를 원할 수 있으므로 모든 프로젝트에 하나의 완전한 Arduino를 넣을 필요는 없습니다.

  • 소프트웨어 측면에서 Arduino 라이브러리는 다른 프로그래밍 라이브러리와 비슷하며 유용성은 사용자의 요구에 따라 다릅니다. 개인적으로 빠른 프로토 타이핑 (예 : 직렬 포트 기능)에 유용하지만, 숙련 된 프로그래머는 많은 단순화 (특히 핀 번호 매기기)를 싫어합니다. 어쨌든 Arduino 장치를 프로그래밍하거나 Arduino IDE를 사용하더라도 Arduino 라이브러리 대신 또는 추가로 원래 AVR 라이브러리를 쉽게 사용할 수 있습니다. 따라서 특히 프로토 타이핑 할 때 도움이되는 Arduino 라이브러리를 사용하되 기본 AVR을 익히십시오 (Arduino 소스 및 ATMega 데이터 시트 참조).

  • 마지막으로 Arduino IDE는 간단한 편집기, 직렬 포트 콘솔, "make"와 같은 빌드 시스템 (사용자에게 숨겨져 있음) 및 소프트웨어를 실제 장치에 업로드 할 수있는 프런트 엔드 도구를 갖춘 그래픽 프로그래밍 환경입니다. . 개인적으로 나는 IDE를 싫어하고 절대 사용하지 않으며 명령 줄에서 작업하는 것을 선호하지만 분명히 이것은 개인적인 취향의 문제 일뿐입니다.


1
나는 그들이 그 괴물을 어떻게 IDE라고 부를 수 있는지 모른다. 그것은 가장 끔찍한 부분의 [조어 삭제] 상상할 수. 나는 Anduta 가 Arduino의 (그렇지 않은) IDE 가하는 것처럼 이제 나를 위해 모든 것을 수행하도록 거의 설정했습니다.
Majenko

4

귀하의 질문은 솔직한 답변을하기에는 너무 개방적이므로, 우리가 할 수있는 모든 것은 당신에게 트레이드 오프를 보여주기위한 것입니다.

adruino는 설탕 코팅 마이크로 컨트롤러입니다. 최소한의 학습으로 최소한의 기본적인 작업을 수행 할 수 있도록 최적화되었습니다.

arduino의 핵심에는 일반 마이크로 컨트롤러가 있으며 직접 사용할 수도 있습니다. 장점은 당신이하고 싶은 일을 위해 마이크로를 선택할 수 있고, 당신과 마이크로 사이에서해야 할 일에 대한 다른 사람의 생각이없고, 베어 마이크로가 할 수있는 모든 일을 할 수 있다는 것입니다. 아두 이노 추상화를 통해 드러나는 것보다 훨씬 더. 단점은 실제로 무언가를 배워야 할 것입니다. 데이터 시트 몇 백 페이지를 읽는 것은 시작에 불과하며 즉각적인 만족감을 얻지 못할 것입니다.

오직 당신 만이 당신에게 더 좋은 것을 말할 수 있습니다. 당신은 당신의 내면의 바보를 포용하고 정원을 통해 "허?", "무엇?", "아 너무 귀여워!" 전자적인 것들에? 아니면 많은 수고와 어려움을 겪고 하나의 깜박이는 LED로 나타나기 위해 길고 어두운 길을 걸고 싶습니까? 자동차를 운전하거나 엔진 작동 방식을 배우고 싶을 때 최대한의 성능을 얻고 직접 조정할 수 있습니까?


1
Olin, 당신은 오래된 학교입니다! 나는 칭찬으로 절대적으로 의미합니다 ... 그러나 나는이 문제에 대해 정중하게 동의하지 않습니다. 잘 설계되지 않은 운영 체제에서 평범하게 설계된 소프트웨어를 다루는 것은 전자 제품에 대한 이해에 전혀 영향을 미치지 않았습니다. 사실 자신과 같은 지식을 가진 사람들로부터 유용한 것들을 배울 수 있었을 때 귀중한 시간을 보냈습니다. 나는 "장수 아두 이노!
Kaelin Colclasure

2
@KaelinColclasure 귀하의 의견은 혼란 스럽습니다. 열악한 소프트웨어와 OS에서는 문제가 발생하지만 Olin은이를 해결하지 않습니다. 무엇이든 OS가 추상화 레이어와 같은 추상화 레이어 인 arduino가 당신을 위해 무엇을하는지 고려할 수 있습니다. Arduino 사용 방법을 배우는 것은 오버 헤드로 인해 추가 비용이 필요하지 않기 때문에 더 나은 엔지니어가되는 데 거의 도움이되지 않습니다. 따라서 Arduino는 훌륭한 플랫폼이라고 생각하지만 임베디드 전자 장치의 세계를 진정으로 이해하기위한 대안으로 간주되어서는 안됩니다.
Kellenjb

예 자동차 유사점! Olin, 많은 사람들에게 이것은 전자 제품의 핵심을 배우고 배우고 엔지니어가되는 것이 아닙니다. 많은 사람들이 목표를 달성하고 문제를 해결할 수있는 도구를 선택하려고합니다. 전자 학습은 많은 경우에 끝내는 수단이며, 그 자체가 아닙니다. 같은 이유로 모든 사람이이 게임에 참여하는 것은 아닙니다.
nemik

2
네? 그렇다면 "내면의 멍청이를 받아들이십시오"에 대해 말하는 것은 무엇입니까? 씨몬 Real Man ™과 같은 자체 OS를 작성하는 대신 Windows, Linux 또는 OS X를 실행하는 내부 모론을 수용하고 있습니까? 이것들은 대중을 위해 설탕 코팅 된 운영 체제입니다.
nemik

1
@nemik : 당신의 내면의 바보를 수용하는 것은 길고 어두운 길을 밟는 것처럼 일종의 농담이었습니다 ... 물론 두 가지 모두에 진실이 있습니다.
Olin Lathrop

4

프로그래머로서 저는 다른 많은 사람들이 사용하는 언어로 프로그래밍하는 것을 선호합니다. 이런 방식으로 저를 배울 수있는 책, 기사, 동료 등이 많이 있습니다.

싱글 보드 컴퓨터 세계에서 Arduino는 가장 큰지지를 받아 가장 인기가 있습니다. 첫 번째 마이크로 컴퓨터에 탁월한 선택입니다.

이러한 것들이 얼마나 저렴한가 (대부분 50 달러 미만)를 고려할 때 하나 이상의 유형을 얻는 것이 좋습니다.

Microsoft Visual Studio 및 C #에 익숙한 사용자에게는 이미 알고있는 툴체인이 있기 때문에 Netduino 는 탁월한 선택입니다.

선호하는 환경이 Unix라면 2012 년 1 월에 출시Raspberry Pi 와 같은 보드를 좋아할 것입니다.

라즈베리 파이란 무엇입니까? Raspberry Pi는 신용 카드 크기의 컴퓨터로 TV와 키보드에 연결됩니다. 스프레드 시트, 워드 프로세싱 및 게임과 같은 데스크탑 PC가 수행하는 많은 작업에 사용할 수있는 유능한 소형 PC입니다. 또한 고화질 비디오를 재생합니다. 우리는 프로그래밍을 배우기 위해 전 세계 어린이들이 사용하는 것을보고 싶습니다.

기기는 언제 구입할 수 있습니까? 우리는 2011 년 말까지 Raspberry Pi를 주문할 수 있기를 바라고있었습니다. 우리는 여전히 연말 전에 첫 번째 베타 보드 배치를 경매 할 예정입니다 (크리스마스 이후에는 사이트를 주시하십시오). 우리는 1 월에 주요 생산으로 옮길 것입니다.

비용은 얼마입니까? 모델 A는 25 달러, 모델 B는 35 달러입니다.

정말 좋은 소식은 항상 더 많이 나오는 저렴한 마이크로 컨트롤러가 많이 있다는 것입니다.

마지막으로 Texas Instruments MSP-430 런치 패드 가 있으며 $ 4.30에 무료 배송됩니다. 그 싼 가격으로, 당신은 어떻게 사지 않습니까?


4

Arduino로 시작하여 아이디어를 구체화하고 최소한의 작동 프로토 타입을 만들고 제품에 필요한 기본 사항 (모터, 센서, 통신용 직렬)과 인터페이스하는 법을 배우십시오.

나중에 더 많은 기능 (USB 장치, 이더넷)이 ARM Cortex M 시리즈 칩으로 이동합니다. 32 비트 ARM은 AVR 및 PIC와 같은 고급 8 또는 16 비트 칩보다 훨씬 강력하고 더 저렴하며 주변 장치가 더 많다는 것을 의미합니다. NXP의 mbed (http://mbed.org)는 Arduino에서 온 경우 해당 플랫폼을 매우 부드럽게 소개합니다.


2

사람들이 Arduino가 "간단한 프로그래밍"이라고 말하면 실제로 의미하는 것은 툴체인이 기본적으로 작동한다는 것입니다. Mac에서는 작동하고 Windows에서는 작동하며 Linux에서는 작동합니다. 보드를 연결하고 코드를 작성하고 업로드하면됩니다.

약간의 일화적인 대비를 제공하기 위해 Atmel의 STK600과 AVR Studio 5 개발 환경으로 "업그레이드"했습니다. Windows에서만 작동하므로 VMware를 설치하고 Mac에 실행해야했습니다. 그런 다음 까다로운 포럼 게시물을 읽는 데 하루가 걸렸던 Finicky Jengo USB 드라이버를 설치해야했습니다. 그런 다음 IDE에서 개발자 보드와 대화 할 수있는 이유를 알아야했지만 STK600과 함께 제공된 ATmega2560 도터 카드와는 대화하지 못했습니다 ... (JTAG 케이블이 잘못 연결되었습니다. 케이블이 거꾸로 연결된 것을 보여주는 그림이있는 웹.)

지금까지 AVR Studio 5로 코드 라인을 작성하지는 않았지만 Arduino IDE를 사용하는 총 시간보다 더 많은 시간을 보냈습니다. 그리고 수십 개의 Arduino 스케치를 작성했습니다.

프로그래밍하는 언어는 기본적으로 약간의 전처리가있는 C ++입니다. 배경이 있으면 나중에 필요할 때 "프로"환경에 원하는 스케치를 이식하는 방법을 찾는 데 어려움이 없습니다. 나에게는 Arduino 하드웨어를 다루지 않고 자신의 보드를 디자인하기 시작한 후에야 필요성이 생겼습니다. 물론 YMMV ...

도움이 되었기를 바랍니다. :-)


3
당신을 고르지 말고 ... 그러나 나는 당신과 다시 동의하지 않습니다. 사람들이 Arduino가 프로그래밍하기 쉽다고 말하는 이유는 본질적으로 그렇지 않은 추상화 계층을 추가했기 때문입니다. 당신은 또한 C ++를 가지고있다. 이것은 임베디드 세계에서는보기 드문 일이다. 때로는 특정 프로젝트에 필요하지만 모든 페니를 자르려고 할 때 가질 수없는 오버 헤드가 추가됩니다.
Kellenjb

@ Kellenjb, 거의 오버 헤드없이 C ++을 코딩 할 수 있으며 때로는 섹션이 10 %를 차지할 수 있지만 오버 헤드가 0 인 섹션이 많이 있습니다. 그러나 네, 언어로하는 일에 더 많은주의를 기울여야하기 때문에 드물지만 C에서도 마찬가지입니다. 사용자는 c에서 malloc ()을 시도하여 큰 결과를 얻지 못했습니다.
Kortuk

1

Arduino는 A / D, D / A (최소한 PWM) 많은 디지털 I / O, 보드의 프로그래밍 가능 LED, 직렬 -USB 및 기성품 모듈을 제공하는 유연한 스테핑 오프 ​​플랫폼을 만듭니다. 다른 많은 종류의 하드웨어. 학습 경험을 위해 롤업을하고 싶다면 필요하지 않습니다. 플랫폼이 재미를 위해 무언가를 만들고 실행하기를 원하거나 저비용 하드웨어 버전을 디자인하는 동안 플랫폼을 사용하고 싶을 때 바로 사용할 수 있습니다. 이는 디자인, 전략 및 경제 결정으로, 목표에 맞는 방식으로 완벽하게 적용 할 수 있습니다. 트레이드 오프를 만드는 데있어 "모 론적"은 없습니다. 즉, 엔지니어가 매일해야 할 일입니다.


1

John의 경험은 15 년 전 컴퓨터 과학 (기본적으로 어셈블리 언어 프로그래밍 및 C)을 학부생에게 가르치는 과정에서 은퇴했을 때와 거의 일치합니다. 나는 컴퓨팅의 발전을 따라 잡는 것이 엄청나게 비싸다는 것을 깨달았고, 아내는 1950 년대에 전기 기술자로 즐겼던 것처럼 취미로 전자 제품으로 돌아갈 것을 제안했습니다. 트랜지스터를 짧게 만났고 연산 증폭기를 보지 못했지만이 작업을 수행하면서 많은 즐거움을 얻었습니다. 나는 Assembly Language에 대한 나의 사랑을 유지했고, Microchip Pics가 90 년대 중반에 나타 났을 때 나는 그들에 매료되었습니다.

Arduino와 비교할 수는 없지만 Pics를 사용하면 Microchip이 모든 정보를 무료로 제공하고 화려한 IDE를 제공하므로 설정이 저렴하다는 장점이 있습니다. 내가 한 것처럼, 그들이 출판 한 것에서. 집에서 만든 프로그래머, 인터넷에서 많은 디자인으로 시작할 수 있으므로 몇 개의 Pic 칩을 시작하는 데 몇 파운드 밖에 들지 않습니다. 그러나 프로그램 개발을 쉽게하기 위해 내장 기능이 많은 PicKit 2를 추천합니다. 아마도 PicKit 3이 아닐 수도 있습니다.

http://www.eevblog.com/2009/10/21/eevblog-39-pickit-3-programmerdebugger-review/ 이것이 업데이트되었지만이 참조에 대한 참고 사항을 참조하십시오.

Pics에 관한 많은 책이 있지만 일부는 쓰레기입니다. 쉬운 시작을 위해 Pic에 대한 훌륭한 소개는 다음과 같습니다.

"PIC 마이크로 컨트롤러를 사용한 임베디드 시스템 설계 : 원칙 및 애플리케이션"[Paperback] Tim Wilmshurst, 아마존에서 22-66 파운드 (어셈블러 및 C 포함). 하드웨어와의 친밀감을 없애는 것처럼 보였기 때문에 C를 잠시 피했습니다. Assembler가 제공하지만 Microchip에서 제공 한 C 컴파일러를 사용하면 생성 된 Assembler 코드도 볼 수 있습니다.

현대 전자 제품에 대한 전체적이고, 훌륭하고, 기술적 인 (수학을 넣는 것을 두려워하지는 않습니다) 저는 Paul Scherz의 "Practical Electronics for Inventors"2 / E [페이퍼 백] (Amazon의 £ 19-95)을 추천합니다.

나는 상점에서이 책들에 대해 각각 26-99 파운드와 22-99 파운드를 지불했지만 전혀 후회하지 않는다.

나는 여기서 충분히 커버 할 수 없다. 나는 417weston@gmail.com이라는 주제로 이메일을 보내서 기쁘다. (그리고 만약 내가 읽거나 다운로드하거나 대답하는 것에 대해 매우 조심 스럽다.)

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.