Arduino를 이해합니다. 이제 무엇?


18

좋아, 나는 그것이 편안하다고 느끼는 Arduino와 충분히 놀았습니다. 이제는 Arduino 쪽보다 전자 장치를 더 많이 배우고 있습니다.

내 학습의 다음 단계는 무엇입니까? Arduino는 프로그래머 / 컨트롤러가 결합되어 있으므로 링크를 끊고 컨트롤러와 별도의 컨트롤러 칩으로 작업을 시작해야 할 것 같습니다. 누군가 올바른 방향으로 나를 가리킬 수 있습니까?


특정 목표 나 프로젝트를 염두에두고 있습니까?

나는 동의한다. 나에게 이것은 특정 일을 끝내는 것입니다. Arduino는 다른 도구와 같습니다.
Dirk

내가 지금하고있는 일은 다중 LED 어레이입니다. Arduino에서는 그렇게 어렵지는 않지만 훈련 바퀴를 제거하고 싶습니다. 궁극적으로 Arduino 보드에는 ATmega168 칩이 있습니다. 직접 작업하는 방법을 알 수 있다면 달성하려는 것을 만족시킬 것이라고 생각합니다.
크리스 비 베렌스

당신은 실제로 Arduino를 사용하여 칩에 직접 접근합니다. 핀에 부착 된 드라이버 나 많은 것이 없습니다. 헤더는 바로 거기에갑니다. 아마도 브레드 보드는?
AngryEE

@angryee-Chris는 Arduino IDE + 라이브러리없이 ATmega 칩을 직접 프로그래밍한다는 것을 의미합니다. 훈련 휠로 볼 수 있습니다.
J. Polfer

답변:



12

나는 Joby에 동의합니다-Arduino는 훌륭하지만 항상 그들이 나를 둘러싼 틀에 매료되어 있다고 느낍니다. 계속해서 Arduino에서 C를 사용하고 처음부터 제공 한 많은 라이브러리 기능을 구축하려고합니다. 나는 일반적으로 폭보다 깊이를 선호합니다. 더 많은 제공된 프레임 워크를 사용하여 다른 마이크로 컨트롤러 제품군에서 시작하지 마십시오. 이러한 기능 중 일부를 직접 구현하는 방법에 대해 조금 더 배우십시오.

작동하는 프로그램으로 시작하여 Arduino 라이브러리 호출을 한 번에 하나의 기능으로 고유 한 버전으로 교체하십시오. 아직 제어 레지스터, 타이밍, 비트 연산 등에 대해 많이 배울 것입니다. ATMega328 데이터 시트를 자세히 읽어보십시오. 필요한 모든 것이 있습니다.

AVR Studio 또는 Code :: Blocks와 같은 다른 IDE를 사용해보십시오. GCC 툴체인에 대해 알아보십시오. 단위 테스트, 적용 범위, 프로파일 링, 보푸라기 / 스플린트 검사와 같은 고급 코딩 기술을 사용해보십시오. Arduino에 RTOS를 설치하십시오.

결합 된 프로그래머 / 컨트롤러는 약점을 나타내는 것이 아니라 단지 디자인 선택 일뿐입니다. 이로 인해 발생할 수있는 유일한 '약점'은 회로 내 디버깅이 없다는 것입니다. AVR 드래곤을 구매하면 50 달러에 구입할 수 있습니다.


9

다음에 배울 것은 Arduino가 할 수없는 일에 달려 있다고 생각합니다. 즉, 비슷한 일을하도록 유사한 칩을 프로그래밍 할 때 많은 점을 알 수 없지만 더 어려운 방법이 있습니다.

Arduino의 약점은 다음과 같습니다.

  • 스레딩-코드의 두 섹션을 동시에 실행하여 코드가 동시에 실행되는 것처럼 보임을 의미합니다.
  • 스트리밍 오디오와 같은 중간 또는 고 대역 인터넷
  • 빠른 계산을 위해 빠른 계산이 필요한 심각한 계산 또는 작업
  • 데이터 로깅 또는 이미지 처리와 같은 파일 시스템을 사용하여 더 쉬운 모든 것

나는 두 가지 방향을 생각할 수 있습니다.

  1. Beagleboard 또는 Gumstix와 같은 작은 운영 체제가있는보다 강력한 내장 보드
  2. 하드웨어 인터럽트를 사용하여 작은 Atmega 칩에서 더 많은 성능을 끌어냅니다.

