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

Эллибот

Чтобы не затягивать мучительные расходы, давайте погрузимся и изучим предмет этого поста… Знакомьтесь, Эллибот:

Выглядит немного не так, правда?! Ну, донаты на Марсе, наверное, не сделают. Тем не менее, есть несколько интересных аспектов этого проекта.

Прежде чем я начну утомлять вас подробностями, которые волнуют только меня и тех людей, которым нравится запах горящей жести по утрам или разговоры о скучных пакетах без настоящих подарков внутри, позвольте мне подключить вас ссылкой на GitHub. в мой репозиторий. Здесь вы можете брать, комментировать, улучшать или высмеивать код всех частей головоломки.

Вещи (оборудование)

Итак, пришло время запачкать руки. Нам нужно несколько вещей:

Контроллер

Чтобы сделать что-то крутое, нам нужен какой-то код, который будет исполняться в мозгу своего рода. Я выбрал RaspberryPi Zero W (обратите внимание на W, который поставляется со встроенным Wi-Fi). Конечно, есть некоторые другие варианты и сравнительные статьи, и, пожалуйста, проверьте, не подходит ли вам, например, Arduino.

Эта часть была на удивление дешевой!! Вы можете получить его по цене обеда. Тем не менее, убедитесь, что вы получаете его в пакете Essentials. С переходами USB и HDMI + распиновка разъема. Также очень полезно иметь один из этих наборов беспроводной клавиатуры и мыши, поскольку у Pi есть только один USB-вход. С другой стороны, вы можете просто подключить его к Wi-Fi, меняя мышь и клавиатуру по мере необходимости. Затем подключитесь к нему по ssh со своей обычной машины и взломайте.

В целом, хотя это правильный компьютер! Вы можете просматривать Интернет и писать в нем посты в блоге Medium. Какое время быть живым! Вы вполне можете поставить по одному в каждой комнате, если будете время от времени пропускать обед.

Уилерс

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

Сначала по моторам. Я сделал ошибку, просто купив некоторые с круто звучащими высокими оборотами (Viva la Revolutions per minute), чтобы позже узнать о крутящем моменте. и коробки передач. Затем я трачу около недели, чтобы попытаться собрать коробку передач самостоятельно, но сдаюсь и покупаю мотор-редуктор. Со второй попытки у меня появились моторы 1:48, 5 В, 140 об/мин. Что отлично сработало. Обратите внимание на 5V здесь, это пригодится в секции сока.

Еще одна вещь, которую я позже узнал, заключается в том, что вам нужен так называемый H-мост. Это интегральная схема [L293D], которая управляет питанием двигателей. Оказывается, эти двигатели представляют собой смесь магнитов и проводов, и они могут не только потреблять, но и создавать ток, который может поджарить ваш контроллер, если он не экранирован. Вот для чего нужен H-мост. Это также облегчает изменение направления вращения.

Сок

Теперь для всего этого понадобится немного энергии! На самом деле есть две разные мощности, о которых нужно думать. Сначала контроллер, а потом моторы. Это может быть немного сложно, в зависимости от вашего электрофона. Я знаю, что это было сложно для меня, по крайней мере.

Я выбрал двигатели, которым требуется напряжение 5 В, и RaspberryPi также требуется 5 В. Это значение очень удобно, так как зарядные устройства USB обычно также выдают это значение. Воспользовавшись тем, что я использовал один из этих банков питания для смартфонов. У меня было два выхода. Прохладный! Таким образом, мы можем использовать один для питания RaspberryPi, а другой для питания двигателей.

Вот хорошая инструкция как разрезать кабель USB, чтобы получить красный и черный кабель для питания двигателей (через H-мост).

Мусор

Этой частью я горжусь больше всего! Я перебрал несколько мусорных баков и «спасенные» колеса (от пылесоса), несколько тонких деревянных дощечек для корпуса и другие классные вещи (например, светодиод и резистор от сломанного велосипедного фонаря). Я также купил некоторые детали из секонд-хенда, где продаются детские игрушки. Мой первоначальный план состоял в том, чтобы найти какую-нибудь крутую уже собранную машину и просто заменить логику управления, но не повезло.

Кстати, вы полностью понимаете проблемы, с которыми сталкиваются такие компании, как Einride. Эти батареи очень тяжелые. Так что вам нужен достаточно крепкий скелет, чтобы нести их.

Блестки (интерфейс)

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

Для этого я создаю простой веб-сайт. Вот образец ядра того, что у меня получилось после удаления некоторых запутанных частей из полного файла.

Игнорируя все передовые методы, он содержит весь Javascript в одном файле, а также весь код CSS. Но на самом деле вам нужно всего несколько блоков управления, чтобы можно было общаться с сервером.

Вам нужен способ разместить этот файл. Но так как нам понадобится какая-то другая логика для подключения, я просто добавил веб-сервер в коммуникационный сервер.

Строки (Связь)

Со всеми этими деталями это может начать звучать как огромная боль с неопределенной прибылью в конце. Не волнуйтесь, хотя у меня есть еще вещи, чтобы сбить вас с толку!!

Как заставить всех говорить друг с другом. Я упоминал, что у Pi есть Wi-Fi? Оно делает! Таким образом, вы можете подключить его к Интернету. Теперь вы можете запустить сервер на своем ноутбуке, но вы также можете запустить его в облаке. Чтобы получить настоящее удовольствие, как в том эпизоде ​​​​Теории большого взрыва. С такой настройкой было бы довольно сложно добраться до вашей маленькой (или большой, я думаю, все относительно) вещи. Поскольку бот будет работать в какой-то частной сети за NAT.

Итак, что я решил сделать, так это то, что бот будет обращаться к серверу, чтобы открыть сокет TCP, а не наоборот. После чего он будет слушать инструкции о том, как двигаться.

Вы можете проверить его серверную часть и клиентскую = ботовую часть.

Последние слова

Итак, это было очень плохое и либо ненужное длинное, либо недостаточно подробное описание (исходя из того, что вы искали) моего любимого проекта. Кроме того, это моя первая попытка написать что-то подобное, поэтому, пожалуйста, будьте добры, но тверды! Обратная связь приветствуется и крайне необходима :)

Наконец, если у вас есть какие-либо вопросы, пожалуйста, обращайтесь!