Arduino:Продукты/Продукты Arduino/Arduino Robot
Содержание | Знакомство с Arduino | Продукты | Основы | Справочник языка Arduino | Примеры | Библиотеки | Хакинг | Изменения | Сравнение языков Arduino и Processing |
Arduino Robot[1]
Arduino Robot – это первый продукт Arduino на колесах. Робот состоит из двух плат, и у каждой из них имеется свой процессор. Моторная (нижняя) плата управляет моторами, а контрольная (верхняя) считывает данные с датчиков и решает, как действовать. Обе платы – это, по сути, те же платы Arduino, которые можно программировать при помощи IDE Arduino.
Кроме того, обе платы – это микроконтроллерные платы на базе ATmega32u4 (даташит). Робот оснащен множеством контактов, привязанных к различным датчикам и контроллерам. Программирование робота осуществляется примерно так же, как Arduino Leonardo. Оба процессора имеют функционал для коммуникации по USB, что устраняет необходимость во втором процессоре.
Благодаря этому Arduino Robot отображается на компьютере как виртуальный (CDC) последовательный / COM порт.
Как и в других продуктах Arduino, каждый элемент робота – оборудование, ПО и документация – распространяются по принципу «open-source». Это значит, что вы можете самостоятельно разобраться, как устроен Arduino Robot, а затем использовать эти знания, чтобы построить собственного робота.
Информацию о гарантии можно почитать тут.
С чего начать
На этой странице можно найти всю необходимую информацию о том, как настроить плату, использовать IDE Arduino и т.д.
Нужна помощь?
- На этих форумах Arduino можно спросить о ПО
- На этих – о проектах
- Здесь можно запросить клиентскую поддержку о продуктах
Технические характеристики
Контрольная плата:
- Микроконтроллер – ATmega32u4
- Рабочее напряжение – 5 вольт
- Входное напряжение – 5 вольт через ленточный кабель
- Цифровые I/O контакты – 5 шт.
- Каналы ШИМ – 6 шт.
- Входные аналоговые каналы – 4 шт. (находятся на цифровых I/O контактах)
- Входные аналоговые каналы (объединенные) – 8 шт.
- Максимальная сила тока на один I/O контакт – 40 миллиампер
- Flash-память – 32 Кб (ATmega32u4), из которых 4 Кб используются загрузчиком
- SRAM – 2,5 Кб (ATmega32u4)
- EEPROM (внутренняя) – 1 Кб (ATmega32u4)
- EEPROM (внешняя) – 512 к/бит (I2C)
- Тактовая частота – 16 МГц
- Клавиши – 5 шт.
- Регулятор – потенциометр, подключенный к аналоговому контакту
- Полноцветный LCD – через шину SPI
- Кардридер для SD-карты – для карт, отформатированных под FAT16
- Динамик – 8 ом
- Цифровой компас – отклонение от географического севера в градусах
- Порты для I2C – 3 шт.
- Области для прототипирования – 4 шт.
- Радиус – 185 мм
- Высота – 85 мм
Моторная плата:
- Микроконтроллер – ATmega32u4
- Рабочее напряжение – 5 вольт
- Входное напряжение – 9 вольт от зарядного устройства
- Слоты для перезаряжаемых батареек типа AA – 4 шт. (для алкалиновых или никель-металлгидридных батареек)
- Цифровые I/O контакты – 4 шт.
- Каналы ШИМ – 1 шт.
- Входные аналоговые каналы – 4 шт. (находятся на цифровых I/O контактах)
- Максимальная сила тока на один I/O контакт – 40 миллиампер
- Конвертер постоянного тока в постоянный – генерирует 5 вольт, с помощью которых питается весь робот
- Flash-память – 32 Кб (ATmega32u4), из которых 4 Кб используются загрузчиком
- SRAM – 2,5 Кб (ATmega32u4)
- EEPROM – 1 Кб (ATmega32u4)
- Тактовая частота – 16 МГц
- Подстроечный потенциометр – для калибровки движения
- ИК-датчики для слежения за линией – 5 шт.
- Порты для I2C – 1 шт.
- Области для прототипирования – 2 шт.
Питание
Arduino Robot можно питать через USB-соединение или от батареек. Источник питания выбирается автоматически. Батарейный блок вмешает 4 перезаряжаемые никель-металлгидридных батарейки типа AA.
Когда робот питается от USB, моторы находятся в выключенном состоянии (в целях безопасности). Робот оснащен встроенным зарядным устройством, который требует 9 вольт от внешнего источника питания вроде адаптера, конвертирующего переменный ток в постоянный. Адаптер подключается к разъему питания на моторной плате при помощи 2,1-миллиметрового коннектора с центральным положительным контактом. Если питание идет от USB, то зарядное устройство работать не будет. Контрольная плата питается от источника питания на моторной плате.
Память
Чип ATmega32u4 оснащен 32 Кб памяти для хранения кода (из них 4 Кб используются загрузчиком). Кроме того, у него есть 2,5 Кб памяти типа SRAM и 1 Кб памяти типа EEPROM. Запись и считывание на EEPROM осуществляется при помощи библиотеки EEPROM. Контрольная плата оснащена дополнительными 512 Кбит памяти типа EEPROM, которая доступна через I2C. Кроме того, к GTFT-дисплею подключен внешний кардридер для SD-карты – он подсоединен к процессору контрольной платы и может быть использован в качестве дополнительного запоминающего устройства.
Входные и выходные контакты
Робот имеет несколько коннекторов, которые устанавливаются на него еще на стадии производства и предназначены для подключения дополнительных компонентов. Определить месторасположение этих портов просто, т.к. рядом с каждым из них есть соответствующая надпись. Управление этими контактами осуществляется при помощи библиотеки Robot. Каждый из этих контактов может давать/принимать не более 40 миллиампер при 5 вольтах.
Некоторые из этих контактов имеют специальные функции:
- От TK0 до TK7 (на контрольной плате): эти контакты объединены в один аналоговый контакт на микропроцессоре контрольной платы. Их можно использовать в качестве входных аналоговых контактов для устройств вроде датчиков расстояния, ультразвуковых аналоговых датчиков или механических переключателей (для определения столкновений).
- От TKD0 до TKD5 (на контрольной плате): эти цифровые I/O контакты подключены напрямую к процессору, и работа с ними выполняется при помощи функций Robot.digitalRead() и Robot.digitalWrite(). Контакты с TKD0 по TKD3 можно также использовать в качестве входных аналоговых контактов при помощи функции функции Robot.analogRead().
Примечание: В ранних версиях Arduino Robot контакты «TKD» обозначены на плате как «TDK». Правильное название – это именно «TKD», и это то, как к этим контактам нужно обращаться в программном коде.
- От TK1 до TK4 (на моторной плате): в программном коде эти контакты называются B_TK1, B_TK2 и т.д. Они могут быть и цифровыми, и входными аналоговыми контактами, и работа с ними осуществляется при помощи функций Robot.digitalRead(), Robot.digitalWrite() и функции Robot.analogRead().
- Последовательная коммуникация: Платы «общаются» друг с другом при помощи последовательного порта, и это осуществляется при помощи 10-контактного коннектора. Кроме того, этот коннектор обеспечивает питание и передает дополнительную информацию вроде данных о заряде батареек.
- Интерфейс SPI на контрольной плате: шина SPI используется для управления GTFT-дисплеем и SD-картой. Если вы хотите перезаписать процессор при помощи внешнего программатора, то сначала отключите дисплей.
- Светодиоды на контрольной плате: всего их три. Один сообщает, подается ли на плату питание (PWR), а два других сообщают о коммуникации по USB-соединению (LED1/RX и TX). Кроме того, доступ к LED1 можно получить через код.
- Порты I2C на обеих платах: три на контрольной плате и один на моторной плате.
Распиновка на контрольной плате
Arduino Leonardo | Контрольная плата на Arduino Robot | ATmega32u4 | Функция | Регистр |
---|---|---|---|---|
D0 | RX | PD2 | RX | RXD1/INT2 |
D1 | TX | PD3 | TX | TXD1/INT3 |
D2 | SDA | PD1 | SDA | SDA/INT1 |
D3# | SCL | PD0 | 8-битная ШИМ/SCL | OC08/SCL/INT0 |
D4 | MUX_IN A6 | PD4 | ADC0 | |
D5# | BUZZ | PC6 | ??? | OC3A/#OC4A |
D6# | MUXA/TKD4 | PD7 | FastPWM | #OC4D/ADC10 |
D7 | RST_LCD | PE6 | INT6/AIN0 | |
D8 | CARD_CS A8 | PB4 | ADC11/PCINT4 | |
D9# | LCD_CS A9 | PB5 | 16-битная ШИМ | OC1A/#OC4B/ADC12/PCINT5 |
D10# | DC_LCD A10 | PB6 | 16-битная ШИМ | OC1B/0c4B/ADC13/PCINT6 |
D11# | MUXB | PB7 | 8-битная и 16-битная ШИМ | 0C0A/OC1C/#RTS/PCINT7 |
D12 | MUXC/TKD5 A11 | PD6 | T1/#OC4D/ADC9 | |
D13# | MUXD | PC7 | 10-битная ШИМ | CLK0/OC4A |
A0 | KEY D18 | PF7 | ADC7 | |
A1 | TKD0 D19 | PF6 | ADC6 | |
A2 | TKD1 D20 | PF5 | ADC5 | |
A3 | TKD2 D21 | PF4 | ADC4 | |
A4 | TKD3 D22 | PF1 | ADC1 | |
A5 | POT D23 | PF0 | ADC0 | |
MISO | MISO D14 | PB3 | MISO,PCINT3 | |
SCK | SCK D15 | PB1 | SCK,PCINT1 | |
MOSI | MOSI D16 | PB2 | MOSI,PCINT2 | |
SS | RX_LED D17 | PB0 | RXLED,SS/PCINT0 | |
TXLED | TX_LED | PD5 | ||
HWB | PE2 | HWB |
Распиновка на моторной плате
Arduino Leonardo | Моторная плата на Arduino Robot | ATmega32u4 | Функция | Регистр |
---|---|---|---|---|
D0 | RX | PD2 | RX | RXD1/INT2 |
D1 | TX | PD3 | TX | TXD1/INT3 |
D2 | SDA | PD1 | SDA | SDA/INT1 |
D3# | SCL | PD0 | 8-битная ШИМ/SCL | OC0B/SCL/INT0 |
D4 | TK3 A6 | PD4 | ADC8 | |
D5# | INA2 | PC6 | ??? | OC3A/#OC4A |
D6# | INA1 A7 | PD7 | FastPWM | #OC4D/ADC10 |
D7 | MUXA | PE6 | INT6/AIN0 | |
D8 | MUXB A8 | PB4 | ADC11/PCINT4 | |
D9# | INB2 A9 | PB5 | 16-битная ШИМ | OC1A/#OC4B/ADC12/PCINT5 |
D10# | INB1 A10 | PB6 | 16-битная ШИМ | OC1B/0c4B/ADC13/PCINT6 |
D11# | MUXC | PB7 | 8-битная и 16-битная ШИМ | 0C0A/OC1C/#RTS/PCINT7 |
D12 | TK4 A11 | PD6 | T1/#OC4D/ADC9 | |
D13# | MUXI | PC7 | 10-битная ШИМ | CLK0/OC4A |
A0 | TK1 D18 | PF7 | ADC7 | |
A1 | TK2 D19 | PF6 | ADC6 | |
A2 | MUX_IN D20 | PF5 | ADC5 | |
A3 | TRIM D21 | PF4 | ADC4 | |
A4 | SENSE_A D22 | PF1 | ADC1 | |
A5 | SENSE_B D23 | PF0 | ADC0 | |
MISO | MISO D14 | PB3 | MISO,PCINT3 | |
SCK | SCK D15 | PB1 | SCK,PCINT1 | |
MOSI | MOSI D16 | PB2 | MOSI,PCINT2 | |
SS | RX_LED D17 | PB0 | RXLED,SS/PCINT0 | |
TXLED | TX_LED | PD5 | ||
HWB | PE2 | HWB |
Коммуникация
Arduino Robot оснащен несколькими средствами для коммуникации с компьютером, а также с другими Arduino и микроконтроллерами. Во-первых, ATmega32u4 поддерживает последовательную UART TTL (5-вольтовую) коммуникацию – она осуществляется через коннекторы с 10 цифровыми контактами, которые обеспечивают связь между контрольной и моторной платами. Во-вторых, чип Atmega32u4 поддерживает последовательную коммуникацию через USB (типа CDC), благодаря которой компьютер видит плату как виртуальный последовательный порт. Кроме того, используя стандартные USB/COM драйверы, чип может работать в качестве устройства типа USB 2.0 в режиме full-speed. На Windows понадобится файл формата *.inf.
В IDE Arduino встроен монитор порта, который позволяет отправлять простые текстовые данные – и на Arduino Robot, и от него. Также на Arduino Robot имеются светодиоды RX (LED1) и TX, которые загораются при передаче данных по USB-соединению с компьютером (но не при последовательной коммуникации между платами).
Примечание: Контрольная и моторная платы имеют разные идентификаторы, поэтому в IDE Arduino будут отображаться как разные порты; программируя, убедитесь, что выбрали правильный порт.
Чип ATmega32u4 также поддерживает коммуникацию через I2C (TWI) и SPI. Для упрощения работы с шиной I2C в IDE Arduino имеется библиотека Wire. Для шины SPI используется библиотека SPI.
Программирование
Arduino Robot программируется при помощи IDE Arduino. Зайдите в программу, кликните по Инструменты > Плата > Arduino Robot Control или Arduino Robot Motor (Tools > Board > Arduino Robot Control или Arduino Robot Motor). О языке программирования читайте тут, а руководства ищите здесь.
Процессоры ATmega32u4, установленные на платах Arduino Robot, идут с уже записанными загрузчиками, которые позволяют загружать новый код без использования внешнего аппаратного программатора.
Этот загрузчик коммуницирует через протокол AVR109. Вы можете обойти этот загрузчик и запрограммировать микроконтроллер при помощи ICSP-гребешка; инструкции читайте тут.
Автоматический (программный) сброс и инициация загрузчика
Arduino Robot устроен так, что вам необязательно вручную нажимать на кнопку сброса перед загрузкой, потому что сброс можно выполнить программно – при помощи ПО, установленного на подключенном компьютере.
Сброс активируется при помощи виртуального (CDC) последовательного/COM порта, который открывается для Arduino Robot на скорости 1200 бод, а затем закрывается. Когда это происходит, процессор сбрасывается, прерывая соединение с компьютером (это значит, что виртуальный последовательный/COM порт исчезнет). После сброса процессора запускается загрузчик и остается активным в течение примерно 8 секунд. Загрузчик также можно инициировать двойным нажатием на кнопку сброса на Arduino Robot. Обратите внимание, что если на плату загружен скетч, то она перепрыгнет сразу к нему, игнорируя загрузчик.
Из-за того, как в Arduino Robot устроена система сброса, лучше позволить IDE Arduino инициировать сброс перед загрузкой скетча – особенно если вы, работая с другими платами, привыкли делать это сами. Если у IDE Arduino не получится сбросить плату, вы всегда можете запустить загрузчик, самостоятельно дважды нажав на кнопку сброса на плате. Одно нажатие на кнопку сброса перезапустит скетч, двойное нажатие запустит загрузчик.
Защита от перегрузок
Обе платы Arduino Robot оснащены самовосстанавливающимся предохранителем, который защищает USB-порты вашего компьютера от коротких замыканий и перегрузок. Хотя у большинства компьютеров есть собственная защита от подобных неприятностей, этот предохранитель добавляет к ней еще один слой. Если на USB-порт будет подано более 500 миллиампер, этот предохранитель автоматически прервет соединение, пока короткое замыкание или перегрузка не будут устранены.
Физические характеристики
Диаметр Arduino Robot составляет 19 см. Вместе с колесами, GTFT-дисплеем и другими коннекторами высота Arduino Robot должна составить около 10 см.
Что дальше
Если вы используете старую модель Arduino Robot (где используется Honeywell HMC 6352), и вам нужно откалибровать компас-модуль, читайте это руководство. Кроме того, здесь можно почитать ознакомительную информацию об Arduino Robot, а здесь – о библиотеке Robot.
Документация
Arduino Robot – это устройство, изготовленное по принципу «open-source». Вы можете создать на его основе собственного робота (или другое устройство), используя файлы ниже:
См.также
Внешние ссылки
Arduino продукты | |
---|---|
Начальный уровень | Arduino Uno • Arduino Leonardo • Arduino 101 • Arduino Robot • Arduino Esplora • Arduino Micro • Arduino Nano • Arduino Mini • Arduino Starter Kit • Arduino Basic Kit • MKR2UNO • TFT-дисплей Arduino |
Продвинутые функции | Arduino Mega 2560 • Arduino Zero • Arduino Due • Arduino Mega ADK • Arduino Pro • Arduino Motor Shield • Arduino USB Host Shield • Arduino Proto Shield • MKR Proto Shield • MKR Proto Large Shield • Arduino ISP • Arduino USB 2 Serial Micro • Arduino Mini USB Serial Adapter |
Интернет вещей | Arduino Yun • Arduino Ethernet • Arduino MKR1000 • Arduino WiFi 101 Shield • Arduino GSM Shield V2 • Arduino WiFi Shield • Arduino Wireless SD Shield • Arduino Wireless Proto Shield • Arduino Ethernet Shield V2 • Arduino Yun Shield • Arduino MKR1000 Bundle |
Носимые устройства | Arduino Gemma • Lilypad Arduino Simple • Lilypad Arduino Main Board • Lilypad Arduino USB • LilyPad Arduino SimpleSnap |
3D-печать | Arduino Materia 101 |
Устаревшие устройства | - |
Примеры Arduino | |
---|---|
Стандартные функции | |
Основы |
|
Цифровой сигнал |
|
Аналоговый сигнал |
|
Связь |
|
Управляющие структуры |
|
Датчики |
|
Дисплей |
Примеры, объясняющие основы управления дисплеем:
|
Строки |
|
USB (для Leonardo, Micro и Due плат) |
В этой секции имеют место примеры, которые демонстрируют использование библиотек, уникальных для плат Leonardo, Micro и Due.
|
Клавиатура |
|
Мышь |
|
Разное |
- Страницы, использующие повторяющиеся аргументы в вызовах шаблонов
- Справочник языка Arduino
- Arduino
- Перевод от Сubewriter
- Проверка:myagkij
- Оформление:myagkij
- Редактирование:myagkij
- Страницы, где используется шаблон "Навигационная таблица/Телепорт"
- Страницы с телепортом
- Продукты Arduino
- Arduino продукты
- Плата Arduino