Projemizin amacı: Temizlik yaparken yerleri silmeyi daha kolay hale getirmek, fiziksel yıpranmayı azaltmak, kendimize ayırdığımız zamanı artırmak ve temizliği daha istekli yapmayı sağlamaktır. Aşağıdaki linkten öğrencilerimizin tanıtımını izleyebilirsiniz.
ROBOSİL Tanıtım Linki
Malzemeler
1-Arduino UNO
2- Bluetooth Modülü
3- Tekli Röle Modülü
4- HP Yazıcı Motoru
5- Lipo Pil (Laptop bataryadan aldık)
6- Motor Sürücü Devresi
7- CD
8- Cırt
9- Temizlik Bezi
10- PC Fan
11- 2 Adet Motor
12- 2 Adet Tekerlek
13- Elektrik Kanalı
14- Ayakkabı Kutusu
15- Harddisk Motoru
16- Mesafe Sensörü
Projemiz cep telefonu ile bluetooth üzeriden kontrol edilmektedir. İstenildiği zaman temizlik kısmı çalıştırılmaktadır. Robotumuz iki mod olacak şekilde çalışmaktadır. İlk mod bizim kontrolümüz dahilinde istediğimiz yere götürebildiğimiz ve temizlik kısmını çalıştırabildiğimiz moddur. İkinci mod ise rastgele moddur. Bu modda ise robot rastgele hiçbir yere çarpmadan çalışmakta ve temizlik yapmaktadır. Bu modda çalıştırarak biz kendimize daha fazla zaman yaratmış oluruz. Robot kendisi her yeri gezerek temizleme işlemini yapacaktır.
Projemiz için bir kasa belirlememiz gerekiyordu. Markette gördüğümüz ayakkabı kutusunun bizim çalışmamıza uygun olacağını düşünerek ilk iş olarak ayakkabı kutusunu aldık. Ayakkabı kutusunun içine devrelerimizi, pilimiz gibi her şeyi koyarak dışarıdan çarpmalardan dolayı bozulmaları da önlemiş olduk.
Alt kısımda arka tekerlek ve motorları tutturmak için bir elektrik kanalı kullanmaya karar verdik. Elektrik kanalını motorlara uyacak şekilde maket bıçağı ile kestik.
Daha sonra motorları buraya silikonlayarak klipsledik. Kutuyu matkap ile delerek elektrik kablolarını kutu içerisine aldık.
Ön teker olarak Sarhoş Teker kullanmaya karar verdik. Onu da Matkap yardımıyla delerek vidalarıyla somunladık. Bu şekilde tekerlek kısımlarını tamamlamış olduk.
Daha sonra silme kısmını nasıl yapacağımız konusunda biraz zorlandık fakat sonunda ona da bir çözüm bulduk. Ön tekerlek ve arka tekerlek ortasına silme kısmımızı yapacağımızı kararlaştırdık. Kutu içerisine motorumuzu dik şekilde koyacağız ve mili aşağıdaki diski yani silme bezini çevirecek. Bezin oynamaması ve motorun dönme esnasında sallanması sonucunda motorla bezin arasındaki bağlantının iyi olması gerekiyordu. En zorlandığımız kısım da bu oldu. Buraya harddisk içerisindeki diski döndüren parçayı kullandık. Harddiskin tam zıttı şekilde oldu. Diski döndüren kısmı sabit tuttuk sabit kısmını da temizlik bezimize monte ettik. Bu kısın daha geniş olduğu için üzerine harddisk parçasının vida yerleriyle eşit olacak şekilde CD’nin yüzeyini matkap ile deldik. Daha sonra bu deliklerden CD’yi harddisk parçasına vidaladık. Bu parçayı da ayakkabı kutusuna vidalayarak silikonladık. Daha sonra motorun milini harddisk parçasının göbeğine küçük bir lastik parçası ile sıkıştırarak boşa dönmesini engelledik ve kutu içerine motoru silikonladık. Daha sonra kullanacağımız temizlik bezinin sürekli kirlenecek ve temizlenmesi gerektiği için burayı değiştirilebilir şekilde yapmaya karar verdik. Ayakkabılarda kullanılan cırtlardan aldık ve bunları CD’nin yüzeyine yapıştırdık. Daha sonra ise büyük bulaşık süngeri alarak yüzeyindeki yeşil kısımları kestik. Toz paspası aldık. Toz paspası ve bulaşık bezinin yeşil kısımların CD’nin yüzeyine göre keserek birbirine diktik. Bu şekilde takıp çıkarılabilen bir paspas yapmış olduk.
Sonunda motorumuzun mekanik kısmı bitti dedik ve elektronik ve yazılım işlemlerimize devam ettik. Daha önce yapmış olduğumuz bluetooth kontrollü araba projemizde olduğu gibi Arduino Uno kartımıza motor sürücü kartını ve bu karta arka sağ ve sol motorlarımızı bağladık. Bluetooth modülümüzü arduino kartımıza bağladık. HC-SR04 Mesafe sensörümüzüde kartımıza bağladık. En son olarak Silme motorumuzu direk arduino kartımızdan dolayı çalıştıramadığımız için röle modülü kullandık. Pilimizi de devreye bağladık. Daha sonra kodlamaya geçtik.
DEVRE ŞEMASI
PROGRAM KODLARI
int pwmA = 10; // sag motor
int pwmB = 11; // sol motor
int pwmsol = 100; // hiz sol
int pwmsag = 100; // hiz sag
int in1 = 4; //sag ileri
int in2 = 5; //sag geri
int in3 = 6; //sol ileri
int in4 = 7; //sol geri
int temmotoru = 12; // temizlik motoru pini
int otomod=0; //otomotik mod
char veri;
int triggerPin = 9; //mesafe sensoru tetikleme ucu
int echoPin = 8; //mesafe sensoru geri donus
long sure, uzaklik;
void setup() {
pinMode(pwmA,OUTPUT);
pinMode(pwmB,OUTPUT);
pinMode(in1,OUTPUT);
pinMode(in2,OUTPUT);
pinMode(in3,OUTPUT);
pinMode(in4, OUTPUT);
pinMode(temmotoru,OUTPUT);
pinMode(echoPin, INPUT);
pinMode(triggerPin, OUTPUT);
Serial.begin(9600);
}
void loop() {
while(Serial.available()){
veri = Serial.read();
if (veri=='X')
otomod=1;
if (veri=='x')
otomod=0;
if(otomod==1)
otomatikmod();
else{
switch (veri){
Serial.print(veri);
pwmsol=100;
pwmsag=100;
case 'F': //ileri
{
ileri();
break;
}
case 'I': //ileri sag
{
pwmsol=150;
ileri();
}
case 'R': //sag
{
sag();
break;
}
case 'J': //Geri sag
{
pwmsol=150;
sag();
break;
}
case 'B': //Geri
{
geri();
break;
}
case 'H': //Geri sol
{
pwmsag=150;
geri();
break;
}
case 'L': //sol
{
sol();
break;
}
case 'G': //ileri sol
{
pwmsag=150;
ileri();
break;
}
case 'S': //durma
{
digitalWrite(in1, 0);
digitalWrite(in2, 0);
digitalWrite(in3, 0);
digitalWrite(in4, 0);
break;
}
case 'V': //Temizlik Motoru Acma
{
digitalWrite(temmotoru, 1);
break;
}
case 'v': //Temizlik Motoru Kapatma
{
digitalWrite(temmotoru, 0);
break;
}
case 'X': //otomotik mod calistirma
{
otomod=1;
break;
}
case 'x': //durma
{
otomod=0;
break;
}
}
Serial.println(veri);
}
}
}
void ileri(){
digitalWrite(in1, 1); //sag ileri
digitalWrite(in2, 0); //sag geri
digitalWrite(in3, 1); //sol ileri
digitalWrite(in4, 0); //sol geri
analogWrite(pwmA,pwmsag);
analogWrite(pwmB,pwmsol);
}
void sag(){
digitalWrite(in1, 0);
digitalWrite(in2, 0);
digitalWrite(in3, 1);
digitalWrite(in4, 0);
analogWrite(pwmA,pwmsag);
analogWrite(pwmB,pwmsol);
}
void geri(){
digitalWrite(in1, 0);
digitalWrite(in2, 1);
digitalWrite(in3, 0);
digitalWrite(in4, 1);
analogWrite(pwmA,pwmsag);
analogWrite(pwmB,pwmsol);
}
void sol(){
digitalWrite(in1, 1);
digitalWrite(in2, 0);
digitalWrite(in3, 0);
digitalWrite(in4, 0);
analogWrite(pwmA,pwmsag);
analogWrite(pwmB,pwmsol);
}
void otomatikmod(){
digitalWrite(triggerPin, LOW);
delayMicroseconds(5);
digitalWrite(triggerPin, HIGH);
delayMicroseconds(10);
digitalWrite(triggerPin, LOW);
sure = pulseIn(echoPin, HIGH);
uzaklik = sure / 29.1 / 2;
Serial.println(uzaklik);
if (uzaklik < 25) // Uzaklık 25'den kucuk ise,
{
geri(); // 150 ms geri git
delay(200);
sag(); // 250 ms saga donn
delay(300);
}
else { // degil ise,
ileri(); // ileri git
}
}
Mobil uygulama olarak Google Playden Bluetooth RC Controller uygulamasını kullandık. Hoparlör ikonuna bastığımızda silme çalışmakta ve üçgen-dur ikonuna bastığımızda ise rastgele modu çalışmaktadır.
Devre çizim dosyasını, Arduino dosyasını indirmek için tıklayınız.
Yorumlar
Merhabalar pil olarak 4 adet laptop batarya lipo pil kullandık. Bir laptop bataryasından sökerek sağlam olanlarını kullandık. HP marka kullanılmayan bir yazıcı motorunu ise bir harddiskin diski tutan metal kısmına birleştirdik. Motor döndüğünde harddisk kafası da dönmüş oldu. haddisk kafasınada bir CD yapıştırdık. Bu şekilde temizleme kısmı çalışmış oldu.
RSS beslemesi, bu iletideki yorumlar için