সুচিপত্র:

প্লটক্লক, উইমোস এবং ব্লিনক ভিনটেজ এএমআই জুকবক্স বাজানো: 6 টি ধাপ (ছবি সহ)
প্লটক্লক, উইমোস এবং ব্লিনক ভিনটেজ এএমআই জুকবক্স বাজানো: 6 টি ধাপ (ছবি সহ)

ভিডিও: প্লটক্লক, উইমোস এবং ব্লিনক ভিনটেজ এএমআই জুকবক্স বাজানো: 6 টি ধাপ (ছবি সহ)

ভিডিও: প্লটক্লক, উইমোস এবং ব্লিনক ভিনটেজ এএমআই জুকবক্স বাজানো: 6 টি ধাপ (ছবি সহ)
ভিডিও: Как спрятать данные в ячейках Excel? 2024, জুলাই
Anonim
PlotClock, WeMos এবং Blynk বাজানো Vintage AMI Jukebox
PlotClock, WeMos এবং Blynk বাজানো Vintage AMI Jukebox
PlotClock, WeMos এবং Blynk প্লেয়িং ভিনটেজ এএমআই জুকবক্স
PlotClock, WeMos এবং Blynk প্লেয়িং ভিনটেজ এএমআই জুকবক্স

চারটি প্রযুক্তিগত উদ্ভাবন এই প্রকল্পটিকে সম্ভব করেছে: 1977 রো এএমআই জুকবক্স, প্লটক্লক রোবট আর্ম কিট, উইমস/ইএসপি 8266 মাইক্রোকন্ট্রোলার এবং ব্লাইঙ্ক অ্যাপ/ক্লাউড পরিষেবা।

দ্রষ্টব্য: যদি আপনার হাতে জুকবক্স না থাকে - পড়া বন্ধ করবেন না! মানুষের আঙ্গুলের দ্বারা নিয়ন্ত্রিত বিভিন্ন জিনিস নিয়ন্ত্রণের জন্য এই প্রকল্পটি সহজেই গ্রহণ করা যেতে পারে। একটি উদাহরণ traditionalতিহ্যবাহী জাইলোফোন বাজানো একটি রোবট আঙুল হতে পারে - হয়তো সেই নির্দেশনা আপনার কাছ থেকে আসে!

আমার years০ বছর বয়সী রোয়ে এএমআই আর-8১ জুকবক্স এখনও’s০, 70০ এবং 80০ দশকের ভিনটেজ ভিনাইল সিঙ্গেল বাজিয়ে কাজ করছে। 160 কেজি (360 পাউন্ড) ওজনের এই প্লেয়ারটি আধুনিক এমপি-প্লেয়ারের মতো বহনযোগ্য নয়, কিন্তু ইন্টারনেটের যুগে, এখন আপনার পকেটে জুকবক্স এবং 200 ভিনাইল রেকর্ড বহন করা সম্ভব-কার্যত অবশ্যই! এবং আপনি এমনকি মাইক্রোকন্ট্রোলারে সংরক্ষিত আপনার নিজের প্লেলিস্ট ব্যবহার করতে পারেন!

আশ্চর্যজনক প্লটক্লক রোবটটি মূলত ইরেজেবল বোর্ডে সময়ের অঙ্ক অঙ্কন করে বর্তমান সময় দেখানোর জন্য ডিজাইন করা হয়েছে। প্লটক্লকের জন্য আমার অভিযোজন হল জুকবক্স গান নির্বাচনের বোতাম টিপে এটিকে রোবট আঙুল হিসেবে ব্যবহার করা।

প্লট ক্লক "ফিঙ্গার" WeMos মাইক্রোকন্ট্রোলার দ্বারা নিয়ন্ত্রিত 3 টি সার্ভিস দ্বারা চালিত। এই বিস্ময়ের অংশটি (প্রায়) আরডুইনো ইউনো সামঞ্জস্যপূর্ণ এবং এতে ওয়াইফাই ক্ষমতা রয়েছে, তাই বিশ্বের যে কোনও জায়গা থেকে জুকবক্সকে ওয়্যারলেসভাবে নিয়ন্ত্রণ করা সম্ভব।

কেকের ক্রিমটি অবিশ্বাস্যভাবে ব্যবহার করা সহজ Blynk অ্যাপ এবং তাদের Blynk ক্লাউড সার্ভার থেকে একটি সুন্দর মোবাইল ফোন/ট্যাবলেট ইউজার ইন্টারফেস প্রদান করে যা পূর্ণ গতিশীলতার সাথে আসে।

ধাপ 1: হার্ডওয়্যার

হার্ডওয়্যার
হার্ডওয়্যার
হার্ডওয়্যার
হার্ডওয়্যার

জুকবক্স

প্রকল্প জুকবক্স 1977 রো এএমআই আর -81। সিলেকশন বাটন সহ যে কোন পুরনো জুকবক্স করবে - প্লটক্লকের কিছু সীমাবদ্ধতা লক্ষ্য করে: প্লটক্লকের মূল অস্ত্র নকশা প্রায় 5 x 12 সেমি এলাকা জুড়ে থাকতে পারে তাই জুকবক্স বাটন লেআউট (সমস্ত সিলেকশন বোতাম সহ এলাকা) অবশ্যই সেই সাইজের হতে হবে। পুরোনো জুকবক্সের বোতামগুলির জন্য প্লটক্লক সার্ভিসগুলি সরবরাহ করতে পারে তার চেয়ে বেশি ধাক্কা পাওয়ার প্রয়োজন হতে পারে।

AMI R-81 এর একটি মেমরি আছে যেখানে এটি 200 টি নির্বাচন সংরক্ষণ করতে পারে। রেকর্ড ম্যাগাজিনে (ক্যারোজেল টাইপ) যে অর্ডারে সেগুলি সংরক্ষিত থাকে তার উপর ভিত্তি করে নির্বাচন করা হয়, সেগুলি যে ক্রমে নির্বাচিত হয় তার উপর নয়। একটি রেকর্ডের জন্য একাধিক নির্বাচন শুধুমাত্র একবার খেলা হয়।

প্লটক্লক

প্লট ক্লক বাণিজ্যিকভাবে পাওয়া যায় DIY কিট যান্ত্রিক যন্ত্রাংশ সহ, 3 servos, Arduino Uno R3, Arduino এক্সটেনশন বোর্ড এবং USB কেবল। প্রায় 30 মার্কিন ডলারের জন্য এটি একটি ভাল কেনা (যেমন। Banggood.com)। এই প্রকল্পের জন্য আরডুইনো, এক্সটেনশন বোর্ড এবং ইউএসবি কেবল ব্যবহার করা হয় না।

প্লট ক্লক রচনার জন্য বেশ কয়েকটি ভাল ইন্টারনেট/ইউটিউব টিউটোরিয়াল রয়েছে - যেমন। এই: PlotClock নির্দেশাবলী

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

WeMos

WeMos D1 R2 হল ESP8266 ভিত্তিক মাইক্রোকন্ট্রোলার। এটি Arduino IDE ব্যবহার করে প্রোগ্রাম করা যায় এবং ওয়াইফাই ক্ষমতা রয়েছে তাই এটি এই প্রকল্পের জন্য হার্ডওয়্যারের একটি নিখুঁত অংশ।

ধাপ 2: ক্রমাঙ্কন

ক্রমাঙ্কন
ক্রমাঙ্কন

নির্বাচন বোতামগুলির জন্য শারীরিক অবস্থানের সাথে সামঞ্জস্যপূর্ণ করার জন্য সার্ভো কোণের (0 থেকে 180 ডিগ্রির মধ্যে) সঠিক কোণ মান খুঁজে বের করার কাজটি হল ক্রমাঙ্কন। কোণের মানগুলি ত্রিকোণমিতি অ্যারিথেমিক্স বা সিএডি সফ্টওয়্যার ব্যবহার করে পাওয়া যেতে পারে। আমি আমার বন্ধুর কাছ থেকে আনুমানিক মূল্য পেয়েছি যিনি জানতেন কিভাবে অটোক্যাড ব্যবহার করতে হয়।

যাইহোক, চূড়ান্ত ক্রমাঙ্কন ট্রায়াল এবং ত্রুটি দ্বারা করা হয়েছে। কাগজের টুকরোতে আঁকা বোতাম লেআউট ব্যবহার করে সঠিক কোণের মান খুঁজে পেতে "ডেস্কটপ টেস্টিং" করা সম্ভব।

ধাপ 3: সমাবেশ

সমাবেশ
সমাবেশ
সমাবেশ
সমাবেশ
সমাবেশ
সমাবেশ
সমাবেশ
সমাবেশ

তারের

প্লটক্লক সার্ভোস থেকে ওয়েমোসের সংযোগ 5 টি তারের সাথে সম্পন্ন করা হয়: +5, GND, D4, D5 এবং D6। ছবি এবং কোডে বিস্তারিত দেখুন।

জুকবক্সে ইনস্টল করা হচ্ছে

আমি 40 বছর বয়সী জুকবক্সে কোন স্ক্রু ছিদ্র করতে চাইনি যা এত বড় ক্ষতি ছাড়াই এতদিন বেঁচে ছিল। নরম রাবার সিল্যান্ট ব্যবহার করে আমি জুকবক্স কনসোলের অধীনে অ্যালুমিনিয়াম কোণ তালিকার একটি অংশ স্থির করেছি। রাবার সিল্যান্ট টাইট হোল্ডিং তৈরি করে এবং কোন চিহ্ন না রেখে সরানো যায়। প্লটক্লক বডিকে এক্রাইলিক প্লেটে ফিটিং করতে সাহায্য করার জন্য দুটি ছোট অ্যালুমিনিয়াম কোণের প্রয়োজন ছিল। এক্রাইলিক প্লেটটি তখন কোণ তালিকায় লাগানো হয় যেখানে দুটি স্প্রিং লোড ক্লিপ থাকে যার ফলে লম্বালম্বি এবং অনুভূমিকভাবে চূড়ান্ত সমন্বয় করা সম্ভব হয়।

ধাপ 4: Blynk

ব্লাইঙ্ক
ব্লাইঙ্ক

Blynk দূরবর্তীভাবে বিভিন্ন ধরনের মাইক্রোকন্ট্রোলার নিয়ন্ত্রণের জন্য একটি বিনামূল্যে অ্যাপ্লিকেশন। Blynk এর মাধ্যমে আপনি সহজেই বিভিন্ন ধরনের উইজেট ব্যবহার করে একটি চমৎকার ইউজার ইন্টারফেস তৈরি করতে পারেন। এই প্রকল্পের জন্য শুধুমাত্র একটি উইজেট প্রয়োজন: টেবিল উইজেট।

ধাপ 5: সফটওয়্যার

ব্লাইঙ্ক অ্যাপ

অ্যাপের পাশে কোন কোডিং নেই। অ্যাপ (Blynk) এবং মাইক্রোকন্ট্রোলার (WeMos) এর মধ্যে "কথোপকথন" "ভার্চুয়াল পিন" দ্বারা পরিচালিত হয় যা মূলত সেই দুটির মধ্যে তথ্য প্রেরণ এবং গ্রহণের চ্যানেল। ভার্চুয়াল পিন উদাহরণস্বরূপ ব্লিনক অ্যাপ থেকে নির্বাচিত গানের সারি নম্বর উইমোসে পাঠানোর জন্য ব্যবহৃত হয়, এবং ওয়েমোস বাকিগুলি পরিচালনা করে, যেমন। প্লট ক্লক সার্ভোসে কমান্ড পাঠানো।

WeMos কোড

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

