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.print
data 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/ttyACM0
port, 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,
None
nilai akan terjadi.
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):
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
sumber
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 .
sumber
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
Kevin memberikan sedikit lebih banyak detail di blognya :
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
sumber
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.
sumber
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.
sumber