아두 이노를 부착하는 방법?


43

아두 이노 웹 사이트 금액을 최대로

Arduino는 유연하고 사용하기 쉬운 하드웨어 및 소프트웨어를 기반으로하는 오픈 소스 전자 프로토 타이핑 플랫폼입니다. 아티스트, 디자이너, 애호가 및 대화 형 객체 또는 환경을 만드는 데 관심이있는 모든 사람을 대상으로합니다.

서보를 제어하고 많은 옵션 쉴드가 제공하는 다른 연결성을 제공하는 멋진 인터페이스가 될 수 있습니다.

라즈베리 파이에 어떻게 연결합니까? 통신을 어떻게 설정합니까?

답변:


38

Arduino는 일반적으로 USB 직렬 장치로 나타납니다. 현재 보드는 메인 마이크로 프로세서에 내장 된 USB 직렬 드라이버를 사용하지만 구형 Arduino 및 클론은 별도의 타사 USB 직렬 칩을 사용했습니다.

Serial.printArduino에서 Raspberry Pi의 데이터 를 간단히 수신 하기 위해 GNU Screen 프로그램을 기본 터미널로 사용합니다 screen [serial-port] [baud-rate](예 screen /dev/ttyACM0 9600:).

세 가지 다른 Arduino와 하나의 다른 복제본을 테스트했습니다. 최신 버전은 모두 /dev/ttyACM0포트로, 이전 버전 은 포트로 나타납니다 /dev/ttyUSB0. 이것이 Raspbian에서 찾은 것입니다.

Raspberry Pi가 Arduino를 구동하기에 충분한 전원을 공급하지 못할 수 있으므로 외부 전원이 필요할 수 있습니다. 완성도를 높이기 위해 Prolific PL2303을 테스트 했지만 아두 이노에는 없습니다. 로 매우 행복하게 나타났습니다 /dev/ttyUSB0.

센서와의보다 복잡한 통신을 위해 "호스트 컴퓨터의 소프트웨어에서 마이크로 컨트롤러와 통신하기위한 일반 프로토콜"인 Firmata를 고려할 수 있습니다 . Arduino 및 Python 라이브러리가 Raspberry Pi 측에서 실행되도록 구현되었습니다.

다음은 pyFirmata 를 사용하여 LM35를 읽고 LED의 밝기를 변경 하는 작은 예입니다 .

#!/usr/bin/python
# -*- coding: utf-8 -*-

# simple test of pyfirmata and Arduino; read from an LM35 on A0,
#                                       brighten an LED on D3 using PWM
# scruss, 2012-08-14 - tested on Arduino Uno & Raspberry Pi (Raspbian)

import pyfirmata

# Create a new board, specifying serial port
board = pyfirmata.Arduino('/dev/ttyACM0')

# start an iterator thread so that serial buffer doesn't overflow
it = pyfirmata.util.Iterator(board)
it.start()

# set up pins
pin0=board.get_pin('a:0:i')             # A0 Input      (LM35)
pin3=board.get_pin('d:3:p')             # D3 PWM Output (LED)

# IMPORTANT! discard first reads until A0 gets something valid
while pin0.read() is None:
    pass

for i in range(10):
    pin3.write(i/10.0)                  # set D3 to 0, 10%, 20%, ... brightness
    print "PWM: %d %% Temperature %.1f °C" % (i * 10, pin0.read() * 5 * 100)
    board.pass_time(1)                  # pause 1 second

pin3.write(0)                           # turn LED back off
board.exit()

pyFirmata를 사용할 때주의해야 할 사항이 있습니다.

  • 아날로그 읽기 및 PWM 쓰기는 표준 Arduino 0 .. 255 및 0 .. 1023이 아니라 0.1 범위로 정규화됩니다.
  • 직렬 버퍼가 넘치는 오래된 판독 값을 중지하려면 별도의 반복자 스레드를 시작해야합니다.
  • Arduino는 비동기 적으로 읽히므로 포트에서 읽기 전에 pyFirmata 연결이 완전히 초기화되었는지 확인하십시오. 그렇지 않으면 None값이 뒤 따릅니다.

1
또한 Raspberry Pi 에서 처리 를 실행할 수 있음을 확인했습니다 . 그것은 느리지 만 USB 링크를 통해 Arduino를 제어 할 수있게했습니다 : Processing을 사용하여 Raspberry Pi에서 Arduino 제어 . 내가 이것을 파이썬 / tkinter로 포팅 할 수 있는지 알 것이다 ...
scruss

이 답변에 감사드립니다. 매우 유용했습니다. 파이썬 시리얼을 사용하여 / dev / ttyACM0에서 읽고 매우 일관성이 없습니다. arduino에 전원이 부족하다고 가정했지만 외부 전원 공급 장치에 연결했지만 여전히 문제가 있습니다. 때때로 데이터가 변형되고 / dev / ttyACM0을 찾을 수 없기 때문에 예외가 발생하는 경우가 있습니다 (이후 실행에서는 찾을 수 있음). 비슷한 문제가 있습니까?
Andy Smith

아니요, 이것은 내 경험과 일치하지 않습니다.
스크루

답변 주셔서 감사합니다-흥미로운, 그때 내가 뭘 잘못하고 있어야합니다!
Andy Smith

SE에 대한 Pi 이외의 질문이나 Arduino 포럼에 직접 문의하십시오. 직렬 COMMS 자주 ... 나에게 두통을 제공합니다
scruss

13

확실하지 않은 경우 Raspbian Wheezy 를 사용하면 Arduino IDE를 실행하고 Raspberry Pi의 USB 포트에 연결된 경우 Arduino에 스케치를 업로드 할 수 있습니다. Raspbian에 설치하려면 셸 (일명 명령 줄)을 입력하십시오.

sudo apt-get install arduino

필요한 모든 패키지를 다운로드하여 설치합니다. Raspbian의 Arduino IDE 사진이 여기 있습니다.

http://www.element14.com/community/groups/raspberry-pi/blog/2012/07/03/review-of-raspberry-pi-images

(다른 사람들이 위에서 설명한 것처럼 Raspberry Pi는 GPIO 헤더의 직렬 포트 (UART) 핀을 통해 Arduino를 프로그래밍 할 수도 있습니다.이 경우 USB 포트를 "폐기"할 필요는 없지만 추가 구성이 필요합니다. ).

건배, 드류


간단한 페이딩 스케치가있는 RGB LED를 사용하여 Arduino Uno를 테스트했으며 Arduino Uno는 Raspberry Pi의 USB 포트에서만 전원을 공급했습니다. 나는 아무런 문제가 없었지만 물론 YMMV입니다.
pdp7

8

USB 포트 또는 GPIO 핀을 사용하여 rpi를 arduino에 연결하도록 선택할 수 있습니다. Wiringpi 를 사용 하여 보드 간의 통신을 수행 할 수 있습니다 .

현재 Ponte 라는 다리가 개발 중입니다 .

기본적인 hello world가 여기에 있습니다 .


7

라 모드 à

로 청구 라스베리 파이에 아두 이노를 넣어 적절한 방법 해킹 하루함으로써,이 라 모드 à 으로부터 Anool Mahidharia, 저스틴 쇼와 케빈 오스본에 의해 디자인 된 스택 아두 이노 클론 Wyolum.com OSHW의 협력. Hack A Day는 다음과 같이 설명했습니다.

박쥐에서 바로 AlaMode는 Raspberry Pi의 GPIO 핀에 직접 연결됩니다. 여기에서 Arduino의 ATMega와 통신 할 수 있으므로 Arduino와 마찬가지로 데이터를주고받을 수 있습니다. 실시간 클럭, 서보 헤더, 보드에 전원을 공급하는 다양한 방법, GPS 모듈에 대한 돌파구가 있습니다.

AlaMode에서 불필요한 불필요한 균열이 많이 발생합니다. USB 포트는 없지만 Raspberry Pi의 GPIO 핀을 통해 직접 프로그래밍 할 수 있습니다. 아주 깔끔하고, 우리는 [Raspberry Pi]를 위해 기다릴 수 없습니다.

Kevin은 자신의 블로그 에 대한 자세한 내용을 제공합니다 .

몇 가지 추가 기능을 포함한 기능은 다음과 같습니다.

  • 유연한 힘. 배터리, 벽면 또는 USB 전원으로 독립형 Pi에서 직접 전원을 공급받을 수 있습니다. 이것은 쉴드가 Pi가 제공 할 수있는 것보다 더 많은 전력을 소비하거나 독립형 작동을 위해 도킹을 해제하려는 경우 중요합니다. GPIO 핀의 Pi 's UART 또는 FTDI USB- 직렬 어댑터 또는 ISP를 통해 프로그래밍 할 수 있습니다.
  • Fastrax UP501 GPS 연결 용 헤더. DS3234 실시간 클록. Pi에는 자체 배터리 지원 RTC가 없습니다. 직렬 또는 I2C를 통해 Pi에 시간을보고하도록 AlaMode의 프로그램을 설정할 수 있습니다.
  • 마이크로 SD 카드 슬롯. 데이터 로깅 및 Arduino 애플리케이션을위한 대용량 메모리에 유용
  • 구성 가능한 전원 및 접지 레일을 사용하여 PWM 핀에 연결된 서보 헤더 열

한정판 베타

이 보드는 현재 베타 버전으로 제한되어 있지만 이전 형식 의 그룹에서 발표 한 잘 알려진 클론으로 언급 할 가치가 있습니다 .

참고 문헌

  1. 하루의 블로그 게시물 해킹
  2. 케빈 오스본의 블로그 게시물
  3. Wyolum.com

4

범용 하드웨어 인터페이스 플랫폼을 원한다면 이제 Arduino 기반의 Gert 보드를 고려할 수 있습니다. 한 가지 장점은 RPi와의 상호 작용에 대한 광범위한 문서가 있다는 것입니다. 8/8/12부터 Element14에서 선주문 할 수 있습니다.


0

Arduino처럼 작동하고 모든 브라우저에서 웹 UI를 통해 프로그래밍 할 수있는 RaspberryPi HAT가 있습니다. CoPiino 라는 프로젝트 . 소프트웨어가 완전히 실행 중입니다. 브라우저 UI에 Arduino Sketch를 입력하고 "컴파일 및 실행"을 누르기 만하면됩니다.


1
CoPino를 홍보하는 답변을 두 개 이상 게시 한 경우이 프로젝트에 연결되어있는 것 같습니다. 답에 모든 관련 내용을 기록해야합니다.
Steve Robillard

예, 그것은 정확하며 제 의견은 주제를 완전히 다루고 있습니다. CoPiino 보드는 이미 언급 한 a-la-mode 보드와 유사합니다. CoPiino가 멋진 추가 기능을 제공하는 곳. Pi에서 Arduino를 프로그래밍하는 것은 쉽게 다루어 질 수 있습니다. 이것은 초기 질문이었습니다.
tswaehn

귀하의 4 년은 여전히 ​​귀하의 소속을 편집하지 않았습니다. 이렇게하십시오.
Jon Harper
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.