Merhaba arkadaşlar,
Daha önce,Arduino ile ses kontrollü Ollie benzeri araç çalışmasını sizlerle paylaşmıştık.Bu çalışmaya buradan ulaşabilirsiniz.Bu çalışmamızda ise,aracımızı telefonumuzdan manuel kontrol edeceğiz.Daha önceki çalışmamızda kullanılan malzemeler,devre şeması aynıdır.İsterseniz biz yine hatırlayalım.
Kullanılan Malzemeler
-Arduino Uno R3
-HC05 Bluetooth Modül
-L298N Çift Motor Sürücü Karti
-2 Adet Reduktorlü DC Motor 200rpm
-2 Adet Usb Soket
-2 Adet Anahtar
-BC 237 NPN Transistör
-20 Adet smd rgb led
-2 Adet 18650 Li-Ion Batarya
-Delikli Bakirli Plaket
-2 AdetPololu 90x10mm Tekerlek
Kullanılan Android Programı
-Daha önceki çalışmamızda,AMR_voice Android programını kullanmıştık.Bu çalışmada,yine marketten indirebiliceğiniz
robo remo Android programını kullanacağız.
Devre Şeması
Projenin Vidyosu
Vidoyu önceki çalışmamızda da paylaşmıştık.Bu vidyoda ses ve manuel kontrolü birliktedir.Vidyonun 2,42 saniyesine kadar ses ile kontrol ediliyor.Bu saniyeden sonra manuel kontrolü gerçekleşmektedir.
Projenin Yapım Aşamasından Kesitler
Manuel Kontrol ve Şarj Aşaması
A0 girisimden almis oldugumuz analog degerden batarya yüzdesi an itibariyle görülebilir.Ayrıca resimde gördüğümüz gibi araç üzerinde data ve şarj için 2 tane usb girişi var.Bu sayede hem aracımızı şarj edebiliriz hem de istediğimiz programımızı geliştirip aracımıza yükleyebiliriz.
Aydınlatma
6 adet smd rgb led ile yapilmis modül bu sayede istediginiz her rengi alabilirsiniz.
Yapım Karşılaşılan Zorluklar
Arduino ile manuel kontrollü Ollie araç çalışmasının kodları aşağıda gösterilmektedir.
[php]
int pil;
int led1 = 2;
int led2 = 4;
int led3 = 7;
void setup()
{
pinMode(A0,INPUT);
pinMode(3,OUTPUT);
pinMode(5,OUTPUT);
pinMode(6,OUTPUT);
pinMode(9,OUTPUT);
pinMode(10,OUTPUT);
pinMode(11,OUTPUT);
pinMode(12,OUTPUT);
pinMode(led1, OUTPUT);
pinMode(led2, OUTPUT);
pinMode(led3, OUTPUT);
Serial.begin(9600);
delay(1);
Serial.begin(9600);
}
void loop()
{
int batarya = analogRead(A0);
batarya = map(batarya,620,830,0,100);
Serial.println(batarya);
char c = Serial.read();
if (c ==’2′)
{
analogWrite(5,52);
analogWrite(6,50);
delay(10);
analogWrite(5,64);
analogWrite(6,60);
delay(10);
analogWrite(5,74);
analogWrite(6,70);
delay(10);
analogWrite(5,84);
analogWrite(6,80);
delay(10);
analogWrite(5,93);
analogWrite(6,90);
}
if (c ==’3′)
{
analogWrite(5,220);
analogWrite(6,0);
}
if (c ==’1′)
{
analogWrite(5,0);
analogWrite(6,220);
}
if (c ==’7′)
{
analogWrite(5,94);
analogWrite(6,90);
analogWrite(3,0);
analogWrite(9,0);
delay(10);
analogWrite(3,0);
analogWrite(9,0);
analogWrite(5,104);
analogWrite(6,100);
delay(10);
analogWrite(3,0);
analogWrite(9,0);
analogWrite(5,115);
analogWrite(6,110);
delay(10);
analogWrite(3,0);
analogWrite(9,0);
analogWrite(5,125);
analogWrite(6,120);
delay(10);
analogWrite(3,0);
analogWrite(9,0);
analogWrite(5,135);
analogWrite(6,130);
delay(10);
analogWrite(3,0);
analogWrite(9,0);
analogWrite(5,145);
analogWrite(6,140);
delay(10);
analogWrite(3,0);
analogWrite(9,0);
analogWrite(5,155);
analogWrite(6,150);
delay(10);
analogWrite(3,0);
analogWrite(9,0);
analogWrite(5,165);
analogWrite(6,160);
delay(10);
analogWrite(3,0);
analogWrite(9,0);
analogWrite(5,175);
analogWrite(6,170);
delay(10);
analogWrite(3,0);
analogWrite(9,0);
analogWrite(5,185);
analogWrite(6,180);
delay(10);
analogWrite(3,0);
analogWrite(9,0);
analogWrite(5,195);
analogWrite(6,190);
}
if (c ==’8′) //————//
{
analogWrite(3,0);
analogWrite(9,0);
analogWrite(5,255);
analogWrite(6,0);
delay(10);
analogWrite(3,0);
analogWrite(9,0);
analogWrite(5,0);
analogWrite(6,255);
delay(10);
analogWrite(3,0);
analogWrite(9,0);
analogWrite(5,255);
analogWrite(6,0);
delay(10);
analogWrite(3,0);
analogWrite(9,0);
analogWrite(5,0);
analogWrite(6,255);
delay(10);
analogWrite(3,0);
analogWrite(9,0);
analogWrite(5,255);
analogWrite(6,0);
delay(10); //–//
analogWrite(3,0);
analogWrite(9,0);
analogWrite(5,255);
analogWrite(6,50);
delay(10);
analogWrite(3,0);
analogWrite(9,0);
analogWrite(5,50);
analogWrite(6,255);
delay(10);
analogWrite(3,0);
analogWrite(9,0);
analogWrite(5,255);
analogWrite(6,50);
delay(10);
analogWrite(3,0);
analogWrite(9,0);
analogWrite(5,50);
analogWrite(6,255);
delay(10);
analogWrite(3,0);
analogWrite(9,0);
analogWrite(5,255);
analogWrite(6,50);
delay(10); //———//
analogWrite(3,0);
analogWrite(9,0);
analogWrite(5,255);
analogWrite(6,100);
delay(10);
analogWrite(3,0);
analogWrite(9,0);
analogWrite(5,100);
analogWrite(6,255);
delay(10);
analogWrite(3,0);
analogWrite(9,0);
analogWrite(5,255);
analogWrite(6,100);
delay(10);
analogWrite(3,0);
analogWrite(9,0);
analogWrite(5,100);
analogWrite(6,255);
delay(10);
analogWrite(3,0);
analogWrite(9,0);
analogWrite(5,255);
analogWrite(6,100);
delay(10); //—-//
analogWrite(3,0);
analogWrite(9,0);
analogWrite(5,255);
analogWrite(6,150);
delay(10);
analogWrite(3,0);
analogWrite(9,0);
analogWrite(5,150);
analogWrite(6,255);
delay(10);
analogWrite(3,0);
analogWrite(9,0);
analogWrite(5,255);
analogWrite(6,150);
delay(10);
analogWrite(3,0);
analogWrite(9,0);
analogWrite(5,150);
analogWrite(6,255);
delay(10);
analogWrite(3,0);
analogWrite(9,0);
analogWrite(5,255);
analogWrite(6,150);
delay(10); //———-//
analogWrite(3,0);
analogWrite(9,0);
analogWrite(5,255);
analogWrite(6,200);
delay(10);
analogWrite(3,0);
analogWrite(9,0);
analogWrite(5,200);
analogWrite(6,255);
delay(10);
analogWrite(3,0);
analogWrite(9,0);
analogWrite(5,255);
analogWrite(6,200);
delay(10);
analogWrite(3,0);
analogWrite(9,0);
analogWrite(5,200);
analogWrite(6,255);
delay(10);
analogWrite(3,0);
analogWrite(9,0);
analogWrite(5,255);
analogWrite(6,200);
delay(10);
analogWrite(3,0);
analogWrite(9,0);
analogWrite(5,255);
analogWrite(6,255);
delay(10);
}
if (c ==’9′)
{
analogWrite(3,0);
analogWrite(9,0);
analogWrite(5,225);
analogWrite(6,220);
delay(10);
analogWrite(3,0);
analogWrite(9,0);
analogWrite(5,230);
analogWrite(6,225);
delay(10);
analogWrite(3,0);
analogWrite(9,0);
analogWrite(5,235);
analogWrite(6,230);
delay(10);
analogWrite(3,0);
analogWrite(9,0);
analogWrite(5,245);
analogWrite(6,240);
delay(10);
analogWrite(3,0);
analogWrite(9,0);
analogWrite(5,255);
analogWrite(6,250);
delay(10);
}
if (c ==’5′)
{
analogWrite(3,0);
analogWrite(9,255);
analogWrite(5,255);
analogWrite(6,0);
analogWrite(11,255);
digitalWrite(12,HIGH);
analogWrite(10,255);
}
if (c ==’4′)
{
analogWrite(3,255);
analogWrite(9,0);
analogWrite(5,0);
analogWrite(6,255);
analogWrite(11,255);
digitalWrite(12,LOW);
analogWrite(10,255);
}
if (c ==’0′)
{
analogWrite(5,0);
analogWrite(6,0);
analogWrite(3,0);
analogWrite(9,0);
}
if (c ==’y’)analogWrite(10,255);
if (c ==’m’)analogWrite(11,255);
if (c ==’k’)digitalWrite(12,HIGH);
if (c ==’b’)analogWrite(10,0);
if (c ==’d’)analogWrite(11,0);
if (c ==’f’)digitalWrite(12,LOW);
if (c ==’0′)analogWrite(10,0);
if (c ==’0′)analogWrite(11,0);
if (c ==’0′)analogWrite(12,0);
if (c ==’h’)analogWrite(5,230);
if (c ==’h’)analogWrite(9,230);
if (c ==’g’)analogWrite(3,25);
if (c ==’g’)analogWrite(9,25);
if (c ==’g’)analogWrite(5,0);
if (c ==’g’)analogWrite(6,0);
if (batarya > 67)
digitalWrite(led1, HIGH);
if (batarya < 67)
digitalWrite(led1, LOW);
if (batarya < 67)
digitalWrite(led2, HIGH);
if (batarya > 67)
digitalWrite(led2, LOW);
if (batarya < 34) // else ıcın kullan
digitalWrite(led2, LOW);
if (batarya < 34)
digitalWrite(led3, HIGH);
if (batarya > 34)
digitalWrite(led3, LOW);
if (batarya < 1)
digitalWrite(led3, LOW);
Serial.print("batarya%");
delay(1);
}
[/php]
enes
19 Haziran 2015 at 11:59
Hocam simdi oldu elinize saglik ilginiz icin tesekkur ederim malzemelerin siparisini verdim gelince basliyscagim
Bilal Kaya
19 Haziran 2015 at 12:59
Herhangi bir sorunuz olduğunda,buradan yardımcı olmaya çalışalım.İlgiliniz için teşekkürler.
enes
19 Haziran 2015 at 16:36
Cok sagolun hocam sizin gibi destekleyen insanlarin olmasi cok guzel
Bilal Kaya
19 Haziran 2015 at 17:38
İlginiz için asıl biz teşekkür ederiz.İyi ki varsınız 🙂
murat
20 Haziran 2015 at 13:45
hocam 20 adet smd rgb led demişsin çok güzel ama onu nerede kullanmışız göremiyorum da 🙂 bide ayrıntılı foto koysanız daha iii olurdu ooo smd rgb ledlerin çalışması için bağlantıları fln devre şemasında sadece rgb ledler var smd rgb ledlerin fotosu yok yardımcı olabilirmisniz acaba yapmak istiyorum ama anlamadığım yerler var diye yapmıyorum
enes
15 Temmuz 2015 at 22:30
Hocam l298n baglantisini yapamadim yardimci olursaniz sevinirim
Bilal Kaya
17 Temmuz 2015 at 13:53
Devre şemasında gösterilmiş bağlantılar.Tam olarak öğrenmek istediğin nedir?
enes
20 Temmuz 2015 at 22:20
in girişlerini anlamadım hangisine baglıyacagımı
Salih Çifteoğlu
28 Ağustos 2015 at 19:39
https://www.google.com.tr/search?q=l298n&espv=2&biw=1920&bih=979&tbm=isch&imgil=qsp_L3mW64hG-M%253A%253BwdFTM72LWC52RM%253Bhttps%25253A%25252F%25252Fwww.fabtolab.com%25252FL298N-motor-driver&source=iu&pf=m&fir=qsp_L3mW64hG-M%253A%252CwdFTM72LWC52RM%252C_&usg=__Tr9zXZDOon2xeTZxBf5e5HHmuxs%3D&ved=0CD4QyjdqFQoTCIaiyqTDzMcCFcX_cgodjfYNZQ&ei=U7jgVcasCMX_ywON7beoBg#imgdii=qsp_L3mW64hG-M%3A%3Bqsp_L3mW64hG-M%3A%3BJwMfOx639XzS8M%3A&imgrc=qsp_L3mW64hG-M%3A&usg=__Tr9zXZDOon2xeTZxBf5e5HHmuxs%3D lınkınde lojik ınput var oraya baglıyacaksınız sag motor ıleri gerı sol motor ıle geri mantığığla calısıyor
enes
20 Temmuz 2015 at 22:24
arduino nun 3,5,6,9 çıkışlarını l298n nereye baglıyacagımı anlamadım
Salih Çifteoğlu
28 Ağustos 2015 at 19:46
https://www.google.com.tr/search?q=L298N+Motor+Driver&espv=2&biw=1920&bih=979&tbm=isch&imgil=qsp_L3mW64hG-M%253A%253BwdFTM72LWC52RM%253Bhttps%25253A%25252F%25252Fwww.fabtolab.com%25252FL298N-motor-driver&source=iu&pf=m&fir=qsp_L3mW64hG-M%253A%252CwdFTM72LWC52RM%252C_&usg=__2u1sgonmhTp5jpq3NNQxhJZmj5c%3D&ved=0CEUQyjdqFQoTCJCC2b7EzMcCFSHAcgod3d8O4A&ei=lrngVZDfFKGAywPdv7uADg#imgrc=tKAOtipGElGDAM%3A&usg=__2u1sgonmhTp5jpq3NNQxhJZmj5c%3D bu daha yardımcı olur kartın uzerınde ın 1 ve ın 2 var sol motor ılerı gerı pinleri .. ın 3 ve 4 te sağ motor ılerı gerı pınlerı
yazılımda arduınonun cıkışları 5-6 3-9 pinleri motor surucusune gıdıyor 5-6 ılerı 3-9 geriyi sımgelıyor
Okan Altunbaş
18 Ağustos 2015 at 17:14
Hacı normal oyuncak araba motoru olmaz mı? Tork illa gerekiyor mu? Yoksa gövdemi dönüyor?
Salih Çifteoğlu
28 Ağustos 2015 at 19:50
benım yaptığım uygulamada araba 1 kıloya yakın bıraz bataryaları buyuk tuttum sız daha ufak ve az butcelı bırsey ıstıyorsanız takıbı olabılır fakat tork gucunuz azsa arabanın ılk kalkış anı yavastan hızlıya dogru olacak ılerı gıt gerı gel vb komutlarda istikrarsızlık gosterecektır
Salih Çifteoğlu
28 Ağustos 2015 at 19:54
sadece entegreyi alan arkadaşlar ıcın daha aydınlatıcı olabilir http://www.google.com.tr/imgres?imgurl=http://www.pyroelectro.com/tutorials/l298_stepper/img/schematic.gif&imgrefurl=http://www.pyroelectro.com/tutorials/l298_stepper/schematic.html&h=551&w=807&tbnid=hYPPjb6ghuBzTM:&docid=vC3OhkMAarRaHM&ei=3bvgVYvzBOP_ygPHspnYDQ&tbm=isch&ved=0CEMQMygbMBtqFQoTCMvVyNTGzMcCFeO_cgodR1kG2w
Serdar Karakaş
7 Eylül 2015 at 08:16
Cihazın kendi ekseninde dönmemesini nasıl sağladınız ? Ayrıntılı olarak öğrenebilir miyim? devre şemasında GYRO ‘da göremedim? Gyro kullandıysanız hangi durumda nasıl bir güç ile dengelediniz?
Bilal Kaya
12 Ocak 2016 at 12:29
Devre’de zaten gyro kullanılmadı.Akıllı telefondaki ivmeölçer var saddece.
Ahmet olgun
22 Eylül 2015 at 04:29
Anlamadigim bi yer var şimdi bu kendi ekseninde deliver en alttaki video gibi Siz bunun en alt kısmına yani alt kısım belirlediğiniz yere ne koydunuz ağırlık olarak
EMRE
19 Kasım 2015 at 14:17
DAHA AYRINTILI BİLGİ VE FOTOGRAFLA YARDIMCI OLABİLİRMİSİNİZ.
hasan hüseyin
1 Aralık 2015 at 17:22
mplab a yazılmıs halınıde atabılırmısınız
Bilal Kaya
12 Ocak 2016 at 12:27
Malesef kodlar arduino da yazılmıştır.
Mesut
30 Ocak 2016 at 13:14
Merhaba, ben malzemeleri tamaladım. motor sürücüye 12 voltu nasıl verdiniz. VCC + 12 volt ise bu 12 voltu nasıl elde edicez. devrede piller üzerinden 12 volt veren devre yok
Bilal Kaya
30 Ocak 2016 at 14:30
Kullanılan malzemeler kısmında li-ion batarya olarak belirtilmiş.Dilerseniz http://www.aliexpress.com/w/wholesale-18650-12v-battery-pack.html burayı inceleyebilrisiniz.
Alihan
17 Şubat 2016 at 09:30
Ortası dönüyor , havaya kaldırıyorum tekerlekler dönüyor yere koyuyorum ortası dönüyor bunu nasıl önlerim ?
Bilal Kaya
20 Şubat 2016 at 21:31
Agirlik merkezini asagiya alabilirsiniz.
uğurcan
21 Şubat 2016 at 14:33
SELAMIN ALEYKÜM HOCAM BEN SİZE BİŞEY SORACAKTIM KAYNAK KODLARINI ARDİNYOYA NASIL YÜKLERİM BİRDE MOTOR SÜRÜCÜ DEVRESİNİN AYNISINI İNTERNETTE BULDUM AMA BU DEVRE ŞEMANIZDA BAĞLANTILARIN NASIL YAPACAĞIMI ANLAYAMADIM (KUSURA BAKMAYIN YENİYİM ) TEŞEKKÜRLER.
Bilal Kaya
22 Şubat 2016 at 09:51
Aleykümselam Uğurcan.Arduino başlangıç için aşağıdaki linki incelemeniz önerilir.
http://roboturka.com/2015/07/16/arduino-uno-r3-ile-led-yakma/
Devre şeması bir bread board üzerinde kurulmuş olarak gösterilmiştir.Eğer siz de bir bread boarda sahipseniz şekildeki talimatları yerine getirmelisiniz.
Hüseyin
1 Nisan 2016 at 13:35
ledlere ve l298n sürücü kartına vcc uclarına kaç V veriyoruz.yoksa pillerdeki 7.4v’u mu veriyoruz direkt?
mert
1 Kasım 2016 at 11:55
Merhaba hocam bir sorum olacaktı bu ses komutunu sadece kendi sesimiz ile çalışmasını ayarlaya bilirmiyiz bunun hakkında bilginiz var mı
Djtur
28 Mayıs 2019 at 10:59
Hocam çalışmanız için çok teşekkür ederiz.Benim de şemada takıldığım yer bc237 transistörler kaç tane olacak?Listede 1 tane ama şemada 3 adet.