Pinoo ile Vantilatör
Projenin Amacı: Pinoo kontrol kartını kullanarak mesafe sensörü ve dc motor ile vantilatör sistemi oluşturmak.
Süre: 2 ders
Yaş Grubu: 7 yaş ve üzeri
Pinoo Seti: Araç kiti veya tam set.
Kazanımları:
- Pinoo kontrol kartını kodlamayı öğrenir
- Mesafe sensörünü kodlamayı öğrenir.
- Dc motoru kodlamayı öğrenir.
- Algoritma kurma becerisi gelişir.
- Kodlama becerisi gelişir.
Kullanılması Gereken Malzemeler: Mblock 3 programı, Pinoo kontrol kartı, mesafe sensörü, dc motor, bağlantı kablosu.
Tasarım için Gereken Malzemeler: 2 adet tuvalet kağıdı rulosu,mukavva,renkli karton,makas,silikon tabancası,boya.
Proje Yapılışı:
Mukavvanın üzerine üç adet pervane şekli çiziyoruz ve kesiyoruz.
Pervane parçalarını boyuyoruz ve motor makarasına belirli aralıklar ile yapıştırıyoruz.
Tuvalet kağıdı rulolarını boyuyoruz ve rulolardan birine motoru sabitliyoruz.
Rulonun herhangi bir yerinden motor kablosunu çıkartabileceğimiz bir delik açıyoruz.
Motoru sabitlediğimiz ruloyu sap olarak kullanacağımız ikinci ruloya yatay şekilde yapıştırıyoruz.
Motora makarasını takıyoruz.
Elde ettiğimiz şekli zemin olarak kullanacağımız kartonun tam ortasına, mesafe sensörünü ise zeminin sol tarafına sabitliyoruz.
Bağlantılarımızı yapalım. Pinoo kartımızı vantilatörümüzün sapına sabitliyoruz. Motor kablosunu motor için uygun girişlerden B1/B2 girişine(sol), mesafe sensörümüzü ise 5 numaralı mor/yeşil girişe bağlantı kablosu ile bağlıyoruz.
Bağlantı:
Kodlama kısmı için mblock-3 uygulamasını kullanacağız.
Pinoo kontrol kartımızı bağlantı kablosu yardımıyla bilgisayara bağlayalım ve Mblock3 uygulamasına giriş yapalım. Daha sonra Pinoo kontrol kartımızı bilgisayar ile tanıştıralım. Bunun için öncelikle Bağlan sekmesinden seri port seçeneğine tıklıyoruz. Daha sonra COM3’ü seçiyoruz.(Bilgisayara ve porta göre rakam farklılık gösterebilir.)
Seri port bağlantısını yaptıktan sonra kartlar sekmesinden kullanacağımız kartı seçelim. Biz Arduino’nun Nano modeli ile çalışıyoruz.
Pinoo uzantısını bilgisayarımıza ekleyebilmek için uzantılar sekmesinden uzantıları yönet seçeneğine tıklıyoruz.Açılan pencerede arama motoruna “Pinoo” yazıyoruz ve çıkan sonuca indir dememiz yeterli. Bilgisayarımıza yüklendi.
Tekrar Uzantılar sekmesinden Pinoo seçeneğine tıklıyoruz. Pinoo uzantısı ile kodlarımızı yazacağız.
Kodlama:
Kodlama kısmında uygulamanın başlaması için Olaylar menüsünden Yeşil Bayrağa tıklanınca kodunu alıyoruz.
Mesafe sensörünün okuduğu değeri öğrenebilmek için kukladan yardım alacağız. Bunun için görünüm sekmesinden merhaba de komutunu alıyoruz. Merhaba ifadesinin yerine robotlar sekmesinde mesafe sensörü ile ilgili kod bloğunu alıyoruz.Pin girişini bağlantı yaptığımız Pinoo5 olarak değiştiriyoruz.
Okuma işlemini bir kez değil sürekli olarak yapmasını istediğimiz için kontrol sekmesinden sürekli tekrarla bloğunun içerine tüm kodlarımızı alıyoruz.
Yeşil bayrağa tıklayalım ve sensöre elimizi yaklaştırıp uzaklaştırarak değerlerin değişimini gözlemleyelim.Elimizi vantilatöre yaklaştıralım ve sensörün okuduğu değeri not alalım.Biz burada 20 civarı bir değer okuduğunu referans alacağız.
Eğer mesafe sensörünün okuduğu değer 20'den küçük ise yani vantilatöre yaklaşmış isek motor çalışmaya başlasın, eğer 20'den büyük ise de motor çalışmayı durdursun.Şimdi bu yazdığımızı kod haline getirelim.
Burada kontrol sekmesindeki eğer bloğundan ve işlemler sekmesinden küçük ve büyük karşılaştırma operatörlerinden faydalanacağız.
Sağlanacak şarta göre vantilatör motorunu çalıştırma- durdurma kodlarını tamamlayalım. Robotlar sekmesinden PinooBot Teker:Sağ Yön:İleri Hız:0 kod bloğunu alıyoruz. Her iki durum için de Tekeri Sol olarak, mesafenin 20'den küçük olma durumu için ise Hızı 255 olarak değiştiriyoruz.
Bu işlemin sürekli olarak kontrol edilmesini istediğimiz için tüm bloklarını sürekli tekrarla bloğunun içerisine yerleştiriyoruz.
Vantilatöre yaklaştıktan sonra bir süre çalışmasını sonra durmasını istiyoruz.Bunun için kontrol sekmesinden 1 sn bekle komutunu ve robotlar sekmesinden PinooBot Teker:Sağ Yön:İleri Hız:0 kod bloğunu alıyoruz.1sn ifadesini 3 sn olarak değiştiriyoruz.
Kodlarımızı tamamladıktan sonra yeşil bayrağa tıklayarak projemizin çalışmasını kontrol ediyoruz. Vantilatöre yaklaştığımız zaman pervanesi 3 sn boyunca dönecektir. Vantilatörden uzak olduğumuz zaman ise vantilatör pervanesi duracaktır.
Projemizin çalışmasında herhangi bir sorun yoksa projemizi bilgisayardan bağımsız olarak bir güç kaynağı ile de çalıştırmak için yazmış olduğumuz kodları kartımızın içine yüklememiz gerekiyor.
Bunun için başlangıçta kullandığımız yeşil bayrağa tıkla kodunu ve kuklaya sensör değerini söylettiğimiz kodu çöpe atarak Robotlar menüsünden Pinoo Programı kodunu alıyoruz.
Koda sağ tıklayarak arduino’ya yükle seçeneğine tıklıyoruz.( Kart olarak arduino ile çalışıyoruz.)
Kodların karta yüklenmesini bekliyoruz. Yükleme tamamlandıktan sonra pencereyi kapatıyoruz .
Herhangi bir problem yoksa güç kablomuzu bilgisayardan çıkartıyoruz.Pinoo Kontrol kartımıza 9v pil ve pil şapkası yardımıyla güç veriyoruz. Pil girişinin hemen yanında bulunan açma kapama tuşunu da on konumuna getiriyoruz.
ARDUINO IDE KODLARI:
// motor sürücü pinlerini 5 ve 6. pinlere atadık int motora1 = 5; int motora2 = 6; // trig ve echo pinlerini 9 ve 8. pinleree atadık int echoPin = 8; int trigPin = 9; long sure, mesafe; // sure ve mesafe ölcümü için değişken atandı void setup() { // motorlar çıkış pinidir. pinMode(motora1, OUTPUT); pinMode(motora2, OUTPUT); // trig ve echo pinlerinin girş çıkış pinleri ayarladık pinMode(echoPin, INPUT); pinMode(trigPin, OUTPUT); } void loop() { // mesafe sensorunu aktif hale getirdik digitalWrite(trigPin, LOW); delayMicroseconds(5); digitalWrite(trigPin, HIGH); delayMicroseconds(10); digitalWrite(trigPin, LOW); sure = pulseIn(echoPin, HIGH); mesafe = sure / 29.1 / 2; // mesafeyi ölçtü if (mesafe < 20) { // eger mesafe 20den küçükse ileri(); delay(3000); dur(); } else { // aksi taktirde motorlar dursun dur(); } } void ileri() { // ileri gitme fonksiyonu digitalWrite(motora1, HIGH); digitalWrite(motora2, LOW); } void dur() { // dur fonksiyonu digitalWrite(motora1, LOW); digitalWrite(motora2, LOW); }