İçindekiler:

Tinku: Kişisel Bir Robot: 9 Adım (Resimlerle)
Tinku: Kişisel Bir Robot: 9 Adım (Resimlerle)

Video: Tinku: Kişisel Bir Robot: 9 Adım (Resimlerle)

Video: Tinku: Kişisel Bir Robot: 9 Adım (Resimlerle)
Video: Mähroboter kaufen 2023 ► Die 10 besten Rasenmäher Roboter im Vergleich 2024, Temmuz
Anonim
Tinku: Kişisel Bir Robot
Tinku: Kişisel Bir Robot

Yazar tarafından sw4pTakip edin Daha fazlası:

maddi olmayan yüzey
maddi olmayan yüzey
maddi olmayan yüzey
maddi olmayan yüzey
Silinen Eğitilebilir
Silinen Eğitilebilir
Silinen Eğitilebilir
Silinen Eğitilebilir
karton piyano
karton piyano
karton piyano
karton piyano

Selamlar, Tinku sadece bir robot değildir; kişisel bir robottur. Hepsi bir arada bir pakettir. Görebilir (bilgisayar görüşü), dinleyebilir (konuşma işleme), konuşabilir ve duruma tepki verebilir. Duyguları ifade edebilir ve yapabileceklerinin listesi uzayıp gider. bir isim verdim; Ben ona Tinku diyorum.

Yapabileceklerine dair kısa bir giriş

  1. Bilgisayar görüşü

    • Yüz tanıma
    • Yüz takibi
    • Fotoğraf çekin ve video kaydedin
    • ArUco belirteçlerini tanıyın
  2. Konuşma İşleme

    • Çevrimdışı konuşma işleme (Hotword algılama)
    • Hotwords tespit ederek ne dediğinizi anlayabilir.
  3. Duyguları ifade et

    • Sözsüz iletişim ve duygularını ifade etmek için başını hareket ettirir.
    • Mevcut duyguyu desteklemek için ekranında resimler ve gifler görüntüler.
  4. Etrafında yürü

    Tekerleklerini kullanarak etrafta koşabilir ve ArUco işaretçilerini kullanarak yerleri belirleyebilir

  5. Engel kaldırma

    Sonar sensörleri vardır, bu nedenle her zaman çevresinin farkındadır ve engellerden kaçınabilir

Çok daha fazla şey yapabilir. İstediğiniz yeni işlevleri de uygulayabilirsiniz.

Yeter konuşma yapalım.

EDIT: Tinku'nun gövdesi çatlamaya başladı, bu yüzden onu tamamen yeniden tasarlamak zorunda kaldım. İşte yeni görüntüler, tamamen taze ve daha iyi Tinku. Üzgünüm, Tinku'yu yeniden tasarlama adımlarının görüntülerine sahip değilim.

Adım 1: İhtiyacınız Olan Şeyler

İhtiyacınız Olan Şeyler
İhtiyacınız Olan Şeyler
İhtiyacınız Olan Şeyler
İhtiyacınız Olan Şeyler
İhtiyacınız Olan Şeyler
İhtiyacınız Olan Şeyler
İhtiyacınız Olan Şeyler
İhtiyacınız Olan Şeyler

Robotun Vücudu

  1. Akrilik levha
  2. MDF kurulu
  3. Küçük L kelepçeler
  4. Somun ve vida paketi

Servolar, Motorlar ve Tekerlekler

  1. Dynamixel AX-12A (3 adet)
  2. Bioloid cıvata ve somun seti
  3. Motorlar (2 adet)
  4. Parçalar (2 paket)
  5. Palet tekerlekleri (4 adet)
  6. Motorlar için L kelepçeler (2 adet)
  7. Boş tekerlek mili için L kelepçe (2 adet)
  8. Kukla tekerlek mili (2 adet)
  9. Bioloid Çerçeve F8
  10. Bioloid Çerçeve F3 (2 adet)
  11. Bioloid Çerçeve F2
  12. Bioloid Çerçeve F10

Elektronik

  1. Arduino
  2. Ahududu Pi veya Udoo Quad
  3. Motor sürücüsü
  4. Logitech webcam-c270 (Dahili mikrofona sahiptir)
  5. Ultrasonik mesafe sensörleri (6 adet)
  6. Lipo pil (3300 Mah 3S)
  7. Yükseltme voltaj regülatörü (DC-DC)
  8. Düşürücü voltaj regülatörü (DC-DC)
  9. Dokunmatik Ekran (7 inç)
  10. USB hub (Yalnızca 2 USB bağlantı noktasına sahip olduğu için Udoo Quad kullanıyorsanız)
  11. 7404 altıgen invertör IC
  12. 74HC244 IC
  13. 14 pinli IC tabanı
  14. 20 pinli IC tabanı

Konektörler ve Kablolar

  1. T-fiş erkek pil konektörü
  2. Esnek HDMI kablosu (Yalnızca ekranınızda HDMI konektörü varsa)
  3. Mikro USB kablosu
  4. Üç pimli dişi-dişi rölyef kablosu (6 adet)
  5. DC varil jakı erkek elektrik fişi (2 adet)
  6. Dynamixel servo konnektörler (3 adet)
  7. USB A'dan B'ye kablosu (Sadece Arduino ile birlikte gelmediyse)
  8. Atlama telleri
  9. Breadboard teller
  10. Burg şeritleri

PCB yapmak için

  1. Bakır kaplı laminat
  2. PCB aşındırıcı (Fecl3)
  3. Delikli PCB
  4. 1 mm matkap ucu

Çeşitli

  1. Zamk
  2. Soğutucu tüpleri
  3. zıtlıklar

Not: Burada, ahududu pi 2'den daha iyi bilgi işlem hızına sahip olduğu için Udoo kartı kullanıyorum. Udoo kartı 3v uyumludur.

Adım 2: Robotun Gövdesi

Robotun Vücudu
Robotun Vücudu
Robotun Vücudu
Robotun Vücudu
Robotun Vücudu
Robotun Vücudu
Robotun Vücudu
Robotun Vücudu

Robotun gövdesini hazırlamak için akrilik levhayı kullandım ve kutu benzeri bir yapı yapmak için belirtilen boyutta kestim. Resimde vücudun her iki tarafının boyutundan bahsettim.

  1. Akrilik levhayı belirtilen boyuta göre kesin.
  2. Motorları, sensörleri, ayırıcıları monte etmek ve her bir plakayı birleştirmek için belirli yerlerde delikler açın.
  3. Kabloları geçirmek için taban plakasına ve üst plakaya daha büyük bir delik açın.
  4. Ultrasonik sensörden gelen kabloların geçebilmesi için ön ve arka panelin alt tarafında küçük bir çentik yapın.

Motorları ve paletleri hazırlama ve monte etme zamanı.

  1. Telin motor sürücülerine ulaşabilmesi için motor pinlerine ekstra kablo lehimleyin.
  2. Motor kelepçelerini ve boş tekerlek mili kelepçelerini robotun taban plakasına monte edin.
  3. Motorları ve boş tekerlek milini kelepçelere bağlayın, ardından tekerlekleri bağlayın.
  4. Parçaları birleştirin ve bir döngü yapın.
  5. Tekerlekler üzerinde kayış izi. Paletin gevşemediğini ve üzerinde yeterince gergin olduğunu unutmayın.

Şimdi küçük L kelepçeler kullanarak ön, arka ve bir yan paneli taban panelinde birleştirin. Elektroniği robota monte etmek için yeterli alana sahip olmamız için üst paneli ve bir yan paneli monte etmeyin.

Adım 3: Robotun Başı ve Yüzü

Image
Image
Robotun Başı ve Yüzü
Robotun Başı ve Yüzü
Robotun Başı ve Yüzü
Robotun Başı ve Yüzü
Robotun Başı ve Yüzü
Robotun Başı ve Yüzü

