Robot Tampon Yapın (Kodlu): 4 Adım
Robot Tampon Yapın (Kodlu): 4 Adım
Anonim
Robot Tampon Yap (Kodlu)
Robot Tampon Yap (Kodlu)

Bu talimat, okuyuculara, engelleri tespit ederken bir labirentte gezinebilecek bir Boe-bot üzerinde tamponların nasıl oluşturulacağı ve kodlanacağı konusunda yol gösterecektir. Projenin kodlaması BASIC Stamp programlama yazılımı ve Boe-Bot robotu kullanılarak yapıldı ve bu tamponları oluşturmada başarılı olmak için temel devre ve programlama anlayışı gerekiyor.

Gereçler

Bu tamponları oluşturmak için ihtiyacınız olacak:

- Boe-Bot robotu

- BASIC Pul programlama yazılımı

- Dondurma çubukları

- Bir sünger

- Aliminyum folyo

- Kağıt tutacağı

- 8 adet yeterince uzun kablo (en az 6 inç)

- 2 LED ışık

- 2 kahverengi-siyah-sarı direnç

- 2 kırmızı-kırmızı-kahverengi direnç

- Bant ve sıcak tutkal (veya benzeri bir yapıştırıcı)

- Boe-Bot'unuz için piller

Adım 1: Adım 1: Devrenin Oluşturulması

Adım 1: Devreyi Oluşturma
Adım 1: Devreyi Oluşturma
Adım 1: Devreyi Oluşturma
Adım 1: Devreyi Oluşturma

Breadboard'unuzu yönlendirmek ve çalıştırmak için bir devre oluşturmak için yukarıdaki devre tahtası şemasını izleyin. Sonunda, breadboard'unuz soldaki resme benzer görünmelidir.

Hatırlanacak şeyler:

- LED'in doğru konumda olduğundan emin olun. Bu, LED'in düz ayağının negatif tarafta ve diğer ayağının pozitif tarafta olması gerektiği anlamına gelir.

- Vss, bu devre tahtasında zemin görevi görür, yani sıfır değerine sahiptir ve Vdd'nin değeri 1'dir.

- Çalışan bir devre 0 değerine sahiptir. Kapatılan bir devre 1 değerine sahiptir.

Adım 2: Adım 2: Boe-bot için Programlama

Aşağıdaki kod, robotu, tamponlardan hangisine basıldığına bağlı olarak 90 derece sola ve sağa dönecek şekilde programlar (sonraki adımda tampon oluşturma hakkında daha fazla ayrıntı). Bu kod robotun sağ tampon tellerine basıldığında sola, sol tampon tellerine basıldığında sağa dönmesini sağlar.

Bazı temel dil çevirileri:

- GOSUB = alt program (kodda bir talep tarafından takip edilmelidir)

- If.. Else = koşullar doğruysa yürütülmesi gereken bir kod grubunu belirtir ve koşullar yanlışsa yönergeleri gerçekleştirir

kod:

' {$DAMGA BS2}

' {$PBASIC 2.5} '************************************************ *********************************** 'Yeniden Başlatma Kodunu Sıfırla' Robotu durdurmak ve başlatmak için sıfırlama düğmesini kullanın '** ************************************************************ ************************* temp VAR Byte 'geçici depolama RunStatus DATA $00' değişkeni ROM'da saklanıyor READ RunStatus, temp ' ROM temp'den değişkeni oku temp = ~ temp 'değeri 0'dan 1'e veya 1'den 0'a ters çevir WRITE RunStatus, temp 'Değişkeni ROM'a geri yaz IF (temp>0) THEN END 'Değerin 1 olup olmadığını kontrol et' öyleyse programı END PAUSE 3000 'İzin vermek için duraklat reset'e bastığınızda 'elinizi hareket ettirin'***************************************** ***************************************** '************* ******************************************************* *********** 'Pimler ve Sabitler' Programlamayı basitleştirmek için kullanılır '******************************* ************************************************** LMOTOR PIN 15 RMOTOR PIN 14 RFast CON 650 LFast CON 850 RSlow CON 700 LSlow CON 780 Mstop CON 750 RFastRev CON 8 50 LFastRev CON 650 RSlowRev CON 800 LSlowRev CON 700 TurnSol90 CON 90 TurnRight90 CON 90 '************************************** ************************************************** ******************************************************* **************** 'Değişkenler' Programlamayı basitleştirmek için kullanılır '**************************** ************************************************** MLoopC VAR Kelimesi.. Sonraki 65000ish sideCount VAR Byte dönüş Açısı VAR Word'e kadar Değişken '**************************************** ********************************************* '----------- -------------------------------------------------- ------------- 'Ana kod '--------------------------------- -------------------------------------------- IN10 = 0 İSE YAPIN pin 10'daki kablo açıksa sola dönün GOSUB Sola Dönüş90 GOSUB LFastRev GOSUB RFastRev ELSEIF IN11 = 0 THEN 'Pin 11'deki kablo açıksa sağa dönün GOSUB Sağa Dönüş90 GOSUB LFastRev GOSUB RFastRev ENDIF GOSUB İleriHızlı 'Bir ileri git'- LO --------------------------------- ------------------------------------- '**ANA KODUN SONU****** ******************************************************* '- -------------------------------------------------- --------------------- '********************************* *************************************************** '**Alt rutinler / Alt prosedür / Yöntemler*********************************** '*********** ******************************************************* *********** '************************************************ ***************************************** '*************** ******************************************************* ******** RightTurn90: ' 90 derece Sağa Dönmek için Alt Procdure '************************************ **************************************** MLoopC için YÜKSEK 1 DÜŞÜK 0 = 1 - 22 PULSOUT LMOTOR, Lfast 'bir darbe ileri itme PULSOUT RMOTOR, RfastRev' pinleri ve sabitleri kullanarak DURAKLAT 20 ' 20mS robotun SONRAKİ darbeden önce SONRAKİ' hareket etmesine izin verir DÖNÜŞ '******************** ******************************************************* * LeftTurn90: ' 90 Derece Sağa Dönmek İçin Alt Prosedür '** ******************************************************* ********************* MLoopC için YÜKSEK 0 DÜŞÜK 1 = 1 - 22 PULSOUT LMOTOR, LfastRev 'bir darbe ileri itin PULSOUT RMOTOR, Rfast' pinleri ve sabitleri kullanarak DURAKLAT 20' 20mS, robotun NEXT puls RETURN'den önce SONRAKİ ' hareket etmesine izin verir '**************************************** *********************************** ForwardFast: ' Robotu bir kare hızlı hareket ettirmek için alt prosedür '**** ******************************************************* ******************** MLoopC için = 1 - 55 PULSOUT LMOTOR, LFast PULSOUT RMOTOR, RFast PAUSE 20 SONRAKİ DÖNÜŞ '************** ******************************************************* ****** ReverseTurnLeft: 'Sağ tampona vurulduğunda robotu geri döndürmek ve sola döndürmek için alt prosedür '****************************** ************************************************** MLoopC = 1 - 55 PULSOUT İÇİN LMOTOR, LSlowRev PULSOUT RMOTOR, RFastRev DURAKLAT 20 SONRAKİ DÖNÜŞ '******************************************* *********************************** ReverseTurnRight: 'Alt işlem sol tampona vurulduğunda robotu geri döndürmek ve sağa döndürmek için '***************************************** *********************************** MLoopC için = 1 - 55 PULSOUT LMOTOR, LFastRev PULSOUT RMOTOR, RSlowRev PAUSE 20 SONRAKİ DÖNÜŞ '************************************************** ************************* 'ALT YÖNTEMLERİN SONU '******************** ******************************************************* *

Adım 3: Adım 3: Tel Tamponlar için Alüminyum Folyo ve Dondurma Çubukları Kullanma

Adım 3: Tel Tamponlar için Alüminyum Folyo ve Dondurma Çubukları Kullanma
Adım 3: Tel Tamponlar için Alüminyum Folyo ve Dondurma Çubukları Kullanma
Adım 3: Tel Tamponlar için Alüminyum Folyo ve Dondurma Çubukları Kullanma
Adım 3: Tel Tamponlar için Alüminyum Folyo ve Dondurma Çubukları Kullanma
Adım 3: Tel Tamponlar için Alüminyum Folyo ve Dondurma Çubukları Kullanma
Adım 3: Tel Tamponlar için Alüminyum Folyo ve Dondurma Çubukları Kullanma
Adım 3: Tel Tamponlar için Alüminyum Folyo ve Dondurma Çubukları Kullanma
Adım 3: Tel Tamponlar için Alüminyum Folyo ve Dondurma Çubukları Kullanma

Bu adıma başlamadan önce, devre tahtasından gelen 4 kablonun (1. adıma bakın) çiftlere ayrıldığından ve her çiftin bir sağ veya sol tamponu kontrol ettiğinden emin olun. Bu durumda LED'ler, kodun sağ ve sol tamponlarda etkili olup olmadığını kontrol etmek için çalışır. Popsicle çubuklarında, her çiftten bir tel Popsicle çubuğunun bir ucunu paylaşır (bu, aynı çiftin tellerinin aynı tamponda OLMAYACAĞI anlamına gelir).

4 küçük dikdörtgen folyo kesin ve bir tanesini iki Popsicle çubuğunun her iki ucuna teli sarmak için kullanın. Bu, Popsicle çubuğunun iletkenlik yüzey alanını arttırır ve aynı zamanda çubukların dokunması için daha büyük bir yüzey alanı sağlar.

Folyo ve tellerin buzlu şeker çubuklarına yapışmasını sağlamak için malzemeleri bir arada tutmak için 1-2 ataş kullanın. Ataçlar ayrıca, Popsicle çubuklarının fazla dış müdahale olmadan dokunması için daha fazla erişilebilirlik sağlar. Tıpkı normal bir kağıt yığınında yaptığınız gibi, ataşı buzlu şeker çubuğunun üzerine kaydırın. Bunu dört parça folyo ve iki Popsicle çubuğunun her bir ucu için tekrarlayın.

Adım 4: Adım 4: Geri Kalan Tamponların Montajı

Adım 4: Geri Kalan Tamponların Montajı
Adım 4: Geri Kalan Tamponların Montajı
Adım 4: Geri Kalan Tamponların Montajı
Adım 4: Geri Kalan Tamponların Montajı
Adım 4: Geri Kalan Tamponların Montajı
Adım 4: Geri Kalan Tamponların Montajı
Adım 4: Geri Kalan Tamponların Montajı
Adım 4: Geri Kalan Tamponların Montajı

Alüminyum folyo ve ataç telleri her bir Popsicle çubuğuna bağlı tutabildiğinde, iki küçük sünger küpü kesin ve her bir küpü çubukların arasına yapıştırın (her çubuğun en uçlarında, böylece sıcak tutkal yapışkanı engellemez). metalin iletkenliği Süngerler, robotun duvara her çarptığında tamponların temas etmesini sağlar.

İsteğe bağlı: Fazladan bir Popsicle çubuğunu ikiye bölün ve dış Popsicle stick tamponunun ucuna açılı olarak yapıştırın. Bu, tamponun duvara çarpması ve dönmesinin etkisini güçlendirir.

Telleri, tamponların Bot-bot'un hemen önünde eğilmesi için bükün.

Önerilen: