Mündəricat:
- Addım 1: Avadanlıq
- Addım 2: Kalibrləmə
- Addım 3: Montaj
- Addım 4: Blynk
- Addım 5: Proqram təminatı
- Addım 6: Gələcək addımlar
Video: PlotClock, WeMos və Blynk Vintage AMI Jukebox oynayır: 6 addım (şəkillərlə)
2024 Müəllif: John Day | [email protected]. Son dəyişdirildi: 2024-01-30 07:43
Dörd texniki yenilik bu layihəni mümkün etdi: 1977 Rowe AMI Jukebox, PlotClock robot qol dəsti, WeMos/ESP 8266 mikro nəzarətçi və Blynk App/Bulud xidməti.
Qeyd: Əlinizdə Jukebox yoxdursa - oxumağı dayandırmayın! Bu layihə insan barmaqları ilə idarə olunan müxtəlif şeyləri idarə etmək üçün asanlıqla qəbul edilə bilər. Bir nümunə, ənənəvi Xylophone oynayan bir robot barmağı ola bilər - bəlkə də bu təlimat səndən gəlir!
Mənim 40 yaşımdakı Rowe AMI R-81 Jukebox hələ də 60-70-80-ci illərin vintage vinil singlelarını yaxşı ifa edir. 160 kq (360 lbs) ağırlığında olan bu oyunçu, müasir mp-oyunçular qədər portativ deyil, ancaq internet dövründə yaşadığınız üçün indi cibinizdə jukebox və 200 vinil qeyd aparmaq mümkündür-faktiki olaraq! Və hətta mikrokontrolördə saxlanılan öz siyahılarınızı da istifadə edə bilərsiniz!
Amazing PlotClock robotu, əvvəlcə silinə bilən lövhədə vaxt rəqəmlərini çəkərək cari vaxtı göstərmək üçün hazırlanmışdır. PlotClock üçün uyğunluğum, Jukebox mahnı seçim düymələrini basmaq üçün robot barmağı kimi istifadə etməkdir.
Plotclock "barmağı" WeMos mikro nəzarətçisi tərəfindən idarə olunan 3 servo ilə idarə olunur. Bu möcüzə parçası (demək olar ki) Arduino Uno ilə uyğundur və WiFi imkanlarına malikdir, buna görə də dünyanın istənilən yerindən musiqi qutusunu simsiz idarə etmək mümkündür.
Tortun üzərindəki krem, inanılmaz asan Blynk Tətbiqindən və Blynk Bulud Serverindən, tam mobilliyə malik gözəl bir mobil telefon/planşet istifadəçi interfeysi verir.
Addım 1: Avadanlıq
Jukebox
Project jukebox 1977 Rowe AMI R-81-dir. Seçim düymələri olan hər hansı bir köhnə musiqi qutusu edəcək - PlotClock tərəfindən bir sıra məhdudiyyətlər qoyulacaq: PlotClock -un orijinal silah dizaynı təxminən 5 x 12 sm sahəni əhatə edə bilər, buna görə də jukebox düyməsinin düzeni (bütün seçim düymələri daxil olmaqla) bu ölçüdə olmalıdır. Köhnə musiqi qutularının düymələri, PlotClock servolarının təmin edə biləcəyindən daha çox itələyici gücə ehtiyac duya bilər.
AMI R-81, 200 seçimin hamısını saxlaya biləcəyi bir yaddaşa malikdir. Seçimlər, seçildikləri sıraya görə deyil, qeyd jurnalında (karusel növü) saxlandıqları sıraya görə oynanılır. Bir qeyd üçün birdən çox seçim yalnız bir dəfə səslənir.
PlotClock
Plotclock, mexaniki hissələr, 3 servo, Arduino Uno R3, Arduino Uzatma lövhəsi və USB kabeli daxil olmaqla satışda olan DIY dəstidir. Təxminən 30 USD üçün bu yaxşı bir alışdır (məsələn. Banggood.com). Bu layihə üçün Arduino, uzatma lövhəsi və USB kabeli istifadə edilmir.
Plotclock yazmaq üçün bir neçə yaxşı internet/YouTube dərsləri var - məsələn. bu: PlotClock təlimatları
static1.squarespace.com/static/52cb189ee4b012ff9269fa8e/t/5526946be4b0ed8e0b3cd296/1428591723698/plotclock_final_instructions.pdf
WeMos
WeMos D1 R2, ESP8266 əsaslı mikro nəzarətçidir. Arduino IDE istifadə edərək proqramlaşdırıla bilər və WiFi imkanlarına malikdir, buna görə də bu layihə üçün mükəmməl bir hardware parçasıdır.
Addım 2: Kalibrləmə
Kalibrləmə, seçim düymələrinin fiziki mövqelərinə uyğun olaraq servo açılar üçün dəqiq açı dəyərlərini (0 ilə 180 dərəcə arasında) tapmaq vəzifəsidir. Açı dəyərləri trigonometry arithemitics və ya CAD proqramı istifadə edərək tapıla bilər. AutoCad istifadə etməyi bilən dostumdan təxminən dəyərlər aldım.
Ancaq son kalibrləmə sınaq və səhvlə edilməli idi. Kağız üzərində çəkilmiş düymə sxemindən istifadə edərək düzgün açı dəyərlərini tapmaq üçün "masa üstü testi" etmək mümkündür.
Addım 3: Montaj
Kablolama
Plotclock servolarından Wemos -a keçid 5 tel ilə aparılır: +5, GND, D4, D5 və D6. Şəkillər və koddakı detallara baxın.
Jukebox -a quraşdırılır
40 ildir ki, böyük ziyan görmədən sağ qalan Jukebox -a heç bir vida dəliyi açmaq istəmirdim. Yumşaq kauçuk mastik istifadə edərək Jukebox konsolunun altından bir parça alüminium bucaq düzəltdim. Kauçuk mastik sıx tutur və heç bir iz buraxmadan çıxarıla bilər. PlotClock gövdəsinin akril lövhəyə yerləşdirilməsinə kömək etmək üçün iki kiçik alüminium açıya ehtiyac var idi. Akril lövhə daha sonra şaquli və üfüqi olaraq son düzəlişlər etmək imkanı verən iki yaylı kliplə bucaq siyahısına yerləşdirilir.
Addım 4: Blynk
Blynk, bir neçə növ mikro nəzarətçini uzaqdan idarə etmək üçün pulsuz bir tətbiqdir. Blynk ilə asanlıqla bir neçə növ widget istifadə edərək gözəl bir istifadəçi interfeysi qura bilərsiniz. Bu layihə üçün yalnız bir widget lazımdır: Table widget.
Addım 5: Proqram təminatı
Blynk Tətbiqi
Tətbiq tərəfində kodlaşdırma yoxdur. Tətbiq (Blynk) və mikro nəzarətçi (WeMos) arasındakı "söhbət" əslində bu ikisi arasında məlumat göndərmək və almaq üçün kanal olan "Virtual pinlər" tərəfindən idarə olunur. Virtual pin, məsələn, Blynk tətbiqindən seçilmiş mahnının sıra nömrəsini WeMos -a göndərmək üçün istifadə olunur və qalanları Wemos idarə edir, yəni. Plotclock servolarına əmr göndərmək.
WeMos kodu
/**************************************************************
V2 -də masa vidceti ******************************************** ****************/ #define BLYNK_PRINT Serial #include #include #include char auth = "-SİZİN AUTO KODUNUZ--"; // Jukebox layihəsi char ssid = "-SİZİN SSID-"; char pass = "--SİZİN WIFI ŞİFRİNİZ--"; int c [50]; // Jukebox rekord mövqeləri üçün dizi (100-299) Servo myservo1; // Servo myservo2 qaldırmaq; // sol qol Servo myservo3; // sağ qol int pos1 = 0; int pos2 = 0; int pos3 = 0; int btn = 0; void setup () {myservo1.attach (2); // pin D4, lift myservo2.attach (14); // pin D5, sol myservo3.attach (12); // pin D6, sağ myservo1.write (140); myservo2.write (90); myservo3.write (90); Serial.begin (115200); Blynk.begin (auth, ssid, pass); // Başlanğıcda dərhal bildirin // String msg = "Jukebox WeMos bağlı:"; //Blynk.notify(msg + ssid); // aydın masa Blynk.virtualWrite (V2, "clr"); populateTable (); } BLYNK_WRITE (V2) // Cədvəl vidjetindən V2 əmrləri alın {String cmd = param [0].asStr (); // param [0] = "seçin" və ya "seçimi ləğv et", param [1] = sıra Serial.print ("\ nTable: BLYNK_WRITE (V2) cmd:"); Serial çapı (cmd); int seçimi = c [param [1].asInt ()]; // Seçilmiş sıra nömrəsi paramdadır [1] Serial.println ("\ nSeçim:"); Serial.println (seçim); proses_ seçimi (seçim); } void populateTable () {int i = 0; Serial.println ("Doldurma masası …"); Blynk.virtualWrite (V2, "əlavə et", 0, "Mənim Körpəm ol - Üstünlər", 112); c = 112; Blynk.virtualWrite (V2, "əlavə et", 1, "Bir nömrəli - Jerry Williams", 176); i ++; c = 176; Blynk.virtualWrite (V2, "add", 2, "All My Loving - The Beatles", 184); i ++; c = 184; Blynk.virtualWrite (V2, "əlavə et", 3, "Yazda - Mungo Jerry", 236); i ++; c = 236; Blynk.virtualWrite (V2, "əlavə et", 4, "Qara Bulud - Dolğun Checker", 155); i ++; c = 155; Blynk.virtualWrite (V2, "əlavə et", 5, "Mamy Blue - Pop -Tops", 260); i ++; c = 260; Blynk.virtualWrite (V2, "əlavə et", 6, "Yaxşı olacaq - Gerry və Kardiostimulyatorlar", 145); i ++; c = 145; Blynk.virtualWrite (V2, "əlavə et", 7, "Mənim Yolum - Tom Jones", 193); i ++; c = 193; Blynk.virtualWrite (V2, "əlavə et", 8, "San Bernadino - Christie", 149); i ++; c = 149; Blynk.virtualWrite (V2, "add", 9, "The Twist - Chubby Checker", 169); i ++; c = 169;
gecikmə (1000);
} void process_selection (int selection) {// 3 rəqəmli seçimi (məsələn. 178) 3 düyməyə ayırın: int btn1 = int (seçim/100); // ilk düymə Serial.println ("\ nBtn1:"); Serial.println (btn1); əgər (btn1 == 1 || btn1 == 2) // ilk düymə 1 və ya 2 olmalıdır - əks halda sıfırlama {push_button (btn1); seçim = seçim - (btn1 * 100); int btn2 = int (seçim/10); // ikinci düymə Serial.println ("\ nBtn2:"); Serial.println (btn2); push_button (btn2); seçim = seçim - (btn2 * 10); int btn3 = int (seçim); // üçüncü düymə Serial.println ("\ nBtn3:"); Serial.println (btn3); push_button (btn3); } başqa {push_button (11); // sıfırlama düyməsi} // hamısı gecikdikdə servo mövqelərini sıfırlayın (2000); myservo1.write (140); myservo2.write (90); myservo3.write (90);} void push_button (int btn) {// buna hər seçim üçün 3 dəfə deyilir // faktiki düyməyə basmaq hər düymədən sonra edilir ('faktiki düyməni bas') açarı (btn) {hal 1: set_servo_angles (134, 136); // 1 fasilə; hal 2: set_servo_angles (128, 110); // 2 fasilə; hal 3: set_servo_angles (112, 88); // 3 fasilə; hal 4: set_servo_angles (89, 68); // 4 fasilə; hal 5: set_servo_angles (62, 55); // 5 fasilə; hal 6: set_servo_angles (172, 131); // 6 fasilə; hal 7: set_servo_angles (163, 106); // 7 fasilə; hal 8: set_servo_angles (140, 83); // 8 fasilə; hal 9: set_servo_angles (104, 58); // 9 fasilə; hal 0: set_servo_angles (75, 36); // 0 fasilə; hal 11: set_servo_angles (36, 30); // 11 fasilə; } // son keçid} boş_tut_servo_angles (int pos2, int pos3) {myservo2.write (pos2); myservo3.write (pos3); // Servo mövqeləri hazırdır - faktiki düyməni basdırın: gecikmə (500); myservo1.write (60); // aşağı gecikmə (500); myservo1.write (140); // gecikmə (500); } boşluq döngəsi () {Blynk.run (); }
Addım 6: Gələcək addımlar
Video widget - Blynk Tətbiqinə canlı video və audio axını (artıq sınaqdan keçirilmişdir - işləyir)
Webhook vidceti - buluddan tələb olunan yükləmə siyahısı (artıq sınaqdan keçirilib - işləyir)
Cədvəl vidceti - widgetda bəzi kiçik təkmilləşdirmələr xoşdur (təkliflər Blynk inkişaf etdiricilərinə göndərilir)
Tövsiyə:
Cara Menggunakan Wemos D1 R1/ Wemos D1 Mini/ NodeMCU: 7 addım
Cara Menggunakan Wemos D1 R1/ Wemos D1 Mini/ NodeMCU: Təlimat dərsləri, proqramlar və proqramlar, Wi -Fi ESP8266 və ya digər cihazlardan istifadə etməklə bir araya gətirilə bilər (Əlaqə: 1 Dəqiqə) ) dengan menggunakan aplikasi
Wemos D1 ESP8266, Arduino IDE və Blynk Tətbiqindən istifadə edərək Wi-Fi İdarə Edilən Robot: 11 Addım (Şəkillərlə birlikdə)
Wemos D1 ESP8266, Arduino IDE və Blynk Tətbiqindən istifadə edərək Wi-Fi İdarə Edilən Robot: Bu təlimatda sizə Blynk Tətbiqi istifadə edərək bir ağıllı telefondan idarə olunan Wi-Fi idarə olunan robot tankının necə hazırlanacağını göstərəcəyəm. Bu layihədə bir ESP8266 Wemos D1 lövhəsi istifadə edildi, lakin digər boşqab modelləri də istifadə edilə bilər (NodeMCU, Firebeetle və s.) Və pr
Blynk Tətbiqinə İstilik və Rütubət Göndərin (Wemos D1 Mini Pro) .: 15 Addım (Şəkillərlə birlikdə)
Blynk Tətbiqinə (Wemos D1 Mini Pro) İstilik və Rütubət Göndərin: Bu Təlimat, Blynk APP -ə datanı (Temperatur və Rütubət) göndərmək üçün Wemos D1 Mini Pro -nun istifadəsinə baxır
Yanıp sönən AMI BIOS üçün Bootable UFD yaradın: 12 addım
Yanıp sönən AMI BIOS üçün Önyüklenebilir UFD yaradın: Həm noutbuk, həm də masaüstü kompüterlər bəzən BIOS yeniləmələri tələb edir. Bir satıcının veb saytına (ya PC mfgr ya da BIOS istehsalçısı) daxil olaraq istədiyiniz xüsusiyyətlərə malik yeni bir BIOS kəşf etdiyinizdə və ya təkmilləşdirmələrdə yeni bir BIOS tələb olunduqda, bütün məlumatları qoymağın vaxtı gəldi
Blynk Bildirişləri ilə Hərəkət Detektoru (WeMos D1 Mini + HC-SR04): 4 addım (şəkillərlə)
Blynk Bildirişləri ilə Hərəkət Detektoru (WeMos D1 Mini + HC-SR04): Zəhmət olmasa Simsiz Müsabiqədə bu layihəyə SƏS VERİN. Təşəkkür edirik! 2 nömrəli yeniləmə - Bir neçə düzəliş (versiya 2.2), sensoru (aralığı və adı) dəqiq tərifdə qura bilərsiniz. Ayrıca, bəzən sensorun səhv dəyərləri oxuduğu və bildiriş göndərdiyi də olurdu