Мазмуну:

PlotClock, WeMos жана Blynk Vintage AMI Jukebox ойношот: 6 кадам (сүрөттөр менен)
PlotClock, WeMos жана Blynk Vintage AMI Jukebox ойношот: 6 кадам (сүрөттөр менен)

Video: PlotClock, WeMos жана Blynk Vintage AMI Jukebox ойношот: 6 кадам (сүрөттөр менен)

Video: PlotClock, WeMos жана Blynk Vintage AMI Jukebox ойношот: 6 кадам (сүрөттөр менен)
Video: Remote Robot finger playing Vintage AMI Jukebox 2024, Ноябрь
Anonim
PlotClock, WeMos жана Blynk Vintage AMI Jukebox ойношот
PlotClock, WeMos жана Blynk Vintage AMI Jukebox ойношот
PlotClock, WeMos жана Blynk Vintage AMI Jukebox ойношот
PlotClock, WeMos жана Blynk Vintage AMI Jukebox ойношот

Төрт техникалык жаңылыктар бул долбоорду ишке ашырды: 1977 Rowe AMI Jukebox, PlotClock роботтук курал комплекти, WeMos/ESP 8266 микроконтроллери жана Blynk App/Cloud кызматы.

ЭСКЕРТҮҮ: Эгерде колуңузда Jukebox жок болсо - окууңузду токтотпоңуз! Бул проект адамдын манжалары менен башкарылган ар кандай нерселерди көзөмөлдөө үчүн оңой эле кабыл алынышы мүмкүн. Бир мисал, салттуу Xylophone ойногон робот манжа болушу мүмкүн - балким, бул үйрөткүч сизден келип чыккандыр!

Менин 40 жаштагы Rowe AMI R-81 Jukebox дагы эле 60-70-80-жылдардагы винил синглдерди ойноп жакшы иштеп жатат. 160 килограммдан (360 фунт) ашык салмактагы бул оюнчу заманбап мп-оюнчуларга окшош эмес, бирок интернет доорунда жашап, чөнтөгүңүздө джукбокс жана 200 винил жазууларын алып жүрүүгө болот-дээрлик албетте! Жана сиз микроконтроллерде сакталган өз ойноо тизмелериңизди колдоно аласыз!

Amazing PlotClock роботу башында өчүрүлүүчү тактага убакыт сандарын тартуу менен учурдагы убакытты көрсөтүү үчүн иштелип чыккан. Менин PlotClock үчүн адаптациям - аны Jukebox ыр тандоо баскычтарын басуу үчүн роботтун манжасы катары колдонуу.

Plotclock "манжасы" WeMos микроконтроллери тарабынан башкарылган 3 серво менен башкарылат. Бул таң калыштуу нерсе (дээрлик) Arduino Uno шайкеш келет жана WiFi мүмкүнчүлүктөрүнө ээ, андыктан дүйнөнүн каалаган жеринен джукебокс зымсыз башкарса болот.

Торттогу крем Blynk колдонмосун жана алардын Blynk Cloud Serverди колдонууга укмуштуудай оңой келгендиктен, мобилдик телефондун/планшеттин колдонуучу интерфейсин толук мобилдүүлүккө ээ кылат.

1 -кадам: Аппараттык

Аппараттык
Аппараттык
Аппараттык
Аппараттык

Jukebox

Долбоордун Jukebox бул 1977 Rowe AMI R-81. Тандоо баскычтары бар ар кандай эски джукбокс кылат - PlotClock тарабынан бир нече чектөөлөрдү белгилөө: PlotClockтун баштапкы курал дизайны болжол менен 5х12 см аянтты камтыйт, андыктан джукбокс баскычынын макети (бардык тандоо баскычтарын камтыган аймак) ошол өлчөмдө болушу керек. Эски джук кутуларынын баскычтары PlotClock сервосуна караганда көбүрөөк күчкө муктаж болушу мүмкүн.

AMI R-81 эс тутумуна ээ, анда ал 200 тандоонун бардыгын сактай алат. Тандоолор алар тандалган тартипте эмес, рекорддук журналда (карусель түрү) сакталган тартипке жараша ойнотулат. Бир жазуу үчүн бир нече тандоо бир гана жолу ойнотулат.

PlotClock

Plotclock механикалык бөлүктөрүн, 3 сервосун, Arduino Uno R3, Arduino Extension тактасын жана USB кабелин камтыган DIY комплект. 30 доллардын тегерегинде бул жакшы сатып алуу (мис. Banggood.com). Бул долбоор үчүн Arduino, узартуу тактасы жана USB кабели колдонулбайт.

Plotclock түзүү үчүн бир нече жакшы интернет/YouTube үйрөткүчтөрү бар - мисалы. бул: PlotClock көрсөтмөлөрү

static1.squarespace.com/static/52cb189ee4b012ff9269fa8e/t/5526946be4b0ed8e0b3cd296/1428591723698/plotclock_final_instructions.pdf

WeMos

WeMos D1 R2 - бул ESP8266 негизиндеги микроконтроллер. Аны Arduino IDE аркылуу программалоого болот жана WiFi мүмкүнчүлүктөрү бар, ошондуктан бул долбоор үчүн эң сонун жабдык.

2 -кадам: Калибрлөө

Калибрлөө
Калибрлөө

Калибрлөө - бул тандоо баскычтары үчүн физикалык позицияларга дал келүү үчүн servo бурчтар үчүн так бурчтук маанилерди табуу (0 ден 180 градуска чейин). Бурчтук маанилерди тригонометрия аритемитикасы же CAD программасын колдонуу аркылуу табууга болот. Мен AutoCad колдонууну билген досумдан болжолдуу баалуулуктарды алдым.

Бирок, акыркы калибрлөө сыноо жана ката аркылуу жүргүзүлүшү керек болчу. Кагазга түшүрүлгөн баскычтын жайгашуусун колдонуп, бурчтун туура маанилерин табуу үчүн "рабочий тесттен" өтүүгө болот.

3 -кадам: Ассамблея

Ассамблея
Ассамблея
Ассамблея
Ассамблея
Ассамблея
Ассамблея
Ассамблея
Ассамблея

Электр өткөргүчтөрү

Plotclock сервосунан Wemosко туташуу 5 зым менен жүргүзүлөт: +5, GND, D4, D5 жана D6. Сүрөттөгү жана коддогу чоо -жайын караңыз.

Jukeboxко орнотуу

Мен 40 жыл мурунку дүкөнгө эч кандай бурама тешиктерди кылгым келбеди, алар эч качан чоң зыянга учурабай аман калышты. Жумшак резинадан жасалган герметикти колдонуп, мен алюминийдин бурчун тизмесин jukebox консолунун астына бекиттим. Резина герметик бекем кармап турат жана эч кандай из калтырбай алып салууга болот. PlotClock корпусуна акрил табакка орнотууга жардам берүү үчүн эки кичинекей алюминий бурчу керек болчу. Акрил плитасы андан кийин вертикалдуу жана горизонталдуу түрдө акыркы тууралоолорду жасоо мүмкүнчүлүгүн калтырган эки жазгы жүктөлгөн клип менен бурчтардын тизмесине орнотулат.

4 -кадам: Блинк

Blynk
Blynk

Blynk - бул микроконтроллердин бир нече түрүн алыстан башкаруу үчүн акысыз колдонмо. Blynk менен сиз виджеттердин бир нече түрүн колдонуп, жакшы колдонуучу интерфейсин оңой кура аласыз. Бул долбоор үчүн бир гана виджет керек: Table виджети.

5 -кадам: Программалык камсыздоо

Blynk App

Колдонмонун тарабында эч кандай коддоо жок. Колдонмо (Blynk) менен микроконтроллердин (WeMos) ортосундагы "баарлашуу" "Виртуалдык казыктар" тарабынан иштелип чыгат, алар негизинен экөөнүн ортосунда маалыматты жөнөтүү жана алуу каналдары болуп саналат. Виртуалдык пин, мисалы, Blynk колдонмосунан тандалган ырдын катар номерин WeMosко жөнөтүү үчүн колдонулат, калганын Wemos башкарат, б.а. Plotclock сервосуна буйруктарды жөнөтүү.

WeMos коду

/**************************************************************

V2деги таблица виджети ****************************************** ****************/ #define BLYNK_PRINT Serial #include #include #include char auth = "-СИЗДИН АВТИКАЛЫК КОД ----"; // Jukebox проекти char ssid = "--СИЗДИН SSID-"; char pass = "--СИЗДИН WIFI КИПИҢИЗ--"; int c [50]; // Jukebox рекорддук позициялары үчүн массив (100-299) Servo myservo1; // көтөрүү Servo myservo2; // сол кол Servo myservo3; // оң кол int pos1 = 0; int pos2 = 0; int pos3 = 0; int btn = 0; void setup () {myservo1.attach (2); // пин D4, lift myservo2.attach (14); // пин D5, сол myservo3.attach (12); // пин D6, оң myservo1.write (140); myservo2.write (90); myservo3.write (90); Serial.begin (115200); Blynk.begin (auth, ssid, pass); // Ишке киргенде дароо кабарлоо // String msg = "WeMos Jukebox туташты:"; //Blynk.notify(msg + ssid); // ачык стол башталышында Blynk.virtualWrite (V2, "clr"); populateTable (); } BLYNK_WRITE (V2) // Таблица виджетинен V2 {String cmd = param [0].asStr () буйруктарын алыңыз; // param [0] = "тандоо" же "тандоодон чыгаруу", param [1] = катар Serial.print ("\ nTable: BLYNK_WRITE (V2) cmd:"); Serial.print (cmd); int тандоо = c [param [1].asInt ()]; // Тандалган катар номери парам [1] Serial.println ("\ nСелекция:"); Serial.println (тандоо); process_selection (тандоо); } void populateTable () {int i = 0; Serial.println ("Толтуруучу стол…"); Blynk.virtualWrite (V2, "add", 0, "Be My Baby - The Supremes", 112); c = 112; Blynk.virtualWrite (V2, "add", 1, "Number One - Jerry Williams", 176); i ++; c = 176; Blynk.virtualWrite (V2, "add", 2, "All My Loving - The Beatles", 184); i ++; c = 184; Blynk.virtualWrite (V2, "кошуу", 3, "Жай мезгилинде - Мунго Джерри", 236); i ++; c = 236; Blynk.virtualWrite (V2, "кошуу", 4, "Кара Булут - Чубби Текшерүүчү", 155); i ++; c = 155; Blynk.virtualWrite (V2, "add", 5, "Mamy Blue - Pop -Tops", 260); i ++; c = 260; Blynk.virtualWrite (V2, "кошуу", 6, "Баары жакшы болот - Gerry & Pacemakers", 145); i ++; c = 145; Blynk.virtualWrite (V2, "add", 7, "My Way - Tom Jones", 193); i ++; c = 193; Blynk.virtualWrite (V2, "кошуу", 8, "Сан -Бернадино - Кристи", 149); i ++; c = 149; Blynk.virtualWrite (V2, "add", 9, "The Twist - Chubby Checker", 169); i ++; c = 169;

кечигүү (1000);

} void process_selection (int тандоо) {// 3 орундуу тандоону (мис. 178) 3 баскычка талдоо: int btn1 = int (тандоо/100); // биринчи баскыч Serial.println ("\ nBtn1:"); Serial.println (btn1); эгер (btn1 == 1 || btn1 == 2) // биринчи баскыч 1 же 2 болууга тийиш - антпесе баштапкы абалга келтирүү {push_button (btn1); тандоо = тандоо - (btn1 * 100); int btn2 = int (тандоо/10); // экинчи баскыч Serial.println ("\ nBtn2:"); Serial.println (btn2); push_button (btn2); тандоо = тандоо - (btn2 * 10); int btn3 = int (тандоо); // үчүнчү баскыч Serial.println ("\ nBtn3:"); Serial.println (btn3); push_button (btn3); } else {push_button (11); // баштапкы абалга келтирүү} // баары аткарылганда серво позицияларын баштапкы абалга келтирүү (2000); myservo1.write (140); myservo2.write (90); myservo3.write (90);} void push_button (int btn) {// бул ар бир тандоо үчүн 3 жолу чакырылат // чыныгы баскычты басуу ар бир баскычтан кийин жасалат ('чыныгы баскычты басууну' табуу) (btn) {1 -абал: set_servo_angles (134, 136); // 1 тыныгуу; 2 -жагдай: set_servo_angles (128, 110); // 2 тыныгуу; 3 -жагдай: set_servo_angles (112, 88); // 3 тыныгуу; 4 -жагдай: set_servo_angles (89, 68); // 4 тыныгуу; 5 -жагдай: set_servo_angles (62, 55); // 5 тыныгуу; 6 -жагдай: set_servo_angles (172, 131); // 6 тыныгуу; 7 -жагдай: set_servo_angles (163, 106); // 7 тыныгуу; 8 -жагдай: set_servo_angles (140, 83); // 8 тыныгуу; учурда 9: set_servo_angles (104, 58); // 9 тыныгуу; учурда 0: set_servo_angles (75, 36); // 0 break; учурда 11: set_servo_angles (36, 30); // 11 тыныгуу; } // аягына которуу} void set_servo_angles (int pos2, int pos3) {myservo2.write (pos2); myservo3.write (pos3); // Servo кызматтары даяр - чыныгы баскычты басууну аткарыңыз: кечигүү (500); myservo1.write (60); // түшүп кечигүү (500); myservo1.write (140); // өйдө кармоо (500); } void loop () {Blynk.run (); }

6 -кадам: Келечектеги кадамдар

Видео виджети - Blynk тиркемесине түз видео жана аудио агымы (буга чейин сыналган - иштеп жатат)

Webhook виджети - булуттан талап кылынган плейлист жүктөө (буга чейин сыналган - иштеп жатат)

Таблица виджети - виджеттин бир аз жакшыртуулары кабыл алынат (сунуштар Blynk иштеп чыгуучуларына жөнөтүлөт)

Сунушталууда: