Bagaimana cara memasang Arduino?

43

Situs web Arduino merangkumnya sebagai

Arduino adalah platform prototipe elektronik sumber terbuka yang didasarkan pada perangkat keras dan lunak yang fleksibel dan mudah digunakan. Ini ditujukan untuk seniman, perancang, penggemar, dan siapa pun yang tertarik untuk menciptakan objek atau lingkungan interaktif.

Ini bisa menjadi antarmuka yang bagus untuk mengontrol servos dan menyediakan konektivitas lain yang disediakan oleh banyak perisai opsional.

Bagaimana cara menghubungkan satu ke Raspberry Pi? Bagaimana cara mengatur komunikasi?

Lucas Kauffman
sumber

Jawaban:

38

Arduino biasanya muncul sebagai perangkat serial USB. Papan saat ini menggunakan driver serial USB yang dibangun ke dalam mikroprosesor utama, tetapi Arduino lama (dan klon) menggunakan chip serial-USB pihak ketiga yang terpisah.

Untuk sekadar menerima Serial.printdata pada Raspberry Pi dari Arduino, saya menggunakan program Layar GNU sebagai terminal dasar: screen [serial-port] [baud-rate](misalnya screen /dev/ttyACM0 9600).

Saya menguji tiga Arduino yang berbeda, dan satu klon yang agak berbeda. Semua varian yang lebih baru muncul sebagai /dev/ttyACM0port, dan yang lebih lama /dev/ttyUSB0. Ini yang saya temukan, di bawah Raspbian:

Raspberry Pi mungkin tidak menyediakan daya yang cukup untuk menggerakkan Arduino, jadi Anda mungkin memerlukan daya eksternal. Untuk kelengkapan, saya juga menguji Prolific PL2303 , meskipun tidak ada pada Arduino yang saya kenal. Tampaknya cukup bahagia sebagai /dev/ttyUSB0.

Untuk komunikasi yang lebih kompleks dengan sensor, Anda dapat mempertimbangkan Firmata , "protokol umum untuk berkomunikasi dengan mikrokontroler dari perangkat lunak pada komputer host". Ini memiliki implementasi untuk Arduino, dan pustaka Python untuk dijalankan di sisi Raspberry Pi.

Berikut adalah contoh kecil menggunakan pyFirmata untuk membaca LM35 dan mengubah kecerahan 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()

Ada beberapa peringatan ketika menggunakan pyFirmata:

  • Bacaan analog dan penulisan PWM dinormalisasi ke rentang 0 .. 1, dan bukan standar Arduino 0 .. 255 dan 0 .. 1023.
  • Anda benar-benar perlu memulai utas iterator terpisah untuk menghentikan pembacaan lama yang meluap ke buffer serial
  • Karena Arduino dibaca secara tidak sinkron, pastikan bahwa koneksi pyFirmata sepenuhnya diinisialisasi sebelum membaca dari port. Jika tidak, Nonenilai akan terjadi.
scruss
sumber
1
Saya juga telah mengkonfirmasi bahwa Anda dapat menjalankan Memproses pada Raspberry Pi. Ini sangat lambat, tetapi saya berhasil mengendalikan Arduino melalui tautan USB: Mengontrol Arduino dari Raspberry Pi menggunakan Pemrosesan . Saya akan melihat apakah saya dapat port ini ke Python / tkinter ...
scruss
Terima kasih atas jawaban ini, itu sangat berguna. Saya menggunakan serial python untuk membaca dari / dev / ttyACM0 dan merasa sangat tidak konsisten. Saya berasumsi itu adalah kurangnya daya untuk Arduino saya tapi saya menghubungkannya ke catu daya eksternal dan saya masih mengalami masalah. Kadang-kadang data salah, kadang-kadang pengecualian dilemparkan karena / dev / ttyACM0 tidak ditemukan (meskipun menjalankan selanjutnya akan menemukannya). Sudahkah Anda mengalami masalah serupa?
Andy Smith
Tidak, ini tidak sesuai dengan pengalaman saya.
scruss
Terima kasih atas tanggapannya - menarik, pasti sesuatu yang saya lakukan salah kalau begitu!
Andy Smith
Mungkin mengajukan pertanyaan spesifik non-Pi pada SE, atau bertanya langsung di forum Arduino. Serial comms sering memberi saya sakit kepala ...
scruss
13

Jika tidak jelas, dengan Raspbian Wheezy , Anda dapat menjalankan Arduino IDE dan mengunggah sketsa ke Arduino ketika terhubung ke port USB Raspberry Pi. Untuk menginstal di Raspbian, cukup ketik ke dalam shell (alias command line):

sudo apt-get install arduino

Ini akan mengunduh dan menginstal semua paket yang dibutuhkan. Saya punya beberapa foto IDE Arduino di Raspbian di sini:

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