어느 방향이 더 매력적인 지에 대해 언급하면 ​​자세한 내용을 추가 할 수 있습니다. (두 번째는 확실히 저렴합니다.)


우스운 일입니다 ... 같은 일을하기 위해 비슷한 칩을 프로그래밍하지만 더 어려운 방법은 내가 생각한 것입니다. :). 약간의 배경-나는 다년간의 경험을 가진 소프트웨어 설계자입니다. 소프트웨어, 계산, 파일 시스템 등 모든 것이 쉬운 일입니다. 내가 머리를 두드리기 위해 정말로 필요한 것은 전자 기기입니다. Arduino를 넘어서고 자하는 이유는 Arduino 보드의 물리적 (및 가격) 오버 헤드가없는 단일 목적 장치를 생산할 수 있기를 원하기 때문입니다. 나는 당신이 말한 것에서 # 2가 내가 찾고있는 것이라고 생각합니다.
Chris B. Behrens

와우 .. 그 의견은 정말 이기적으로 들렸다. 나는 그런 식으로 그것을 의미하지 않았습니다 ... 어쨌든, 나는 Arduino가 제공하는 하드웨어 훈련 바퀴를 제거하고 싶다는 것을 의미했습니다. 특히, 나는 LOLShield와 비슷한 LED 어레이를 작업하고 있지만 대신 멀티플렉싱 할 것이라고 생각합니다. Arduino로 할 수 있지만, 없으면 Arduino가 필요합니다. 티아.
Chris B. Behrens

아, 소프트웨어 대신에 전자적인 것들 ... 센서 인터페이싱 / 데이터 로깅을 수행하는 데 좋은 경험이있을 것입니다. 화려하지는 않지만 센서를 보드에 인터페이스하려면 하드웨어에 대해 몇 가지 더 알아야합니다. Arduino에는 실제로 소프트웨어만큼 많은 하드웨어 훈련 휠이 없습니다. 초음파, IR 거리, 샤프트 엔코더 등 여러 유형의 센서를 통합 한 로봇 일 수도 있습니다. Arduino와 더 많은 하드웨어만으로도 가능합니다.
AngryEE

7

I2C, SPI, 1wire를 배우고 그러한 인터페이스로 센서를 인터페이스하십시오. 그러한 센서에 대한 많은 데이터 시트를 읽고 그 안에있는 모든 것을 이해하려고 노력하십시오. 붙어있을 때 질문하십시오. 장치에 장치를 내장 한 후 장치를 세상에 열 수있는 MODBUS (RTU / ASCII / TCP) 또는 유사한 프로토콜에 대해 알아보십시오. 일반 전자 장치를 배우고 릴레이, 트라이 액, 풀업 및 풀다운, 소싱 및 싱킹, 회로도를 작성하고 기본 드라이버를 MCU에 연결하는 방법을 인터페이스하십시오.


6

처음에는 Arduino에서 플랫폼으로 AVR로 이동하고 싶을 수도 있습니다. 즉, Arduino 대신 프로젝트를 위해 처녀 AVR 마이크로 컨트롤러를 프로그래밍 / 사용하는 방법을 배우십시오. 이렇게하면 각 프로젝트마다 또는 친구와 프로젝트를 수행하기 위해 다른 Arduino 보드를 구입할 필요가 없습니다. 이것은 매우 간단한 단계 (Arduino는 기존의 Atmel AVR 마이크로 컨트롤러이지만 특수 보드 및 부트 로더가 있음)이지만 친구에게 프로젝트를 판매 / 제공하기위한 큰 단계입니다. 툴체인도 비슷합니다. 프로그램을 설치하기 위해 프로그래밍 유틸리티와 함께 ​​avr-gcc 또는 avr-g ++를 사용합니다.


부트 로더를 칩에 로딩하고 프로젝트를 포기하고 싶다면 자신의 보드를 납땜하는 것은 매우 간단합니다. 또는 RBBB 키트를 $ 12.50 ( goo.gl/0yqr )로 주문하면 각 Arduino 프로젝트 당 $ 30 + 보드를 구입할 필요가 없습니다.
Davorak
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.