Электронный компонент:Мобильная робо-платформа Tricycle Bot
Мобильная робо-платформа Tricycle Bot[1]
Робот Tricycle Bot (можно перевести как «трехколесный бот») – это мобильная Grove-совместимая робо-платформа, для управления которой можно использовать платы разных производителей (к примеру, Arduino, Raspberry Pi или Beaglebone). В комплекте для сборки бота есть как структурные детали, так и электронные компоненты, а также руководство для соединения всех этих компонентов друг с другом.
В собранном виде Tricycle Bot имеет три яруса. Между панелями для второго и третьего ярусов ставится пять «стенок» (с отверстиями для коннекторов), а на панели третьего яруса имеется множество отверстий, предназначенных для крепления модулей. Второй ярус предназначен для «сердца» бота (микроконтроллерной платы и макетной платы), а «стенки» второго яруса – для крепления одного-двух Grove-модулей (к примеру, Grove-модулей с RGB-светодиодом или ультразвуковым датчиком).
Кроме того, в комплекте для сборки бота идет держатель для 12-вольтовой батареи.
Купить Tricycle Bot можно по этой ссылке.
Внимание! Микроконтроллерная плата, драйвер моторов или комплектная плата в комплекте Tricycle Bot не идут.
Список компонентов
Компонент | Характеристики | Количество |
---|---|---|
Колесо | 64 x 30 мм | 2 шт. |
DC-мотор | - | 2 шт. |
Шариковое колесо | 49 х 32 х 22 мм | 1 шт. |
Держатель батареи | 62 х 58 х 30 мм | 1 шт. |
Ремешок | 20.5 х 31.8 мм | 1 шт. |
Нижняя пластина (1 ярус) | 220 х 155 х 3.8 мм | 1 шт. |
Средняя пластина (2 ярус) | 220 х 155 х 3.8 мм | 1 шт. |
Верхняя пластина (2 ярус) | 160 х 158 х 3.8 мм | 1 шт. |
Передняя стенка | 62 х 56 х 3.8 мм | 1 шт. |
Боковые стенки | 62 х 31 х 3.8 мм | 4 шт. |
Заклепка (1) | R3090 | 4 шт. |
Стойка (2) | M3x22 | 6 шт. |
Стойка (3) | M3x55+6 | 4 шт. |
Винт (4) | PM3x8 | 14 шт. |
Винт (5) | PM3x25 | 4 шт. |
Гайка (6) | M3x2.3 | 6 шт. |
Заклепка (7) | R2064 | 15 шт. |
Винт (8) | KM2x10 | 15 шт. |
Гайка (9) | M2x1.5 | 15 шт. |
Гаечный ключ | - | 2 шт. |
Отвертка | - | 1 шт. |
Цифры в скобочках указывают на номер в инструкции ниже.
Инструкция по сборке
«Мозгом» Tricycle Bot могут послужить разные микроконтроллерные платы – к примеру, Arduino, Raspberry Pi или Beaglebone. При использовании Beaglebone для управления DC-моторами и Grove-модулями можно воспользоваться кейпами (от англ. «cape»; так называют шилды для плат Beaglebone) Motor Bridge Cape v1.0 и Grove Base Cape for Beaglebone v2.
Глава ниже расскажет, какая именно плата лучше подойдет для вашего проекта.
Работа с Arduino
Arduino – это самая известная открытая прототипная платформа. Одной из ее разновидностей являются платы Seeeduino, оснащенные Grove-портами, которые позволяют дополнить проект функциями вроде светодиодной подсветки, дистанционного управления, обнаружения препятствий и т.д.
Seeeduino V4.2
Это открытая Arduino-совместимая плата на базе микроконтроллера ATmega328.
Шилд Motor Shield V2.0
Это шилд, выполняющий роль драйвера моторов. Его можно подключить к Arduino-плате, а затем управлять с его помощью скоростью и направлением движения моторов.
Базовый шилд V2
Это Arduino-совместимый шилд, оснащенный большим количеством Grove-модулей, что позволяет дополнить проект новыми функциями.
Рекомендуемые компоненты:
- Светодиодная лента W2812B
- Grove-модуль с ультразвуковым датчиком
- Grove-модуль с искателем линии
- Grove-модуль с зуммером
- Grove-модуль с радиочастотным трансивером
- Grove-модуль с Bluetooth
О других Grove-модулях, а также о том, что такое система Grove, читайте по этой ссылке.
Работа с Raspberry Pi
Raspberry Pi – это один из популярнейших одноплатных компьютеров, и его вычислительная мощность выше, чем у Arduino. Благодаря популярности в сети можно найти много руководств по созданию проектов на базе Raspberry Pi. Некоторые из них можно найти на нашем сайте.
Raspberry Pi 3
В эту версию Raspberry Pi встроена поддержка WLAN 802.11 b/g/n, а также Bluetooth и BLE. Таким образом, вам не нужны дополнительные устройства, чтобы оснастить Raspberry Pi беспроводной связью. По словам разработчиков, Raspberry Pi 3 в три раза производительней Raspberry Pi 1.
Raspberry Pi Motor Board v1.0
Это плата позволяет при помощи Raspberry Pi независимо управлять скоростью и направлением движения двух DC-моторов.
GrovePi+
Это система, которая позволяет использовать Grove-модули на Raspberry Pi. Она также поддерживает модели Raspberry Pi Model B+ и Model A+.
Рекомендуемые компоненты:
О других Grove-модулях, а также о том, что такое система Grove, читайте по этой ссылке.
Работа с Beaglebone
Beaglebone – это еще одно популярное семейство одноплатных компьютеров, использующих операционную систему Linux. В отличие от Raspberry Pi, некоторые платы Beaglebone оснащены Grove-модулями, которыми можно управлять при помощи библиотек MRAA и UPM.
Beaglebone Green Wireless
Эта плата сделана компанией Seeed Studio на основе Beaglebone Black. Оснащена интерфейсами WiFi и Bluetooth, благодаря чему с ее помощью можно сделать, к примеру, радиоуправляемого мобильного робота, как показано в этом руководстве.
Motor Bridge Cape v1.0
Этот «кейп» позволяет управлять двумя шаговыми моторами или четырьмя коллекторными DC-моторами с 6-15 вольтами и не более 1 ампера на один мотор. Кроме того, Motor Bridge Cape v1.0 оснащен интерфейсами для управления шестью сервомоторами и шестью GPIO-контактами, с помощью которых к роботу можно подключить, к примеру, робо-руку.
Grove Base Cape for Beaglebone v2
Это аналог базового шилда для плат Beaglebone. Позволяет подключать Grove-модули к плате Beaglebone.
Рекомендуемые компоненты:
- USB-вебкамера
- Светодиодная лента W2812B
- Grove-модуль с чипом отслеживания движений
- Grove-модуль с OLED-дисплеем
- Grove-модуль с датчиком света
- Grove-модуль с GPS-модулем
О других Grove-модулях, а также о том, что такое система Grove, читайте по этой ссылке.
Tricycle Bot на базе Arduino Uno
Эта глава расскажет о том, как «оживить» Tricycle Bot при помощи микроконтроллерной платы Arduino Uno.
Необходимые компоненты
- Плата Arduino Uno – 1 шт.
- Шилд Motor Shield V2.0 – 1 шт.
- Шилд Base Shield V2 – 1 шт.
- Мобильная робо-платформа Tricycle Bot – 1 шт.
- Светодиодная лента (60 RGB-светодиодов, 1 метр) – 1 шт.
- Grove-модуль с ультразвуковым датчиком – 1 шт.
- Grove-модуль с зуммером – 1 шт.
Сборка
- Соберите Tricycle Bot (более подробно смотрите выше, в разделе «Инструкция по сборке»)
- Закрепите Grove-модули на стенках и верхнем ярусе Tricycle Bot
- Подключите Grove-модуль с зуммером к контакту D4, Grove-модуль с ультразвуковым датчиком – к контакту D5, а светодиодную ленту – к шилду Base Shield
- Готово!
Код
Загрузите в IDE Arduino библиотеки «SeeedMotorShieldV2» (для шилда Motor Shield V2), «Grove_Ultrasonic_Ranger» (для Grove-модуля с ультразвуковым датчиком) и «Adafruit_NeoPixel» (для светодиодной ленты).
Затем загрузите на Arduino Uno код ниже:
/*
* Демо-скетч «TricycleBotDemo.ino»
*
* Робот Tricycle Bot движется и поворачивает перед препятствиями.
*
* Авторские права (c) 2016 Seeed Technology Limited.
* Лицензия MIT
*
*/
#include "MotorDriver.h"
#include "Adafruit_NeoPixel.h"
#include "Ultrasonic.h"
#define BEE 4
#define LEDPIN 6
#define LEDNUM 10
#define PIXELS_SPACE 128
#define BRIGHTNESS 150
#define DistanceCM 35
Adafruit_NeoPixel strip = Adafruit_NeoPixel(LEDNUM, LEDPIN, NEO_GRB + NEO_KHZ800);
MotorDriver motor;
Ultrasonic ultrasonic(5);
// в блоке setup() функции вызываются только один раз,
// в начале работы скетча:
void setup() {
pinMode(BEE, OUTPUT);
strip.setBrightness(BRIGHTNESS);
strip.begin();
strip.show();
motor.begin();
pixelStart();
}
// в блоке loop() функции будут выполняться бесконечно,
// пока работа устройства не будет остановлена:
void loop() {
long RangeInCentimeters;
RangeInCentimeters = ultrasonic.MeasureInCentimeters();
if (RangeInCentimeters < DistanceCM) {
turnRight();
beep();
pixelState2();
}
else {
goStraight();
pixelState1();
}
delay(100);
}
void goStraight() {
motor.speed(0, 100);
motor.speed(1, 100);
}
void turnRight() {
motor.speed(0, -100);
motor.speed(1, 100);
}
// едем прямо:
void pixelState1() {
for (uint32_t t = 0; t < (PIXELS_SPACE * LEDNUM); ++t) {
for (int i = 0; i < (LEDNUM / 2); i++) {
strip.setPixelColor(((LEDNUM / 2) - i -1) , triangular_color((t + i * PIXELS_SPACE) % (PIXELS_SPACE * LEDNUM)));
strip.setPixelColor(i + 5, triangular_color((t + i * PIXELS_SPACE) % (PIXELS_SPACE * LEDNUM)));
}
strip.show();
}
}
// поворачиваем вправо:
void pixelState2() {
for (int i = 0; i < 3; i++) {
for (int j = 0; j < LEDNUM; j++) {
strip.setPixelColor(j, 250, 0, 0);
strip.show();
}
delay(50);
for (int j = 0; j < LEDNUM; j++) {
strip.setPixelColor(j, 0, 0, 0);
strip.show();
}
delay(50);
}
}
void pixelStart() {
for (int i = 0; i < LEDNUM; i++) {
for (int j = 0; j< 255; j++) {
strip.setPixelColor(i, 0, j, 0);
strip.show();
}
delay(50);
}
}
uint32_t triangular_color(uint32_t t) {
uint32_t c = 0;
if (t < 256) {
c = strip.Color(0, 0, t);
} else if (t < 512) {
c = strip.Color(0, 0, 511 - t);
}
return c;
}
void beep() {
digitalWrite(BEE, HIGH);
delay(100);
digitalWrite(BEE, LOW);
}
Результат
В итоге получится примерно следующее: Видео
- Tricycle Bot замечает препятствия и поворачивает, когда расстояние до препятствия составляет менее 35 см
- Когда Tricycle Bot едет прямо, светодиодная лента горит синим цветом, а когда поворачивает – загорается красным, а зуммер издает предупреждающий сигнал
Полезные ссылки
См.также
Внешние ссылки
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.
|
Клавиатура |
|
Мышь |
|
Разное |
- Страницы, использующие повторяющиеся аргументы в вызовах шаблонов
- Электронный компонент
- Перевод от Сubewriter
- Проверка:myagkij
- Оформление:myagkij
- Редактирование:myagkij
- Страницы, где используется шаблон "Навигационная таблица/Телепорт"
- Страницы с телепортом
- Мобильная робо-платформа Tricycle Bot
- Платформа Arduino
- Arduino платформа
- Arduino