İçindekiler:

BİTKİ ROBOTU: 10 Adım
BİTKİ ROBOTU: 10 Adım

Video: BİTKİ ROBOTU: 10 Adım

Video: BİTKİ ROBOTU: 10 Adım
Video: Gördüğünüzde Kaçmanız Gereken En Tehlikeli 10 BÖCEK ►2 2024, Temmuz
Anonim
Image
Image
BİTKİ ROBOTU
BİTKİ ROBOTU

Herkes evde bitki beslemekten hoşlanır, ancak bazen yoğun hayatlarımızda onlara iyi bakmaya zaman bulamıyoruz. Bu problemden bir fikir bulduk: Neden bizim için onunla ilgilenecek bir robot yapmıyoruz?

Bu proje kendi başının çaresine bakan bir bitki-robottan oluşuyor. Bitki robota entegre edilmiştir ve engellerden kaçınırken kendini sulayabilecek ve ışık bulabilecektir. Bu, robotta ve tesiste birkaç sensör kullanılarak mümkün olmuştur. Bu Eğitilebilirlik, bir bitki robotu oluşturma sürecinde size rehberlik etmeyi amaçlar, böylece her gün bitkilerinizle ilgili endişelenmenize gerek kalmaz!

Bu proje Bruface Mekatronik'in bir parçasıdır ve aşağıdakiler tarafından gerçekleştirilmiştir:

Mercedes Arevalo Suarez

Daniel Blanquez

Baudouin Cornelis

Kaat Leemans

Marcos Martínez Jiménez

fesleğen

(Grup 4)

Adım 1: ALIŞVERİŞ LİSTESİ

ALIŞVERİŞ LİSTESİ
ALIŞVERİŞ LİSTESİ
ALIŞVERİŞ LİSTESİ
ALIŞVERİŞ LİSTESİ
ALIŞVERİŞ LİSTESİ
ALIŞVERİŞ LİSTESİ

Bu robotu yapmak için ihtiyaç duyacağınız her ürünün bir listesi. Altı çizili her parça için bir bağlantı mevcuttur:

3D baskılı Motorlar X1'i destekler (3D olarak kopyalama)

3D baskılı Tekerlekler + tekerlek-motor bağlantısı X2 (3D olarak kopyalama)

AA Nimh piller X8

Zımpara kağıdı rulosu X1

Arduino Mega X1

Bilyalı tekerlek X1

Pil tutucu X2

X1 testleri için breadboard

X1 lehimlemek için breadboard

DC motorlar (enkoderli) X2

Menteşeler X2

Higrometre X1

Işığa bağlı dirençler X3

Erkek-erkek ve erkek-dişi kazaklar

Motor kalkanı X1

Plant X1 (bu size kalmış)

Bitki saksısı X1

Tesis desteği X1 (3D baskılı)

Plastik tüp X1

Farklı değerlerdeki dirençler

Karalama kağıdı X1

Vidalar

Keskin sensörler X3 (GP2Y0A21YK0F 10-80 cm)

X1'i değiştir

Su pompası X1

Su deposu tankı (küçük Tupperware) X1

teller

Lütfen bu seçeneklerin zaman ve bütçe kısıtlamalarının (3 ay ve 200€) bir sonucu olduğunu unutmayın. Diğer seçimler kendi takdirinize bağlı olarak yapılabilir.

FARKLI SEÇENEKLERİN AÇIKLAMASI

Arduino Uno üzerinden Arduino Mega: Öncelikle neden Arduino kullandığımızı da açıklamamız gerekiyor. Arduino, kullanıcıların etkileşimli elektronik nesneler oluşturmasını sağlayan açık kaynaklı bir elektronik prototipleme platformudur. Hem uzmanlar hem de acemiler arasında çok popülerdir ve bu, internette bu konuda birçok bilgi bulmaya katkıda bulunur. Bu, projenizle ilgili bir probleminiz olduğunda işe yarayabilir. Arduino Mega'yı Uno yerine daha fazla pimi olduğu için seçtik. Aslında, kullandığımız sensör sayısı için bir Uno yeterli pin sunmadı. Mega ayrıca daha güçlüdür ve WIFI modülü gibi bazı iyileştirmeler eklersek yardımcı olabilir.

Nimh piller: İlk fikir, birçok robotik projede olduğu gibi LiPo pilleri kullanmaktı. LiPo iyi bir deşarj oranına sahiptir ve kolayca şarj edilebilir. Ancak kısa sürede LiPo ve şarj cihazının çok pahalı olduğunu fark ettik. Nimh'in bulunduğu bu projeye uygun tek diğer piller. Gerçekten de ucuz, şarj edilebilir ve hafiftirler. Motora güç sağlamak için 9,6V (boşaltılmış) ila 12V (tam şarjlı) arasında bir besleme voltajı elde etmek için 8 tanesine ihtiyacımız olacak.

Enkoderli DC motorlar: Bu aktüatörün temel amacını göz önünde bulundurarak, tekerleklere dönme enerjisi sağlamak, dönüş açısı sınırlaması olan ve konumun tanımlanması gereken daha özel görevler için tasarlanmış Servo Motorlar yerine iki DC Motor seçtik. doğru. Kodlayıcılara sahip olma gerçeği, gerektiğinde daha yüksek hassasiyete sahip olma olasılığını da ekler. Sonunda kodlayıcıları kullanmadığımızı unutmayın, çünkü motorların oldukça benzer olduğunu fark ettik ve robotun tam olarak düz bir çizgi izlemesine ihtiyacımız yoktu.

Piyasada çok fazla DC motor var ve bütçemize ve robotumuza uygun olanı arıyorduk. Bu kısıtlamaları karşılamak için iki önemli parametre motoru seçmemize yardımcı oldu: robotu hareket ettirmek için gereken tork ve robotun hızı (gerekli rpm'yi bulmak için).

1) rpm'yi hesaplayın

Bu robotun ses bariyerini aşması gerekmeyecek. Işığı takip etmek veya bir evde birini takip etmek için 1 m/s veya 3,6 km/s hız makul görünüyor. Bunu rpm'ye çevirmek için tekerleklerin çapını kullanıyoruz: 9cm. Devir şu şekilde verilir: rpm = (60*hız(m/s))/(2*pi*r) = (60*1)/(2*pi*0.045) = 212 rpm.

2) Gerekli maksimum torku hesaplayın

Bu robot düz bir ortamda gelişeceğinden, gereken maksimum tork robotu hareket ettirmek için gereken torktur. Robotun bitki ve her bileşeni ile ağırlığının 3 kilo civarında olduğunu ve tekerlekler ile zemin arasındaki sürtünme kuvvetlerini kullanarak torku kolayca bulabiliriz. Zemin ile tekerlekler arasındaki sürtünme katsayısının 1 olduğu göz önüne alındığında: Sürtünme kuvvetleri (Fr)= sürtünme katsayısı. * N (burada N robotun ağırlığıdır) bu bize Fr = 1 * 3 * 10 = 30 N verir. Her motor için tork şu şekilde bulunabilir: T = (Fr * r)/2 burada r tekerleklerin yarıçapı yani T = (30*0.045)/2 = 0.675 Nm = 6.88 kg cm.

Seçtiğimiz motorun özellikleri şunlardır: 6V 175 rpm'de ve 4 kg cm 12V 350 rpm'de ve 8 kg cm. Lineer enterpolasyon yaparak 9.6 ile 12V arasında güç verileceğini bilerek, yukarıdaki kısıtlamaların karşılanacağı açıkça görülmektedir.

Işık sensörleri: Işığa bağlı dirençleri (LDR) seçtik çünkü dirençleri ışıkla hızla değişiyor ve LDR'deki voltaj, LDR'yi içeren bir voltaj bölücüye sabit bir voltaj uygulanarak kolayca ölçülebilir.

Keskin sensörler: Engellerden kaçınmak için kullanılırlar. Keskin mesafe sensörleri ucuzdur ve kullanımı kolaydır, bu da onları nesne algılama ve menzil için popüler bir seçim haline getirir. Genellikle sonar mesafe buluculardan daha yüksek güncelleme hızlarına ve daha kısa maksimum algılama aralıklarına sahiptirler. Piyasada farklı çalışma aralıklarına sahip birçok farklı model mevcuttur. Bu projede engelleri algılamak için kullanıldığı için 10-80 cm çalışma aralığına sahip olanı seçtik.

Su pompası: Su pompası, her ikisi için de aynı beslemeyi kullanmak için motorların voltaj aralığıyla uyumlu, basit bir hafif ve çok güçlü olmayan bir pompadır. Bitkiyi suyla beslemek için başka bir çözüm de robottan ayrılmış bir su tabanına sahip olmaktı ancak robotta bir su tabanı olması çok daha basit.

Higrometre: Bir higrometre, toprağa konacak bir nem sensörüdür. Robotun tencerenin ne zaman kuru olduğunu bilmesi gerektiğinden, tencereye su göndermek gereklidir.

2. Adım: MEKANİK TASARIM

MEKANİK TASARIM
MEKANİK TASARIM
MEKANİK TASARIM
MEKANİK TASARIM
MEKANİK TASARIM
MEKANİK TASARIM
MEKANİK TASARIM
MEKANİK TASARIM

Temel olarak robotun tasarımı, alt tarafında üç tekerlekli ve üst tarafında açılan bir kapak bulunan dikdörtgen bir kutudan oluşacaktır. Bitki su deposu ile üstüne yerleştirilecektir. Bitki saksısı, robotun üst tahtasına vidalanan saksı sabitlemesine yerleştirilir. Su deposu, robotun üst tahtasına çizilmiş küçük bir Tupperware'dir ve su pompası da su deposunun altına çizilmiştir, böylece Tupperware'i suyla yeniden doldururken her şey kolayca çıkarılabilir. Bitki saksısına giren su tüpü ve kutuya giren pompanın beslenmesi nedeniyle haznenin kapağında küçük bir delik açılmıştır. Böylece kutunun üst tahtasında bir delik açılır ve higrometrenin kabloları da bu delikten geçer.

İlk olarak, robotun çekici bir tasarıma sahip olmasını istedik, bu yüzden elektronik parçayı bir kutunun içine, bitkinin ve suyun hemen dışında bırakarak saklamaya karar verdik. Bu önemlidir çünkü bitkiler evin dekorasyonunun bir parçasıdır ve görsel olarak mekanı etkilememelidir. Kutunun içindeki bileşenlere üst taraftaki bir kapaktan kolayca erişilebilir olacak ve yan kapaklarda gerekli delikler olacak, böylece örneğin robotu açmak veya Arduino'yu istersek bir dizüstü bilgisayara bağlamak kolay olacaktır. tekrar programlamak için

Kutudaki bileşenler: Arduino, motor kontrolörü, motorlar, LDR, kazık tutucular, devre tahtası ve menteşelerdir. Arduino, altının zarar görmemesi için küçük sütunlar üzerine monte edilmiştir ve motor kontrolörü Arduino'nun üstüne monte edilmiştir. Motorlar, motor sabitlemelerine vidalanır ve motor sabitlemeleri daha sonra kutunun alt tahtasına vidalanır. LDR, küçük bir breadboard parçasına lehimlenmiştir. Robotun yan yüzlerine vidalamak için bu breadboard'a mini ahşap kalaslar yapıştırılmıştır. Önde birer LDR, bir sol tarafta ve bir sağ tarafta birer LDR var, böylece robot en yüksek miktarda ışıkla yönü bilebiliyor. Kazık tutucular, kazıkların kolayca çıkarılması ve değiştirilmesi veya yeniden doldurulması için kutunun alt yüzüne çizilir. Daha sonra devre tahtası, onu desteklemek için devre tahtasının köşesi şeklindeki deliklere sahip küçük üçgen şekilli sütunlarla alt tahtaya vidalanır. Son olarak menteşeler arka yüze ve üst yüze vidalanır.