(seperti yang telah dijelaskan oleh orang lain di atas, Raspberry Pi juga dapat memprogram Arduino melalui pin port serial (UART) pada header GPIO. Dalam hal ini Anda tidak perlu "membuang" port USB, tetapi itu akan memerlukan konfigurasi tambahan ).

Cheers, Drew

pdp7
sumber
Saya menguji Arduino Uno dengan RGB LED dengan sketsa fading sederhana dan Arduino Uno hanya ditenagai dari port USB Raspberry Pi. Saya tidak punya masalah, tapi, tentu saja, YMMV.
pdp7
8

Seseorang dapat memilih untuk menghubungkan rpi ke Arduino menggunakan port usb atau dengan menggunakan pin GPIO. Satu dapat menggunakan Wiringpi untuk melakukan komunikasi antara papan.

Saat ini ada juga jembatan yang sedang dikembangkan bernama Ponte .

Dunia halo dasar dapat ditemukan di sini .

Lucas Kauffman
sumber
7

The à la mode

Ditagih sebagai Cara yang tepat untuk menempatkan Arduino di Raspberry Pi dengan Hack A Day, mode à la adalah klon Arduino yang dapat ditumpuk yang dirancang oleh Anool Mahidharia, Justin Shaw dan Kevin Osborn dari kolaboratif OSHW Wyolum.com. Hack A Day menggambarkannya sebagai berikut

Langsung dari kelelawar, AlaMode dihubungkan langsung ke pin GPIO dari Raspberry Pi. Dari sana, komunikasi dengan ATMega dari Arduino diaktifkan, memungkinkan Anda untuk mengirim dan menerima data seperti halnya Anda menggunakan Arduino. Ada jam waktu nyata, tajuk servo, banyak cara untuk memberi daya pada papan, dan bahkan pelarian untuk [a] modul GPS.

Banyak kesalahan yang tidak perlu dilakukan dengan AlaMode; Tidak ada port USB, tetapi dapat diprogram secara langsung melalui pin GPIO dari Raspberry Pi. Cukup rapi, dan kami tidak sabar untuk mengambil satu untuk [Raspberry Pi] kami.

Kevin memberikan sedikit lebih banyak detail di blognya :

Berikut adalah beberapa fitur termasuk beberapa barang tambahan:

  • Daya fleksibel. Dapat diberdayakan langsung dari Pi, mandiri dengan baterai atau kutil di dinding, atau daya USB. Ini penting jika perisai Anda membutuhkan daya lebih besar daripada yang dapat diberikan Pi atau jika Anda ingin melepaskannya untuk operasi mandiri. Dapat diprogram melalui Pi UART pada pin GPIO, atau adaptor USB-Serial FTDI atau ISP.
  • Header untuk menghubungkan Fastrax UP501 GPS. DS3234 Jam waktu nyata. Pi tidak memiliki RTC yang didukung baterai sendiri. Anda dapat mengatur program di AlaMode untuk melaporkan waktu ke Pi melalui serial atau I2C
  • Slot kartu micro-SD. Berguna untuk datalog, dan memori besar untuk aplikasi Arduino Anda
  • Deretan Header Servo terhubung ke pin PWM dengan power dan ground rail yang dapat dikonfigurasi

Beta Terbatas

Papan saat ini dalam versi beta terbatas, tetapi layak disebut sebagai kloning yang dipikirkan dengan baik, yang telah diumumkan oleh grup dengan bentuk sebelumnya .

Referensi

  1. Retas Posting Blog Sehari
  2. Posting Blog Kevin Osborn
  3. Wyolum.com
Alex Chamberlain
sumber
4

Anda dapat mempertimbangkan Gert Board yang sekarang berbasis Arduino jika Anda menginginkan platform interfacing perangkat keras tujuan umum. Satu keuntungan adalah bahwa ada dokumentasi yang luas tentang interaksi dengan RPi. Tersedia untuk pre-order dari Element14 pada 8/8/12.

Orang
sumber
0

Ada HAT RaspberryPi yang berperilaku seperti Arduino dan dapat diprogram melalui UI Web-nya dari browser apa pun. Proyek yang disebut CoPiino . Muncul sepenuhnya dengan perangkat lunak dan berjalan. Cukup masukkan Arduino Sketch di UI browser dan tekan "compile and run" - itu saja.

tswaehn
sumber
1
mengingat bahwa Anda telah mengirim setidaknya dua jawaban yang mempromosikan CoPino, saya curiga Anda terhubung dengan proyek ini. Koneksi apa pun harus dicatat dalam jawaban Anda,
Steve Robillard
Ya, itu benar sekali dan komentar saya membahas topik sepenuhnya. Papan CoPiino mirip dengan papan mode a-la-mode yang telah disebutkan. Di mana CoPiino hadir dengan beberapa fitur tambahan yang bagus. Di mana pemrograman Arduino dari Pi mudah dibahas - yang merupakan pertanyaan awal.
tswaehn
Empat tahun Anda masih belum diedit di afiliasi Anda. Tolong lakukan itu.
Jon Harper