CraftDuino v2.0
  • - это CraftDuino - наш вариант полностью Arduino-совместимой платы.
  • CraftDuino - настоящий конструктор, для очень быстрого прототипирования и реализации идей.
  • Любая возможность автоматизировать что-то с лёгкостью реализуется с CraftDuino!
Просто добавьте CraftDuino!

Роботизированная мусорка на 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, а также про клоны, оригиналы и совместимость
КМБ для начинающих ардуинщиков
  • 0
  • 31 августа 2016, 10:57
  • admin

Комментарии (0)

RSS свернуть / развернуть

Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.