Как сделать обувь с автоматической шнуровкой с помощью Arduino?

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



Изображение взято из Instructables

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



Как сделать автоматическую шнуровку вашего шоу с помощью Arduino?

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



Шаг 1: Сбор компонентов

Лучший способ начать любой проект - это составить список компонентов и провести их краткое изучение, потому что никто не захочет останавливаться на середине проекта только из-за отсутствия компонента. Список компонентов, которые мы собираемся использовать в этом проекте, приведен ниже:



  • Arduino uno
  • Моторный щит
  • Серводвигатель
  • Сила
  • СВЕТОДИОД
  • Резистор 1 кОм
  • Обувь
  • Металлическая полоса
  • Пластиковые стяжки
  • 1/8
  • Перемычки
  • Аккумулятор

Шаг 2: Изучение компонентов

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

Seeeduino v4.2 - одна из лучших в мире плат, совместимых с Arduino, основанная на микроконтроллере Atmega 328 MCU. потому что она проста в использовании, более стабильна и выглядит лучше, чем многие другие платы. Он основан на загрузчике Arduino. он имеет ATMEGA16U2 в качестве преобразователя UART-USB, потому что он может использоваться как микросхема FTDI. он подключается к компьютеру с помощью кабеля Micro USB, который обычно называют кабелем Android. Разъем постоянного тока также может использоваться для питания платы. входная мощность должна быть от 7В до 15В.

Доска объявлений Seeeduino



Моторный щит Arduino позволяет легко управлять направлением и скоростью двигателя с помощью Arduino. Позволяя вам просто обращаться к контактам Arduino, он упрощает использование любого двигателя в вашем предприятии. Кроме того, это дает вам возможность управлять двигателем с другим источником питания до 12 В. Лучше всего то, что щит очень легко найти. По всем этим причинам Arduino Motor Shield - неплохая вещь в вашем арсенале для быстрого прототипирования и общих экспериментов.

Моторный щит

Резисторы датчика силы (FSR) очень простые и удобные в использовании датчики давления. Препятствие FSR зависит от веса, применяемого к территории обнаружения. Чем больше веса вы применяете, тем меньше сопротивление. Диапазон препятствий довольно велик: от> 10 МОм (без веса) до ~ 200 Ом (максимальный вес). Большинство FSR могут обнаруживать мощность в диапазоне от 100 г до 10 кг. FSR состоит из двух слоев и спейсера. При отсутствии нагрузки проводящие слои изолированы тонким воздушным зазором. Одна из пленок содержит две трассы, идущие от хвоста к области детектирования (круглая часть). Эти следы сплетаются вместе, но не контактируют. Другая пленка покрыта ведущими чернилами. Когда вы нажимаете на датчик, чернила замыкают две дорожки вместе с противодействием, которое зависит от веса.

Датчик силы

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

Сервомотоцикл

Шаг 3: Принцип работы

Принцип работы этого проекта очень прост. Датчик силы будет использоваться для определения того, помещена ли ступня в шоу или нет. Если он обнаружит ступню, он отправит сигнал на плату Arduino, которая будет перемещать серводвигатель с помощью Arduino Motor Shield. Этот серводвигатель будет двигаться таким образом, что потянет за все шнурки сразу. Отсюда автоматически завязываются все шнурки на обуви.

Шаг 4: Сборка компонентов

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

  1. Прежде всего, отрежьте небольшую металлическую пластину, чтобы она закрепилась на задней части шоу. Используйте синтетический материал, чтобы он закрепился навсегда и не расшатывался. Убедитесь, что вы оставили зазор между металлической пластиной и шоу, потому что мы пропустим кабельные стяжки через этот зазор.
  2. Теперь возьмите два серводвигателя и прикрепите их к металлической пластине горячим клеем. Теперь, чтобы закрепить их на постоянной основе, используйте стяжки вокруг них, чтобы эти серводвигатели не двигались позже. После того, как серводвигатели разовьются, отрежьте оставшийся лишний кабель.
  3. Теперь установите аккумуляторный отсек под моторы так, чтобы выключатель питания находился снаружи.
  4. Теперь прикрепите плату Arduino к моторам. Перед тем, как подключать моторный щит к Arduino, нужно кое-что добавить в схему.
  5. Возьмите светодиод и припаяйте резистор к его положительной ножке и припаяйте короткий провод к отрицательной ножке и другой ножке резистора. Затем подключите эту сборку к Arduino и вставьте ее в одно из неиспользуемых гнезд для шнурков.
  6. Теперь возьмите Датчик силы и положите его на обувь, где будет опираться пятка. Не рекомендуется паять штыри датчика силы, так как тепло паяльника может расплавить пластик датчика. Так что лучше, если вы приклеите его или скотчем.
  7. Наконец, используйте стяжку, чтобы привязать все шнурки к серводвигателю, чтобы при вращении двигателя он тянул все шнурки одновременно.

Убедитесь, что положительный провод светодиода подключен к контакту 2 Arduino. Контакт Vcc и заземления датчика силы будет подключен к 5 В и заземлению Arduino, а контакт IN датчика силы будет подключен к контакту A0 платы Arduino. Наконец, аккуратно вставьте контакты серводвигателя в моторный щит, чтобы не ошибиться при подключении.

Шаг 5: Начало работы с Arduino

Если вы раньше не знакомы с Arduino IDE, не волнуйтесь, потому что ниже вы можете увидеть четкие шаги записи кода на плату микроконтроллера с использованием Arduino IDE. Вы можете скачать последнюю версию Arduino IDE из Вот и выполните шаги, указанные ниже:

  1. Когда плата Arduino подключена к вашему ПК, откройте «Панель управления» и нажмите «Оборудование и звук». Затем щелкните «Устройства и принтеры». Найдите имя порта, к которому подключена ваша плата Arduino. В моем случае это «COM14», но на вашем ПК он может быть другим.

    Поиск порта

  2. Нам нужно будет включить библиотеку для использования серводвигателя. Библиотека прикреплена ниже по ссылке для скачивания вместе с кодом. Идти к Эскиз> Включить библиотеку> Добавить библиотеку .ZIP.

    Включить библиотеку

  3. Теперь откройте IDE Arduino. В Tools установите для платы Arduino значение Arduino / Genuino UNO.

    Доска настроек

  4. В том же меню инструментов установите номер порта, который вы видели на панели управления.

    Настройка порта

  5. Загрузите прилагаемый ниже код и скопируйте его в свою среду IDE. Чтобы загрузить код, нажмите кнопку загрузки.

    Загрузить

Вы можете скачать код по нажав здесь.

Шаг 6: Код

Код довольно хорошо прокомментирован и не требует пояснений. Но все же код кратко объяснен ниже.

1. Вначале добавлена ​​специальная библиотека, чтобы серводвигатель можно было интегрировать с платой микроконтроллера и программировать через нее. Два объекта созданы для использования с серводвигателем. инициализируются некоторые контакты или Arduino, которые будут подключены к драйверу двигателя, а также объявлены некоторые переменные, которые сохранят некоторые временные значения, которые позже будут использоваться в основной программе.

#include // подключаем библиотеку для взаимодействия серводвигателя с платой микроконтроллера Servo myservo; // создает сервообъект 1 Servo myservo2; // создаем сервообъект 2 int forcePin = 0; // аналоговый вывод 0 подключен к датчику силы int ledPin = 2; // цифровой вывод 2 подключен к светодиоду int switchPin = 19; // устанавливает переключатель разблокировки на аналоговый вывод 5 int valF; // значение датчика силы int valS; // значение переключателя int thresHold = 500; // определяет порог давления датчика силы int servoUnlock = 0; // устанавливает главный сервопривод в нейтральное положение без развертки (0 градусов) int servoLock = 180; // устанавливает главный сервопривод в положение спуска (180 градусов) int servoUnlock2 = 180; // устанавливает вспомогательный сервопривод в нейтральное положение без развертки (0 градусов) int servoLock2 = 0; // устанавливает вспомогательный сервопривод в кружевное положение (180 градусов)

2. установка void () это функция, которая выполняется только один раз при запуске, когда микроконтроллер включен или нажата кнопка включения. В этой функции контакты Arduino инициализируются для использования в качестве INPUT или OUTPUT. Объекты, которые были созданы для серводвигателя раньше, используются для прикрепления серводвигателя к определенному выводу на плате Arduino, и сервопривод переводится в исходное состояние без шнуровки. Скорость передачи также устанавливается в этой функции. Baud Rate - это скорость в битах в секунду, с которой микроконтроллер обменивается данными с подключенными внешними устройствами.

void setup () {Serial.begin // установка скорости передачи микроконтроллера pinMode (ledPin, OUTPUT); // цифровой вывод 2 выводится для светодиода pinMode (switchPin, INPUT); // аналоговый вывод 5 - это вход для переключателя myservo.attach (9); // подключает сервоприводы к контактам 9 myservo2.attach (10); // подключает сервоприводы к контактам 10 myservo.write (servoUnlock); // перемещаем сервопривод 1 в положение без развертки myservo2.write (servoUnlock2); // перемещаем сервопривод 2 в разложенные позиции}

3. пустой цикл () - это функция, которая многократно выполняется в цикле. Сначала аналоговое значение считывается датчиком силы. Затем он ожидает, пока значение датчика силы не превысит пороговое значение. Он будет ждать, пока стопа полностью встанет на свое место, и установит оба сервопривода в положение блокировки. Если переключатели нажаты, сервопривод будет настроен на разблокировку и будет ждать, пока светодиод не мигнет семь раз.

недействительный цикл () {valF = analogRead (forcePin); // считываем значение датчика силы valS = digitalRead (switchPin); // считываем значение переключателя if (valF> = thresHold) {// ожидаем, пока датчик силы сравняется или пройдет порог давления, а затем: delay (1000); // ожидает, пока ступня встанет на место в башмаке myservo2.write (servoLock2); // устанавливает вспомогательный сервопривод в заблокированное положение задержки (1000); // ждет одну секунду myservo.write (servoLock); // устанавливает главный сервопривод на задержку заблокированного положения (1000); // ждет одну секунду digitalWrite (ledPin, HIGH); // включается светодиод, пока сервопривод не разблокирован. Удалите эту линию, чтобы продлить срок службы батареи. } if (valS == HIGH) {// ожидает нажатия переключателя, а затем: myservo2.write (servoUnlock2); // разблокирует задержку вспомогательного сервопривода (1000); // ждем две секунды myservo.write (servoUnlock); // разблокирует задержку главного сервопривода (500); // ждем, затем мигаем светодиодом 7 раз digitalWrite (ledPin, LOW); задержка (200); digitalWrite (ledPin, HIGH); задержка (200); digitalWrite (ledPin, LOW); задержка (200); digitalWrite (ledPin, HIGH); задержка (200); digitalWrite (ledPin, LOW); задержка (200); digitalWrite (ledPin, HIGH); задержка (200); digitalWrite (ledPin, LOW); задержка (200); digitalWrite (ledPin, HIGH); задержка (200); digitalWrite (ledPin, LOW); задержка (200); digitalWrite (ledPin, HIGH); задержка (200); digitalWrite (ledPin, LOW); задержка (200); digitalWrite (ledPin, HIGH); задержка (200); digitalWrite (ledPin, LOW); задержка (200); digitalWrite (ledPin, HIGH); задержка (200); digitalWrite (ledPin, LOW); // отключает задержку выключения светодиода (1000); }}

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