Bu projenin amacı Android & Arduino ile bluetooth kullanılarak bir step motor nasıl açısal olarak kontrol edilebilir göstermektir. Sistemde kullanılan parçaların listesi:
- Arduino UNO
- HC-06 Bluetooth Modülü
- Step Motor
- Step Motor Sürücü Devresi
- Android Telefon
Kısaca projeyi anlatacak olursak, MIT üniversitesinin yapmış olduğu (appinventor.mit.edu) android telefona uygulama geliştirmek için kullanılan web compiler’ı kullanacağız. Bu sistem çok basit ve hızlı bir şekilde puzzelları birleştirerek program blogları oluşturmamızı sağlıyor. Bu sistem ile yazdığımız andoridi bluetooth ile HC-06 modülüne bağlıyoruz. Arduino’muzu da programladıktan sonra bağlantıları yapıyoruz ve android telefondan girdiğimiz açı değerine göre step motor döndürme işlemini gerçekleştiriyoruz..
Projeyi üç aşamada ele alalım.
- Android programlama
- Arduino programlama
- Devre bağlantıları
Android programlama
http://appinventor.mit.edu/explore/ adresinden “Create Apps” tıklayarak mail adresiniz ile üyelik oluşturun. Yeni proje açın. Sağ üst tarafta Designer & Blocks kısımlarından geçiş yaparak projenin kullanıcı ara yüzünü ve kod kısmını paylaştığım fotoğraflar doğrultusunda doldurun.
Designer
User Interface tarafındaki kontrolleri fotoğrafta gördüğünüz Components’e ekleyin. Her kontrolün özellikleri ile oynayarak fotoğrafta görünen Viewer’ı elde edin.
Blocks
Design kısmında eklediğimiz kontrolleri Blocks kısmının sol tarafında Blocks menüsü altında görebilir ve programlayabilirsiniz. Fotoğrafta görüldüğü gibi program blokları oluşturun. Image Picker kontrolune çember şeklinde bir fotoğraf eklemeyi unutmayın.
*Kontrollerin bağlantı bloklarını yapmakta zorlanırsanız, kontrollerin block kullanımı internette ayrı ayrı mevcuttur. (Bende internetten bakıp hazır bloklar kullanarak yaptım.)
Programın Apk’sını Oluşturma
Sayfanın üstünde bulunan Built butonuna bastığınızda iki seçenek karşınıza çıkar. İlki QR kod oluşturup ekranda gösterir. Telefonunuzdan QR kodu okuttuğunuzda apk dosyasını direk telefonunuza indirecektir. İkinci seçenek ise apk dosyasını direk bilgisayarınıza indirir.
Arduino Programlama
Arduino uno program kodları:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 |
#define pin1 8 #define pin2 9 #define pin3 10 #define pin4 11 #define delaytime 2 void Step_A(){ digitalWrite(pin1, HIGH); digitalWrite(pin2, HIGH); digitalWrite(pin3, LOW); digitalWrite(pin4, LOW); } void Step_B(){ digitalWrite(pin1, LOW); digitalWrite(pin2, HIGH); digitalWrite(pin3, HIGH); digitalWrite(pin4, LOW); } void Step_C(){ digitalWrite(pin1, LOW); digitalWrite(pin2, LOW); digitalWrite(pin3, HIGH); digitalWrite(pin4, HIGH); } void Step_D(){ digitalWrite(pin1, HIGH); digitalWrite(pin2, LOW); digitalWrite(pin3, LOW); digitalWrite(pin4, HIGH); } void step_OFF(){ digitalWrite(pin1, LOW); digitalWrite(pin2, LOW); digitalWrite(pin3, LOW); digitalWrite(pin4, LOW); } void forward(){ Step_A(); delay(delaytime); Step_B(); delay(delaytime); Step_C(); delay(delaytime); Step_D(); delay(delaytime); } void backward(){ Step_C(); delay(delaytime); Step_B(); delay(delaytime); Step_A(); delay(delaytime); Step_D(); delay(delaytime); } char c; String readString; float numberOfSteps = 0; int datoserial = 0; void setup(){ pinMode(pin1, OUTPUT); pinMode(pin2, OUTPUT); pinMode(pin3, OUTPUT); pinMode(pin4, OUTPUT); Serial.begin(9600); } void loop(){ while (Serial.available()){ delay(3); c = Serial.read(); readString += c; } if (readString.length()){ Serial.println(readString.toInt()); datoserial = readString.toInt(); datoserial = datoserial * 1.30; } while(datoserial>numberOfSteps){ backward(); delay(4); numberOfSteps = numberOfSteps + 1; } while(datoserial<numberOfSteps){ forward(); delay(4); numberOfSteps = numberOfSteps - 1; } if (readString == "SET"){ numberOfSteps = 0; datoserial = 0; } readString=""; } |
Devre Bağlantıları
Devre bağlantısı ise en kolayı. Step motor sürücüsünün -5 +12 volt pinlerini arduinonun GND ve 5V pinlerine ve IN1, IN2, IN3, IN4 pinlerini da arduinonun 8, 9, 10, 11 pinlerine bağlayın. HC-06 entegresinin de GND, VCC pinlerini arduinonun GND, 5V pinlerine ve RXD pinini arduinonun TX pinine, TXD pinini ise arduinonun RX pinine bağlayın. RX ve TX’lerin ters bağlandığını unutmayınız.
Proje artık hazır. Telefonunuzdan bluetooth açıp HC-06 ile eşleştirin. Şifresi 1234 ve ya 0000 olacaktır. Sonra yazdığınız uygulamayı açın ve ordanda HC-06 yı seçiniz. Bağlantı gerçekleşti yazısını gördükten sonra çemberi çevirdiğinizde step motor da çevirdiğiniz açı kadar dönecektir.
Proje videosu:
image sprite1 deki görseli nasıl yaptın ?