Зрозуміло, що нашому роботу ще рости і рости. Йому бракує багатьох важливих підсистем, і з кожною з них треба окремо порозбиратися і поекспериментувати:
- Повноцінного керування двигунами через модуль драйвера типу 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 є для нас зараз найкращим вибором.

Немає коментарів:
Дописати коментар