Ön yüzde, engelleri olabildiğince iyi tespit etmek ve önlemek için üç keskin nişancı doğrudan vidalanacaktır.

Fiziksel tasarım önemli olsa da teknik kısmı unutamayız, bir robot yapıyoruz ve pratik olmalı ve mümkün olduğunca alanı optimize etmeliyiz. Bu, dikdörtgen bir şekle gitmenin nedenidir, tüm bileşenleri düzenlemenin en iyi yolu buydu.

Son olarak, hareket için cihazın üç tekerleği olacak: arkada iki standart motorlu ve önde bir bilyeli tekerlek. Üç zamanlı sürüş, konfigürasyon, ön direksiyon ve arka sürüşte görüntülenirler.

Adım 3: PARÇA ÜRETİM

ÜRETİM PARÇALARI
ÜRETİM PARÇALARI
ÜRETİM PARÇALARI
ÜRETİM PARÇALARI
ÜRETİM PARÇALARI
ÜRETİM PARÇALARI

Robotun fiziksel görünümü ilginize göre değiştirilebilir. Kendinizinkini tasarlarken iyi bir topraklama olarak işe yarayabilecek teknik çizimler sağlanmıştır.

Lazerle kesilmiş parçalar:

Robotun kasasını oluşturan altı parçanın tamamı lazerle kesilmiştir. Bunun için kullanılan malzeme geri dönüştürülmüş ahşaptır. Bu kutu biraz daha pahalı olan pleksiglastan da yapılabilir.

3D baskılı parçalar:

Robotun arkasına yerleştirilen iki standart tekerlek PLA'da 3D olarak basılmıştır. Bunun nedeni, tüm ihtiyaçları (DC motorlara uygunluğu, boyutu, ağırlığı…) karşılayan jantları bulmanın tek yolu onları kendimiz tasarlamaktı. Motor sabitlemesi de bütçe nedenleriyle 3D olarak basıldı. Daha sonra bitki saksı desteği, Arduino'yu destekleyen sütunlar ve breadboard'u destekleyen köşeler de 3D olarak basıldı çünkü robotumuza özel bir şekil uydurmaya ihtiyacımız vardı.

4. Adım: ELEKTRONİK

ELEKTRONİK
ELEKTRONİK
ELEKTRONİK
ELEKTRONİK
ELEKTRONİK
ELEKTRONİK

Keskin sensörler: Keskin sensörlerin üç pimi vardır. Bunlardan ikisi beslenme içindir (Vcc ve Ground) ve sonuncusu ölçülen sinyaldir (Vo). Beslenme için 4.5 ile 5.5 V arasında olabilen pozitif voltajımız var, bu yüzden Arduino'dan 5V kullanacağız. Vo, Arduino'nun analog pinlerinden birine bağlanacaktır.

Işık sensörleri: Işık sensörlerinin çalışabilmesi için küçük bir devreye ihtiyacı vardır. LDR, bir voltaj bölücü oluşturmak için 900 kOhm'luk bir dirençle seri olarak yerleştirilir. Toprak, LDR'ye bağlı olmayan direncin pinine bağlanır ve Arduino'nun 5V'si, dirence bağlı olmayan LDR'nin pinine bağlanır. Direncin pini ve birbirine bağlı LDR, bu voltajı ölçmek için Arduino'nun analog pinine bağlanmıştır. Bu voltaj, tam ışığa karşılık gelen 5V ve karanlığa karşılık gelen sıfıra yakın olmak üzere 0 ile 5V arasında değişecektir. Ardından tüm devre, robotun yan tahtalarına sığabilecek küçük bir devre tahtası parçası üzerine lehimlenecektir.

Piller: Piller, her biri 1,2 ile 1,5 V arasında, yani 4,8 ile 6V arasında 4 pilden oluşur. İki kazık tutucuyu seri bağlayarak 9.6 ile 12 V arasında bir değer elde ederiz.

Su pompası: Su pompası, Arduino'nun beslenmesiyle aynı tipte bir bağlantıya (güç jakı) sahiptir. İlk adım, kablonun toprak ve kablonun pozitif voltaj için olması için bağlantıyı kesmek ve kabloyu soymaktır. Pompayı kontrol etmek istediğimiz için anahtar olarak kullanılan akım kontrollü bir transistör ile seri bağlayacağız. Daha sonra geri akımları önlemek için pompaya paralel bir diyot konur. Transistörün alt bacağı Arduino/akülerin ortak topraklamasına, ortadaki Arduino'nun dijital pinine 1kOhm'luk bir dirençle seri bağlanarak Arduino'nun voltajını akıma ve üst bacağı da siyah kabloya bağlanır. pompa. Daha sonra pompanın kırmızı kablosu akülerin pozitif voltajına bağlanır.

Motorlar ve Kalkan: Kalkan lehimli olmalıdır, lehimsiz olarak sevk edilir. Bu yapıldıktan sonra, kalkanın tüm başlıklarını Arduino'nun pinlerine kırparak Arduino'ya yerleştirilir. Kalkan pillerle çalıştırılacak ve daha sonra bir jumper açıksa (şekilde turuncu pimler) Arduino'ya güç verecektir. Arduino'ya kalkandan başka bir yolla güç verildiğinde jumper'ı takmamaya dikkat edin, çünkü Arduino daha sonra kalkanı çalıştırır ve bağlantıyı yakabilir.

Breadboard: Tüm bileşenler artık breadboard üzerinde lehimlenecektir. Bir kazık tutucunun, Arduino'nun, motor kontrolörünün ve tüm sensörlerin zemini aynı sıraya lehimlenecektir (breadboard satırlarımızda aynı potansiyele sahiptir). Daha sonra ikinci hav tutucunun siyah kablosu, zemini zaten lehimlenmiş olan birinci hav tutucunun kırmızısı ile aynı sırada lehimlenecektir. Ardından, serideki ikisine karşılık gelen ikinci hav tutucunun kırmızı kablosuyla aynı sırada bir kablo lehimlenecektir. Bu kablo, anahtarın bir ucuna bağlanacak ve diğer ucu, devre tahtasına serbest bir sıra üzerinde lehimlenmiş bir tel ile bağlanacaktır. Pompanın kırmızı kablosu ve motor kontrol ünitesinin beslenmesi bu sıraya lehimlenecektir (anahtar şekilde gösterilmemiştir). Daha sonra Arduino'nun 5V'u başka bir sıraya lehimlenecek ve her sensörün besleme voltajı aynı sıraya lehimlenecektir. Mümkün olduğunda devre tahtasına bir jumper ve bileşen üzerine bir jumper lehimlemeye çalışın, böylece bunları kolayca ayırabilirsiniz ve elektrikli bileşenlerin montajı daha kolay olacaktır.

Adım 5: PROGRAMLAMA

PROGRAMLAMA
PROGRAMLAMA

Program akış şeması:

Program, durum değişkenleri kavramı kullanılarak oldukça basit tutulmuştur. Akış şemasında da görebileceğiniz gibi, bu durumlar aynı zamanda bir öncelik kavramını da tetikler. Robot, koşulları şu sırayla doğrulayacaktır:

1) Durum 2'de: Bitki nem_düzeyi işleviyle yeterli suya sahip mi? Higrometre ile ölçülen nem seviyesi 500'ün altındaysa, nem seviyesi 500'ün üzerine çıkana kadar pompa çalıştırılır. Tesis yeterli su aldığında robot durum 3'e geçer.

2) Durum 3'te: En çok ışığın olduğu yönü bulun. Bu durumda bitki yeterli suya sahiptir ve engellerden kaçınarak yönü en fazla ışıkla takip etmesi gerekir. light_direction işlevi, en fazla ışığı alan üç ışık sensörünün yönünü verir. Robot daha sonra, Follow_light işleviyle bu yönü takip etmek için motorları çalıştıracaktır. Işık seviyesi belirli bir eşiğin (yeter_ışık) üzerindeyse, bu konumda yeterli olduğu için (stop_motors) robot ışığı takip etmek için durur. Işığı takip ederken 15 cm'nin altındaki engellerden kaçınmak için, engelin yönünü döndürmek için bir fonksiyon engeli uygulanmıştır. Engellerden düzgün bir şekilde kaçınmak için kaçınma_obstacle işlevi uygulanmıştır. Bu fonksiyon, engelin nerede olduğunu bilerek motoru çalıştırır.

Adım 6: MONTAJ

TOPLANTI
TOPLANTI
TOPLANTI
TOPLANTI
TOPLANTI
TOPLANTI

Bu robotun montajı aslında oldukça kolaydır. Bileşenlerin çoğu, yerlerini korumalarını sağlamak için kutuya vidalanmıştır. Daha sonra kazık tutucu, su deposu ve pompa çizilir.

7. Adım: DENEYLER

Genellikle, bir robot inşa ederken işler düzgün gitmez. Mükemmel sonucu elde etmek için aşağıdaki değişikliklerle birlikte birçok teste ihtiyaç vardır. İşte bitki robotunun sürecinin bir sergisi!

İlk adım, robotu motorlar, Arduino, motor kontrolörü ve ışık sensörleri ile prototipleme devre tahtası ile monte etmekti. Robot sadece en fazla ışığı ölçtüğü yöne gidiyor. Yeterince ışığı varsa robotu durdurmak için bir eşik belirlendi. Robot yerde kayarken, bir lastiği simüle etmek için tekerleklere aşındırıcı kağıt ekledik.

Daha sonra engellerden kaçınmaya çalışmak için yapıya keskin sensörler eklendi. Başlangıçta iki sensör ön yüze yerleştirildi, ancak keskin sensörlerin çok sınırlı bir algılama açısına sahip olması nedeniyle ortaya üçüncü bir sensör eklendi. Son olarak, robotun uçlarında soldaki veya sağdaki engelleri algılayan iki sensör ve önünde bir engel olup olmadığını algılamak için ortada bir sensör var. Keskin üzerindeki voltaj robota 15 cm mesafeye karşılık gelen belirli bir değerin üzerine çıktığında engeller algılanır. Engel bir tarafta olduğunda robot bundan kaçınır ve ortada bir engel olduğunda robot durur. Lütfen keskin uçların altındaki engellerin tespit edilemediğini, bu nedenle engellerin kaçınılması için belirli bir yüksekliğe sahip olması gerektiğini unutmayın.

Bundan sonra pompa ve higrometre test edildi. Pompa, higrometrenin voltajı kuru bir kaba karşılık gelen belirli bir değerin altında olduğu sürece su gönderiyor. Bu değer kuru ve nemli saksı bitkileri ile denenerek deneysel olarak ölçülmüş ve belirlenmiştir.

Sonunda her şey birlikte test edildi. Bitki önce yeterli su olup olmadığını kontrol eder ve ardından engellerden kaçınarak ışığı takip etmeye başlar.

Adım 8: SON TEST

İşte robotun nihayet nasıl çalıştığına dair videolar. Umarım tadını çıkarırsın!

Adım 9: BU PROJE İLE NE ÖĞRENDİK?

Çok şey öğrendiğimiz için bu projenin genel geri bildirimi harika olsa da, teslim tarihleri nedeniyle onu oluştururken oldukça stresliydik.

Karşılaşılan sorunlar

Bizim durumumuzda süreç boyunca birkaç sorun yaşadık. Bazılarını çözmek kolaydı, örneğin bileşenlerin teslimatı geciktiğinde, onları satın alabilmek için şehirdeki dükkanları aradık. Diğerleri biraz daha düşünmeyi gerektirir.

Ne yazık ki, her sorun çözülmedi. İlk fikrimiz, evcil hayvanların ve bitkilerin özelliklerini bir araya getirerek her birinden en iyi şekilde yararlanmaktı. Yapabileceğimiz bitkiler için bu robotla evlerimizi süsleyen bir bitkiye sahip olacağız ve onunla ilgilenmemize gerek kalmayacak. Ancak evcil hayvanlar için yaptıkları şirketi simüle etmenin bir yolunu bulamadık. İnsanları takip etmesini sağlamak için farklı yollar düşündük ve bir tanesini uygulamaya başladık ama bitirmek için zamanımız yoktu.

Daha fazla iyileştirme

İstediğimiz her şeyi elde etmeyi çok isterdik, ancak bu projeyle öğrenmek inanılmazdı. Belki daha fazla zamanla daha da iyi bir robot elde edebiliriz. Burada robotumuzu geliştirmek için bazılarınızın denemek isteyeceği bazı fikirler öneriyoruz:

- Robotun ne zaman şarj edilmesi gerektiğini kullanıcıya bildiren farklı renklerde (kırmızı, yeşil,…) ledlerin eklenmesi. Bu voltajı Arduino ile ölçmek için batarya tam şarjlıyken maksimum 5V voltaja sahip voltaj bölücü ile batarya ölçümü yapılabilir. Ardından ilgili led yanar.

- Su haznesinin ne zaman doldurulması gerektiğini kullanıcıya bildiren bir su sensörü eklenmesi (su yüksekliği sensörü).

- Robotun kullanıcıya mesaj gönderebilmesi için bir arayüz oluşturma.

Ve açıkçası, insanları takip etme hedefini de unutamayız. Evcil hayvanlar insanların en çok sevdiği şeylerden biridir ve birileri robotun bu davranışı simüle etmesini başarabilirse çok güzel olur. Bunu kolaylaştırmak için burada elimizdeki her şeyi sağlayacağız.

Adım 10: Robotun İnsanları Takip Etmesini Nasıl Sağlarsınız?

Image
Image
Robotun İnsanları Takip Etmesini Nasıl Sağlarsınız?
Robotun İnsanları Takip Etmesini Nasıl Sağlarsınız?
Robotun İnsanları Takip Etmesini Nasıl Sağlarsınız?
Robotun İnsanları Takip Etmesini Nasıl Sağlarsınız?

Bunu yapmanın en iyi yolunun üç ultrasonik sensör, bir verici ve iki alıcı kullanmak olacağını anladık.

verici

Verici için %50 görev döngüsüne sahip olmak istiyoruz. Bunun için 555 timer kullanmanız gerekiyor, biz NE555N kullanmıştık. Resimde devrenin nasıl yapılması gerektiğini görebilirsiniz. Ancak örneğin çıkış 3, 1µF'ye ekstra bir kapasitör eklemeniz gerekecek. Dirençler ve kapasitörler aşağıdaki formüllerle hesaplanır: (resim 1 ve 2)

%50 görev döngüsü arzu edildiğinden, t1 ve t2 birbirine eşit olacaktır. Yani 40 kHz'lik bir verici ile t1 ve t2 1.25*10-5 s'ye eşit olacaktır. C1 = C2 = 1 nF alındığında R1 ve R2 hesaplanabilir. R1= 15 kΩ ve R2= 6.8 kΩ aldık, R1>2R2 olduğundan emin olun!

Bunu osiloskopta devrede test ettiğimizde aşağıdaki sinyali aldık. Ölçek 5 µs/böl'dür, yani gerçekte frekans 43 kHz civarında olacaktır. (Resim 3)

Alıcı

Alıcının giriş sinyali, Arduino'nun doğru bir şekilde işlemesi için çok düşük olacaktır, bu nedenle giriş sinyalinin yükseltilmesi gerekir. Bu, bir ters yükseltici yaparak yapılacaktır.

Opamp için Arduino'dan 0 V ve 5 V ile güç verdiğimiz bir LM318N kullandık. Bunu yapmak için, salınan sinyalin etrafındaki voltajı yükseltmemiz gerekiyordu. Bu durumda 2,5 V'a çıkarmak mantıklı olacaktır. Besleme gerilimi simetrik olmadığı için direncin önüne bir kondansatör de yerleştirmemiz gerekiyor. Bu şekilde bir de yüksek geçiren filtre yapmış olduk. Kullandığımız değerlerle frekansın 23 kHz'den yüksek olması gerekiyordu. A=56 amplifikasyonunu kullandığımızda, sinyal doygunluğa gidecekti ki bu iyi değil, bu yüzden onun yerine A=18 kullandık. Bu yine de yeterli olacaktır. (Resim 4)

Artık güçlendirilmiş bir sinüs dalgamız olduğuna göre, Arduino'nun ölçebilmesi için sabit bir değere ihtiyacımız var. Bunu yapmanın bir yolu, bir tepe dedektör devresi yapmaktır. Bu şekilde, alınan sinyalin yoğunluğu ile orantılı sabit bir sinyale sahip olarak vericinin alıcıdan daha uzakta mı yoksa öncekinden farklı bir açıda mı olduğunu görebiliriz. Hassas bir tepe detektörüne ihtiyacımız olduğu için, 1N4148 diyotu voltaj takipçisine koyarız. Bunu yaparak diyot kaybımız yok ve ideal bir diyot oluşturduk. Opamp için, devrenin ilk kısmındaki ile aynı olanı ve aynı güç kaynağı ile 0 V ve 5V kullandık.

Paralel kapasitör yüksek bir değere ihtiyaç duyar, bu nedenle çok yavaş boşalır ve yine de gerçek değerle aynı tepe değeri türünü görürüz. Direnç de paralel olarak yerleştirilecek ve çok düşük olmayacaktır, aksi takdirde deşarj daha büyük olacaktır. Bu durumda 1.5µF ve 56 kΩ yeterlidir. (Resim 5)

Resimde toplam devre görülebilir. Arduino'ya girecek olan çıktı nerede. Ve 40 kHz AC sinyali, diğer ucunun toprağa bağlanacağı alıcı olacaktır. (Resim 6)

Daha önce de söylediğimiz gibi sensörleri robota entegre edemedik. Ancak devrenin çalıştığını göstermek için testlerin videolarını sunuyoruz. İlk videoda amplifikasyon (ilk OpAmp'den sonra) görülebilir. Osiloskopta zaten 2.5V'luk bir ofset var, bu yüzden sinyal ortada, sensörler yön değiştirdiğinde genlik değişiyor. İki sensör birbirine baktığında, sinüsün genliği, sensörlerin her ikisi arasında daha büyük bir açıya veya mesafeye sahip olduğu duruma göre daha yüksek olacaktır. İkinci videoda (devrenin çıkışı), düzeltilmiş sinyal görülebilir. Yine, toplam voltaj, sensörler birbirine baktığında, olmadıklarından daha yüksek olacaktır. Kapasitörün boşalması ve volt/div nedeniyle sinyal tamamen düz değil. Sensörler arasındaki açı veya mesafe artık optimum olmadığında azalan sabit bir sinyal ölçebildik.

Buradaki fikir, robotun alıcıya ve kullanıcının vericiye sahip olmasını sağlamaktı. Robot, yoğunluğun hangi yönde en yüksek olduğunu tespit etmek için kendi kendine bir dönüş yapabilir ve o yöne gidebilir. İki alıcıya sahip olmak ve en yüksek voltajı algılayan alıcıyı takip etmek daha iyi bir yol olabilir ve daha da iyi bir yol, kullanıcının sinyalinin hangi yönlerde yayıldığını bilmek için üç alıcı koymak ve bunları LDR gibi yerleştirmektir (düz, sol veya sağ).

Önerilen: