Микроконтроллер Arduino — это красивая электроника. Из коробки он может управлять большинством ваших устройств и прототипов. Количество GPIO, удобная среда разработки и низкая цена внесли существенные изменения в современный подход к прототипированию. Однако этот добрый монстр не может справиться с сильным вычислительным процессом. Поскольку робот включает в себя сложные алгоритмы, вам следует подумать о сотрудничестве Python-Arduino, чтобы сделать его живым.

Это вторая статья из серии «Конструирование манипулятора с нуля».

В первой статье мы получили вполне пригодную для использования модель Keras и протестировали ее графически на симуляции.

Теперь я очень рад использовать модель на реальном прототипе! Мы хотим оценить, насколько она хороша по сравнению с результатами моделирования, и сделать первый вывод о ценности нашего подхода. Окончательная работа будет заключаться в разработке метода минимизации ошибки.

Последовательная связь между Python и Arduino.

Чтобы связать их, я хочу использовать библиотеку pySerial, которая позволяет нам общаться через последовательный порт Arduino.

По сути, когда Arduino прослушивает свой последовательный порт, в то же время скрипт Python отправляет ему некоторую информацию. Этот элементарный коммуникационный процесс позволил нам отправить роботу нашу предсказанную тройку углов, чтобы привести его в желаемое положение.

В аргументе порта вам нужно указать коммуникационный порт, используемый картой Arduino. Скорость должна быть такой же, как в вашем скрипте Arduino.

В строке Serial.begin(9600) вы устанавливаете скорость.

Использование модели для получения выводов (для прогнозирования необходимых углов)

Благодаря библиотеке Keras работа выполнена. Вам просто нужно использовать функцию

model.predict

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

Очевидно, Керас уже сделал эту работу за вас. Вот основные функции:

model.save(“model.h5”)

А также загрузить его:

model = load_model(“model.h5”)

Теперь вы действительно близки к тому, что ожидали. Теперь вам нужно настроить сервоприводы, сгенерировать прогноз для ваших координат (X, Y) и отправить роботу предсказанный угол — наслаждайтесь результатами.

Большое спасибо за чтение, пожалуйста, не стесняйтесь обращаться, если у вас есть какие-либо вопросы или у вас есть обоснованная критика, или вы просто хотите обменяться мнениями о своих проектах.

В следующей статье мы сравним симуляцию и надежность приложения. Для этого я использую CNN для определения положения робота с помощью визуального распознавания.

Быть в курсе !!

Вот полный скрипт Python.

Вот полный скрипт Arduino.

Вам следует прочитать предыдущую статью для лучшего понимания :

«Эффективный и быстрый способ управления вашими роботами. Действительно." https://link.medium.com/LIGf4r3k5Z

Ссылки :

Тензорный поток: https://en.wikipedia.org/wiki/TensorFlow

NumPy: https://en.wikipedia.org/wiki/NumPy

Matpotlib: https://en.wikipedia.org/wiki/Matplotlib

Керас: https://en.wikipedia.org/wiki/Керас