İçindekiler:
- Gereçler
- Adım 1: Üssü İnşa Etme
- Adım 2: Servo Parçası
- Adım 3: Servo Motoru ve Kağıt Ruloyu Tabana Ekleme
- Adım 4: Step Motor Çerçevesinin Oluşturulması
- Adım 5: Son Dokunuşlar
- Adım 6: Elektronik
- 7. Adım: Sorun Giderme
Video: Arduino Mors Kodu Yazarı: 7 Adım (Resimli)
2024 Yazar: John Day | [email protected]. Son düzenleme: 2024-01-30 13:17
Herhangi bir metni Mors koduna çevirebilen ve sonra onu yazabilen bir robot yaptım!! Karton ve Lego'dan yapılmış ve elektronik için Arduino ve sadece iki motor kullandım.
Gereçler
Arduino Uno kartı Step motor Mikro servo SG90ULN2003 step motor sürücü modülü Güç kaynağı modülü Breadboard4× Jumper kabloları6× Dişi-Erkek dubont kabloları9V1A AdaptörUSB kablosu Karton 2× Ahşap dübeller 2× Yaylar Hasır Beyaz kağıtLegoSüper yapıştırıcı Sıcak tutkal tabancası Elastik bant kalemlik) Makas Kesici
Adım 1: Üssü İnşa Etme
Tabanı inşa ederek başlayın. Benimki 4 saplama genişliğinde ve 20 saplama uzunluğunda, bu uzunluklarla bir katman oluşturduktan sonra, bir tarafında step motor için boşluk bırakmak için bir boşluk bırakarak etrafına bir saplama genişliğinde bir bordür yaptım, sonra ekledim fayans parçaları, kağıt şeridin olacağı orta kısma yerleştirin. Lego kullanmak onu çok sağlam ve değiştirilmesi kolay hale getirdi. Rulo kağıt yapmak için 1,2 cm genişliğinde A4 kağıttan şeritler kestim (bu genişliği benim kullandığım Lego tekerleği ile aynı genişlikte olduğu için seçtim, sizinkini tekerleğinize göre büyütüp küçültebilirsiniz) ve uçlarını birbirine yapıştırdım. çok uzun bir şerit oluşturmak için, sonra onu tekerleğin etrafına sardım.
Adım 2: Servo Parçası
Bu adım için ihtiyacınız olan:
- 4 cm uzunluğunda iki ahşap dübel
- 2 cm uzunluğunda iki yay
- her biri 2 cm uzunluğunda iki parçaya kesilmiş bir saman
- bir adet 12cm x 4cm karton parçası
- iki adet 4cm x 1.5cm karton parçası
- bir adet 4cm x 2cm karton parçası
İlk önce dübelleri 4'e 1,5 parçadan birine yapıştırın, ardından yayları ve payetleri dübellere yerleştirin, ardından diğer karton parçasını her şeyi yerinde tutmak için diğer tarafa yapıştırın.
İkinci olarak, 4 cm'ye 2 cm'lik parçayı payetlerin üzerine yapıştırın.
Üçüncü olarak, tüm parçayı ters çevirin ve küçük bir dübelin arkasına, ortasından değil, biraz soluna yapıştırın. (İlk resimdeki küçük dübeli eklemeyi unutmuşum)
Son olarak büyük karton parçasına servo motorun önü büyüklüğünde bir delik açıp motoru yapıştırın, ardından dübellerle az önce yaptığımız parçayı büyük parçaya yapıştırın böylece servo hareket ettiğinde iter. küçük dübel aşağı doğru yayları da aşağı iter.
Sonunda 12cm'ye 4cm'lik parçanın alt kısmından yaklaşık 3cm kesip, 4cm'e 1.5cm'lik iki parça daha yapıştırdım, ardından bunu 5.5cm'e 4cm'lik bir karton parçasıyla kapladım. Ve işaretleyiciyi tutmak için küçük bir parça yaptım. elastik bandın ilmeğini ve küçük bir karton parçasına yapıştırdım, ardından servo başladığında aşağı hareket edecek olan 4cm'ye 2cm'lik parçaya yapıştırdım. Bu eklemeler, yaylar geri geldiğinde işaretleyicinin bir yandan diğer yana hareket etmesini engelledi.
Adım 3: Servo Motoru ve Kağıt Ruloyu Tabana Ekleme
Servo parçayı desteklemek için tabanın bir tarafına iki tuğla daha ekledim ve yerine yapıştırdım. Ardından tabanın uzak ucuna tekeri ekledim.
Adım 4: Step Motor Çerçevesinin Oluşturulması
Bu adım biraz zor oldu çünkü motor Lego'ya tam olarak uyacak şekilde yapılmamıştı. Ancak, bunu yerine sabitlemek için motordaki iki deliği kullanarak yapmayı başardım. Ardından motorun ucuna bir Lego tekerleği yapıştırdım ve ardından 1. adımda açık bıraktığım taraftaki tabanın hemen yanına koydum.
Adım 5: Son Dokunuşlar
Kağıdı yerine sabitlemek için tekerleği örtmek için iki yay parçası ekledim. Ve biri step motorun tellerini tutmak için diğeri kağıdı tutmak için iki küçük ark parçası ekledim. Son olarak, step motor tekerleğini, kağıdı eski tekerlekten daha iyi hareket ettiren biraz daha büyük olanla değiştirdim.
Adım 6: Elektronik
Son olarak motorları Arduino'ya bağlayıp kodu yüklemeniz gerekiyor.
Servo motorla başlayacağız, kahverengi kabloyu (topraklama kablosu) GND pimine, ardından kırmızı kabloyu (güç kablosu) 5V pime ve turuncu kabloyu (sinyal kablosu) Dig #5'e bağlayacağız. toplu iğne. Ardından, step motor, 1N1'i Dig #11'e, 1N2'yi Dig #10'a, 1N3'ü Dig #9'a, 1N4'ü Dig #8'e, 5V'yi devre tahtasının pozitif tarafına ve topraklama pinini de Dig #11'e bağlayın. ekmek tahtası. Güç kaynağı modülünü devre tahtasına bağlamayı unutmayın, pozitif ve negatif taraflarının devre tahtasındaki karşılık gelen taraflarla doğru şekilde hizalandığından emin olun. Bunu yapmayı unutursanız, projenizin gücünü tersine çevirirsiniz ve bunu yapmak istemezsiniz.
Kod için, biri nokta yazmak, biri tire yazmak ve ikisi de her harf ve her kelime arasında boşluk bırakmak için dört yöntem yazdım. Böylece her harf için tekrar yazmak yerine bu yöntemleri ihtiyacım olduğunda çağırabiliyorum. Sonra metnin her harfini geçen bir for döngüsü yazdım ve yazdım, İçinde her harf için bir if ifadesi yazdım ama isterseniz switch deyiminde yazabilirsiniz. Tabii ki, programın sayıları okumasını sağlamak için koda ekleyebilirsiniz. Tüm kablolama hazır olduğunda, kodu kopyalayıp IDE'nize yapıştırmanız yeterlidir. Stepper, servo ve string kütüphanelerini kurmayı unutmayınız. Ondan sonra, gitmekte fayda var.
Nasıl çalışır
Arduino başladığında program metnin ilk harfine bakar ve hangisi olduğuna göre onu Mors koduyla yazan fonksiyonları çağırır. Örneğin, nokta işlevi çağrıldığında, servo motor kalemi aşağı hareket ettiren 160'a ayarlanır, ardından tekrar 90'a ayarlanır, bu da kalemi onlarla birlikte hareket ettirerek yayların geri gelmesini sağlar. Çizgi işlevi çağrılırsa, servo kalemi aşağı doğru hareket ettirir, ardından step motor kağıdı çeken tekerleği döndürür ve kalemin bir çizgi yazmasını sağlar. Ve boşluk işlevlerinden biri olarak adlandırılırsa, step motor döner, ancak kalem yukarı gelecek şekilde kağıdı çeker ve harfler veya kelimeler arasında boşluk bırakır. Bittiğinde bir sonraki harfe geçer ve aynı işlemi tekrarlar. Umarım beğenmişsindir;)
kod
#Dahil etmek
#include #include #include const int stepPerRevolution = 150; // Bu, step motor için değişkendir. String cümle = "*hello"; //Bu değişkeni farklı kelimeler yazacak şekilde değiştirin ama sadece küçük harflerle yazın ve kelimenize "*" ile başlayın Stepper myStepper(stepsPerRevolution, 8, 10, 9, 11); Servo myServo; // Robotun dot void dot() { Serial.println("dot start"); myServo.write(160); gecikme(1000); myServo.write(90); gecikme(1000); myStepper.step(stepsPerRevolution); gecikme(1000); Serial.println("nokta yapıldı"); } // Robotun tire void yazmasını sağlayan yöntem dash() { Serial.println("tire başlangıç"); myServo.write(160); gecikme(1000); myStepper.step(stepsPerRevolution); gecikme(1000); myServo.write(90); gecikme(1000); myStepper.step(stepsPerRevolution); gecikme(1000); Serial.println("çizgi bitti"); } // Robotun her harf arasında boşluk bırakmasını sağlayan yöntemdir void space() { Serial.println("space start"); myServo.write(90); gecikme(1000); adım adım(200); gecikme(1000); Serial.println("boşluk tamamlandı"); } // Bu, robotun her kelime arasında daha büyük bir boşluk bırakmasını sağlayan yöntemdir void bigSpace() { myServo.write(90); adım adım(250); gecikme(1000); } void setup() { // bir kez çalıştırmak için kurulum kodunuzu buraya koyun: Serial.begin(9600); myStepper.setSpeed(100); myServo.attach(5); int ilk = cümle.indexOf('*'); // bu for döngüsü, dizenin her harfini inceler ve sonra onu yazmak için doğru yöntemleri çağırır for (int i = 0; i < cümle.length(); i++) { if (sentence.charAt(first + i) == 'a') { Serial.print(".-"); nokta(); tire(); Uzay(); } else if (sentence.charAt(ilk + i) == 'b') { Serial.print("-… "); tire(); nokta(); nokta(); nokta(); Uzay(); } else if (sentence.charAt(ilk + i) == 'c') { Serial.print("-.-. "); tire(); nokta(); tire(); nokta(); Uzay(); } else if (sentence.charAt(ilk + i) == 'd') { Serial.print("-.. "); tire(); nokta(); nokta(); Uzay(); } else if (sentence.charAt(ilk + i) == 'e') { Serial.print(". "); nokta(); Uzay(); } else if (sentence.charAt(ilk + i) == 'f') { Serial.print("..-. "); nokta(); nokta(); tire(); nokta(); Uzay(); } else if (sentence.charAt(ilk + i) == 'g') { Serial.print("--. "); tire(); tire(); nokta(); Uzay(); } else if (sentence.charAt(ilk + i) == 'h') { Serial.print("…. "); nokta(); nokta(); nokta(); nokta(); Uzay(); } else if (sentence.charAt(ilk + i) == 'i') { Serial.print(".. "); nokta(); nokta(); Uzay(); } else if (sentence.charAt(ilk + i) == 'j') { Serial.print(".--- "); nokta(); tire(); tire(); tire(); Uzay(); } else if (sentence.charAt(ilk + i) == 'k') { Serial.print("-.- "); tire(); nokta(); tire(); Uzay(); } else if (sentence.charAt(ilk + i) == 'l') { Serial.print(".-.. "); nokta(); tire(); nokta(); nokta(); Uzay(); } else if (sentence.charAt(ilk + i) == 'm') { Serial.print("-- "); tire(); tire(); Uzay(); } else if (sentence.charAt(ilk + i) == 'n') { Serial.print("-. "); tire(); nokta(); Uzay(); } else if (sentence.charAt(ilk + i) == 'o') { Serial.print("--- "); tire(); tire(); tire(); Uzay(); } else if (sentence.charAt(ilk + i) == 'p') { Serial.print(".--. "); nokta(); tire(); tire(); nokta(); Uzay(); } else if (sentence.charAt(ilk + i) == 'q') { Serial.print("--.- "); tire(); tire(); nokta(); tire(); Uzay(); } else if (sentence.charAt(ilk + i) == 'r') { Serial.print(".-. "); nokta(); tire(); nokta(); Uzay(); } else if (sentence.charAt(ilk + i) == 's') { Serial.print("… "); nokta(); nokta(); nokta(); Uzay(); } else if (sentence.charAt(ilk + i) == 't') { Serial.print("- "); tire(); Uzay(); } else if (sentence.charAt(ilk + i) == 'u') { Serial.print("..- "); nokta(); nokta(); tire(); Uzay(); } else if (sentence.charAt(ilk + i) == 'v') { Serial.print("…- "); nokta(); nokta(); nokta(); tire(); Uzay(); } else if (sentence.charAt(ilk + i) == 'w') { Serial.print(".-- "); nokta(); tire(); tire(); Uzay(); } else if (sentence.charAt(ilk + i) == 'x') { Serial.print("-..- "); tire(); nokta(); nokta(); tire(); Uzay(); } else if (sentence.charAt(ilk + i) == 'y') { Serial.print("-.-- "); tire(); nokta(); tire(); tire(); Uzay(); } else if (sentence.charAt(ilk + i) == 'z') { Serial.print("--.. "); tire(); tire(); nokta(); nokta(); Uzay(); } else if (sentence.charAt(ilk + i) == ' ') { Serial.print("/ "); büyükSpace(); } } } void loop() { //Buraya bir şey yazmayın }
7. Adım: Sorun Giderme
tekerlek hareket etmiyor
Tekerlek ile kağıt arasında çok fazla sürtünme olabilir, tekerleği biraz yükseltmeyi veya değiştirmeyi deneyin.
Tekerlek kağıdı çeker ama sonra kağıdı çekmeden dönmeye devam eder
Tekerleği step motorun ortasına yapıştırdığınızdan emin olun.
Noktalar ve tireler birbirine bağlı
Nokta, tire ve boşluk işlevlerinin doğru yazılıp yazılmadığını kontrol edin, şöyle olmalıdır:
// Robotun dotvoid dot() { Serial.println("dot start"); myServo.write(160); gecikme(1000); myServo.write(90); gecikme(1000); myStepper.step(stepsPerRevolution); gecikme(1000); Serial.println("nokta yapıldı"); }
// Robotun tire yazmasını sağlayan yöntem budur.
void tire() { Serial.println("tire başlangıç"); myServo.write(160); gecikme(1000); myStepper.step(stepsPerRevolution); gecikme(1000); myServo.write(90); gecikme(1000); myStepper.step(stepsPerRevolution); gecikme(1000); Serial.println("çizgi bitti"); }
// Robotun her harf arasında boşluk bırakmasını sağlayan yöntemdir
void boşluk() { Serial.println("boşluk başlangıcı"); myServo.write(90); gecikme(1000); adım adım(200); gecikme(1000); Serial.println("boşluk tamamlandı"); }
Önerilen:
USB Arduino Mors Kodu Tuşu: 6 Adım
USB Arduino Mors Kodu Tuşu: Hiç mors kodu tuşu olan bir bilgisayarda yazmak veya mors kodunu öğrenmek/öğretmek istediniz mi? Doğru sayfadasınız! Diğer projelerim için calvin.sh web siteme göz atın
Arduino İle Mors Kodu Tercümanı Nasıl Yapılır: 10 Adım
Arduino İle Mors Kodu Tercümanı Nasıl Yapılır: Genel BakışKodlu bir şekilde iletişim kurmak, bu kadar büyüleyici olmasının yanı sıra, çeşitli alanlarda birçok uygulamaya sahiptir. En yaygın kod iletişim yöntemlerinden biri Mors kodudur. Bu eğitimde, göndermek ve yeniden göndermek için bir tercüman yapmayı öğreneceksiniz
Arduino Kullanarak Metne Mors Kodu: 5 Adım
Arduino Kullanarak Mors Kodundan Metne: IDEA Açıklama Hepimiz birbirimizle doğal Sensörlerimiz (dil, Jest…vb) aracılığıyla iletişim kurarız. Heyecan verici kısım, gizli bilgileri biriyle paylaşmak istediğinizde başlar. Soru Nasıl Yapılır? Yani cevap, i
Arduino Mors Kodu Verici: 11 Adım
Arduino Mors Kodu Verici: Bu talimatta, bir Mors Kodu vericisi oluşturmak için bir Arduino Uno kullanacak ve ilettiğiniz mesajları okumak için seri monitörü kullanacaksınız. İhtiyacınız olan parçalar: Arduino UnoBreadboardBuzzerButtonsJumper kabloları
Basit Braille Yazarı (Konuşmadan Braille'e): 8 Adım (Resimlerle)
Simple Braille Writer (Speech to Braille): Herkese merhaba, Tüm bunlar basit bir XY çiziciyi başarıyla tamamladıktan sonra başladı, braille metin dönüştürücüsüne basit bir konuşma geliştirmeyi düşündüm. İnternette aramaya başladım ve beklenmedik bir şekilde fiyatlar çok yüksekti. , bu beni güçlendirdi