Robotumuza zaten bir gövde ve tekerlek verdik. Şimdi ona bir baş, boyun ve bir yüz verme zamanı.

Boyun:

Robotun kafasındaki en karmaşık kısım boyundur. Bu yüzden önce onu hazırlayacağız. Dynamixel servolarla çalışmak biraz kafa karıştırıcıdır, ancak güvenilir ve dayanıklıdırlar. Bunun için tonlarca montaj kelepçesi mevcuttur, böylece bunları herhangi bir şekilde birbirine bağlayabilirsiniz.

Dynamixel servoların nasıl birbirine bağlanacağına dair daha iyi açıklama için bu videoyu izleyin.

  1. Çerçevelere monte etmek için somunları dynamixel servolara yerleştirin.
  2. Bioloid çerçeve F8'i üst panelin ortasına yerleştirin ve delme deliklerini işaretleyin ve delin.
  3. Bioloid çerçeve F8'i servolardan birine takın, ardından bioloid çerçeve F8'i üst panele monte edin.
  4. Her servoyu farklı çerçeveler kullanarak birleştirin ve boynu hazırlayın.
  5. dynamixel üç pimli servo konektörleri kullanarak servoları birbirine bağlayın.

Göz ve Kulak:

Robotumun gözü olarak Logitech webcam-c270 kullanıyorum. 720p'de fotoğraf çekebilen ve video kaydedebilen iyi bir kamera. Ayrıca yerleşik bir mikrofonu var, bu nedenle robotuma da kulak oluyor. Uzun bir beyin fırtınasından sonra, kamerayı monte etmek için en iyi yerin ekranın üst kısmı olduğunu öğrendim. Ancak kamerayı monte etmek için bir kamera montajına ihtiyacım var. Öyleyse bir tane yapalım.

  1. Web kamerasına biraz ağırlık vermek için sağlanan metal parçaları çıkarın.
  2. MDF levhadan resimde gösterilen ölçülerde bir kare ve bir üçgen olmak üzere iki parça kesin.
  3. Web kamerasının tabanında ve kare MDF parçasında bir delik açın. Web kamerası kablosunu içine yerleştirmek için kare parça üzerinde bir çentik açın.
  4. Bir T şekli oluşturmak için MDF parçalarını birbirine yapıştırın. Kamera montajı hazır.
  5. Kamera yuvasını ve kamerayı birbirine bağlamadan önce, önce kafayı hazırlayın.

Kafa:

Robotun kafası servolara bağlanmıştır. Başın servolara fazla yük bindirmemesi için olabildiğince hafif olması gerekir. Bu nedenle akrilik levha yerine MDF levha kullandım.

  1. Bir parça MDF levhası kesin (18cm x 13cm) ve ekranı monte etmek için delikler açın.
  2. Bioloid çerçeve F10'u MDF levhasının ortasına yerleştirin ve delme deliklerini işaretleyin ve delin.
  3. MDF kartının her iki tarafına bioloid çerçeve F10 ve bioloid çerçeve F2 yerleştirin ve somun ve vida kullanarak bunları birleştirin.
  4. Şimdi kamera montajını kartın arka tarafına yapıştırın.
  5. Servo konfigürasyonunun sonu ile bioloid çerçeve F2'yi birleştirin.
  6. Ayraçları kullanarak ekranı MDF panosuna monte edin.
  7. Web kamerasını kamera yuvasına takın.

Artık robotumuzun başı ve yüzü tamamlandı.

Adım 4: Özel PCB'ler

Özel PCB'ler
Özel PCB'ler
Özel PCB'ler
Özel PCB'ler
Özel PCB'ler
Özel PCB'ler

Şimdi biraz fecl3'ü çözme ve bazı PCB'leri aşındırma zamanı.

Neden özel PCB'ler yaptım?

  • Dynamixel servo kontrol cihazım yok, bu yüzden bir tane yapmam gerekiyor.
  • Arduino'ya daha temiz bir şekilde çok sayıda sensör bağlamam gerekiyor, bu yüzden Arduino için bir kalkan yaptım.

Hadi yapalım.

  1. PCB dosyalarını indirin ve bakır kaplı laminat üzerine yazdırın.
  2. Fecl3 kullanarak bakır kaplı laminatı aşındırın
  3. IC'leri ve burg şeridini monte etmek için 1 mm'lik delikler açın.
  4. Kalkan istifleme başlıklarını yapmak için, burg şeridinin plastik durdurucularını pimlerin sonuna doğru kaydırın.
  5. IC tabanlarını ve burg şeridini PCB'lere lehimleyin.
  6. Referans amacıyla şemaları sağladım.

Not -.pcb'yi açmak için Express PCB yazılımını ve.sch dosyasını açmak için Express SCH yazılımını kullanın.

Adım 5: Güç Kaynağı

Güç kaynağı
Güç kaynağı
Güç kaynağı
Güç kaynağı

Robotun farklı elektronik modülleri ve motorları arasında tutarlı bir gücü korumak çok gereklidir. Herhangi bir modülde güç sınır değerin altına düşerse arızaya neden olur ve nedenini belirlemek çok zordur.

Bu robottaki birincil enerji kaynağı 2200mAh 3S Lipo pildir. Bu pilin üç hücresi vardır ve voltaj çıkışı 11,1 volttur. Udoo kartının 12v kaynağına ihtiyacı var ve Arduino kartının 5v kaynağına ihtiyacı var. Bu yüzden iki voltaj regülatörü kullanmayı seçiyorum, biri kademeli, diğeri kademeli. Biri tüm 12v modüllerinin akım beslemesini sürdürecek, diğeri ise tüm 5v modüllerinin akım beslemesini koruyacaktır.

Görüntü elle çizilmiş şemalar içerir.

  • Delikli PCB kartlarındaki voltaj regülatörlerini lehimleyin.
  • T-fişli erkek akü konektörünü her iki voltaj regülatörünün girişine lehimleyin.
  • Her iki regülatörün de 'Toprak' çıkışını bağlayın.
  • DC varil jaklarını regülatörün her bir çıkışına bağlayın. Udoo/Raspberry Pi ve Arduino kartına ulaşabilmesi için kabloların uzunluğunu yeterli tutun.
  • Gelecekteki modifikasyonda ihtiyacımız olması durumunda, ek güç çıkışı olarak regülatörün her çıkışına lehim burgu şeridi.
  • Güç kaynağını herhangi bir elektronik modüle bağlamadan önce, sağlanan trim potansiyometresini kullanarak her bir regülatörün çıkışını tam olarak 12v ve 5v'ye kalibre edin.

Adım 6: Son Montaj

Son montaj
Son montaj
Son montaj
Son montaj
Son montaj
Son montaj

Şimdi zamanı. Bu kadar çok adımdan sonra sıra her modülü bir araya getirmeye geldi. Heyecanlı? Ben öyleyim.

  • Boyutları (30cm x 25cm) olan MDF levhanın dikdörtgen bir parçasını kesin. Bu kart, elektronik modüllerin montajı için temeldir. Taban akrilik levhasına çok fazla delik açmak istemiyorum, bu yüzden MDF levha kullanıyorum. Ayrıca robotumuzun düzenli ve temiz görünmesini sağlamak için altındaki kabloları gizlemeye yardımcı olur.
  • Modülleri MDF panosuna yerleştirin ve montaj deliklerini işaretleyin ve delin. Kabloları MDF kartının altından geçirmek için fazladan delikler açın.
  • Bazı deliklere numaralar atadım, bu yüzden onları referans almam ve kablolama şemalarını anlamanız kolaylaşıyor.

Güç kaynağı:

  • Güç kaynağı modülünü kart üzerine monte edin ve 12v ve 5v jakını 1 numaralı delikten geçirin ve 12v jakını 2 numaralı delikten dışarı çekin ve 5v jakını 3 numaralı delikten dışarı çekin.
  • Pili şimdilik gevşek tuttum çünkü bazen çıkarıp şarj etmem gerekiyor.

Motor sürücüsü:

  • 4 numaralı delikten motorlara bağlı olan kabloları çekip motor sürücü kartına bağlayınız.
  • Motorların düzgün çalışması için 12v güç kaynağına ihtiyacı vardır, bu nedenle sürücünün 12v ve GND pinini 12v voltaj regülatörünün çıkışına bağlayın.
  • Motor sürücüsünün pinlerini koda göre Arduino'ya bağlayın.

Arduino:

  • Arduino'yu monte etmeden önce üç ultrasonik sensörün kablolarını arka panelden geçirin ve kalan üç ultrasonik sensörün kablolarını ön panelden geçirin ve 3 numaralı delikten dışarı çekin.
  • Arduino'yu monte edin ve üzerine sensör kalkanını takın.
  • Herhangi bir hata durumunda hata ayıklaması kolay olsun diye tüm ultrasonik sensör kablolarına numara verdim. Sensör pinlerini art arda 1'den 6'ya kadar kalkana bağlayın.
  • 5v güç jakını Arduino'ya bağlayın.

Dynamixel Servo Kontrolör:

  • Dynamixel servo kontrol cihazını panoya monte edin.
  • Servo kontrolörün 12v ve GND pinini 12v voltaj regülatörünün çıkışına bağlayın.
  • Servo kontrolörün 5v ve GND pinini 5v voltaj regülatörünün çıkışına bağlayınız.
  • Servo kontrolör ve Arduino'nun pinlerini koda göre bağlayın.
  • Şimdilik servo çıkış pinini fişten çekin. Robotun üst panelini taktıktan sonra fişe takınız.

Udoo / Ahududu Pi:

Not: Aşağıdaki adımları uygulamadan önce işletim sistemini MicroSD karta kurduğunuzdan ve Udoo / Raspberry Pi kartına yerleştirdiğinizden emin olun. Değilse, Raspbian'ı Raspberry Pi'ye veya Udoobuntu'yu Udoo panosuna yüklemek için bağlantıları izleyin.

  • Udoo / Raspberry Pi'yi tahtaya monte edin ve güç jakını buna bağlayın.
  • Udoo kullanıyorsanız, USB hub'ını USB jaklarından birine bağlayın.
  • HDMI kablosunu ve mikro USB kablosunu buna bağlayın. Bu pinler ekrana veri ve güç sağlamak için kullanılır.
  • A'dan B'ye USB kablosu kullanarak Arduino'yu Udoo / Raspberry Pi'ye bağlayın.

Üst panel:

  • L kıskaçları kullanarak üst paneli robotun yan, ön ve arka panellerine takın.
  • HDMI kablosunu, mikro USB kablosunu ekrana ve web kamerasını Udoo / Raspberry Pi kartına bağlayın.
  • Temel dynamixel servodan gelen üç pinli servo konnektörü servo kontrolöre bağlayın. Lütfen hangi pinin DATA, GND ve +12v olduğuna dikkat edin. Daha iyi referans için "Robotun Başı ve Yüzü" bölümündeki resimlere bakın. Telleri ters sırada bağlarsanız servolara zarar verebilir.

Ultrasonik Mesafe Sensörleri:

Bulmacanın son parçası. Bundan sonra montajımız bitmek üzere.

  • Boyutlu (6cm x 5cm) MDF levha/akrilik levhanın altı dikdörtgen parçasını kesin.
  • Gerekli yerlere delikler açın.
  • Ultrasonik sensörleri panoların her birine takın ve tüm panoları robotun taban paneliyle birleştirin.
  • Sensörleri konektörlerle bağlayın.

Sonunda bitti. Pili bağlayın ve Udoo/Raspberry Pi'yi başlatın

7. Adım: Yazılım

Donanım tamamlandı, ancak yazılım olmadan bu robot sadece bir kutu. İhtiyacımız olan yazılımların listesi

  • sıkıVNC
  • piton
  • OpenCV
  • kar çocuğu
  • Bazı piton paketleri

    • Pyautogui
    • dizi
    • pyserial
    • ses

SıkıVNC:

TightVNC, ücretsiz bir uzaktan kumanda yazılım paketidir. TightVNC ile uzaktaki bir makinenin masaüstünü görebilir ve tıpkı o bilgisayarın önünde otururken yaptığınız gibi yerel fare ve klavyenizle kontrol edebilirsiniz.

Fazladan klavye ve fareniz varsa, bu iyi. Değilse, dizüstü bilgisayarınıza TightVNC'yi kurun ve bu adımları izleyin.

Klavye ve fareyi ilk kez Udoo / Raspberry Pi'ye bağlayın. Bir wifi ağına bağlanın. Terminali açın ve yazın

$ ifconfig

  • Robotun IP adresini not edin.
  • Dizüstü bilgisayarınızda TightVNC'yi açın. IP adresini gerekli alana girin ve Enter'a basın. İşte! Artık bağlısınız. Robota erişmek için dizüstü bilgisayarınızın dokunmatik yüzeyini ve klavyesini kullanın.

Python:

Python çok popüler ve çok yönlü bir dildir, bu yüzden onu bu robot için birincil programlama dili olarak kullanıyorum.

Burada python 2.7 kullanıyorum ama isterseniz python 3'ü de kullanabilirsiniz. Neyse ki Python hem Udoobuntu hem de Raspbian OS'de önceden kurulu olarak gelir. Yani yüklememize gerek yok.

OpenCV:

OpenCV, esas olarak gerçek zamanlı bilgisayar vizyonunu hedefleyen açık kaynaklı bir kütüphanedir. Python ile OpenCV'nin kullanımı çok kolaydır. OpenCV'yi kurmak biraz zahmetlidir, ancak izlemesi çok kolay kılavuzlar mevcuttur. Benim kişisel favorim bu. Bu kılavuz Raspberry Pi içindir, ancak Udoo kartı için de kullanabilirsiniz.

Kar çocuğu:

Snowboy, Kitt.ai adamları tarafından yazılmış, çoğunlukla çevrimdışı konuşma işleme/özel kelime algılamayı amaçlayan bir kütüphanedir. Kullanımı çok kolaydır. Raspberry Pi'ye snowboy yüklemek için bu bağlantıyı takip edin. Udoo panosunu kullanıyorsanız, Udoo'ya snowboy yüklemek için benim tarafımdan yazılmış bu projeye gidin.

Python Paketleri:

Bazı python paketlerini kurmak için bu kullanımı kolay kılavuzları izleyin.

  1. Pyautogui - Pyautogui, bir klavyenin veya fare hareketinin tuş vuruşlarını simüle eden bir pakettir.
  2. Numpy - Linux kabuğuna "pip install numpy" yazın ve enter tuşuna basın. Bu kadar basit.
  3. Pyserial - Pyserial, python üzerinden seri haberleşmeyi amaçlayan bir pakettir. Arduino ile iletişim kurmak için kullanacağız.

Adım 8: Kodlar

Donanım kısmı tamamlandı. Yazılım kısmı tamamlandı. Şimdi bu robota bir ruh verme zamanı.

Kodlayalım.

Bu robotun kodu biraz karmaşık ve şu anda ona daha fazla işlevsellik ekliyorum. Bu nedenle kodları Github depomda barındırdım. Kontrol edebilir ve oradan kodları kopyalayabilir/indirebilirsiniz.

Artık sadece bir robot değil; artık Tinku'dur.

9. Adım: Demo

Image
Image

Demo. yeeeee!!

Bunlar temel demolardan bazıları. Çok daha ilginçleri gelecek.

Daha fazla güncelleme için bizi izlemeye devam edin ve herhangi bir şüpheniz varsa yorum yapmaktan çekinmeyin.

Projemi okuduğunuz için teşekkür ederim. Harikasın.

Bu projeyi beğendiyseniz lütfen Mikrodenetleyici ve Robotik yarışmasında oy verin

Mutlu Etme;-)

Önerilen: