4 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Создание маленького робота пылесоса на ардуино

Собираем робот-пылесос на Arduino


Шаг первый. Создаем поворотную платформу для робота
Для своей первой самоделки автор использовал танк из игры «Танковый бой», из игрушки были выброшены все лишние детали, остался только корпус, а также двигатели и колеса. После этого был установлен Arduino UNO, драйвер двигателей и ультразвуковой дальномер. В качестве источника питания использовались три литиевые батареи по 3.7 В.

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

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


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

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




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

Шаг третий. Делаем пылесос и пылесборник
Благодаря таким материалам как картон и скотч можно быстро собрать практически любой макет. Для работы турбины используется источник питания в 18 Вольт, напрямую от батареи. При такой нагрузке кулеры греются, но работают.









Для изготовления турбины берется кулер от компьютера и затем от него отламываются все лопасти. Далее на кулер крепится турбина от пылесоса, ее нужно приклеить суперклеем. Самое главное здесь — приклеить точно, не должно быть дисбаланса. Без нагрузки и питании 18 Вольт кулер выдает порядка 2600 RPM, что создает отличную тягу. В заключении вся конструкция собирается так, как можно увидеть на фото и после этого робота можно испытывать.

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

Как сделать робот-пылесос своими руками — 2 идеи сборки

В современном ритме жизни не всегда получается поддерживать в доме чистоту. В этом деле поможет современные технологии. Робот-пылесос появился более 15 лет назад. Его типовой внешний вид напоминает крупную шайбу, которая передвигается по комнате по заданному алгоритму или случайным образом (пока на что-нибудь не наткнется) и собирает мусор. Предлагаем вам изучить 2 пошаговые инструкции, позволяющие сделать робот-пылесос своими руками.

Материалы для сборки

Итак, для сборки робота-пылесоса нужно разобраться с его составными частями, пойдем по порядку. Он должен сам передвигаться по комнате, поэтому нужны двигатели, в зависимости от конечной конструкции их должно быть от 2-х до 4-х, а также возможность переключения направления вращения и скорость, значит, нужна плата для управления двигателями. Если вы используете двигатели постоянного тока, то нужна плата с 4-мя транзисторами (H-мост).

Самодельный робот-пылесос должен определять столкновения со стенами и мебелью. Для этого нужно предусмотреть датчики препятствия и концевые выключатели на «бампере». Также нужен сам рабочий орган – пылесос. При этом он должен быть рассчитан на работу от постоянного тока низкого напряжения (например, 12В).

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

Система, которая будет всем этим управлять. Простейший вариант на Arduino. Для такой задачи подойдет любая из плат, по размерам удобно разместить вариант Nano или Pro mini.

Идея №1: робот-пылесос из картона

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

  1. Любая плата Arduino.
  2. Breadboard или простая макетная плата, в принципе можно и без неё, всё просто спаять.
  3. 2 ультразвуковых датчика расстояния (дальномер).
  4. Турбина от пылесоса.
  5. Небольшой двигатель или кулер от компьютера.
  6. Двигатели с редукторами и колеса.
  7. Контроллер для двигателя.
  8. Провода для соединений схемы.
  9. Аккумуляторы и контроллер заряда.

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

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

Для регулировки скорости на пин ENA или ENB подаётся ШИМ сигнал, а для задания направления вращения подают разноименные сигналы на IN1 и IN2 для одного двигателя и IN3, IN4 для другого двигателя. При этом если на пине IN1 у нас логическая единица, а на пине IN2 – логический ноль, двигатель крутится в одну сторону, чтобы сменить направление нужно поменять местами 1 с 0. Его нужно собрать с ардуино по такой схеме (пины можно использовать любые, это вы укажете в скетче).

Схема на ардуино

Далее нужно делать основу из картона и закрепить на ней колеса, должно получиться что-то вроде этого:

Основа из картона

Вот вид с нижней стороны. Два ведущих колеса с угловым редуктором и поворотное колесо:

Теперь нужно собрать схему, которая монтируется на основание. Диаметр основания должен быть около 30 см, чтобы туда влезла и электроника и сам блок пылесоса.

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

Контактные бампера можно сделать и своими руками, для этого нужен тонкий, но жесткий провод, например от витой пары. Для этого формирует контактную площадку на внутренней стороне бампера из фольги, и закрепляем проводник как это показано ниже. При столкновениях робота-пылесоса с мебелью и стенами они будут соприкасаться. Вам остается отрегулировать расстояние от проволоки до фольги, чтобы добиться нужной чувствительности и исключить ложные срабатывания. На фольгу подается 5В, а провод идёт на вход Ардуино, подтянутый к минусу через резистор на несколько кОм.

Читать еще:  Отправить по электронной почте

Самодельный контактный бампер

Устройство питается от аккумуляторов, для питания системы управления можно применить линейные стабилизаторы типа l7805. Чтобы отрегулировать скорость вращения моторов подойдет понижающий преобразователь, например LM2596.

Самое сложное — это сконструировать и собрать пылесос. Вот его приблизительный чертеж:

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

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

Вид турбины изнутри

Вот и вся пошаговая инструкция по сборке робота-пылесоса, сделанного из подручных материалов. Алгоритм его работы такой: робот-пылесос едет вперед, пока не встретит препятствие. После столкновения (или приближения, если вы используете УЗ дальномеры) останавливается, отъезжает назад на заданное расстояние, разворачивается на произвольный угол и едет дальше.

Идея №2: почти заводской робот

Предлагаем вашему вниманию не более сложный проект робота-пылесоса. Вот его внешний вид в собранном состоянии:

Самодельный роботизированный пылесос

Система навигации в нем собрана из комплекта 6-ти ИК-датчиков препятствия. На случай, если не сработал ни один из них, то предусмотрены два контактных датчика (концевых выключателя). Система управления двигателями на таком же драйвере с микросхемой L298N. Для его сборки вам понадобится:

  1. Плата Ардуино, в оригинале использовалась Pro-mini.
  2. USB-TTL переходник для прошивки этой модели ардуино. Если вы будете использовать Arduino Nano, то он не нужен, т.к. в ней есть возможность прошивки по USB.
  3. Драйвер для моторчиков L298N.
  4. Моторчики для колес с редуктором.
  5. 6 ИК-датчиков.
  6. Моторчики для турбины (по возможности помощнее).
  7. Крыльчатка турбины пылесоса.
  8. Моторчики для щеток могут быть любыми.
  9. 2 датчика столкновения.

Всё это собрать по такой схеме:

Схема сборки робота-пылесоса

Для сборки цепи питания робота-пылесоса нужны:

  1. 4 литиевых аккумулятора, подойдут типа 18650.
  2. 2 преобразователя постоянного напряжения (повышающий и понижающий).
  3. Контроллер для заряда и разряда 2-х аккумуляторов (искать в интернете по запросу 2s li-ion controller). В схеме используется последовательное включение двух параллельно включенных банок, в итоге их выходное напряжение получается больше 7,4В, а параллельная цепочка нужна для повышения ёмкости и автономности работы.

Вот схема питания этого робота:

Кроме этого нужен пластик (ПВХ) или любой другой материал для корпуса робота, можно его распечатать на 3D-принтере, если у вас есть такая возможность.

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

В этой статье были рассмотрены 2 конструкции робота-пылесоса, которые можно повторить и собрать своими руками. Сделать автоматическое средство для уборки помещения можно, вложившись в бюджет от 30 до 100 долларов. Самыми дорогими деталями являются аккумуляторы, двигатели и платы ардуино. Если у вас получилось собрать самодельный робот-пылесос или вы придумали другую конструкцию, присылайте примеры в комментарии, будем рады открытому общению!

Напоследок рекомендуем просмотреть видео, на которых наглядно демонстрируется еще несколько идей, как сделать робот-пылесос в домашних условиях:

Простой робот-пылесос DIY на Arduino своими руками

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

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

Материалы и инструменты для изготовления робота:
— плата, контролирующая работу двигателей (Arduino motor shield);
— плата Arduino;
— два моторчика с редукторами (моторчики на 3 вольта и скоростью вращения около 100 об/мин.);
— колеса (можно сделать из алюминиевых банок;
— кулер от компьютерного блока питания (можно как на 5В, так и на 12В);
— источник питания 5В (аккумулятор);
— провода и пластина для установки радиоэлементов;
— чтобы сделать корпус понадобится пластиковый контейнер;
— еще один небольшой контейнер для создания мусоросборника;
— термоклей;
— магниты;
— картон.

Процесс изготовления робота:

Шаг первый. Программная часть робота и скетч:
Сердцем робота является контроллер Arduino. Чтобы его запрограммировать понадобится компьютер и специальное программное обеспечение.


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

/*
Program for controlling a robot with two motors.
The robot turns when motors changes their speed and direction.
Front bumpers on left and right sides detect obstacles.
Ultrasonic sonars can be connected to analog inputs (tested on LV-MaxSonar-EZ1):
— put pins in array sonarPins in following order: left, right, front, others..
Examples:
1. only left and right sonars connected to pins 2 and 3: sonarPins[] = <2,3>
2. left, right and front sonars connected to pins 2, 3 and 5: sonarPins[] = <2,3,5>
3. only front sonar connected to pin 5: sonarPins[] = <-1,-1,5>
4. only left sonar connected to pin 2: sonarPins[] = <2>
5. only right sonar connected to pins 3: sonarPins[] = <-1,3>
6. 5 sonars connected to pins 1,2,3,4,5: sonarPins[] = <1,2,3,4,5>
Motor shield is used to run motors.
*/
const int Baud = 9600; //UART port speed

//Sonar properties
int sonarPins[] = <1, 2>;//Analog Pin Nums to sonar sensor Pin AN
const long MinLeftDistance = 20; //Minimum allowed left distance
const long MinRightDistance = 20; //Minimum allowed right distance
const long MinFrontDistance = 15; //Minimum allowed front distance
const int SamplesAmount = 15;//more samples — smoother measurement and bigger lag
const int SonarDisplayFrequency = 10; //display only one of these lines — not all
int sonarDisplayFrequencyCount = 0;
const long Factor = 2.54 / 2;
long samples[sizeof(sonarPins)][SamplesAmount];
int sampleIndex[sizeof(sonarPins)];

//right side
const int pinRightMotorDirection = 4; //this can be marked on motor shield as «DIR A»
const int pinRightMotorSpeed = 3; //this can be marked on motor shield as «PWM A»
const int pinRightBumper = 2; //where the right bumper is connected

//left side
const int pinLeftMotorDirection = 7; //this can be marked on motor shield as «DIR B»
const int pinLeftMotorSpeed = 6; //this can be marked on motor shield as «PWM B»
const int pinLeftBumper = 8; //where the right bumper is connected

//uncomment next 2 lines if Motor Shield has breaks
//const int pinRightMotorBreak = PUT_BREAK_PIN_HERE; //this can be marked on motor shield as «BREAKE A»
//const int pinLeftMotorBreak = PUT_BREAK_PIN_HERE; //this can be marked on motor shield as «BREAKE B»

Читать еще:  Как закрепить жало отвертки в ручке

//fields
const int turnRightTimeout = 100;
const int turnLeftTimeout = 150;
//set in counter how long a motor is running back: N/10 (in milliseconds)
int countDownWhileMovingToRight;
int countDownWhileMovingToLeft;

//Initialization
void setup() <
Serial.begin(Baud);
initPins();

//uncomment next 4 lines if Motor Shield has breaks
// pinMode(pinLeftMotorBreak, OUTPUT);
// pinMode(pinRightMotorBreak, OUTPUT);
// digitalWrite(pinLeftMotorBreak, LOW); //turn off breaks
// digitalWrite(pinRightMotorBreak, LOW); //turn off breaks

runRightMotorForward();
runLeftMotorForward();
startMotors();
>

//Main loop
void loop() <

delay(10);//repeat every 10 milliseconds
>

//—————————————————
void initPins() <
pinMode(pinRightMotorDirection, OUTPUT);
pinMode(pinRightMotorSpeed, OUTPUT);
pinMode(pinRightBumper, INPUT);
pinMode(pinLeftMotorDirection, OUTPUT);
pinMode(pinLeftMotorSpeed, OUTPUT);
pinMode(pinLeftBumper, INPUT);
for(int i = 0; i
Источник

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

*Заполняя форму вы соглашаетесь на обработку персональных данных

DIY: Несложный робот пылесос под Arduino своими руками. Пошаговая инструкция по изготовлению

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

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

Материалы и компоненты:

Для создания робота-уборщика необходимы:

  • плата Arduino;
  • плата контроля электромоторов Arduino motor shield;
  • два двигателя с коробкой передач (3 вольта, приблизительно 100 оборотов в минуту);
  • два колеса или две алюминиевые банки;
  • турбина-кулер компьютерного охлаждения (5 В или 12 Вольт);
  • аккумулятор для питания 5 вольт;
  • пластина для сбора радиоэлементов и провода;
  • большой круглый пластиковый контейнер — для корпуса;
  • небольшой пластиковый контейнер — для мусоросборника;
  • картон;
  • термоклей;
  • магниты.

Шаг 1: Программный код и скетч:

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

Скетч для работы робота-пылесоса загружается на плату с помощью программы Arduino IDE. Ниже программный код.

/*
Program for controlling a robot with two motors.
The robot turns when motors changes their speed and direction.
Front bumpers on left and right sides detect obstacles.
Ultrasonic sonars can be connected to analog inputs (tested on LV-MaxSonar-EZ1):
— put pins in array sonarPins in following order: left, right, front, others..
Examples:
1. only left and right sonars connected to pins 2 and 3: sonarPins[] = <2,3>
2. left, right and front sonars connected to pins 2, 3 and 5: sonarPins[] = <2,3,5>
3. only front sonar connected to pin 5: sonarPins[] = <-1,-1,5>
4. only left sonar connected to pin 2: sonarPins[] = <2>
5. only right sonar connected to pins 3: sonarPins[] = <-1,3>
6. 5 sonars connected to pins 1,2,3,4,5: sonarPins[] = <1,2,3,4,5>
Motor shield is used to run motors.
*/
const int Baud = 9600; //UART port speed

//Sonar properties
int sonarPins[] = <1, 2>;//Analog Pin Nums to sonar sensor Pin AN
const long MinLeftDistance = 20; //Minimum allowed left distance
const long MinRightDistance = 20; //Minimum allowed right distance
const long MinFrontDistance = 15; //Minimum allowed front distance
const int SamplesAmount = 15;//more samples — smoother measurement and bigger lag
const int SonarDisplayFrequency = 10; //display only one of these lines — not all
int sonarDisplayFrequencyCount = 0;
const long Factor = 2.54 / 2;
long samples[sizeof(sonarPins)][SamplesAmount];
int sampleIndex[sizeof(sonarPins)];

//right side
const int pinRightMotorDirection = 4; //this can be marked on motor shield as «DIR A»
const int pinRightMotorSpeed = 3; //this can be marked on motor shield as «PWM A»
const int pinRightBumper = 2; //where the right bumper is connected

//left side
const int pinLeftMotorDirection = 7; //this can be marked on motor shield as «DIR B»
const int pinLeftMotorSpeed = 6; //this can be marked on motor shield as «PWM B»
const int pinLeftBumper = 8; //where the right bumper is connected

//uncomment next 2 lines if Motor Shield has breaks
//const int pinRightMotorBreak = PUT_BREAK_PIN_HERE; //this can be marked on motor shield as «BREAKE A»
//const int pinLeftMotorBreak = PUT_BREAK_PIN_HERE; //this can be marked on motor shield as «BREAKE B»

//fields
const int turnRightTimeout = 100;
const int turnLeftTimeout = 150;
//set in counter how long a motor is running back: N/10 (in milliseconds)
int countDownWhileMovingToRight;
int countDownWhileMovingToLeft;

//Initialization
void setup() <
Serial.begin(Baud);
initPins();

//uncomment next 4 lines if Motor Shield has breaks
// pinMode(pinLeftMotorBreak, OUTPUT);
// pinMode(pinRightMotorBreak, OUTPUT);
// digitalWrite(pinLeftMotorBreak, LOW); //turn off breaks
// digitalWrite(pinRightMotorBreak, LOW); //turn off breaks

runRightMotorForward();
runLeftMotorForward();
startMotors();
>

//Main loop
void loop() <

delay(10);//repeat every 10 milliseconds
>

//—————————————————
void initPins() <
pinMode(pinRightMotorDirection, OUTPUT);
pinMode(pinRightMotorSpeed, OUTPUT);
pinMode(pinRightBumper, INPUT);
pinMode(pinLeftMotorDirection, OUTPUT);
pinMode(pinLeftMotorSpeed, OUTPUT);
pinMode(pinLeftBumper, INPUT);
for(int i = 0; i MinRightDistance //checks if the minimum allowed right distance is not reached
&& measureDistance(2, ‘F’) > MinFrontDistance)//checks if the minimum allowed front distance is not reached
return;
if(checkCounterIsNotSet(countDownWhileMovingToRight))//if the counter is not yet counting down
runRightMotorBackward();//run the right motor backward
countDownWhileMovingToRight = turnRightTimeout;//set the counter to maximum value to start it counting down
>

void verifyAndSetLeftSide() <
if(checkBumperIsNotPressed(pinLeftBumper) //checks if left bumper has NOT been pressed
&& measureDistance(0, ‘L’) > MinLeftDistance //checks if the minimum allowed left distance is not reached
&& measureDistance(2, ‘F’) > MinFrontDistance)//checks if the minimum allowed front distance is not reached
return;
if(checkCounterIsNotSet(countDownWhileMovingToLeft))//if the counter is not yet counting down
runLeftMotorBackward();//run the right motor backward
countDownWhileMovingToLeft = turnLeftTimeout;//set the counter to maximum value to start it counting down
>

bool checkCounterIsNotSet(int counter) <
return counter = sizeof(sonarPins) — 1 || sonarPins[pinIndex] = SamplesAmount)
sampleIndex[pinIndex] = 0;
samples[pinIndex][sampleIndex[pinIndex]] = value;
return true;
>

long calculateAvarageDistance(int pinIndex) <
long average = 0;
for(int i = 0; i

Шаг 2: Монтирование деталей:

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

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

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

Читать еще:  Чертежи каяка из фанеры 4м длина


Шаг 3: Установка корпуса:

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

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

Создание прототипа робота пылесоса на базе Arduino Uno

  • Цена: $5.80
  • Перейти в магазин

Arduino — это открытая платформа, которая позволяет собирать всевозможные электронные устройства. Arduino будет интересен креативщикам, дизайнерам, программистам …., и желающим собрать собственный гэджет. Устройства могут работать как автономно, так и в связке с компьютером. Всё зависит от идеи.
Платформа состоит из аппаратной и программной частей. Для программирования используется упрощённая версия C++. Разработку можно вести как с использованием бесплатной среды Arduino IDE, так и с помощью произвольного C/C++ инструментария.
Для программирования и общения с компьютером понадобится USB-кабель.

Для постройки прототипа робота — пылесоса заказал плату Arduino Uno. Вместе c Uno заказал: Драйвер двигателей, для управления двигателями, Ик датчики «органы чувств» робота пылесоса, Ну и проводочки, куда без них? Преобразователь DC-DC и аккумуляторы заказывал в других онлайн магазинах.

Составляющие моего устройства:

— Arduino -центральный контроллер
— Драйвер двигателей — устройство, которое преобразовывает управляющие сигналы малой мощности в токи, достаточные для управления моторами
— ИК датчики — датчики препятствий расстояние обнаружения препятствия 3-80см
— ИК датчики — датчики препятствий расстояние обнаружения препятствия 2-20см
— Электродвигатель турбины
— Электродвигатель боковых щеток
— Электродвигатель центральной щетки
— Электродвигатель перемещения
— Аккумуляторы литиевые

Вот, что получилось.
Фотки не все, загружаю, какие остались.

Компоненты устройства:

Вид снизу:

Вид сверху:

Вид сбоку:

Перед первым пуском:





Первый пуск)) без корпуса


