
Mündəricat:
2025 Müəllif: John Day | [email protected]. Son dəyişdirildi: 2025-01-23 12:54



Hər hansı bir mətni Morze koduna çevirən və sonra yaza bilən bir robot hazırladım !! Karton və Legodan hazırlanmışdır və elektronika üçün Arduino və yalnız iki mühərrikdən istifadə etmişəm.
Təchizat
Arduino Uno lövhəsi Step motoru Mikro servo SG90ULN2003 step motor sürücüsü modulu Güc təchizatı modulu Çörək lövhəsi 4 × Atlama telləri 6 × Dişi-Kişi dupont telləri 9V1A Adaptor USB kabeli Karton 2 × Taxta dübeller 2 × Yaylar Saman Ağ kağız LegoSuper yapışqan İsti yapışqan tabancası Elastik bant (qələm tutacağı) Qayçı kəsici
Addım 1: Baza qurulması



Baza qurmağa başlayın. Mənim 4 enli və 20 dirək uzunluğundadır, bu uzunluqlarla bir təbəqə qurduqdan sonra, step motoru üçün yer buraxmaq üçün bir tərəfində bir boşluq qoyaraq ətrafına bir saplı geniş bir taxta qurdum, sonra əlavə etdim Kafel parçaları kağız şeridin olacağı orta hissəyə. Lego istifadə etmək çox möhkəm və dəyişdirilməsini asanlaşdırdı. Kağız rulonu etmək üçün 1,2 sm genişliyində A4 kağız zolaqları kəsdim (bu genişliyi istifadə etdiyim Lego təkəri ilə eyni olduğu üçün seçdim, təkərinizə görə özünüzü daha böyük və ya kiçik edə bilərsiniz) və uclarını bir -birinə yapışdırdım. çox uzun bir zolaq düzəltmək üçün onu təkərin ətrafına bükdüm.
Addım 2: Servo Parçası



Bu addım üçün sizə lazımdır:
- 4 sm uzunluğunda iki taxta dübel
- 2 sm uzunluğunda iki bulaq
- hər biri 2 sm uzunluğunda iki hissəyə kəsilmiş bir saman
- 12x4 sm ölçüdə bir ədəd karton
- 4 sm x 1,5 sm ölçüdə iki ədəd karton
- 4 sm x 2 sm ölçüdə karton
Əvvəlcə dübelləri 4 x 1,5 hissədən birinə yapışdırın, sonra yayları və samanları dübellərə daxil edin, sonra hər şeyi yerində saxlamaq üçün digər karton parçasını yapışdırın.
İkincisi, çubuqların üstünə 4 sm -dən 2 sm -ə qədər bir parça yapışdırın.
Üçüncüsü, bütün parçanı çevirin və ortasına deyil, bir az sola arxasına kiçik bir dübel yapışdırın. (İlk şəkildəki kiçik dübel əlavə etməyi unutmuşam)
Nəhayət, servo motorun ön hissəsindəki böyük kartondan bir delik kəsin və mühərriki yapışdırın, sonra dübellərlə düzəltdiyimiz parçanı böyük parçaya yapışdırın ki, servo hərəkət edərkən itələsin. kiçik dübel, bu da yayları aşağı itələyir.
12 sm -in alt hissəsindən təxminən 4 sm enində təxminən 3 sm kəsib, 4 sm -dən 1,5 sm -ə qədər daha iki parça yapışdırıb, sonra 5.5 sm -dən 4 sm -ə qədər kartonla örtdüm. elastik bir bant halqası və kiçik bir karton parçasına yapışdırdım, sonra servo başlayanda aşağıya doğru hərəkət edəcək 4 sm x 2 sm hissəyə yapışdırdım. Bu əlavələr, yaylar yuxarı qalxanda markerin bir tərəfdən digərinə hərəkət etməsini dayandırdı.
Addım 3: Servo Motoru və Kağız Rollunu bazaya əlavə edin


Servo parçasını dəstəkləmək üçün bazanın bir tərəfinə iki kərpic əlavə etdim və yerinə yapışdırdım, sonra çarxı bazanın ən ucuna əlavə etdim.
Addım 4: Stepper Motor Çərçivəsinin qurulması



Bu addım bir az çətin idi, çünki motor Lego ilə mükəmməl uyğunlaşmadı. Bununla birlikdə, mühərrikdəki iki çuxurdan istifadə edərək bunu yerinə gətirməyi bacardım. Sonra, Lego təkərini motorun ucuna yapışdırdım və sonra 1 -ci addımda açıq buraxdığım tərəfdəki əsasın yanına qoydum.
Addım 5: Toxunuşları bitirmək




Kağızı yerində düzəltmək üçün təkəri örtmək üçün iki qövs parçası əlavə etdim. Və iki kiçik qövs parçası əlavə etdim, biri step motorunun tellərini tutmaq üçün, digəri də kağızı tutmaq üçün. Nəhayət, step motor təkərini kağızı köhnə təkərdən daha yaxşı hərəkət etdirən bir qədər böyük bir təkərə dəyişdim.
Addım 6: Elektronika


Nəhayət, mühərrikləri Arduinoya bağlamalı və kodu yükləməlisiniz.
Servo mühərriki ilə başlayacağıq, qəhvəyi teli (torpaq telini) GND pininə, sonra qırmızı teli (elektrik telini) 5V pininə və narıncı teli (siqnal teli) Dig #5 -ə bağlayacağıq. pin. Daha sonra, step motoru, 1N1 -i 11 -ci, 1N2 -ni 10 -cu, 1N3 -ü 9 -cu, 1N4 -ü 8 -ci, 5V -ni çörək bişirmənin müsbət tərəfinə və torpaq pinini mənfi tərəfə bağlayın. çörək taxtası. Elektrik təchizatı modulunu çörək taxtasına bağlamağı unutmayın ki, onun müsbət və mənfi tərəfləri çörək taxtasının müvafiq tərəflərinə düzgün uyğun olsun. Bunu unutmusunuzsa, layihənizin gücünü geri çevirəcəksiniz və bunu etmək istəmirsiniz.
Kod üçün biri nöqtə yazmaq, biri tire yazmaq və hər hərflə hər söz arasında boşluq buraxmaq üçün dörd üsul yazdım. Bu şəkildə, hər hərf üçün yenidən yazmaq əvəzinə ehtiyacım olanda bu üsulları çağıra bilərəm. Sonra mətnin hər bir hərfindən keçən və yazan for for loop yazdım, İçərisində hər hərf üçün if ifadəsi yazdım, amma istəsəniz onu switch ifadəsində yaza bilərsiniz. Əlbəttə ki, proqramı nömrələri oxumaq üçün kodu əlavə edə bilərsiniz. Bütün naqillər hazır olduqda, kodu kopyalayıb IDE -yə yapışdırın. Step, servo və simli kitabxanaları quraşdırmağı unutmayın. Bundan sonra getməyiniz yaxşıdır.
Bu necə işləyir
Arduino başladıqda proqram mətnin ilk hərfinə baxır. Hansından asılı olaraq onu Morse kodunda yazan funksiyaları çağırır. Məsələn, nöqtə funksiyası çağırıldığında, servo motoru qələmi aşağıya doğru hərəkət etdirən 160 -a, sonra da qələmi özləri ilə hərəkət etdirərək yayların geri qayıtmasına imkan verən 90 -a geri qoyulur. Və tire funksiyası çağırılırsa, servo qələmi aşağıya doğru hərəkət etdirir, sonra step motoru qələmi tire yazan kağızı çəkən təkəri döndərir. Kosmik funksiyalardan birinə step motoru deyilir, ancaq qələmi yuxarı qaldıraraq kağızı çəkərək hərflər və ya sözlər arasında boşluq yaradır. İş bitdikdə, növbəti hərfə keçir və eyni prosesi təkrarlayır. Ümid edirəm bəyəndiniz;)
Kod
#daxil edin
#include #include #include const int stepsPerRevolution = 150; // Bu, step motor üçün dəyişən String cümlə = "*salam"; // Bu dəyişəni fərqli sözlər yazmaq üçün dəyişdirin, ancaq kiçik hərflərlə yazın və sözünüzə "*" Stepper myStepper ilə başlayın (stepsPerRevolution, 8, 10, 9, 11); Servo myServo; // Robotu nöqtə boş bir nöqtə () {Serial.println ("nöqtə başlanğıcı") yazmağa məcbur edən üsul budur; myServo.write (160); gecikmə (1000); myServo.write (90); gecikmə (1000); myStepper.step (stepsPerRevolution); gecikmə (1000); Serial.println ("nöqtə tamamlandı"); } // Bu, robotu tire boşluğuna tire yazmağa vadar edən metoddur () {Serial.println ("tire start"); myServo.write (160); gecikmə (1000); myStepper.step (stepsPerRevolution); gecikmə (1000); myServo.write (90); gecikmə (1000); myStepper.step (stepsPerRevolution); gecikmə (1000); Serial.println ("tire tamamlandı"); } // Bu, robotu hər bir hərf arasında boşluq buraxan metoddur () {Serial.println ("space start"); myServo.write (90); gecikmə (1000); myStepper.step (200); gecikmə (1000); Serial.println ("yer tamamlandı"); } // Bu, robotun hər bir söz arasında daha böyük bir boşluq buraxmasına səbəb olan BigSpace () {myServo.write (90); myStepper.step (250); gecikmə (1000); } void setup () {// bir dəfə işlətmək üçün quraşdırma kodunuzu bura qoyun: Serial.begin (9600); myStepper.setSpeed (100); myServo.attach (5); int ilk = cümlə.indexOf ('*'); // bu loop üçün sətrin hər bir hərfindən keçir və sonra onu yazmaq üçün doğru üsulları çağırır (int i = 0; i <cümlə.length (); i ++) {if (cümlə.charAt (birinci+i)) == 'a') {Serial.print (".-"); nöqtə (); tire (); boşluq (); } başqa əgər (cümlə.charAt (birinci + i) == 'b') {Serial.print ("-…"); tire (); nöqtə (); nöqtə (); nöqtə (); boşluq (); } başqa əgər (cümlə.charAt (birinci + i) == 'c') {Serial.print ("-.-."); tire (); nöqtə (); tire (); nöqtə (); boşluq (); } başqa if (cümlə.charAt (birinci + i) == 'd') {Serial.print ("-.."); tire (); nöqtə (); nöqtə (); boşluq (); } başqa if (cümlə.charAt (ilk + i) == 'e') {Serial.print ("."); nöqtə (); boşluq (); } başqa əgər (cümlə.charAt (birinci + i) == 'f') {Serial.print ("..-."); nöqtə (); nöqtə (); tire (); nöqtə (); boşluq (); } başqa əgər (cümlə.charAt (ilk + i) == 'g') {Serial.print ("-."); tire (); tire (); nöqtə (); boşluq (); } başqa if (cümlə.charAt (birinci + i) == 'h') {Serial.print ("…."); nöqtə (); nöqtə (); nöqtə (); nöqtə (); boşluq (); } başqa if (cümlə.charAt (ilk + i) == 'i') {Serial.print (".."); nöqtə (); nöqtə (); boşluq (); } başqa əgər (cümlə.charAt (birinci + i) == 'j') {Serial.print (".---"); nöqtə (); tire (); tire (); tire (); boşluq (); } başqa əgər (cümlə.charAt (ilk + i) == 'k') {Serial.print ("-.-"); tire (); nöqtə (); tire (); boşluq (); } başqa əgər (cümlə.charAt (ilk + i) == 'l') {Serial.print (".-.."); nöqtə (); tire (); nöqtə (); nöqtə (); boşluq (); } başqa if (cümlə.charAt (ilk + i) == 'm') {Serial.print ("-"); tire (); tire (); boşluq (); } başqa if (cümlə.charAt (ilk + i) == 'n') {Serial.print ("-."); tire (); nöqtə (); boşluq (); } başqa əgər (cümlə.charAt (birinci + i) == 'o') {Serial.print ("---"); tire (); tire (); tire (); boşluq (); } başqa if (cümlə.charAt (birinci + i) == 'p') {Serial.print (".--."); nöqtə (); tire (); tire (); nöqtə (); boşluq (); } başqa əgər (cümlə.charAt (birinci + i) == 'q') {Serial.print ("--.-"); tire (); tire (); nöqtə (); tire (); boşluq (); } başqa if (cümlə.charAt (ilk + i) == 'r') {Serial.print (".-."); nöqtə (); tire (); nöqtə (); boşluq (); } başqa əgər (cümlə.charAt (ilk + i) == 's) {Serial.print ("…"); nöqtə (); nöqtə (); nöqtə (); boşluq (); } başqa əgər (cümlə.charAt (birinci + i) == 't') {Serial.print ("-"); tire (); boşluq (); } başqa əgər (cümlə.charAt (birinci + i) == 'u') {Serial.print ("..-"); nöqtə (); nöqtə (); tire (); boşluq (); } başqa əgər (cümlə.charAt (birinci + i) == 'v') {Serial.print ("…-"); nöqtə (); nöqtə (); nöqtə (); tire (); boşluq (); } başqa əgər (cümlə.charAt (birinci + i) == 'w') {Serial.print (".--"); nöqtə (); tire (); tire (); boşluq (); } başqa əgər (cümlə.charAt (birinci + i) == 'x') {Serial.print ("-..-"); tire (); nöqtə (); nöqtə (); tire (); boşluq (); } başqa əgər (cümlə.charAt (birinci + i) == 'y') {Serial.print ("-.--"); tire (); nöqtə (); tire (); tire (); boşluq (); } başqa if (cümlə.charAt (birinci + i) == 'z') {Serial.print ("-.."); tire (); tire (); nöqtə (); nöqtə (); boşluq (); } başqa if (cümlə.charAt (ilk + i) == '') {Serial.print ("/"); bigSpace (); }}} void loop () {// Burda heç nə yazmayın}
Addım 7: Problemlərin aradan qaldırılması
Təkər hərəkət etmir
Təkərlə kağız arasında çox sürtünmə ola bilər, təkəri bir qədər qaldırmağa və ya dəyişdirməyə çalışın.
Təkər kağızı çəkir, amma sonra kağızı çəkmədən fırlanmağa davam edir
Çarxı step motorunun ortasına yapışdırdığınızdan əmin olun
Nöqtələr və tire bir -birinə bağlıdır
Nöqtə, tire və boşluq funksiyalarının düzgün yazıldığını yoxlayın, bunlar belə olmalıdır:
// Robotu dotvoid dot () {Serial.println ("nöqtəli başlanğıc") yazmağa məcbur edən üsul budur; myServo.write (160); gecikmə (1000); myServo.write (90); gecikmə (1000); myStepper.step (stepsPerRevolution); gecikmə (1000); Serial.println ("nöqtə tamamlandı"); }
// Robotu tire yazmağa məcbur edən üsul budur
boş xətt () {Serial.println ("tire start"); myServo.write (160); gecikmə (1000); myStepper.step (stepsPerRevolution); gecikmə (1000); myServo.write (90); gecikmə (1000); myStepper.step (stepsPerRevolution); gecikmə (1000); Serial.println ("tire tamamlandı"); }
// Robotu hər hərf arasında boşluq buraxan üsul budur
boş boşluq () {Serial.println ("boşluq başlanğıcı"); myServo.write (90); gecikmə (1000); myStepper.step (200); gecikmə (1000); Serial.println ("yer tamamlandı"); }
Tövsiyə:
Arduino Kod Nümunələrini Yandırın: 6 Addım (Şəkillərlə birlikdə)

Arduino Kod Nümunələrini Yandırın: Bu dərslik, işləyən bir layihə prototipi yaratmaq üçün Arduino nümunə eskizlərini birləşdirmə prosesindən keçir. Layihəniz üçün kodu inkişaf etdirmək ən qorxuducu hissə ola bilər, xüsusən də bunu hələ min dəfə etməmisinizsə
Yaddaş yazan - Milad Hədiyyəsi: 8 addım (şəkillərlə)

Memory Recorder - Milad Hədiyyəsi: Ciao a tutti! Xüsusi xüsusiyyətlərə görə, Natali ən yaxşı vəziyyətdədir. Müqavilənin bütün mərhələlərində çətinliklər var
Voicetron - Səs Yazan Oyuncaq: 40 Addım (Şəkillərlə birlikdə)

Voicetron - Səs Yazma Oyuncağı: Bu cihaz, uşaqlarının oynaması üçün sadə bir səs yazıcı etmək və ya bəzək olaraq Geocaching və ya qaçış otaqlarında istifadə etmək istəyən hər kəs üçün zövq və ilham üçün yaradılmışdır. Çoxlu imkanlar var. Buna görə də gələk
Roman (-ish) Yazan AI: 5 addım

Roman (-ish) Yazan AI: Milli Roman Yazma Ayı üçün bir AI & Noyabrın 30 günü ərzində birgə roman yazmağa çalışıram. Uğurlar diləyin, ehtimal ki, ehtiyacımız olacaq
Arduino Yún Morse Generator: 4 addım (şəkillərlə birlikdə)

Arduino Yún Morse Generator: Heç musiqi çox yüksək olduğu üçün dostunuzla danışa bilmədiyiniz bir barda olmusunuzmu? Yaxşı, indi ondan Mors Kodunda bir pivə istəyə bilərsiniz! Gəlin başlayaq