İçindekiler:

Strandbeest, Java/Python ve Uygulama Kontrollü Yürüyüş: 4 Adım (Resimlerle)
Strandbeest, Java/Python ve Uygulama Kontrollü Yürüyüş: 4 Adım (Resimlerle)

Video: Strandbeest, Java/Python ve Uygulama Kontrollü Yürüyüş: 4 Adım (Resimlerle)

Video: Strandbeest, Java/Python ve Uygulama Kontrollü Yürüyüş: 4 Adım (Resimlerle)
Video: TrotBot, Klann, Strandbeest, & Strider Linkages in Motion 2024, Temmuz
Anonim

Tarafından arrowlikeTakip Yazar tarafından daha fazla:

Basit Harmonik Hareketin Deneysel Çalışması
Basit Harmonik Hareketin Deneysel Çalışması
Basit Harmonik Hareketin Deneysel Çalışması
Basit Harmonik Hareketin Deneysel Çalışması

Bu Strandbeest kiti, Theo Jansen tarafından icat edilen Strandbeest'e dayanan bir DIY çalışmasıdır. Dahi mekanik tasarıma hayran kaldım, onu tam manevra kabiliyeti ve ardından bilgisayar zekası ile donatmak istiyorum. Bu talimatta, ilk kısım olan manevra kabiliyeti üzerinde çalışıyoruz. Kredi kartı boyutundaki bilgisayarın mekanik yapısını da ele alıyoruz, böylece bilgisayarla görme ve AI işleme ile oynayabiliriz. Yapım işini kolaylaştırmak ve kolaylık sağlamak için arduino veya benzeri programlanabilir bilgisayar kullanmadım, onun yerine bluetooth donanım denetleyicisi kurdum. Robotik donanım ile etkileşime giren terminal olarak çalışan bu kontrolör, android telefon uygulaması veya RaspberryPi vb. gibi daha güçlü sistemler tarafından kontrol edilir. Kontrol, cep telefonu UI kontrolü veya python veya Java dilinde programlanabilir kontrol olabilir. Her programlama dili için bir SDK, https://github.com/xiapeiqing/m2robots.git adresinde sağlanan açık kaynaklıdır.

Mini-Strandbeest kullanıcı kılavuzu, yapım adımlarını açıklamada oldukça açık olduğundan, bu talimatta, kullanıcı kılavuzunda tipik olarak yer almayan bilgi parçalarına ve elektrikli/elektronik parçalara odaklanacağız.

Bu kitin mekanik montajı hakkında daha sezgisel bir fikre ihtiyacımız varsa, montaj konusunda oldukça iyi birkaç video mevcut, örneğin

Gereçler

Bu Strandbeest'in mekanik parçasını oluşturmak ve tüm elektrik bağlantılarını yapmak için, 3D baskı için bekleme süresi sayılmazsa, tamamlanması 1 saatten az sürmelidir. Aşağıdaki parçaları gerektirir:

(1) 1 adet standart Strandbeest kiti (https://webshop.strandbeest.com/ordis-parvus)

(2) Dişli Kutulu 2x DC motor (https://www.amazon.com/Greartisan-50RPM-Torque-Re…)

(3) 1x Bluetooth denetleyicisi (https://ebay.us/Ex61kC?cmpnId=5338273189)

(4) 1x LiPo Pil (3.7V, mAh olarak kapasite seçiminiz)

(5) 12x M2x5.6mm ağaç vidaları

(6) 2 mm çapında Karbon veya bambu çubuk

Aşağıdaki parçaları 3D yazdırın:

(1) 1x robotik ana gövde

(3D baskı tasarım dosyası yalnızca bluetooth denetleyicisi ile indirilir)

(Ek OrangePi Nano indirmeli 3D baskı tasarım dosyası)

(2) 2x Tahrik mili flanşı (3D baskı tasarım dosyası indir)

(3) 2x güç sistemi fikstürü (3D baskı tasarım dosyası indirme)

Diğerleri:

Android cep telefonu. Google playstore'a gidin, lütfen M2ROBOTS'ta arama yapın ve kontrol Uygulamasını yükleyin.

Google Play Store'a erişmenin zor olması durumunda, alternatif uygulama indirme yöntemi için kişisel ana sayfamı ziyaret edin.

Adım 1: Parça Organizasyonu

Parça Organizasyonu
Parça Organizasyonu
Parça Organizasyonu
Parça Organizasyonu
Parça Organizasyonu
Parça Organizasyonu
Parça Organizasyonu
Parça Organizasyonu

Bu adımda montajı yapılacak tüm parçaları organize edeceğiz. Şekil 1. Strandbeest modelini oluşturmak için kullandığımız tüm hazır plastik parçaları gösterir. 3D baskı veya frezeleme gibi diğer işleme üretim yöntemlerine kıyasla çok yüksek verimli olan enjeksiyon kalıplama ile yapılırlar. Bu nedenle, seri üretilen üründen en iyi şekilde yararlanmak ve yalnızca en az miktarda parçayı özelleştirmek istiyoruz.

Şekil 2'de gösterildiği gibi, her bir plastik levha parçasının etiketlenmiş bir alfabesi vardır, tek tek parçanın etiketi yoktur. Bir kez ayrıldıklarında, artık etiketleme yoktur. Bu sorunu çözmek için, aynı türdeki parçaları farklı kutulara koyabiliriz veya bir kağıt parçasında birden fazla alanı işaretleyebilir ve bir alana bir tür parça koyabiliriz, Şekil 3'e bakın.

Plastik parçayı daha büyük montaj plastik levhasından kesmek için makas ve bıçak, Şekil 4 ve 5'te gösterilen pense kadar verimli ve güvenli olmayabilir.

Buradaki her şey plastikten yapılmıştır, ancak ayak parmaklarının malzemesi kauçuktur, bkz. Şek.6. Önceden yapılmış kesimlere göre kesebiliriz. Kauçuk malzemenin yumuşak yapısı, strandbeest'in daha iyi kavrama performansını sağlar. Bir yokuş tırmanırken özellikle doğrudur. Daha sonraki konularda lastik burunlu ve lastiksiz farklı eğim açılarında tırmanma kabiliyetini test edebiliriz. Kayma olmadığında buna statik sürtünme denir. Kavramayı kaybettiğinde kinetik sürtünmeye dönüşür. Sürtünme katsayısı kullanılan malzemelere bağlıdır, bu yüzden lastik burunlara sahibiz. Bir deney nasıl tasarlanır, elinizi kaldırın ve konuşun.

Son Şekil, bu Strandbeest modelinin "ECU", "Güç aktarma sistemi" ve şasisini içerir.

Adım 2: Mekanik Montaj Sırasında Dikkat Edilmesi Gereken Noktalar

Mekanik Montaj Sırasında Dikkat Edilmesi Gereken Noktalar
Mekanik Montaj Sırasında Dikkat Edilmesi Gereken Noktalar
Mekanik Montaj Sırasında Dikkat Edilmesi Gereken Noktalar
Mekanik Montaj Sırasında Dikkat Edilmesi Gereken Noktalar
Mekanik Montaj Sırasında Dikkat Edilmesi Gereken Noktalar
Mekanik Montaj Sırasında Dikkat Edilmesi Gereken Noktalar

Mini Strandbeest oldukça iyi bir kullanım kılavuzuna sahiptir. Kılavuzu takip etmek ve montajı tamamlamak kolay bir iş olmalıdır. Bu içeriği atlayacağım ve dikkatimize değer birkaç ilginç noktayı vurgulayacağım.

Şekil 1'de lastik burunları tutan yuvanın bir tarafı 90 derecelik köşe iken diğer tarafı resmi olarak pah olarak adlandırılan 45 derecelik bir eğime sahiptir. Böyle bir eğim, lastik burnu plastik ayağa oturması için yönlendirir. Parmakları pahlı yandan takmayı deneyin, bkz. Şekil 2, ardından diğer tarafı deneyin. Fark çok belirgindir. Şekil 3'ün sağ tarafı Stranbeest'teki kranktır. Bir motordaki, araba motorundaki, motosiklet motorundaki kranka çok benzer, hepsi aynı yapıyı paylaşır. Bir Strandbeest'te, krank döndüğünde, ayakları hareket etmeye yönlendirir. Bir motor için, krankı döndürmeye iten pistonun hareketidir. Bir daire içindeki bu 120 derecelik ayırma, aynı zamanda, üç fazlı bir motor veya jeneratöre yol açar, elektrik gücü, Şekil 4'te gösterildiği gibi 120 derece aralıklıdır. Sağ ve sol yan gövdelerin mekanik parçalarını bir araya getirdikten sonra, Strandbeest'e eklediğimiz parçalar üzerinde çalışmaya başlıyoruz, bkz. Şekil.5. Şekil 6, motoru 3 boyutlu baskılı şaseye sabitlemek için 3 boyutlu baskılı motor kelepçesini kullandığımız adımdır. Bu adımda işin püf noktası, şasinin yan yüzeyi motor yüzeyi ile aynı olacak şekilde motor konumu ayarlanmadan önce vidaların hiçbirinin sıkılmamasıdır. Hizalamadan memnun kaldığımızda, tüm vidaları sıkabiliriz. Şekil 7'ye geçin, motor çıkışını kranka bağlayarak flanş kaplini montajı üzerinde çalışıyoruz. Motor tarafının montajı, krank tarafı bağlantısına göre daha zordur, bkz. Şek.8. Bu nedenle önce motor tarafı flanşını bağlarız. Her iki motor için flanş kaplini Şekil 9'da gösterildiği gibi takıldıktan sonra, şasiyi ve sol/sağ yürüyen yapıyı bağlamak için iki adet 2mm çapında karbon çubuk kullanıyoruz. Bu, Şekil 10'da oluyor. Bu varlıkları birbirine bağlamak için toplamda 3 adet karbon çubuk kullanıyoruz. Fakat bu adımda bunlardan sadece ikisini bağlıyoruz çünkü krankı çevirmemiz ve flanş ile krank arasındaki bağlantıyı takmamız gerekiyor. 3 adet karbon çubuk yerindeyse, göreli konumu ayarlamak ve bunları bağlamak daha zor olacaktır. Son olarak, Şekil 11'de son olarak monte edilmiş mekanik sistemimiz var. Bir sonraki adım, elektronik üzerinde çalışalım.

Adım 3: Elektrik Bağlantısı

Elektriksel bağlantı
Elektriksel bağlantı
Elektriksel bağlantı
Elektriksel bağlantı
Elektriksel bağlantı
Elektriksel bağlantı

Tüm elektronik sistemler güç kaynağına ihtiyaç duyar. 1 hücreli pili uygun bir yere, örneğin Şekil 1'deki devre kartının altına koyabiliriz. Güç kaynağının polaritesi o kadar kritiktir ki, tartışılacak özel bir rakamı hak ediyor. Şekil 2, pil bağlantısını vurgulamaktadır. Kontrol kartında, polarite "+" ve "GND" ile işaretlenmiştir, Şekil 3'e bakın. Pilin gücü bittiğinde, pili şarj etmek için bir USB kablosu kullanılır, bkz. Şekil 4. Pil tekrar dolduğunda "şarj devam ediyor" gösteren LED otomatik olarak kapanacaktır. Son adım, motor çıkışlarını kontrol panosundaki motor konektörlerine bağlamaktır. Şekil.3'te 16 numara ile etiketlenmiş 3 adet motor konnektörü bulunmaktadır. Şekil 5'te soldaki motor PWM12 ile etiketlenmiş en soldaki konnektöre, sağdaki motor ise ortadaki konnektöre bağlanmıştır. Şu anda, bir tankı (diferansiyel sürüş aracı) sola döndürmek, PWM12 motor portuna bağlı motor giriş gücünün azalması olarak sabit kodlanmıştır. Bu nedenle PWM12 portuna bağlanan motor sol ayakları sürmelidir. Daha sonra tüm karıştırma işlevini kullanıcı tarafından yapılandırılabilir olacak şekilde dönüştüreceğim. olarak, motor konektörü seçimini değiştirerek veya motor konektörü yönünü tersine çevirerek, Strandbeest'in ileri hareket komutu verildiğinde geri hareket etmesi, yanlış yönü döndürmesi gibi sorunu çözebiliriz, giriş kablosu varsa DC motorun dönme yönünü değiştirdiğini unutmayın. kontrol gücüne ters sırada bağlanır.

4. Adım: Uygulama Ayarları ve İşlemi

Uygulama Ayarları ve Çalışması
Uygulama Ayarları ve Çalışması
Uygulama Ayarları ve Çalışması
Uygulama Ayarları ve Çalışması
Uygulama Ayarları ve Çalışması
Uygulama Ayarları ve Çalışması
Uygulama Ayarları ve Çalışması
Uygulama Ayarları ve Çalışması

Önce Google Play Store'dan bir android uygulaması indiriyoruz, bkz. Şekil.1. Bu uygulama, bu talimatta ele alamayacağımız birçok başka işlevselliğe sahiptir, biz sadece Strandbeest ile doğrudan ilgili konulara odaklanacağız.

Donanım bluetooth denetleyicisini açın, keşif cihazları listesinde görünecektir. Uzun tıklama, bizi daha sonra "eğitilebilir" olmak üzere kablosuz indirme özelliğine getirecektir. Tıklayıp kontrolü başlatmadan önce sağ üst köşedeki "Ayarlar"a tıklayarak bazı konfigürasyonları yapalım. Şekil 2'de … simgesinin altına gizlenmiştir. Şekil 3, birden fazla ayar kategorisini gösterir. Uygulamada yapılandırılan bu ayarlar üç şekilde devreye alınır: 1) direksiyon ve gaz kelebeği komutunuzdan her motorun güç kontrol komutunu almak için aritmetik gibi bazı ayarlar yalnızca Uygulamanın çalışmasını etkiler. Uygulamada yaşıyorlar. Daha sonraki bazı talimatlarda, onları Python/Java programlarımızla nasıl değiştireceğimizi göstereceğiz. 2) havadaki kontrol protokolünün bir parçası olarak donanıma, doğrudan kontrol (servo tam olarak komut verilen açıyı döndürür) ve kablolu kontrol (yerleşik otonom kontrol fonksiyon modülü servoyu çalıştırır) arasındaki geçiş gibi bazı ayarlar gönderilir. kullanıcı komutuna ve mevcut tutuma göre kanal) 3) bazı ayarlar donanım denetleyicisindeki Uçucu Olmayan Belleğe gönderilecektir. Bu nedenle donanım, yapılandırılmadan her açıldığında bu ayarları izleyecektir. Bir örnek, cihazın bluetooth yayın adı olacaktır. Bu tür ayarların etkili olması için bir güç döngüsü gerekir. Daldığımız ilk kategori, Şekil 4'teki "Genel Ayarlar". Şekil 5'teki “Uygulama kontrol işlevi”, bu uygulamanın hangi rolü oynadığını tanımlar, doğrudan bluetooth bağlantısı üzerinden donanım cihazı için bir kontrolör; telepresence kontrolü için intranet/internet üzerinde bir köprü; vb. Ardından, Şekil 6'daki “HW tipi” sayfası, uygulamaya diferansiyel sürüşlü bir araçla çalıştığınızı söyler, bu nedenle “tank” modunun seçilmesi gerekir. Toplamda 6 adet PWM çıkışımız mevcuttur. Strandbeest için, Şekil 7'ye göre kanal 1 ila 4'ü yapılandırmamız gerekiyor. Her PWM kanalı aşağıdaki modlardan birinde çalıştırılır: 1) servo normal: 1 ila 2 ms PWM sinyali ile kontrol edilen RC servo 2) servo ters: kontrolör, çıkışı için kullanıcı kontrolünü tersine çevirir 3) DC motor görev döngüsü: a DC motor veya bazı elektrikli elektrikli cihazlar, görev döngüsü modunda çalıştırılabilir, %0 kapalıdır, %100 her zaman açıktır. 4) DC motor görev çevrimi ters: yine kontrolör, çıkışı için kullanıcı kontrolünü tersine çevirir DC motor kullandığımız ve motor dönüş yönünü donanım kablolama sırasına göre yaptığımız için, kanal 1 ila kanal için “DC motor görev döngüsü”nü seçeceğiz. 4, bkz. Şekil 8. Ayrıca çift yönlü kontrolü etkinleştirmek için 2 PWM kanalını 1 H köprüsüne birleştirmemiz gerekiyor. Bu adım Şekil 9'da gösterilmiştir. "2 PWM kanalından 1 H köprüsüne" modunda, kanal 1, 3 ve 5, ilişkili her iki kanalı kontrol etmek için kullanılır. Gaz kelebeği kontrolünü, joystick'in yukarı-aşağı kontrolünü varsayılan kanal 2'den kanal 3'e yeniden eşleme ihtiyacını ortaya çıkarır. Bu, Şekil 10 ayarlarında elde edilir. Şekil 11'de gösterildiği gibi, her kanal rastgele bir giriş kaynağı alacak şekilde yapılandırılmıştır.

Bingo, şimdi gerekli minimum konfigürasyonu tamamladık ve görünen bluetooth cihazını gösteren sayfaya geri dönüp onu bağlayabiliriz. Şekil 12'de joystick'i oynamayı deneyin ve bu Strandbeest ile eğlenebiliriz. Biraz eğim tırmanmayı deneyin, malzeme türleri arasındaki sürtünme analizini hatırlayın ve “RPY(der)” ile etiketlenmiş satırda gösterilen uçuş kontrolörünün tahmini tutumunu okuyun, bu satırdaki dört giriş yuvarlanma, yunuslama, sapma açısıdır. gemideki jiroskop ve ivmeölçer tarafından tahmin edilen; son giriş, eğim dengelemeli pusula çıkışıdır.

Gelecekteki çalışma: Aşağıdaki talimatlarda, programlama arayüzünü kademeli olarak ele alacağız, Strandbeest ile etkileşim kurmak için en sevdiğiniz Java veya Python dilini seçeceğiz ve artık cep telefonu ekranından strandbeest durumunu okumayacağız. Ayrıca daha ileri programlama konuları için RaspberryPi tipi linux bilgisayarda programlamaya başlayacağız, son şekle bakınız. 3D baskı mekanik parçalar için https://xiapeiqing.github.io/doc/kits/strandbeest/roboticKits_strandbeest/ ve hemen başlamak istiyorsanız SDK ve örnek kod için https://github.com/xiapeiqing/m2robots.git kontrol edin. Java veya Python değilse, istediğiniz programlama dilinin ne olduğunu bana bildirin, SDK'nın yeni sürümünü ekleyebilirim.

Bilgisayar korsanlığıyla eğlenin ve aşağıdaki talimatlar için bizi izlemeye devam edin.

Önerilen: