Оглавление:

Официант, пожалуйста, бот: 6 шагов (с изображениями)
Официант, пожалуйста, бот: 6 шагов (с изображениями)

Видео: Официант, пожалуйста, бот: 6 шагов (с изображениями)

Видео: Официант, пожалуйста, бот: 6 шагов (с изображениями)
Видео: Принёс в школу уродливый Торт 😳🎂 #shorts 2024, Июль
Anonim
Image
Image

Что может пойти не так, если звонок официанта пробьет сервопривод в открытом офисе?

- Не знаю: D

Люди, как правило, ненавидят тревогу или даже прерывание, поэтому, возможно, будет неплохо сделать это немного забавным (по крайней мере, на время). Это то, к чему я стремился. Быстро предупреждайте инженеров о критических инцидентах приемлемым способом.

Это мой первый проект Arduino, сделанный из экрана Ethernet, инфракрасного управления, SG90 9g Micro Servo и переработанных материалов.

Действие пощечины запускается через WebHook или удаленное управление. Пульт дистанционного управления также используется для точного угла наклона руки.

Шаг 1. Как это работает?

Как это работает?
Как это работает?

Он прослушивает инфракрасный приемник и извлекает HTTP-адрес для заданного ключевого слова. Инфракрасный контроллер можно использовать для точной настройки угла руки, а также для триггера. HTTP-ответ можно использовать только для срабатывания звонка. (В данном случае я сделал небольшое веб-приложение, которое ловит веб-перехватчик от Slack и управляет флагом. - Не включено в это руководство)

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

В реальной жизни он просто периодически проверяет жестко запрограммированный веб-адрес, который имеет аналогичный ответ, например:

Если за ключевым словом anyslap следует целое число, оно совершает столько же движений руки.

Шаг 2: Требуемый компонент

Компонент Обязательный
Компонент Обязательный
Компонент Обязательный
Компонент Обязательный
Компонент Обязательный
Компонент Обязательный

Электронные компоненты:

  • Arduino Uno R3
  • UNO Shield Ethernet Shield W5100 R3
  • Комплект инфракрасного ИК-модуля беспроводного дистанционного управления
  • Сервопривод (SG90)
  • Универсальная печатная плата 4x6см
  • 5 светодиодов
  • Резистор 5 x 220 Ом
  • Силиконовый провод 30AWG

Переработанные материалы:

  • Флакон шампуня
  • Картонные коробки
  • Игрушечная рука (купите два круассана, получите одну руку бесплатно:)

Шаг 3: объедините учебные пособия по Arduino

В основном я просто следил за встроенными примерами Arduino, примерами библиотек и объединял их в один проект.

Рекомендуемые уроки

  • Мигает без задержки - используется для светодиодных индикаторов; Функция millis () для периодической проверки HTTP и отключения сервопривода, если он не используется.
  • Функции последовательного вывода ASCIITable - используются для отладки.
  • Структуры управления, такие как: итерация цикла, случай переключения, оператор If, цикл while
  • Веб-клиент Ethernet с арендой DHCP - используется для получения триггеров от конечной точки
  • Servo Lesson - используется для движения руки (вращения).
  • Инфракрасный приемник - используется для дополнительного контроля и точной настройки угла руки.

Шаг 4. Поиск ключевого слова в ответе HTTP и других проблемах EthernetClient

Сборка Waiter Please Bot была довольно простой, за исключением вещей, связанных с Ethernet.

Трудности

  1. Любой вызов EthernetClient, особенно аренда DHCP, - это единый процесс. Это работает как задержка с рандом, который приостанавливает программу.
  2. Забудьте о JSON в API и WebHook. Строки Arduino в любом случае - зло.

1. - Единый процесс

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

2. - Разобрать

Ключевыми требованиями являются стабильность и способность работать без обслуживания. Поэтому я избегаю использования каких-либо объектов String из-за возможной утечки памяти.

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

Шаг 5: набросок и исходный код

Эскиз и Источник
Эскиз и Источник

Репозиторий:

Шаг 6: Соберите оборудование

Сборка оборудования
Сборка оборудования
Сборка оборудования
Сборка оборудования
Сборка оборудования
Сборка оборудования

Рука

  1. В поставляемой коробке Macbook есть четыре угловых ограничителя. Я использовал его как подставку.
  2. Вырежьте небольшую фигуру, подходящую для сервопривода.
  3. Склейте подставку и сервопривод с помощью пистолета-расплава.
  4. Взял трубку от флакона использованного шампуня и прикрутил к серво.
  5. Потяните игрушку рукой за трубку.

Контроллер

  1. Изготовлен прототип на макете.
  2. Скопируйте макет платы на универсальную печатную плату.
  3. Я использовал разъединяющие заголовки для подключения всех проводов.
  4. Вырежьте бумажную коробку.
  5. Склейте переднюю часть коробки и печатную плату.
  6. Положите в коробку плату Arduino, экран Ethernet и немного губки.

Выполнено.

Рекомендуемые: