Зрозуміло, що нашому роботу ще рости і рости. Йому бракує багатьох важливих підсистем, і з кожною з них треба окремо порозбиратися і поекспериментувати:
- Повноцінного керування двигунами через модуль драйвера типу L293D. Так, щоб двигуни крутилися в обидві сторони.
- Опрацювання даних із давачів Холла, вмонтованих в двигуни шасі. Можливо це спосіб детектувати пробуксовки або блокування гусениць? Треба дослідити.
- Адекватної системи живлення - 3 батарейки AA явно мало. І PowerBank тягати на борту для живлення Arduinо також не дуже практично. Взяти за основу батарею на 6 елементів AA? Чи краще створити щось на основі елементів 18650 3.7V?
- Красивої світлодіодної підсвітки. В комплекті з роботом ідуть чудові фари, але вони чомусь червоні. Встановлення червоних фар спереду транспортного засобу накликає надто тяжку карму. Доведеться переробляти. Плюс можна побавитися з динамічнішою підсвіткою, як було описано раніше.
- Бракує сенсорів відстані. Сенсор відстані, поставлений на сервомашинку дасть можливість роботу "крутити головою" і приймати трохи розумніші рішення про об'їзд перешкод. В роботі ультразвукових сенсорів є свої особливості - кажуть, вони можуть конфліктувати, якщо мати їх кілька. Також кажуть, що вони нервують котів і собак. Може краще використати інфрачервоні? Треба дослідити.
- Одного або двох сенсорів краю поверхні. Щоб робот помічав не тільки стіни, а й глибокі ями, високі сходинки та інші небезпечні провалля. Якщо очікується, що робот буде інтенсивно пересуватися заднім ходом - таких сенсорів треба ставити всі чотири.
- Кращої системи генерування звуків. Щоб і звук можна було видавати приємніший, і робота процесора не блокувалася на час відтворення (як це робиться зараз). Прості звукові модулі коштують недорого, але не виключено, що до такого доведеться ставити і підсилювача, а то вже додаткові витрати енергії і ускладнення схеми. Треба рахувати.
- Кращої системи візуалізації думок і намірів робота - треба якийсь екранчик поставити. Це може бути і текстовий екран, і графічний.
- Повноцінної системи дистанційного керування. Або на основі RoboRemo, або щось своє написати. Можливо зробити зразу так, щоб на пульт керування передавалося відео і звук із сенсорів робота. Або взагалі зробити обмін відео і звуком в обидві сторони, перетворивши робота на аватара людини, яка ним керує.
- Системи штучного інтелекту, яка би могла осягнути повноцінну навігацію в приміщеннях, розпізнавати обличчя, знаходити предмети, робити всякі інші круті речі, і з часом стати достойним учасником мережі SkyNet :-)
Грандіозність планів починає вселяти сумніви, чи вистарчить одному Arduino UNO ресурсів все це потягнути. В першу чергу мабуть забракне виходів мікроконтролера, якщо на кожен новий модуль кожен раз виділяти їх по кілька штук.
Модуль | Необхідні виходи Arduino |
Wi-Fi ESP13/ESP8266 | 2 |
Драйвер двигунів | 6+2 для давачів Холла |
Сервомашинка для головного сенсора відстані | 1 (PWM) |
Ультразвуковий сенсор відстані | 2 |
Детектор краю поверхні 2 шт. | 2 |
LED підсвітка | 3 (SPI через регістр зсуву) |
Пищалка | 1 (PWM) |
Звуковий модуль | 4 |
Мікрофон | 1 Аналоговий вхід |
LCD екран - текстовий | 2 Аналогових (якщо використовувати I2C) |
Разом виходить під 20 виходів, навіть за умови використання ощадних протоколів типу SPI чи I2C. Явно забагато для Arduino UNO.
Інше обмеження - об'єм пам'яті. Навіть якщо не виконувати розпізнавання зображення і звуку силами самого робота, обслуговування всіх модулів вимагає дописування все більшої і більшої кількості програмного коду, який легко може вичерпати можливості UNO.
Щоб не заморочуватися із пошуком нової платформи, а також щоб не здорожчувати надмірно наше хобі, ми вирішили піднятися лише на одну сходинку вище - замінити Arduino UNO на Arduino MEGA 2560, яка дає більше можливостей, має значно більше виходів та пам'яті, не виставляючи особливих вимог до живлення чи програмного забезпечення. Різниця в ціні лише на на 5 доларів, порівняно з UNO допомогла зробити цей вибір остаточним :-)
Плата | Mega 2560 | Uno |
Процесор | ATmega2560 | ATmega328P |
Робоча/ Вхідна напруги |
5 V / 7-12 V | 5 V / 7-12 V |
Частота процесора | 16 MHz | 16 MHz |
Аналогові входи/виходи | 16/0 | 6/0 |
Цифрові виводи/PWM | 54/15 | 14/6 |
EEPROM [kB] | 4 | 1 |
SRAM [kB] | 8 | 2 |
Flash [kB] | 256 | 32 |
USB | Regular | Regular |
UART | 4 | 1 |
Схоже, що по всіх параметрах Arduino MEGA 2560 є для нас зараз найкращим вибором.
Немає коментарів:
Дописати коментар