Роботизированная мусорка на Arduino открывается движением руки


Контроллер Arduino, УЗ-дальномер и сервомашинка — вот и всё, что понадобится для повторения подобной конструкции.

Скетч для Arduino (robo_trashcan.ino)

/*
Created 2016
by AlexGyver
AlexGyver Home Labs Inc.
*/

#include <Servo.h>   //servo library
Servo servo;
int trigPin = 6;
int echoPin = 7;
long duration, dist, average;
int flag=0;   //button flag
long aver[3];   //array for average

void setup() {
    servo.attach(5);
    pinMode(3,INPUT);  //button on D3
    pinMode(trigPin, OUTPUT);
    pinMode(echoPin, INPUT);
    servo.write(180);         //open cap on power on
}

void measure() {  //here is for range sensor
digitalWrite(trigPin, LOW);
delayMicroseconds(5);
digitalWrite(trigPin, HIGH);
delayMicroseconds(15);
digitalWrite(trigPin, LOW);
pinMode(echoPin, INPUT);
duration = pulseIn(echoPin, HIGH);
dist = (duration/2) / 29.1;    //obtain distance
}

void loop() {

if (digitalRead(3)==1 && flag==0) {     //if button pressed
  servo.write(180);  //open the cap
  delay(1000);       //wait for servo
  flag=1;             //button pressed
}

if (digitalRead(3)==0 && flag==1) { //if button unpressed
  servo.write(3);    //close the cap
  delay(1000);       //wait for servo
  flag=0;
}

if (flag==0) {
  for (int i=0;i<=2;i++) {   //average distance
    measure();
    aver[i]=dist;
    delay(50);              //delay between measurements
  }
  dist=(aver[0]+aver[1]+aver[2])/3;    //average distance by 3 measurements
}

if (dist>10 && dist<30 && flag==0) {    //if hand on the distance 10...30 cm
  servo.write(180);
  delay(10000);       //wait 10 seconds
  servo.write(3);
  delay(1000);
}

if (dist>30 && dist<60 && flag==0) {    //if hand on the distance 30...60 cm
  servo.write(180);
  delay(2500);       //wait 2.5 seconds
  servo.write(3);
  delay(1000);
}

}

далее: Оптимизация работы роботизированной мусорки для работы от батареи

Ссылки
Robotized Trashcan

По теме
Роботизированный мусорный бак и реакция людей
Радиоуправляемый логотип Android-а из бачка для мусора

Arduino
Ардуино что это и зачем?
Arduino, термины, начало работы
Разновидности плат Arduino, а также про клоны, оригиналы и совместимость
КМБ для начинающих ардуинщиков


Добавить комментарий

Arduino

Что такое Arduino?
Зачем мне Arduino?
Начало работы с Arduino
Для начинающих ардуинщиков
Радиодетали (точка входа для начинающих ардуинщиков)
Первые шаги с Arduino

Разделы

  1. Преимуществ нет, за исключением читабельности: тип bool обычно имеет размер 1 байт, как и uint8_t. Думаю, компилятор в обоих случаях…

  2. Добрый день! Я недавно начал изучать программирование под STM32 и ваши уроки просто бесценны! Хотел узнать зачем использовать переменную типа…

3D-печать AI Android Arduino Bluetooth CraftDuino DIY IDE iRobot Kinect LEGO OpenCV Open Source Python Raspberry Pi RoboCraft ROS swarm ИК автоматизация андроид балансировать бионика версия видео военный датчик дрон интерфейс камера кибервесна манипулятор машинное обучение наше нейронная сеть подводный пылесос работа распознавание робот робототехника светодиод сервомашинка собака управление ходить шаг за шагом шаговый двигатель шилд юмор

OpenCV
Робототехника
Будущее за бионическими роботами?
Нейронная сеть - введение