Bir Arduino nasıl takılır?


43

Arduino web sitesi özetliyor olarak

Arduino, esnek, kullanımı kolay donanım ve yazılıma dayalı açık kaynaklı bir elektronik prototip platformudur. Sanatçılar, tasarımcılar, hobiler ve etkileşimli nesneler veya ortamlar yaratmak isteyen herkes için tasarlanmıştır.

İsteğe bağlı kalkanları tarafından sağlanan servoları kontrol etmek ve diğer bağlantıları sağlamak için hoş bir arayüz olabilir.

Ahududu Pi'ye birini nasıl bağlarım? İletişimi nasıl kurarım?

Yanıtlar:


38

Arduinos genellikle USB seri aygıtlar olarak görünür. Mevcut kartlar, ana mikroişlemciye yerleşik USB seri sürücüsünü kullanıyor, ancak daha eski Arduinos (ve klonlar) üçüncü taraf USB seri yongaları kullanıyordu.

Serial.printRaspberry Pi hakkında Arduino'dan veri almak için GNU Screen programını temel bir terminal olarak kullanıyorum: screen [serial-port] [baud-rate](örneğin screen /dev/ttyACM0 9600).

Üç farklı Arduino ve bir tane daha farklı klon test ettim. Yeni varyantların tümü /dev/ttyACM0port, daha eskileri olarak göründü /dev/ttyUSB0. Raspbian'ın altında bulduğum şey bu:

Ahududu Pi bir Arduino'yu sürecek kadar güç sağlamayabilir, bu nedenle harici güce ihtiyaç duyabilirsiniz. Tamamlanması için, bildiğim herhangi bir Arduino'da olmasa da, Prolific PL2303'ü test ettim. Oldukça mutlu göründü /dev/ttyUSB0.

Sensörler ile daha karmaşık iletişim için , "bir ana bilgisayardaki yazılımdan gelen mikrodenetleyicilerle iletişim kurmak için genel bir protokol" olan Firmata'yı düşünebilirsiniz . Arduino ve Raston Pi tarafında çalışacak Python kütüphaneleri için uygulamaları var.

İşte kullanarak küçük bir örnek pyFirmata bir LM35 okuyup LED'in parlaklığını değiştirmek için:

#!/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 kullanırken bazı uyarılar vardır:

  • Analog okur ve PWM yazmaları standart Arduino 0 .. 255 ve 0 .. 1023 değil, 0 .. 1 aralığına normalleştirilir.
  • Seri arabellek taşması eski okumaları durdurmak için gerçekten ayrı bir yineleyici iş parçacığı başlatmanız gerekir
  • Arduino asenkron olarak okunduğundan, portlardan okumadan önce pyFirmata bağlantısının tamamen başlatıldığından emin olun. Aksi takdirde Nonedeğerler ortaya çıkar.

1
Ben de çalıştırabilirsiniz teyit ettik İşleme Ahududu Pi üzerinde. Çok yavaş ama bir Arduino'yu bir USB bağlantısı üzerinden kontrol etmeyi başardım: Bir Arduino'yu Raspberry Pi'den İşleme kullanarak İşleme . Bunu Python /
tkinter'a taşıyabilir miyim, göreceğim

Bu cevap için teşekkürler, çok faydalı oldu. / Dev / ttyACM0 öğesinden okumak ve onu çok tutarsız bulmak için python seri kullanıyorum. Arduinoma güç gelmediğini sanıyordum ama harici güç kaynağına bağladım ve hala sorun yaşıyorum. Bazen veriler hatalı biçimlendirilir, bazen / dev / ttyACM0 bulunamadığı için bir istisna atılır (sonraki işlemler onu bulacaktır). Benzer problemleriniz mi var?
Andy Smith

Hayır, bu benim deneyimlerime uymuyor.
scruss

Cevap için teşekkürler - ilginç, yanlış yaptığım bir şey olmalı!
Andy Smith

Belki SE'de Pi'ye özgü olmayan bir soru sorun veya doğrudan Arduino forumuna sorun. Seri
haberleşme

13

Net değilse, Raspbian Wheezy ile , Arduino IDE'yi çalıştırabilir ve Raspberry Pi'nin USB portuna bağlıyken Arduino'ya skeçler yükleyebilirsiniz. Raspbian'a kurmak için, sadece kabuğa yazın (aka komut satırı):

sudo apt-get install arduino

Gerekli tüm paketleri indirip yükleyecektir. Burada Raspbian’daki Arduino IDE’nin birkaç fotoğrafını çektim:

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

(yukarıda tarif edilen diğer kişiler gibi, Raspberry Pi, Arduino’yu GPIO başlığındaki seri port (UART) pimleri ile de programlayabilir. ).

Şerefe, Drew


Basit solma çizimine sahip RGB LED'li bir Arduino Uno'yu test ettim ve Arduino Uno'ya yalnızca Raspberry Pi'nin USB portundan güç verildi. Herhangi bir problem yaşamadım ama elbette YMMV.
pdp7

8

Biri bir USB portu kullanarak veya GPIO pimlerini kullanarak rpi'yi arduinoya bağlamayı seçebilir. Kartlar arasındaki iletişimi yapmak için Wiringpi kullanabilirsiniz .

Şu anda Ponte adında bir köprü de geliştiriliyor .

Temel bir merhaba dünyası burada bulunabilir .


7

À la mode

Olarak fatura bir Ahududu Pi bir Arduino koymak için uygun bir şekilde Hack A Günü, à la mode dan Anool Mahidharia Justin Shaw ve Kevin Osborn tarafından tasarlanan istiflenebilir Arduino klon Wyolum.com OSHW işbirliğine dayalı. Hack A Day şöyle açıkladı

Yarasa hemen, AlaMode doğrudan Raspberry Pi'nin GPIO pinlerine takılır. Oradan, Arduino'nun ATMega ile iletişim kurulur ve böylece Arduino ile olduğu gibi veri gönderip alabilirsiniz. Gerçek zamanlı bir saat, servo başlıkları, anakartı çalıştırmanın birçok yolu ve hatta [a] GPS modülü için bir koparma var.

AlaMode'da bir sürü gereksiz hırsızlık yapılır; USB bağlantı noktası yok, ancak doğrudan Raspberry Pi'nin GPIO pinleri üzerinden programlanabilir. Oldukça temiz ve [Ahududu Pi] için bir tane kapmak için sabırsızlanıyorum.

Kevin blogunda biraz daha detay veriyor :

İşte birkaç ekstra güzellik içeren özellikler:

  • Esnek güç Doğrudan Pi'den, bağımsız olarak bir batarya veya duvar siğiliyle veya USB gücüyle çalıştırılabilir. Kalkanınız Pi'nin sağlayabileceğinden daha fazla güç alırsa veya bağımsız çalışma için kilidini açmak istiyorsanız bu önemlidir. GPIO pinleri üzerindeki Pi'nin UART'ı veya bir FTDI USB-Seri adaptörü veya ISS üzerinden programlanabilir.
  • Fastrax UP501 GPS'i bağlamak için başlık. DS3234 Gerçek zamanlı Saat. Pi'nin kendi batarya destekli RTC'si yok. AlaMode'da bir zamanı Pi ya da I2C üzerinden Pi'ye bildirecek şekilde ayarlayabilirsiniz.
  • Micro-SD kart yuvası. Arduino uygulamalarınız için datalogging ve büyük hafıza için kullanışlıdır
  • Yapılandırılabilir bir güç ve toprak rayı ile PWM pinlerine bağlı Servo Başlıkları Dizisi

Sınırlı Beta

Kurul şu anda sınırlı bir beta sürümde olmasına rağmen, önceki şekli olan bir grup tarafından açıklanan iyi düşünülmüş bir klon olarak belirtilmeyi hak ediyor .

Referanslar

  1. Bir Günün Blog Yayınını Hackle
  2. Kevin Osborn'un Blog Yazısı
  3. Wyolum.com

4

Genel amaçlı bir donanım arayüz platformu istiyorsanız, şimdi Arduino merkezli olan Gert Board'u düşünebilirsiniz. Bir avantaj, RPI ile etkileşime girme konusunda kapsamlı belgeler bulunmasıdır. 8/8/12 tarihinden itibaren Element14'ten ön sipariş vermek için uygun.


0

Arduino gibi davranan ve herhangi bir tarayıcıdan Web kullanıcı arayüzü ile programlanabilen bir RaspberryPi HAT var. CoPiino adlı proje . Tamamen yazılım çalışıyor ve çalışıyor. Arduino Sketch'i tarayıcı kullanıcı arayüzüne girin ve "derle ve çalıştır" ı tıklayın - işte bu.


1
CoPino'yu destekleyen en az iki cevap göndermiş olmanız koşuluyla, bu projeye bağlı olduğunuzdan şüpheleniyorum. Herhangi bir bağlantı cevabınıza dikkat edilmelidir,
Steve Robillard

Evet, kesinlikle doğru ve yorumum tamamen konuyu kapsıyor. CoPiino kartı, önceden bahsedilen a-la kartıyla aynıdır. CoPiino'nun bazı güzel ek özelliklerle ortaya çıktığı yer. Pi'den Arduino programlama nerede kolayca kaplanır - Bu ilk soru oldu.
tswaehn

Dört yıldır hala üyeliğinde düzenleme yapmadın. Lütfen yap.
Jon Harper
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.