Как сделать дешёвый датчик изгиба для arduino своими руками!

Идея этого проекта появилась и увлекла меня во время отпуска.

Мысль была примерно следующая: «Было бы классно иметь робо-руку, которая управлялась бы моей собственной!». И через некоторое время я принялся за разработку и реализацию этого проекта. Надеюсь, вам будет интересно!

Основные узлы проекта — перчатка и сама робо-рука. В качестве контроллера использовался Arduino. Движение робо-руки обеспечивается сервомоторами.

На перчатке установлены датчики изгиба: переменные резисторы, которые меняют свое сопротивление пи изгибе. Они подключены к одной стороне делителя напряжения и постоянным резисторам.

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

Конструкция руки взята из open-source проекта InMoov. На странице проекта можно загрузить 3-D модели всех узлов и напечатать их на 3-D принтере.

Ниже приведены все шаги для реализации вашей собственной робо-руки с управлением от перчатки.

Для проекта вам понадобятся:

  • 5 серводвигателей MG946R (или аналогичных — MG995 или MG996. При разработке руки у меня возникли некоторые проблемы с диапазоном перемещений. Так что лучше использовать сервы с большим углом поворота ). Сервы, которые использованы в этом проекте, покупались на hobbyking.com, но можно заказать на eBey или Aliexpress, подождать посылку недельки две-три и прилично сэкономить.
  • Как сделать дешёвый датчик изгиба для arduino своими руками!

  • 5 датчиков изгиба 4.5 дюймов.
  • Как сделать дешёвый датчик изгиба для arduino своими руками!

  • 1 плата Arduino Uno или ее аналог.
  • 5 резисторов на 22 кОм.
  • 1 6.0-7.2В батарейка (для серводвигателей).
  • 1 монтажная плата (breadboard).
  • 1 коннектор для батарейки.
  • Коннекторы для макетки.
  • 1 маленькая монтажная плата для распайки.
  • 1 перчатка. Максимально подходящая по размеру руки.
  • 1 длинный болт 8 мм в диаметре. Длина 55 мм.
  • 1 длинный болт 8 мм в диаметре. Длина 60 мм.
  • 1 длинный болт 8 мм в диаметре. Длина 80 мм.
  • 14 болтов 3 мм в диаметре. Длина 20 мм.
  • 20 болтов 4 мм в диаметре. Длина в диапазоне от 7 до 30 мм.
  • Около 5 метров лески или нитей или веревок (надо подобрать такую, чтобы не порвалась)
  • Супер клей
  • Наждачная бумага
  • Нитка и нить
  • Дрель
  • Паяльник
  • Доступ к 3-D принтеру

…все! Вы можете начинать ваш проект робо-руки!

Печатаем руку

Рука является частью open-source проекта под названием InMoov. Это робот, который печатается на 3-D принтере. Рука — это лишь отдельный узел общей конструкции. Скачайте с этой страницы и напечатайте следующие детали:

  • robpart1.stl*
  • robpart4V2.stl
  • robpart5V2.stl
  • Auriculaire3.stl
  • Index3.stl
  • Majeure3.stl
  • ringfinger3.stl
  • WristsmallV3.stl
  • thumb5.stl
  • Wristlarge.stl
  • На всякий случай прилагаю кликабельный список деталей, потому-что некоторые из них удалены со страницы основного проекта.
  • И с этой страницы
  • RobCableFrontV1.stl
  • RobRingV3.stl (в этой детали пришлось сделать дополнительные отверстия, чтобы подошли мои сервы)
  • RobCableBackV2.stl
  • RobServoBedV4.stl
  • robpart3V3.stl
  • robpart4V3.stl
  • (Это две детали «обшивки» — они не обязательны с точки зрения жесткости конструкции и ее функционирования)

Как сделать дешёвый датчик изгиба для arduino своими руками!

В общей сложности понадобилось около 13-15 часов для печати. Зависит от качества печати. Я использовал MakerBot Replicator 2X. Рекомендую печатать детали пальцев на стандартном или высоком разрешении, чтобы избежать нежелательного трения в конструкции.

  1. Auriculaire3.stl
  2. coverfinger1.stl
  3. Index3.stl
  4. Majeure3.stl
  5. ringfinger3.stl
  6. RobCableBackV2.stl
  7. RobCableFrontV1.stl
  8. robpart1.stl
  9. robpart2V2.stl
  10. robpart3V3.stl
  11. robpart4V3.stl
  12. robpart5V2.stl
  13. robpart5V2.stl
  14. RobServoBedV4.stl
  15. thumb5.stl
  16. topsurface4.stl
  17. WristlargeV3.stl
  18. WristsmallV3.stl

Как сделать дешёвый датчик изгиба для arduino своими руками!

Подключаем датчики изгиба к Arduino

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

При использовании в паре с постоянным резистором, можно отслеживать разницу в напряжении двух резисторов. Отследить разницу можно с помощью аналоговых контактов Arduino.

Схема подключения приведена ниже (красный коннектор — это напряжение, черный — земля, голубой — коннектор самого сигнала, который подключается к аналоговому входу Arduino).

Как сделать дешёвый датчик изгиба для arduino своими руками!

Резисторы на фото имеют номинал 22 кОм. Цвета проводов соответствуют цветам, приведенным на схеме подключения.

Все контакты GND от датчиков соединены в общую Землю. Земля идет к пину GND на Arduino. +5V на Arduino подключается к общему контакту питания от всех датчиков. Каждый голубой коннектор сигнала подключается к отдельному аналоговому входу на микроконтроллере.

Как сделать дешёвый датчик изгиба для arduino своими руками! Как сделать дешёвый датчик изгиба для arduino своими руками! Как сделать дешёвый датчик изгиба для arduino своими руками!

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

Как сделать дешёвый датчик изгиба для arduino своими руками! Как сделать дешёвый датчик изгиба для arduino своими руками!

Устанавливаем сенсоры на перчатке

Можем приступать к установке датчиков и нашей монтажной платы на саму перчатку. Сначала просверлите небольшое отверстие в пластике датчиков. Отверстия сверлятся в местах, где чувствительный элемент закончился. ВАЖНО! Ни в коем случае не сверлите отверстие в чувствительном материале.

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

В местах, где отмечены суставы сенсоры «прихватываются» нитью поверх. Более детально все это показано на фото ниже. Монтажная плата пришивается к перчатке аналогично сенсорам. Учтите, что для движения пальцев надо оставить определенный запас длины проводников.

Это надо учесть при установке нашей монтажной платы и выборе длины коннекторов от нее к датчикам.

Собираем робо-руку

Я не буду детально останавливаться на этом шаге. Он очень подробно раскрыт на веб-сайте InMoov (в разделе «Assembly Sketches» и «Assembly Help»):

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

Не спешите устанавливать леску. Сначала проверьте работоспособность серводвигателей.

Проверка сервомоторов

На этом этапе сервы уже должны быть установлены в задней части вашей робо-руки. Для подключения серв к Arduino и источнику питания, я использовал небольшую макетную плату. Подключите каждый позитивный контакт серводвигателя (красный) к одной рельсе макетной платы, а негативный (черный или коричневый) — к другой рельсе.

ВАЖНО! Не забудьте подключить контакт Arduino к рельсе с отрицательным зарядом: помните, что все контакты Земля должны быть соединены между собой. Контакт VCC может подключаться к различным источникам питания, но GND должен быть одинаковым.

Загрузите программу на Arduino (файл с программой прилагается). Убедитесь, что подключение сенсоров, сервомоторов и т.п. Было правильным. Наденьте перчатку и включите Arduino. Серводвигатели должны вращаться в зависимости от того, каким пальцем вы будете двигать. Если сервы двигаются, значит все работает!

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

Если сервомоторы отрабатывают неправильно, убедитесь, что вы их правильно подключили (например, когда я работал над этим проектом, я, как обычно, забыл соединить пин GND Arduino с GND источника питания и всех серв. В этом случае работать ничего не будет). Убедитесь, что все отрабатывает перед тем, как двигаться дальше.

Добавляем леску

Добавить леску — это, наверное, самая сложная и ответсвенная часть проекта робо-руки. На сайте InMoov есть инструкция на этот счет. Концепция простая, но реализовать ее практически не так то просто. Обратите внимание, что эта часть проекта требует сосредоточения и терпения.

Единственное отличие моего варианта от конструкции на InMoov — использование клея. Благодаря этому мы можем получить возможность более губкой настройки при калибровке серв. Для этого достаточно расплавить клей и подтянуть нужные нам болты. Хотя, конечно же, надежность конструкции падает.

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

Для калибровки сервомоторов, проверните роторы так, чтобы пальцы робо-руки лежали на столе. Подключите ваш Arduino и источник питания. Выставьте качалки приводов таким образом, чтобы в полностью «лежащем» состоянии руки натяжение было максимальным.

Объяснить процесс калибровки достаточно сложно. Кроме того, инструкция с InMoov мне, например, не подошла. То есть, при крепеже вам надо проявить фантазию и подстроиться под ваши реалии — как то: тип качалок, тип лески или ниток, погрешности конструкции и сборки, расстояние установки сервомоторов относительно суставов робо-руки.

К счастью — это последний этап проекта!

Послесловие

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

Но промышленности, медицине и т.п. для задач без повышенных требований к точности перемещений суставов, наша робо-рука вполне подойдет. Ну а с точки зрения дальнейшего «апгрейда» руки — тут поле вообще непаханое. Начиная от беспроводного управления, заканчивая заменой приводов, габаритов, разработки дополнительных степеней свободы.

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

Оставляйте Ваши комментарии, вопросы и делитесь личным опытом ниже. В дискуссии часто рождаются новые идеи и проекты!

Источник: http://arduino-diy.com/arduino-robo-ruka-s-distantsionnym-upravleniyem-ot-perchatki

Механические датчики для Arduino

Как сделать дешёвый датчик изгиба для arduino своими руками!

Количество датчиков предназначенных для совместной работы с платформой Arduino поистине не поддается исчислению. При желании можно приобрести почти какой угодно готовый модуль от банальной кнопки до детектора радиации. Такие датчики можно приобрести как по отдельности, так и в наборах самого разнообразного размера. Один из таких сравнительно дешевых наборов можно приобрести на Али за 10 долларов. Набор поставляется в полиэтиленовом пакете, некоторые из датчиков, примерно треть были упакованы в отдельные пакеты. Вместе с датчиками в посылку вложен отдельный листок с перечнем комплектации.

Читайте также:  Лошадка-качалка своими руками

Данный набор включает в себя 37 приборов, которые позволяют регистрировать разнообразные явления и процессы, а также небольшое количество простейших устройств вывода информации [1-3].

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

Набор можно подключить к платам типа Arduino UNO или Arduino Nano без использования пайки, что является несомненным плюсом на первом этапе работы.

В первой части данного обзора речь пойдет о механических датчиках, реагирующих на нажатие, вибрацию, поворот и т.п. Большая часть описанных ниже датчиков подключаются, по сути, аналогично цифровой кнопке. Для примера в память микроконтроллера на плате Arduino UNO можно записать программу, которая по командам от датчика зажигает светодиод, подключенный к 13 цифровому порту, код взят из [4].

Модуль тактовой кнопки KY-004 [5]

Как сделать дешёвый датчик изгиба для arduino своими руками!
Как сделать дешёвый датчик изгиба для arduino своими руками!

Размер модуля 24 х 15 мм, масса 1,3 г. Помимо кнопки на плате установлен резистор, сопротивлением 10 кОм. Для подключения служит трех контактный разъем, общий вывод разъема обозначен знаком «-», центральный контакт служит для подачи напряжения питания +5В, информационный контакт обозначен «S»

Как сделать дешёвый датчик изгиба для arduino своими руками!

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

Датчик вибрации KY-002 [6]

Как сделать дешёвый датчик изгиба для arduino своими руками!
Как сделать дешёвый датчик изгиба для arduino своими руками!

Размер модуля 24 х 15 х 15 мм, масса 1,2 г. Конструктивно датчик представляет собой цилиндрическую металлическую пружину по оси, которой располагается проводник, который замыкается при резких ускорения, сообщаемых устройству [7]. Схема подключения, логика работы и маркировка контактов, аналогичны таковым у модуля тактовой кнопки KY-004

Как сделать дешёвый датчик изгиба для arduino своими руками!

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

Датчик удара KY-031 [8]

Как сделать дешёвый датчик изгиба для arduino своими руками!
Как сделать дешёвый датчик изгиба для arduino своими руками!

Размер модуля 30 х 18 мм, масса 1,6 г. Датчик представляет собой пружинный контакт в прямоугольном пластиковом корпусе. Датчик чувствителен к ускорениям направленным поперек продольной оси датчика

Как сделать дешёвый датчик изгиба для arduino своими руками!

Датчик поворота KY-020 [9]

Размер модуля 24 х 15 мм, масса 1,3 г. Датчик представляет собой металлический шарик, который замыкает контакты, в том случае, когда плата изменяет свое положение в пространстве примерно на 90 градусов.

Полезное:  Какой мультиметр лучше купить начинающему для дома и авто

  • Устройство подключается полностью идентично кнопке KY-004.

Следует иметь в виду, что датчик совершенно не подходит для определения малых поворотов. В целом, как и два предыдущих механических датчика данная конструкция иногда может срабатывать не очень надежно.

Механический датчик поворота

Механический датчик поворота (Валкодер или энкодер) KY-040 [10-15].

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

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

Размер модуля 30 х 18 мм, высота 28 мм, масса 6,5 г. В плате имеется два крепежных отверстия, диаметром 3 мм, на расстоянии 14 мм друг от друга. Модуль имеет пять выводов:

  • “GND” – общий,
  • “+” – питание 5 В,
  • “SW” – вывод кнопки,
  • “DT” и “CLK” – выводы сигналов с валкодера.

Работа с кнопкой аналогична таковой для любой цифровой кнопки, например KY-004, или аналогичной.

С выводов “DT” и “CLK” при вращении штока устройства можно считать последовательности сигналов высокого и низкого логического уровня, сдвинутые по фазе примерно на четверть периода.

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

Джойстик KY-040 [16-17]

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

Ручка джойстика механически связана с парой переменных резисторов, сопротивлением 10 кОм. Отклонение ручки вызывает изменение сопротивления резисторов. При нажатии на джойстик замыкается расположенная под ним кнопка.

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

Размер модуля 40 х 26 мм, высота 28 мм, масса 9,8 г. В плате есть четыре крепежных отверстия, диаметром 3 мм, расположенных в вершинах прямоугольника со сторонами 20 и 26 мм. На плате имеется пять выводов:

  1. “GND” – общий,
  2. “+5V” питание,
  3. “VRx” — выводы переменного резистора кодирующего перемещение по оси X,
  4. “VRy” — выводы переменного резистора кодирующего перемещение по оси Y,
  5. “SW” — вывод кнопки.
  1. Можно написать простую программу, которая будет при помощи светодиода, подключенного к 13 цифровому порту отображать нажатие кнопки джойстика, а информацию о сопротивлении переменных резисторов выводить в терминал последовательного порта.
  • 1) https://arduino-kit.ru/catalog/id/37-v-1-nabor-datchikov
  • 2) https://arduinomaster.ru/arduino-kit/nabor-arduino-sensor-kit-37-v-1/
  • 3) https://mysku.ru/blog/china-stores/37299.html
  • 4) http://robocraft.ru/blog/arduino/57.html
  • 5) https://arduino-kit.ru/catalog/id/modul-taktovoy-knopki
  • 6) https://arduino-kit.ru/catalog/id/modul-datchika-vibratsii
  • 7) https://arduino-kit.ru/userfiles/image/SW-1801_a.jpg
  • 8) https://arduino-kit.ru/catalog/id/modul-datchika-udara
  • 9) https://arduino-kit.ru/catalog/id/modul-datchika-naklona_
  • 10) https://arduino-kit.ru/catalog/id/modul-datchika-vrascheniya-_valkoder_
  • 11) https://mysku.ru/blog/aliexpress/40668.html
  • 12) https://datagor.ru/microcontrollers/281-chto-est-valkoder….html
  • 13) http://www.zi-zi.ru/docs/modules/info_KY-040.pdf
  • 14) http://cxem.net/arduino/arduino8.php
  • 15) http://mypractic.ru/urok-55-rabota-s-inkrementalnym-enkoderom-v-arduino-biblioteka-encod_er-h.html
  • 16) http://soltau.ru/index.php/arduino/item/384-kak-podklyuchit-dzhojstik-k-arduino
  • 17) http://www.zi-zi.ru/module/module-ky023

Вторую часть обзора читайте здесь. Специально для 2 Схемы.ру — Denev

25,00

НАЖМИТЕ ТУТ И ОТКРОЙТЕ КОММЕНТАРИИ

Источник: https://2shemi.ru/mehanicheskie-datchiki-dlya-arduino/

Как сделать свою собственную плату Arduino Uno

В уроке мы покажем вам, как сделать свою собственную плату Arduino Uno своими руками, используя микроконтроллер ATmega328p IC. В итоге вы сможете понимать как в  дальнейшем делать аналоги любых плат, плюс создавать свои. Может быть вы даже откроете свою компанию по производству плат и микроконтроллеров.

Как сделать дешёвый датчик изгиба для arduino своими руками!

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

Мы не будем использовать какие-либо SMD-компоненты для создания своей версии Arduino Uno, потому что не у всех есть паяльная станция, а иногда найти SMD-компоненты очень сложно. Кроме того, наш метод в большинстве случаев дешевле, чем компоненты SMD.

Для тех кто, только начинает разбираться в электронике — технологию поверхностного монтажа печатных плат также называют ТМП (технология монтажа на поверхность), SMT (англ. surface mount technology) и SMD-технология (от англ.

surface mounted device — прибор, монтируемый на поверхность), а компоненты для поверхностного монтажа также называют «чип-компонентами».

Шаг 1. Изменения в оригинальной версии

Как сделать дешёвый датчик изгиба для arduino своими руками!

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

Скачать arduino-uno-schema.pdf

Изменения будут следующими:

  • Мы не будем использовать какие-либо компоненты SMD. Все элементы будут в формате сквозных отверстий.
  • Мы не нашли ни одного чипа FTDI в формате сквозного отверстия, поэтому преобразование USB в TTL не будет выполняться. Для программирования нового Arduino будет использоваться отдельная отладочная плата FTDI.
  • Оригинальный Arduino использует компаратор Mosfet, чтобы определить, подключаем ли мы плату с помощью источника питания USB или постоянного тока. Но в нашей версии мы будем вручную переключать это с помощью перемычки.
  • Традиционно используется микросхема LP2985 от Texas Instruments, чтобы получить источник питания 3,3 В на борту. Но из-за недоступности платы в формате TH мы будем использовать простой линейный регулятор. Таким образом, LM1117 должен быть очевидным выбором, но чтобы сохранить стоимость изготовления еще ниже, мы будем использовать LM317 с R1 и R2 как 240E и 390E соответственно.
  • Последнее, что нужно на плате, — это достаточное количество линий питания и два разъема для каждого порта IO ввода-вывода. Поэтому мы будем размещать ряд разъемов папа и мама вокруг платы, что поможет подключить большее количество устройств непосредственно к Arduino.

Учитывая все изменения, мы можем записать окончательный список компонентов.

Компоненты, которые вам нужны для этого проекта. Везде, где количество не указано, считайте его единственным.

  • Микроконтроллер Atmel Atmega328p-pu
  • 28-контактная база IC
  • 16 МГц кварцевый генератор
  • конденсатор 22 пФ — 2 шт.
  • конденсатор 100 нФ — 4 шт.
  • Электролитический конденсатор 100 мкФ — 3 шт.
  • 3 мм красный светодиод — 2 шт.
  • 330E 1/4W резистор — 2 шт.
  • 240E 1/4W резистор — 1 шт.
  • 390E 1/4W резистор — 1 шт.
  • 10K 1/4W резистор — 1 шт.
  • Кнопка для сброса
  • Диод общего назначения 1N4007
  • Линейный регулятор напряжения 7805
  • Линейный регулятор переменного напряжения LM317
  • DC разъем мама
  • 2-контактный винтовой клеммный блок
  • много разъемов «папа» и «мама»
  • Кроме всего вышеперечисленного для своей собственной Arduino Uno вам также понадобится паяльное оборудование и некоторые аппаратные средства, чтобы облегчить жизнь.
  • Вам также понадобится программатор USBASP ICSP или конвертер USB в TTL, такой как FTDI для программирования Arduino с вашего компьютера.
  • Вот проектная спецификация от компании Easyeda:
  • Собираем все компоненты и переходим к следующему шагу.
  • Как сделать дешёвый датчик изгиба для arduino своими руками!

Чтобы нарисовать окончательную схему, использовали Easyeda, набор инструментов EDA на основе веб-технологий. На этом портале очень просто рисовать большие схемы. Также это онлайн сервис. Таким образом, благодаря удобству использования что-то лучшее найти сложно. Рекомендуем вам использовать в своих проектах. Схема, которая разработана может быть скачена по ссылке ниже, PDF документ:

Читайте также:  Изготовление бумеранга из обрезков досок своими руками

Скачать arduino-final-shema.pdf

Шаг 4. Создаем печатную плату

Как сделать дешёвый датчик изгиба для arduino своими руками!

Как только схема завершена, пришло время сделать печатную плату. Мы использовали веб-сайт JLCPCB (ссылка), чтобы сделать печатную плату. Эти ребята являются одними из лучших в производстве печатных плат в последние дни.

После завершения проектирования схемы преобразуйте ее в печатную плату и спроектируйте печатную плату на веб-сайте easyEDA (ссылка). Будьте терпеливы. Ошибка на этом шаге испортит вашу печатную плату. Проверьте несколько раз перед генерацией файла gerber.

Вы также можете проверить 3d модель вашей платы здесь. Нажмите на создание файла gerber и оттуда вы можете напрямую заказать эту плату через JLCPCB. Загрузите файлы gerber, выберите правильную спецификацию, ничего не меняйте в этом разделе. Оставьте как есть. Это достаточно хорошие настройки для старта.

Разместите заказ. Вы получите его через 1-2 недели.

Скачать архив файлов gerber
Скачать макет печатной платы 1:1 .pdf Как сделать дешёвый датчик изгиба для arduino своими руками!

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

Одна вещь, которую стоит пояснить, заключается в том, что значения конденсаторов не обязательно должны быть идеальными. Нечто близкое к тем величинам, что мы обсуждали выше, вполне будет работать. То же самое касается резисторов. Но сохраните значения R1 и R2 LM317.

Одна вещь, которую вы можете найти странной, что у arduino, который мы сделали, есть две кнопки сброса. На самом деле, когда разрабатывали макет, использовали четырехконтактную кнопку для справки. Но во время пайки стало понятно, что у нас её нет. Поэтому мы припаяли 2 двухполюсных переключателя сброса на место. Там нет ничего особенного.

Шаг 6. Запуск загрузчика на микроконтроллере

Как сделать дешёвый датчик изгиба для arduino своими руками!
Как сделать дешёвый датчик изгиба для arduino своими руками!

Если вы используете конвертер USB — TTL для программирования микроконтроллера, тогда загрузчик Arduino должен быть установлен в новый чип atmega328p. Об этом мы сделаем следующий большой урок. После этого процесс загрузки кода будет точно таким же, как и в обычной Arduino.

Если вы используете программатор ICSP, то есть программатор USBASP, тогда этот шаг не нужен. Но процесс загрузки кода немного отличается.

Шаг 7. Программируем Ардуино

Как сделать дешёвый датчик изгиба для arduino своими руками!

Подключите коммутационную плату к Arduino и подключите её к компьютеру. Откройте диспетчер устройств и наблюдайте за com-портом конвертера usb — ttl. В Arduino IDE выберите com-порт и плату правильно. Теперь здесь начинается сложная часть.

Если ваша плата FTDI имеет вывод DTR и она подключена для сброса, просто сохраните программу и загрузите ее в Arduino как обычно. Ошибки не будет.

Но если у вас нет пина DTR, как у нас, то, прежде чем нажать кнопку загрузки, удерживайте кнопку сброса на плате, а затем нажмите кнопку загрузки.

Удерживайте кнопку до тех пор, пока программа не скомпилируется, когда IDE говорит «загрузка», затем отпустите переключатель сброса. Затем код будет загружен.

Шаг 8. Итоговый результат

Как сделать дешёвый датчик изгиба для arduino своими руками!

Здесь вы можете увидеть, что мы загрузили 3-контактный код в новую arduino, и все работает, как и предполагалось. Используя только 3 контакта, мы контролируем 6 светодиодов с промежутком 200 мс между ними. Мы проверяли другие программы, все они работают без нареканий.

Источник: https://ArduinoPlus.ru/delaem-analog-arduino-uno/

Датчик движения своими руками на Arduino | Каталог самоделок

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

  1. Подключение  PIR-датчика к Arduino;
  2. Как настроить взаимосвязь между датчиком и автоматической отправкой e-mail.

Необходимо для проекта:

  • Arduino UNO (выбрать можно на Aliexpress).
  • PIR-датчик .
  • Бредбоард.
  • Связка проводов.
  • Все перечисленные элементы для сборки можно увидеть на фотографиях:
  • Как сделать дешёвый датчик изгиба для arduino своими руками!
  • Как сделать дешёвый датчик изгиба для arduino своими руками!
  • Как сделать дешёвый датчик изгиба для arduino своими руками!
  • Как сделать дешёвый датчик изгиба для arduino своими руками!

В первую очередь нужен ПК с подключением к интернету. Мы  использовали Raspberry Pi.

Подключаем PIR-датчик к набору Arduino:

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

Как сделать дешёвый датчик изгиба для arduino своими руками!

Работа со скетчем

При возникновении движения Arduino при помощи  USB Serial должен послать электронное сообщение. Конечно же, если при любом возникшем движении отправлять  e-mail, то почтовый ящик будет переполнен. Поэтому мы исправили это таким образом, если между двумя сигналами короткий промежуток времени, будет отправляться письмо с таким текстом:

int pirPin = 7;
int minSecsBetweenEmails = 60; // 1 min
long lastSend = -minSecsBetweenEmails * 1000;
void setup()
{
pinMode(pirPin, INPUT);
Serial.begin(9600);
}
void loop()
{
long now = millis();
if (digitalRead(pirPin) == HIGH)
{
if (now > (lastSend + minSecsBetweenEmails * 1000))
{
Serial.println(«MOVEMENT»); lastSend = now;
}
else
{
Serial.println(«Too soon»); }
}
delay(500);
}

«MinSecsBetweenEmails» – эта переменная может переключаться на другие значения, которые будут удобны пользователю. К примеру, можно установить интервал, который равен одной минуте – это будет означать, что следующий  e-mail будет отправлен только через 60 секунд.

«LastSend» поможет отследить время, в которое было отправлено последнее сообщение. Инициализация данной переменной происходит с отрицательным числом, которое равно миллисекундам, что указаны в «MinSecsBetweenEmails». В итоге, мы получаем гарантию того, что после запуска скетча в Arduino сразу же запустится PIR-датчик.

За счет чего мы можем высчитать миллисекунды, сравнить их число со временем последнего срабатывания датчика? Все благодаря встроенной функции под названием Millis. В том случае, если обнаружено движение, но прошло  мало времени с последнего активизации датчика будет отправлено письма с текстом «Too soon».

Эту функцию сначала надо проверить. Для этого открывается Serial Monitor. Далее рассмотрим, как он выглядит:

Как сделать дешёвый датчик изгиба для arduino своими руками!

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

Как установить PySerial и Python:

Операционная система Linux имеет автоматически установленный Python. Система Windows не обладает такой характеристикой, поэтому программу необходимо установить самостоятельно. PySerial исполняет роль библиотеки, она поможет поддерживать связываться с Arduino.

Установка Python:

Python 3 нередко вызывает затруднения при работе с PySerial, особенно если вы используете Windows. Чтобы этого избежать, можно вместо третьей версии скачать Python 2.

Завершив установку программы в меню «Пуск» можно обнаружить особую группу. Когда мы перейдем к процессу установки библиотеки, нам понадобится сотрудничество с Python, применив командную строку. Поэтому лучше сразу добавить к PATH нужный каталог. Далее можно увидеть вспомогательную фотографию:

Как сделать дешёвый датчик изгиба для arduino своими руками!

Для добавления каталога нам потребуется: открыть панель управления, в ней найти раздел «System Properties». Потом нажимаем клавишу, которая называется «Переменная среда» (Environment Variabes), перед нами всплывет окно. В его нижней части должен находиться «Path», который нужно выбрать.

Теперь кликнем на «Edit» – Изменение и завершаем процесс нажатием «значения переменной». Нельзя удалять текст, который получили, к нему следует дописать такую надпись – «;C:Python27». Не забываем после каждой папки, что указана в тексте ставить «;». Теперь проверяем правильно ли осуществлен ввод «Path». Для этого в командную строку вводим слово «python».

Если ошибок не возникло, то на экране появится следующая картинка:

Как сделать дешёвый датчик изгиба для arduino своими руками!

Установить  PySerial:

Независимо от используемой операционной системы, скачиваем .tar.gz установочный пакет для PySerial 2.6 с . Этот сайт может помочь это сделать – //pypi.python.org/pypi/pyserial. Получаем файл с именем pyserial-2.6.tar.gz. Если используется Windows, то будет нужна распаковка файлов в выбранную папку.

Это не стандартный файл формата ZIP, придется сделать дополнительные действия – скачать 7-zip (это можно сделать здесь – //www.7-zip.org/). Для системы Linux необходимо воспользоваться терминальной сессией, в ней дать команду «CD», указать название той папки, в которую скачали  pyserial-2.6.tar.gz.

Чтобы выполнить распаковку нужно ввести:

$ tar -xzf pyserial-2.6.tar.gz

После этого потребуется выполнить команду:

sudo python setup.py install

Python

Потребуется создать отдельную программу для работы с Python. Нужно скопировать код в файл с таким именем – «movement.py». В Linux можно использовать «нано» редактор, а для системы  Windows необходимо создать файл, используя редактор Python «IDLE ». Он доступен в меню «Пуск».

import time
import serial
import smtplib
TO = 'putyour@email.here'
GMAIL_USER = 'putyour@email.here'
GMAIL_PASS = 'putyourpasswordhere'
SUBJECT = 'Intrusion!!'
TEXT = 'Your PIR sensor detected movement'
ser = serial.Serial('COM4', 9600)
def send_email():
print(«Sending Email»)
smtpserver = smtplib.SMTP(«smtp.gmail.com»,587)
smtpserver.ehlo() smtpserver.starttls()
smtpserver.ehlo smtpserver.login(GMAIL_USER, GMAIL_PASS)
header = 'To:' + TO + '
' + 'From: ' + GMAIL_USER
header = header + '
' + 'Subject:' + SUBJECT + '
'
print header
msg = header + '
' + TEXT + '

'
smtpserver.sendmail(GMAIL_USER, TO, msg)
smtpserver.close()
while True:
message = ser.readline()
print(message)
if message[0] == 'M' :
send_email()
time.sleep(0.5)

  1. Это показано на следующей картинке:
  2. Как сделать дешёвый датчик изгиба для arduino своими руками!
  3. После изменений, программа запуститься при помощи командной строки:

python movement.py

  • Итак, установка завершена.
  • На этом возможности не заканчиваются, есть расширения, которые позволяют получать сообщения с отчетами о температуре или других сведениях.
  • Прикрепленные файлы: Скетчи и коды.  
  •  Доронин Виталий, Липецк.

Источник: https://volt-index.ru/electronika-dlya-nachinayushih/datchik-dvizheniya-svoimi-rukami-na-arduino.html

Датчик наклона на базе Ардуино своими руками

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

Принцип действия основан на измерении ускорения перемещения инертной массы внутри акселерометра.

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

  • Благодаря использованию микроконтроллера Arduino вы можете самостоятельно сконструировать датчик наклона в домашних условиях.
  • Для этого вам понадобится:
  • Практическая реализация датчика наклона на базе Arduino приведена на рисунке ниже:
Читайте также:  Гравийный сад – своими руками

Как сделать дешёвый датчик изгиба для arduino своими руками!Рисунок 1: общий вид датчика

В данном примере рассматривается установка акселерометра ADXL335 выпускаемого компанией Analog Devices который подключается к соответствующим выводам на микроконтроллере Arduino Uno, а от микроконтроллера сигналы переводятся на дисплей.

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

Главная задача реализовать основной принцип датчика, который приведен на блок-схеме ниже.

Как сделать дешёвый датчик изгиба для arduino своими руками!Рис. 2: блок-схема датчика

Преимуществом такой модели является установка Arduino Uno, так как этот микроконтроллер лучший вариант для электронных устройств, управляемых сигналам с платы.

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

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

Для реализации датчика наклона Arduino Uno выбран неспроста, он собран на базе микросхемы ATmega328 и включает в себя 14 цифровых выходов, 6 аналоговых, USB разъем для подключения к устройствам программирования, ICSP разъем, вход питания, и оснащается функцией сброса или обнуления данных. Также в данной плате установлен кварцевый генератор на 16МГц, предназначенный для поддержания стабильной работы всего микроконтроллера.

Несмотря на внушительный объем его элементов, Arduino Uno имеет оносительно небольшие размеры и его достаточно легко эксплуатировать. Для этого вам понадобиться подключить плату к ПК через USB вход для установки рабочих параметров и запитать посредством батареи или через адаптер. Программирование и дальнейшая эксплуатация производится  в операционной среде Arduino.

Как собрать датчик наклона?

Как сделать дешёвый датчик изгиба для arduino своими руками!Рис. 3: электрическая схема датчика наклона

Подключение акселерометра к микроконтроллеру осуществляется по такому принципу:

  • Вывод ST подключается к пину платы Arduino A0;
  • Вывод перемещений по оси Z подключается к пину платы Arduino A1;
  • Вывод перемещений по оси Y подключается к пину платы Arduino A2;
  • Вывод перемещений по оси X подключается к пину платы Arduino A3;
  • Вывод GND подключается к пину платы Arduino A4;
  • Вывод VCC подключается к пину платы Arduino A5.

Затем от микроконтроллера Ардуино производится подключение к дисплею, в данной ситуации состоящего из группы светодиодов. Для подключения от платы берутся выходы с 8 по 12  и пин питания на 5В, которые распределяются по логике схемы следующим образом:

  • Пин 5В является общей точкой подключения;
  • Восьмой подключается к светодиоду, сигнализирующему о наклоне в правую сторону;
  • Девятый подключается к светодиоду, сигнализирующему о стабильном положении датчика по центру (его, для отличия, мы делаем красного цвета, но это не принципиально);
  • Десятый подключается к светодиоду, сигнализирующему о перемещении датчика назад;
  • Одиннадцатый подключается к светодиоду, сигнализирующему о наклоне в левую сторону;
  • Двенадцатый подключается к светодиоду, сигнализирующему о наклоне датчика вперед.

При изменении положения акселерометра в пространстве произойдет движение инертной массы. В результате такого движения инертная масса приведет к замыканию контактов и подаст соответствующий сигнал с одного из выводов.

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

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

Как сделать дешёвый датчик изгиба для arduino своими руками!Рисунок 4: схема для печатной платы

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

Таблица: уровни напряжения в контрольных точках

Точка на рисунке Напряжение  в точке, В
Т0
Т1 5
Т2 Ниже, чем в Т3
Т3 Выше, чем в Т2

Тестирование работоспособности и корректировка параметров

После электрического соединения элементов датчика наклона производится загрузка программы, на устройство через ПК, для чего вам необходимо:

  • Подключить микроконтроллер к компьютеру через USB переходник;
  • Загрузить программу (test.ino) с компьютера на Ардуино УНО;
  • Затем на компьютере откройте программную среду Arduino, в которой отображается исходный код от соответствующих выводов акселерометра;
  • Сбросьте данные и отметьте числовые изменения по всем трем осям (X, Y, Z), которые происходят при наклоне датчика влево, вправо.

Если вас не устраивает положение, в котором светодиод начинает загораться, его можно откорректировать. Для изменения угла наклона, при котором  датчик будет сигнализировать об изменении положения, вам понадобится:

  • Оставаясь в программной среде Arduino, начните наклонять датчик влево, когда угол наклона достигнет той отметки, в которой светодиод должен загораться, отметьте для себя – это будет значение кода «A_max», граница отключения светодиода при возвратном движении датчика будет такой же;
  • Для регулирования угла наклона вправо повторите ту же операцию, наклонив до нужного угла, отметьте для себя цифровое значение – это будет значение кода «A_min», та же величина прекратит горение при возвратном движении к нейтральной позиции датчика;
  • Эти значения нужно изменить в теле программы tiltdetection.ino, для чего запускается Arduino IDE, в строки «A_max» и «A_min» вносятся записанные вами ранее данные (рисунок 5);
    Как сделать дешёвый датчик изгиба для arduino своими руками!Рис. 5. Снимок экрана программирования Arduino Uno
  • После этого сохраните внесенные изменения и заново загрузите откорректированную программу на микроконтроллер.

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

Что нужно для работы программы?

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

Также стоит отметить, что микросхема  ATmega328 в Arduino Uno изначально содержит предварительно установленный механизм загрузки.

Именно он позволяет программировать устройство без каких-либо аппаратных программаторов, а взаимодействие программной среды на компьютере и  микросхеме происходит по протоколу STK500.

Для работы с программным обеспечением микроконтроллера вам понадобиться войти в меню «Инструменты», затем выбрать «Платы» и установить  Arduino Uno (если вы применяете другую модель, установите ее).

После этого через Arduino IDE запрограммируйте плату на логику датчика наклона и можете приступать к эксплуатации готового устройства.

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

Исходный код программы:

  Датчик наклона на базе Arduino (3,4 KB, скачано: 78)

Источник: https://www.asutpp.ru/datchik-naklona-na-baze-arduino-svoimi-rukami.html

Резистор изгиба своими руками

Наверняка те, кто увлекается электроникой и программированием микроконтроллеров слышали о датчике изгиба, который меняет свое сопротивление в зависимости от степени его изгиба. Сегодня я расскажу о том, как можно изготовить такой датчик (резистор) изгиба своими руками.

Идея

Когда мне понадобился такой датчик, то первым делом я зашел и нашел его на Амперке. Но цена, 890 рублей за штуку (за датчик длинной 95мм именно такая цена), меня не устроила и тогда в голову пришла отличная идея создания датчика, который не будет сильно отличаться по принципу действия от покупного, но обойдется мне гораздо дешевле.

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

Например, с помощью 5 таких датчиков, мне не составило особого труда сделать свою «сенсорную перчатку».

Требуемые материалы и их примерная стоимость

Для изготовления такого датчика нам понадобится:

  • Фоторезистор — 3р. (я заказывал на ebay 50шт. за 150р.)
  • Светодиод — 3р.
  • Силиконовая трубка от катетера — 6р. (Продается в в аптеке)
  • Черная изолента/термоусадка — 10р.
  • Токоограничивающий резистор (220 Ом) — 2р.
  • Подтягивающий резистор (10 кОм) — 2р.

Расходные материалы обойдутся вам около 30 рублей. Цены могут немного меняться в зависимости от магазина, в котором Вы будете покупать комплектующие.

Сборка

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

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

Подключая его к тому же Arduino, нужно просто подключить фоторезистор и светодиод между 5В и землей (GND), через резисторы, а показания снимать в месте спайки фоторезистора и подтягивающего резистора.

Плюсы и минусы такого датчика

Плюсы:

  • Низкая стоимость
  • Простая сборка
  • Неплохая линейность показаний датчика
  • Доступность расходных материалов

Минусы:

  • Слабая механическая стойкость (часто требуется выпрямлять трубку)
  • Линейность показаний датчика все-таки не идеальна

Заключение

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

Источник: https://zen.yandex.ru/media/habr/rezistor-izgiba-svoimi-rukami-5da94cfe5ba2b500aef5ba4b

Ссылка на основную публикацию
Adblock
detector