Как подключить Arduino?

сайт Arduino подводит итог

  

Arduino - это платформа для прототипирования электроники с открытым исходным кодом, основанная на гибком, простом в использовании аппаратном и программном обеспечении. Он предназначен для художников, дизайнеров, любителей и всех, кто заинтересован в создании интерактивных объектов или сред.

Он может быть приятным интерфейсом для управления сервоприводами и обеспечения других возможностей подключения, предоставляемых его многочисленными дополнительными экранами.

Как подключить его к малиновому Pi? Как настроить связь?

42 голоса | спросил Lucas Kauffman 9 AM00000030000003631 2012, 03:07:36

6 ответов


38

Arduinos обычно появляются как последовательные USB-устройства. Текущие платы используют последовательный драйвер USB, встроенный в основной микропроцессор, но старые Arduinos (и клоны) использовали отдельные сторонние чипы USB-последовательного интерфейса.

Чтобы просто получить данные Serial.print на малине Pi из Arduino, я использую Программа GNU Screen в качестве базового терминала: экран [последовательный порт] [скорость передачи] (например, screen /dev /ttyACM0 9600).

Я тестировал три разных Arduinos и один довольно другой клон. Новые варианты появились как порты /dev /ttyACM0, а более старые - /dev /ttyUSB0. Это то, что я нашел, под Raspbian:

  • Duemilanove - Последовательный чип: FTDI FT232RL ; Последовательный порт: /dev /ttyUSB0
  • Uno - Последовательный чип: Atmel ATmega16U2 (или 8U2 на старых платах); Последовательный порт: /dev /ttyACM0
  • Леонардо - Последовательный чип: Atmel ATmega32U4 (встроенный); Последовательный порт: /dev /ttyACM0
  • OMS Omega-328U - Последовательный чип: Silicon Labs < a href = "http://www.silabs.com/products/interface/usbtouart/Pages/usb-to-uart-bridge.aspx" rel = "noreferrer" title = "CP210x"> CP210x ; Последовательный порт: /dev /ttyUSB0.

Малина Pi не может обеспечить достаточную мощность для вождения Arduino, поэтому вам может понадобиться внешняя сила. Для полноты я также проверил Prolific PL2303 , даже если это не на любом Arduino, о котором я знаю. Это оказалось довольно счастливо, как /dev /ttyUSB0.

Для более сложных связей с датчиками вы можете рассмотреть Firmata , "общий протокол для связи с микроконтроллерами от программного обеспечения на главном компьютере ». Он имеет реализации для Arduino и библиотек Python для работы на стороне малины Pi.

Ниже приведен небольшой пример использования pyFirmata для чтения LM35 и изменения яркость светодиода:

 #! /usr /bin /python
# - * - кодирование: utf-8 - * -

# простой тест pyfirmata и Arduino; читать с LM35 на A0,
# ярче светодиод на D3 с использованием PWM
# scruss, 2012-08-14 - проверено на Arduino Uno & Малина Пи (Рапбей)

import pyfirmata

# Создайте новую плату, указав последовательный порт
board = pyfirmata.Arduino ('/dev /ttyACM0')

# запустить поток итератора, чтобы последовательный буфер не переполнялся
it = pyfirmata.util.Iterator (доска)
it.start ()

# настроить контакты
pin0 = board.get_pin ('a: 0: i') # A0 Вход (LM35)
pin3 = board.get_pin ('d: 3: p') # D3 PWM Output (LED)

# ВАЖНЫЙ! discard сначала читает, пока A0 не получит что-то действительное
а pin0.read () - None:
    проходить

для i в диапазоне (10):
    pin3.write (i /10.0) # набор D3 до 0, 10%, 20%, ... яркость
    print "PWM:% d %% Температура% .1f  ° C"% (i * 10, pin0.read () * 5 * 100)
    board.pass_time (1) # пауза 1 секунда

pin3.write (0) # выключить светодиод
board.exit ()

При использовании pyFirmata существуют некоторые оговорки:

  • Аналоговые чтения и записи ШИМ нормализуются в диапазон 0 .. 1, а не стандартный Arduino 0 .. 255 и 0 .. 1023.
  • Вам действительно нужно запустить отдельный поток итератора, чтобы остановить старые чтения, переполняющие последовательный буфер.
  • Поскольку Arduino считывается асинхронно, убедитесь, что соединение pyFirmata полностью инициализировано перед чтением из портов. В противном случае появятся значения None.
ответил scruss 9 AM00000070000000131 2012, 07:14:01
13

Если это непонятно, Raspbian Wheezy , вы можете запустить IDE Arduino и загрузить эскизы в Arduino при подключении к USB-порт Raspberry Pi. Чтобы установить на Raspbian, просто введите в оболочку (aka command line):

sudo apt-get install arduino

Он загрузит и установит все необходимые пакеты. У меня есть пара фотографий IDE Arduino в Raspbian здесь:

http: //www .element14.com /сообщества /группы /малиновый-пи /блог /2012/07/03 /обзор-оф-малина-пи-образы

(как другие люди описали выше, Raspberry Pi также может запрограммировать Arduino через контакты последовательного порта (UART) в заголовке GPIO. В этом случае вам не придется «тратить» USB-порт, но это требуют дополнительной настройки).

Cheers, Дрю

ответил pdp7 9 PM00000090000003331 2012, 21:50:33
8

Можно выбрать подключение rpi к arduino с помощью USB-порта или с помощью контактов GPIO. Для обмена данными между досками можно использовать Wiringpi .

В настоящее время также разрабатывается мост под названием Ponte .

В мире приветствия можно найти здесь .

ответил Lucas Kauffman 9 AM00000030000003631 2012, 03:07:36
7

Режим Ã la

Выставляется как Собственный способ разместить Arduino в малине Pi , взломав день, Ã la mode - это штабелируемый клон Arduino, разработанный Anool Mahidharia, Justin Shaw и Kevin Osborn из Wyolum.com OSHW совместный. Hack A Day описал это следующим образом

  

С самого начала, AlaMode подключается непосредственно к контактам GPIO от малины Pi. Оттуда включена связь с ATMega Arduino, позволяющая отправлять и получать данные так же, как и с Arduino. Там есть часы реального времени, серво-заголовки, множество способов питания платы и даже прорыв для [а] GPS-модуля.

     

В AlaMode покончено много ненужных рывков; Там нет USB-порта, но он может быть запрограммирован непосредственно над контактами GPIO от малины Pi. Довольно аккуратный, и мы не можем ждать, чтобы схватить его за нашу [Малиновую Пи].

Кевин дает немного больше информации о своем блоге :

  

Вот функции, включающие несколько дополнительных лакомств:

     
  • Гибкая мощность. Может питаться непосредственно от Pi, автономно с батареей или настенным бокалом, или с USB-питанием. Это важно, если ваш щит потребляет больше энергии, чем может предоставить Pi, или если вы хотите открепить его для автономной работы.   Программируется через UART Pi на контактах GPIO или USB-последовательном адаптере FTDI или ISP.
  •   
  • Заголовок для подключения Fastrax UP501 GPS.   DS3234 Часы реального времени. У Pi нет собственной батареи, поддерживаемой RTC. Вы можете установить программу в AlaMode, чтобы сообщить время Pi через последовательный порт или I2C
  •   
  • Слот для карт Micro-SD. Полезно для регистрации данных и большой памяти для ваших приложений Arduino.
  •   
  • Строка Сервовых заголовков, подключенных к контактам PWM с настраиваемой мощностью и заземлением.
  •   

Ограниченная бета-версия

В настоящее время плата находится в ограниченной бета-версии, но заслуживает упоминания как хорошо продуманный клон, о котором объявила группа с предыдущей формой .

Ссылки

  1. Блог Hack A Day сообщение
  2. Сообщение о публикации Kevin Osborn
  3. Wyolum.com
ответил Alex Chamberlain 9 PM000000120000004331 2012, 12:43:43
4

Вы можете подумать о совете Gert, который теперь основан на Arduino, если вы хотите использовать общую аппаратную интерфейсную платформу. Одно из преимуществ заключается в том, что имеется обширная документация по взаимодействию с RPi. Доступно для предварительного заказа от Element14 от 8/8/12.

ответил Guy 9 PM00000010000004431 2012, 13:14:44
0

Существует RaspberryPi HAT, который ведет себя как Arduino и может быть запрограммирован через свой веб-интерфейс из любого браузера. Проект называется CoPiino . Он поставляется полностью с программным обеспечением и работает. Просто введите Arduino Sketch в пользовательском интерфейсе браузера и нажмите «Скомпилировать и запустить» - вот он.

ответил tswaehn 12 +03002015-10-12T01:26:30+03:00312015bEurope/MoscowMon, 12 Oct 2015 01:26:30 +0300 2015, 01:26:30

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132