V2 এ টেবিল উইজেট ************************************************ ****************/ // Jukebox প্রকল্প চর ssid = "-আপনার SSID--"; চার পাস = "-আপনার ওয়াইফাই পাসওয়ার্ড--"; int c [50]; // Jukebox রেকর্ড পজিশনের জন্য অ্যারে (100-299) Servo myservo1; // উত্তোলন servo myservo2; // বাম বাহু Servo myservo3; // ডান বাহু int pos1 = 0; int pos2 = 0; int pos3 = 0; int btn = 0; অকার্যকর সেটআপ () {myservo1.attach (2); // পিন D4, 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); // প্রারম্ভে অবিলম্বে অবহিত করুন // স্ট্রিং msg = "Jukebox WeMos সংযুক্ত:"; //Blynk.notify(msg + ssid); // শুরুতে পরিষ্কার টেবিল Blynk.virtualWrite (V2, "clr"); populateTable (); } BLYNK_WRITE (V2) // টেবিল উইজেট V2 থেকে কমান্ড গ্রহণ করুন {String cmd = param [0].asStr (); // param [0] = "নির্বাচন করুন" বা "অনির্বাচন", param [1] = সারি Serial.print ("\ n টেবিল: BLYNK_WRITE (V2) cmd:"); Serial.print (cmd); int নির্বাচন = c [param [1].asInt ()]; // নির্বাচিত সারি নম্বরটি প্যারামে আছে [1] Serial.println ("\ n নির্বাচন:"); Serial.println (নির্বাচন); প্রক্রিয়া_ নির্বাচন (নির্বাচন); } অকার্যকর 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); আমি ++; c = 176; Blynk.virtualWrite (V2, "add", 2, "All My Loving - The Beatles", 184); আমি ++; c = 184; Blynk.virtualWrite (V2, "add", 3, "In Summertime - Mungo Jerry", 236); আমি ++; c = 236; Blynk.virtualWrite (V2, "add", 4, "Black Cloud - Chubby Checker", 155); আমি ++; c = 155; Blynk.virtualWrite (V2, "add", 5, "Mamy Blue - Pop -Tops", 260); আমি ++; c = 260; Blynk.virtualWrite (V2, "add", 6, "It's Gonna Be Alright - Gerry & Pacemakers", 145); আমি ++; c = 145; Blynk.virtualWrite (V2, "add", 7, "My Way - Tom Jones", 193); আমি ++; c = 193; Blynk.virtualWrite (V2, "add", 8, "San Bernadino - Christie", 149); আমি ++; c = 149; Blynk.virtualWrite (V2, "add", 9, "The Twist - Chubby Checker", 169); আমি ++; c = 169;

বিলম্ব (1000);

} void process_selection (int selection) {// 3 অঙ্কের নির্বাচন (যেমন। 178) থেকে 3 টি বোতাম: int btn1 = int (selection/100); // প্রথম বোতাম Serial.println ("B nBtn1:"); Serial.println (btn1); যদি (btn1 == 1 || btn1 == 2) // প্রথম বোতাম 1 বা 2 হতে হবে - অন্যথায় রিসেট করুন {push_button (btn1); নির্বাচন = নির্বাচন - (btn1 * 100); int btn2 = int (নির্বাচন/10); // দ্বিতীয় বোতাম Serial.println ("B nBtn2:"); Serial.println (btn2); push_button (btn2); নির্বাচন = নির্বাচন - (btn2 * 10); int btn3 = int (নির্বাচন); // তৃতীয় বোতাম Serial.println ("B nBtn3:"); Serial.println (btn3); push_button (btn3); } অন্যথায় {push_button (11); // reset button} // servo পজিশন রিসেট করুন যখন সব বিলম্ব হয়ে যায় (2000); myservo1.write (140); myservo2.write (90); myservo3.write (90);} void push_button (int btn) {// একে প্রতিটি নির্বাচনের জন্য 3 বার বলা হয় // প্রতিটি বোতামের পরে প্রকৃত বোতাম পুশ করা হয় ('প্রকৃত বোতাম পুশ' খুঁজুন) সুইচ (বিটিএন) {কেস 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 বিরতি; কেস 11: set_servo_angles (36, 30); // 11 বিরতি; } // শেষ সুইচ} অকার্যকর set_servo_angles (int pos2, int pos3) {myservo2.write (pos2); myservo3.write (pos3); // Servo অবস্থান প্রস্তুত - বাস্তব বোতাম ধাক্কা সঞ্চালন: বিলম্ব (500); myservo1.write (60); // ডাউন বিলম্ব (500); myservo1.write (140); // আপ বিলম্ব (500); } অকার্যকর লুপ () {Blynk.run (); }

ধাপ 6: ভবিষ্যতের পদক্ষেপ

ভিডিও উইজেট - Blynk অ্যাপে লাইভ ভিডিও এবং অডিও স্ট্রিম (ইতিমধ্যে পরীক্ষিত - কাজ করা)

ওয়েবহুক উইজেট - ক্লাউড থেকে অন -ডিমান্ড প্লেলিস্ট ডাউনলোড (ইতিমধ্যে পরীক্ষিত - কাজ করা)

টেবিল উইজেট - উইজেটের কিছু ছোটো উন্নতি স্বাগত জানাই (Blynk ডেভেলপারদের কাছে পাঠানো পরামর্শ)

প্রস্তাবিত: