
Spisu treści:
2025 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2025-01-23 15:02


Cztery innowacje techniczne umożliwiły realizację tego projektu: 1977 Rowe AMI Jukebox, zestaw ramienia robota PlotClock, mikrokontroler WeMos/ESP 8266 i usługa Blynk App/Cloud.
UWAGA: Jeśli nie masz pod ręką Jukebox – nie przestawaj czytać! Ten projekt można łatwo zaadaptować do sterowania różnymi rzeczami sterowanymi ludzkimi palcami. Jednym z przykładów może być palec robota grający na tradycyjnym ksylofonie – może ta instrukcja pochodzi od ciebie!
Mój 40-letni Rowe AMI R-81 Jukebox wciąż działa dobrze, grając stare winylowe single z lat 60-tych, 70-tych i 80-tych. Ważący ponad 160 kg (360 funtów) odtwarzacz nie jest tak przenośny jak współczesne odtwarzacze mp, ale żyjąc w erze Internetu, teraz można nosić szafę grającą i 200 płyt winylowych w kieszeni – praktycznie oczywiście! Możesz nawet korzystać z własnych list odtwarzania zapisanych w mikrokontrolerze!
Niesamowity robot PlotClock został pierwotnie zaprojektowany do wyświetlania aktualnego czasu poprzez rysowanie cyfr czasu na wymazywalnej tablicy. Moja adaptacja do PlotClock polega na użyciu go jako palca robota do naciskania przycisków wyboru utworów Jukebox.
„Palec” plotera jest napędzany przez 3 serwa sterowane przez mikrokontroler WeMos. To cudo jest (prawie) zgodne z Arduino Uno i ma możliwości Wi-Fi, dzięki czemu możliwe jest bezprzewodowe sterowanie szafą grającą z dowolnego miejsca na świecie.
Krem na torcie pochodzi z niesamowicie łatwej w użyciu aplikacji Blynk i serwera Blynk Cloud Server, który zapewnia przyjemny interfejs użytkownika telefonu komórkowego / tabletu z pełną mobilnością.
Krok 1: Sprzęt


Szafa grająca
Szafa grająca projektu to 1977 Rowe AMI R-81. Każda stara szafa grająca z przyciskami wyboru będzie wystarczająca – zwracając uwagę na kilka ograniczeń PlotClock: Oryginalny projekt ramion PlotClock może obejmować obszar około 5 x 12 cm, więc układ przycisków szafy grającej (obszar zawierający wszystkie przyciski wyboru) musi mieć mniej więcej ten rozmiar. Przyciski starszych szaf grających mogą wymagać większej siły nacisku niż serwa PlotClock.
AMI R-81 posiada pamięć, w której może przechowywać wszystkie 200 wyborów. Selekcje są odtwarzane na podstawie kolejności, w jakiej są przechowywane w magazynie płyt (typ karuzeli), a nie na podstawie kolejności, w jakiej są wybierane. Wielokrotne wybory dla jednego rekordu są odtwarzane tylko raz.
Zegar wydruku
Plotclock jest dostępnym na rynku zestawem DIY zawierającym części mechaniczne, 3 serwa, Arduino Uno R3, kartę rozszerzeń Arduino i kabel USB. Za około 30 USD to dobry zakup (np. Banggood.com). Arduino, płytka rozszerzeń i kabel USB nie są używane w tym projekcie.
Istnieje kilka dobrych samouczków internetowych/YouTube dotyczących tworzenia Zegara plotowego – np. to: instrukcje PlotClock
static1.squarespace.com/static/52cb189ee4b012ff9269fa8e/t/5526946be4b0ed8e0b3cd296/1428591723698/plotclock_final_instructions.pdf
WeMos
WeMos D1 R2 to mikrokontroler oparty na ESP8266. Można go zaprogramować za pomocą Arduino IDE i ma możliwości Wi-Fi, więc jest idealnym sprzętem do tego projektu.
Krok 2: Kalibracja

Kalibracja to zadanie polegające na znalezieniu dokładnych wartości kątów dla kątów serwomechanizmu (od 0 do 180 stopni) odpowiadających fizycznym położeniom przycisków wyboru. Wartości kątów można znaleźć za pomocą arytmetyki trygonometrii lub przy użyciu oprogramowania CAD. Otrzymałem przybliżone wartości od mojego przyjaciela, który wiedział, jak korzystać z AutoCad.
Jednak ostateczna kalibracja musiała zostać wykonana metodą prób i błędów. Korzystanie z układu przycisków narysowanego na kartce papieru Możliwe jest wykonanie „testu pulpitu” w celu znalezienia prawidłowych wartości kątów.
Krok 3: Montaż




Okablowanie
Połączenie z serw Plotclock do Wemos odbywa się za pomocą 5 przewodów: +5, GND, D4, D5 i D6. Zobacz szczegóły na zdjęciach i kodzie.
Instalacja na Jukebox
Nie chciałem robić otworów na śruby w 40-letniej szafie grającej, która tak długo przetrwała bez większych uszkodzeń. Za pomocą miękkiej gumy uszczelniającej zamocowałem kawałek aluminiowego kątownika pod konsolą szafy grającej. Uszczelniacz gumowy mocno trzyma i można go usunąć bez pozostawiania śladów. Korpus PlotClock potrzebował dwóch małych aluminiowych kątowników, aby pomóc w dopasowaniu go do akrylowej płyty. Akrylowa płyta jest następnie mocowana do listwy kątowej za pomocą dwóch sprężynowych klipsów, co daje możliwość ostatecznej regulacji w pionie i poziomie.
Krok 4: Blynk

Blynk to darmowa aplikacja do zdalnego sterowania kilkoma rodzajami mikrokontrolerów. Dzięki Blynk możesz łatwo zbudować ładny interfejs użytkownika, korzystając z kilku rodzajów widżetów. W tym projekcie potrzebny jest tylko jeden widżet: widżet Tabela.
Krok 5: Oprogramowanie
Aplikacja Blynk
Po stronie aplikacji nie ma kodowania. „Rozmowa” między aplikacją (Blynk) a mikrokontrolerem (WeMos) jest obsługiwana przez „wirtualne szpilki”, które zasadniczo są kanałami do wysyłania i odbierania informacji między tymi dwoma. Wirtualny pin służy na przykład do wysyłania numeru wiersza wybranego utworu z aplikacji Blynk do WeMos, a Wemos obsługuje resztę, tj. wysyłanie poleceń do serw Plotclock.
Kod WeMos
/**************************************************************
Widżet tabeli w wersji 2 ********************************************* ****************/ #define BLYNK_PRINT Serial #include #include #include char auth = "--TWÓJ KOD UWIERZYTELNIANIA--"; //Jukebox project char ssid = "--TWÓJ SSID--"; char pass = "--TWOJE HASŁO WIFI--"; wewn c[50]; //Tablica dla pozycji rekordów Jukebox (100-299) Servo myservo1; //podnoszenie Servo myservo2; //lewe ramię Servo myservo3; //prawe ramię int poz1 = 0; int poz2 = 0; int poz3 = 0; int btn=0; void setup() { myservo1.attach(2); // pin D4, podnieś myservo2.attach(14); // pin D5, lewy myservo3.attach(12); // pin D6, prawy myservo1.write(140); myservo2.write(90); myservo3.write(90); Serial.początek(115200); Blynk.begin(auth, ssid, pass); // Powiadom natychmiast po uruchomieniu //String msg = "Jukebox WeMos podłączony do: "; //Blynk.notify(msg + ssid); //wyczyść tabelę przy starcie Blynk.virtualWrite(V2, "clr"); zapełnijTabelę(); } BLYNK_WRITE(V2) //Odbierz polecenia z widżetu tabeli V2 { String cmd = param[0].asStr(); //param[0]="wybierz" lub "odznacz", param[1]=row Serial.print("\nTabela: BLYNK_WRITE(V2) cmd: "); Serial.print(cmd); wybór int = c[param[1].asInt()]; //Wybrany numer wiersza znajduje się w param[1] Serial.println("\nWybór: "); Serial.println(wybór); selekcja_procesu(wybór); } void populateTable() { int i = 0; Serial.println("Wypełniam tabelę…"); Blynk.virtualWrite(V2, "dodaj", 0, "Be My Baby - The Supremes", 112); c = 112; Blynk.virtualWrite(V2, "dodaj", 1, "Numer jeden - Jerry Williams", 176); i++; c = 176; Blynk.virtualWrite(V2, "dodaj", 2, "All My Loving - The Beatles", 184); i++; c = 184; Blynk.virtualWrite(V2, "dodaj", 3, "W lecie - Mungo Jerry", 236); i++; c = 236; Blynk.virtualWrite(V2, "dodaj", 4, "Czarna chmura - Chubby Checker", 155); i++; c = 155; Blynk.virtualWrite(V2, "dodaj", 5, "Mamy Blue - Pop-Tops", 260); i++; c = 260; Blynk.virtualWrite(V2, "dodaj", 6, "Wszystko będzie w porządku - Gerry & Pacemakers", 145); i++; c = 145; Blynk.virtualWrite(V2, "dodaj", 7, "My Way - Tom Jones", 193); i++; c = 193; Blynk.virtualWrite(V2, "dodaj", 8, "San Bernadino - Christie", 149); i++; c = 149; Blynk.virtualWrite(V2, "dodaj", 9, "The Twist - Chubby Checker", 169); i++; c = 169;
opóźnienie (1000);
} void process_selection (int selection) { //parse 3-cyfrowy wybór (np. 178) na 3 przyciski: int btn1 = int(selection/100); //pierwszy przycisk Serial.println("\nBtn1: "); Serial.println(btn1); if (btn1 == 1 || btn1 == 2) //pierwszy przycisk musi być 1 lub 2 - w przeciwnym razie wykonaj reset { push_button(btn1); zaznaczenie = zaznaczenie - (btn1 * 100); int btn2 = int(wybór/10); //drugi przycisk Serial.println("\nBtn2: "); Serial.println(btn2); przycisk_przycisk(btn2); zaznaczenie = zaznaczenie - (btn2 * 10); int btn3 = int(wybór); //trzeci przycisk Serial.println("\nBtn3: "); Serial.println(btn3); przycisk_przycisk(btn3); } else { push_button(11); //przycisk resetowania } //zresetuj pozycje serwa, gdy wszystko zostało zrobione delay(2000); myservo1.write(140); myservo2.write(90); myservo3.write(90);} void push_button(int btn) { //jest to wywoływane 3 razy dla każdego wyboru //rzeczywiste naciśnięcie przycisku jest wykonywane po każdym przycisku (znajdź „aktualne naciśnięcie przycisku”) switch (btn) { przypadek 1: set_servo_angles (134, 136); //1 przerwa; przypadek 2: set_servo_angles (128, 110); //2 przerwa; przypadek 3: set_servo_angles (112, 88); //3 przerwa; przypadek 4: set_servo_angles (89, 68); //4 przerwa; przypadek 5: set_servo_angles (62, 55); //5 przerwa; przypadek 6: set_servo_angles (172, 131); //6 przerwa; przypadek 7: set_servo_angles (163, 106); //7 przerwa; przypadek 8: set_servo_angles (140, 83); //8 przerwa; przypadek 9: set_servo_angles (104, 58); //9 przerwa; przypadek 0: set_servo_angles (75, 36); //0 przerwa; przypadek 11: set_servo_angles (36, 30); //11 przerwa; } //przełącznik końca } void set_servo_angles(int poz2, int poz3) { myservo2.write(pos2); myservo3.write(poz3); //Pozycje serwo gotowe - wykonaj właściwe naciśnięcie przycisku: delay(500); myservo1.write(60); //opóźnienie (500); myservo1.write(140); //opóźnienie w górę(500); } void loop() { Blynk.run(); }
Krok 6: Przyszłe kroki
Widżet wideo - strumień wideo i audio na żywo do aplikacji Blynk (już przetestowany - działa)
Widżet Webhook - pobieranie playlisty na żądanie z chmury (już przetestowane - działa)
Widżet tabeli - mile widziane są drobne ulepszenia widżetu (sugestie wysyłane do programistów Blynk)
Zalecana:
Cara Menggunakan Wemos D1 R1/Wemos D1 Mini/NodeMCU: 7 kroków

Pobierz Wemos D1 R1/ Wemos D1 Mini/ NodeMCU: Pełny samouczek w tym ini, Dowiedz się więcej o tym, co zawiera, możesz korzystać z mikrokontrolera z modułem Wi-Fi ESP8266 w różnych wersjach i udostępniać różne skoki Wemos D1 R1 (Contoh: Wemos D1 Mini 1, Wemos D1 R1) ) dengan menggunakan aplikasi
Robot sterowany przez Wi-Fi za pomocą Wemos D1 ESP8266, Arduino IDE i aplikacji Blynk: 11 kroków (ze zdjęciami)

Robot sterowany przez Wi-Fi za pomocą Wemos D1 ESP8266, Arduino IDE i aplikacji Blynk: W tym samouczku pokażę, jak zrobić zrobotyzowany czołg sterowany przez Wi-Fi, sterowany ze smartfona za pomocą aplikacji Blynk. W tym projekcie wykorzystano płytkę ESP8266 Wemos D1, ale można również zastosować inne modele płyt (NodeMCU, Firebeetle itp.), a pr
Wyślij temperaturę i wilgotność do aplikacji Blynk (Wemos D1 Mini Pro).: 15 kroków (ze zdjęciami)

Wyślij temperaturę i wilgotność do aplikacji Blynk (Wemos D1 Mini Pro).: Ta instrukcja dotyczy używania Wemos D1 Mini Pro do wysyłania danych (temperatury i wilgotności) do aplikacji Blynk
Zbuduj bootowalny UFD do flashowania AMI BIOS: 12 kroków

Zbuduj rozruchowy UFD do flashowania BIOS-u AMI: Zarówno notebooki, jak i komputery stacjonarne czasami wymagają aktualizacji BIOS-u. Gdy odwiedzasz witrynę internetową dostawcy (programu mfgr komputera lub producenta systemu BIOS) i odkrywasz nowy system BIOS z żądanymi funkcjami lub uaktualnienia wymagają nowego systemu BIOS, nadszedł czas, aby umieścić wszystkie elementy
Detektor ruchu z powiadomieniami Blynk (WeMos D1 Mini + HC-SR04): 4 kroki (ze zdjęciami)

Detektor ruchu z powiadomieniami Blynk (WeMos D1 Mini + HC-SR04): Proszę głosować na ten projekt w konkursie bezprzewodowym. Dziękujemy! Aktualizacja nr 2 - Kilka poprawek (wersja 2.2), możesz ustawić czujnik (zakres i nazwę) bezpośrednio w definicji. Zdarzało się też, że czujnik odczytywał błędne wartości i wysyłał powiadomienie