Доброго времени суток любители ардуино! Как то зависая в просторах интернета наткнулся на довольно занимательную статью о том, как сделать руку манипулятор, повторяющею движения руки человека, вдохновлённый простотой и эффектностью самоделки самоделки решил собрать её. Нашёл на Аллиэкспресс датчики изгиба для руки передатчика и немного офигел, одна штука стояла в районе 15-20$, получается что 5 таких датчиков только для одной руки будут стоить 75-100$ и это только на датчики! Через некоторое время узнал, как сделать такие датчики своими руками, оказывается это очень просто и дёшево.
И так для датчика изгиба нам понадобится:
-плата Arduino Uno (покупал тут)
-breadboard
-соединительные провода типа "папа-мама" или "папа-папа"
-сервомотор
-картон
-бумага
-фольга
-карандаш
-источник питания от 6 до 12 вольт (я использую соединённые последовательно 4 батарейки на 1,5 В)
Из инструментов нам понадобится:
-клеевой пистолет
-ножницы
И так первым делом вырезаем из картона две полоски по длине на 2см больше вашего указательного пальца и в ширину около 1 см:
Вырезаем одну такую же полоску из бумаги только чуть по меньше:
Карандашом заштриховываем как можно лучше обе стороны бумажной полоски:
Вырезаем две полоски из фольги, размером меньше бумажной:
Приклеиваем их к картонным полоскам так как показано на фото:
От соединительных проводов "папа-мама" отрезаем выход "мама" и очищаем их концы от изоляции:
Приматываем из скотчем либо припаиваем:
Прикладываем к одной из половинок бумажную полоску, так чтобы она соприкасалась с фольгой, затем накрываем второй половинкой стороной с фольгой, надавливаем и заклеиваем по бокам:
Делаем с помощью термоклея такие вот "змейки" с каждой стороны, они нужны чтобы конструкция была более гибкой
Берём ардуино и подключаем выход 5v к плюсу breadboard, а Gnd к минусу:
К серводвигателю добавляем соединительный провода и подсоединяем его к ардуино следующим образом:
Коричневый провод к Gnd
красный к 5v
оранжевый к 9 пину
К нашему датчику изгиба добавляем два провода типа "папа-папа"
Подсоединяем их к breadboard:
Один из концов датчика подсоединяем к плюсу breadboard через резистор в 22 Килоома (к сожалению я перепутал и подсоединил его в к другому выходу, но на работоспособности это не откликнулось), а другой к минусу:
На ту линию breadboarda на которой находится конец датчика подключённый к плюсу , добавляем ещё один провод и выводи его на выход A0 на Ардуино:
Теперь подключаем Ардуино к компьютеру, запускаем Arduino IDE и загружаем в него следующий скетч:
#include
Servo servo1;
const int flexpin = 0;
void setup()
{
Serial.begin(9600);
servo1.attach(9);
}
void loop()
{
int flexposition;
int servoposition;
flexposition = analogRead(flexpin);
servoposition = map(flexposition, 1018, 1023, 0, 90);
servoposition = constrain(servoposition, 0, 90);
servo1.write(servoposition);
Serial.print("sensor: ");
Serial.print(flexposition);
Serial.print(" servo: ");
Serial.println(servoposition);
delay(1000);
}
Включаем монитор порта к которому подключено Ардуино и загружаем скетч
Теперь наблюдаем за изменениями которые происходят в мониторе порта при изгибание нашего датчика, видим что 1023 это 90 градусов, а 1020 и 1019 это 0, поэтому в моём случае я меняю число 1018 в скетче на 1020, у вас может быть по другому. Теперь 1020 это 0 градусов, а 1023 это 90 градусов. После всех изменений загружаем новый настроенный скетч на плату Ардуино
Ну вот и всё! Наш простейший и главное дешёвый датчик изгиба готов!
Если все сделать правильно то при сгибании датчика сервопривод будет делать поворот на 90 градусов а при разгибании будет возвращаться в исходное положение. Конечно точность данного датчика уступает покупному, но для не особо замороченных проектов подойдёт, к тому же если сделать всё аккуратно и произвести точную настройку то получится почти как покупной. надеюсь данная статья кому нибудь пригодится.
Всем спасибо за внимание!
Становитесь автором сайта, публикуйте собственные статьи, описания самоделок с оплатой за текст. Подробнее здесь.