#define DriveVector1 2
#define DriveSpeed1 3
#define DriveVector2 4
#define DriveSpeed2 5
#define InSensor1 12
#define InSensor2 11
#define LedLamp 13

int sensorStatus1, sensorStatus2;
int HIGHValue, LOWValue;

void setup()
<
// put your setup code here, to run once:
pinMode(DriveVector1, OUTPUT);
pinMode(DriveVector2, OUTPUT);
pinMode(DriveSpeed1, OUTPUT);
pinMode(DriveSpeed2, OUTPUT);
pinMode(LedLamp, OUTPUT);
pinMode(InSensor1, INPUT);
pinMode(InSensor2, INPUT);
HIGHValue = HIGH div 2;
LOWValue = LOW;
>

sensorStatus1 = digitalRead (InSensor1);
sensorStatus2 = digitalRead (InSensor2);

void BodyForward()
<
digitalWrite(DriveVector1, LOWValue);
digitalWrite(DriveSpeed1, HIGHValue);
digitalWrite(DriveVector2, LOWValue);
digitalWrite(DriveSpeed2, HIGHValue);
>

void BodyBackward()
<
digitalWrite(DriveVector1, HIGHValue);
digitalWrite(DriveSpeed1, LOWValue);
digitalWrite(DriveVector2, HIGHValue);
digitalWrite(DriveSpeed2, LOWValue);
>

void BodyRight()
<
digitalWrite(DriveVector1, HIGHValue);
digitalWrite(DriveSpeed1, LOWValue);
digitalWrite(DriveVector2, LOWValue);
digitalWrite(DriveSpeed2, HIGHValue);
>

void BodyStop()
<
digitalWrite(DriveVector1, 0);
digitalWrite(DriveSpeed1, 0);
digitalWrite(DriveVector2, 0);
digitalWrite(DriveSpeed2, 0);
>

Робот пылесос своими руками. Часть 2

Выдался выходной и пришли некоторые посылочки (прям как совпало). Распаковками мучать не народ нет желания, поэтому к делу. Решил все почти полностью разобрать чтобы удобней было внедрять новые «плюшки» ,а заодно и поведать о более детальном устройстве монстра)))

Снимаем самое сердце — электронику.

Крепится все на уголок для удобства разборки.

Снимаем «подметалки» . Шайбы компенсируют неровности самого мотор-редуктора.

Скидываем АКБ и DC-DC переобразователи. Кстати АКБ закреплял их стяжками к раме. Снизу все банки изолированы.

Вот кстати модель движка виднеется. Ссылки почти на все кину в конце поста.

Вот попутно еще фото реализации крепления колес.

Выемку сделал специально чтоб колесо на оси не проворачивалось.

Теперь снимаем сам пылесос.

Попутно еще фотки самого устройства пылесоса.

Чертеж крыльчатки есть в прошлом посте.

Ну теперь продолжим с самим монстром. Делаем новую площадку под ардуино мега и драйвер двигателей.

И примеряем чтоб не задевало крышку пылесборника.

Крепим «Мегу» к площадке через латунные стоечки. А драйвер просто на болтики чтоб по высоте не мешал будущему второму этажу.

Прикидываем второй этаж для экрана и датчиков (которые кстати все еще не пришли)

Теперь по деталюхам :

Аллюминиевый уголок — стоительный магаз.

Критика (по делу) и идеи по улучшению приветствуются. Надеюсь пост будет полезен кому нибудь. ВСЕМ ДОБРА.

Дубликаты не найдены

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

Продолжение постройки будет по мере появления всего необходимого

Ты я смотрю тоже минусы людям не ставишь)))))

В каждом ардуинщике помирает электронщик 🙂 травление не практикуешь?

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

Тогда мне вас (в смысле ардуинщиков) не понять: плата стоит в 10 раз дороже чипа — это раз. Обвязку атмеге почти делать не надо — два. Каждый контакт который пин — 100% источник глюка в будущем, особенно на подвижной модели — три. Запилить себе платку, впаять несколько транзюков для управления двигателями, сделать выводы под программатор, экран, датчики и что там у тебя еще. хм. так похоже будет на вещь, а не на детскую поделку. (я прошу прощения, я ни в коем случае не учу и не навязываю своего мнения, просто в толк не возьму)

Что мне нравится в ардуинах так это модульность. Захотел что то изменить, заменил только часть конструкции а не всю конструкцию в целом. Так же ремонтопригодность отличная, а чтоб небыло глюков , я слегка приклеиваю пин (точнее их пластиковые части) к разьему горячим клеем, капли достаточно и шлейфы для готовой конструкции спаиваю всегда сам и креплю все провода стяжками. А по ценам китай радует клонами на любой вкус и малую цену: нано примерно 120 рублей с програматором на той же плате. Атмега 8 стоит примерно 55 рублей без платы и обвязки. Получается не сильно и дороже))). Можно самому паять всю конструкцию на одной плате когда сильно ограничено пространство корпуса. А глюки будут 100 процентов если собрать все на бредборде и так оставить в готовой подвижной модели.( Оскорбить чем либо никого не пытался. Все написанное мое чисто субьективное мнение)

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