สารบัญ:

Vintage Rotary Phone Dial PC Volume Control: 7 ขั้นตอน (พร้อมรูปภาพ)
Vintage Rotary Phone Dial PC Volume Control: 7 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: Vintage Rotary Phone Dial PC Volume Control: 7 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: Vintage Rotary Phone Dial PC Volume Control: 7 ขั้นตอน (พร้อมรูปภาพ)
วีดีโอ: How To Dial a ROTARY TELEPHONE (a guide for Generation Z & Late Millenials...really) 2024, กรกฎาคม
Anonim
Image
Image
ถอดหน้าปัด
ถอดหน้าปัด

หากคุณเป็นเหมือนฉัน คุณพบว่าตัวเองเปลี่ยนระดับเสียงบนคอมพิวเตอร์ของคุณค่อนข้างบ่อย วิดีโอบางรายการดังกว่าวิดีโออื่นๆ ในบางครั้งคุณต้องการปิดเสียงบนคอมพิวเตอร์ของคุณในขณะที่คุณฟังพ็อดคาสท์หรือเพลง และคุณอาจต้องลดระดับเสียงอย่างรวดเร็วหากคุณรับสาย หากคุณไม่มีตัวควบคุมสื่อในคอมพิวเตอร์ของคุณ คุณสามารถเปลี่ยนแป้นหมุนโทรศัพท์แบบหมุนโบราณเป็นตัวควบคุมระดับเสียงสำหรับพีซี Windows ของคุณได้

อุปกรณ์ควบคุมระดับเสียงนี้เสียบเข้ากับคอมพิวเตอร์ของคุณผ่าน USB และจะตั้งค่าระดับเสียงของโปรแกรมที่เปิดอยู่ทุกรายการโดยอัตโนมัติเป็นหมายเลขใดก็ตามที่คุณหมุน หากคุณกด "2 " ระดับเสียงจะถูกตั้งไว้ที่ 20% กด "8" และจะถูกตั้งค่าเป็น 80% การหมุนหมายเลข "0" จะเป็นการตั้งค่า 0% และทำหน้าที่เหมือนปิดเสียง รวดเร็ว น่าพอใจ และสนุกมากกว่าการคลิกตัวควบคุมระดับเสียงในแถบงานของคุณ

เสบียง

  • Vintage Bell Systems โทรศัพท์โรตารี่ Trimline
  • Arduino นาโน
  • เม็ดมีดชุดความร้อนเกลียว M3
  • สกรูเครื่อง M3
  • ตัวต้านทาน (470 โอห์มและ 10k โอห์ม)
  • ลวด
  • เข้าถึงเครื่องพิมพ์ 3 มิติ

ขั้นตอนที่ 1: ทฤษฎีการดำเนินงาน

โทรศัพท์แบบหมุน รวมทั้ง Bell Systems Trimline ที่ใช้ในโครงการนี้ เป็นอุปกรณ์ไฟฟ้าแบบแอนะล็อกล้วนๆ เมื่อคุณหมุนแป้นหมุน สปริงจะหมุนแป้นหมุนกลับไปที่ตำแหน่งเดิม เมื่อส่งผ่านแต่ละหมายเลข สวิตช์จะถูกตัดการเชื่อมต่อ (หรือเชื่อมต่อ) ชั่วขณะหนึ่ง ทำให้เกิดพัลส์ สิ่งที่เราต้องทำคือนับพัลส์เหล่านั้นเพื่อกำหนดว่าโทรออกหมายเลขใด

guidomax มีบทช่วยสอน Instructables ที่ยอดเยี่ยม ซึ่งจะเจาะลึกถึงวิธีการทำงาน และคุณสามารถหารายละเอียดเพิ่มเติมได้ที่นั่น

สำหรับโครงงานนี้ เราใช้ Arduino Nano เพื่อนับพัลส์ Arduino จะส่งหมายเลขไปยังพีซีผ่านการเชื่อมต่อแบบอนุกรม ฉันเขียนสคริปต์ Python พื้นฐานที่ทำงานในพื้นหลังและตรวจสอบการเชื่อมต่อแบบอนุกรมนั้น เมื่อได้รับบิต จะใช้ตัวเลขและใช้ไลบรารี Python Core Audio Windows เพื่อตั้งค่าระดับเสียงที่เหมาะสม

เนื่องจากข้อจำกัดของ Windows และไลบรารีนั้น สคริปต์ไม่ได้ตั้งค่าไดรฟ์ข้อมูลระบบโดยรวม (ตัวเลื่อนหลักในแถบงานของคุณ) แต่จะกำหนดระดับเสียงแต่ละรายการสำหรับทุกโปรแกรมที่กำลังทำงานอยู่ เอฟเฟกต์จะเหมือนกัน ยกเว้นว่าคุณไม่สามารถรักษาระดับเสียงที่สัมพันธ์กันระหว่างโปรแกรมต่างๆ ได้

ขั้นตอนที่ 2: ถอด Dial

ถอดหน้าปัด
ถอดหน้าปัด

ขั้นตอนนี้ตรงไปตรงมา: เพียงถอดแยกชิ้นส่วนโทรศัพท์ Trimline ของคุณเพื่อถอดกลไกการโทรออก โดยพื้นฐานแล้วมันเป็นโมดูลในตัวเอง คุณเพียงแค่ต้องคลายเกลียวออกจากโทรศัพท์

ฉันเลือกรุ่น Trimline สำหรับโปรเจ็กต์นี้ เนื่องจากโมดูลหน้าปัดนั้นกะทัดรัดกว่ารุ่นที่คุณพบในโทรศัพท์แบบโรตารี่รุ่นอื่นๆ ส่วนใหญ่

หากคุณลองทดสอบสปินสักสองสามรอบ คุณจะได้ยินสวิตช์คลิกหายไปเมื่อกลับมาที่ตำแหน่งเริ่มต้น

ขั้นตอนที่ 3: พิมพ์สิ่งที่ส่งมาด้วย

พิมพ์สิ่งที่แนบมา
พิมพ์สิ่งที่แนบมา

ใช้ไฟล์ STL สองไฟล์ที่ให้มาเพื่อพิมพ์ส่วนกล่องหุ้ม คุณสามารถใช้วัสดุเส้นใยใดก็ได้ที่คุณต้องการ (ฉันใช้ PLA) การตั้งค่าเฉพาะที่คุณใช้ไม่สำคัญ แต่ฉันแนะนำให้ใช้การรองรับสำหรับส่วน "Rotary_Top" คุณสามารถพิมพ์สองส่วนนี้ในขณะที่คุณทำงานส่วนที่เหลือของโครงการ

ขั้นตอนที่ 4: ตั้งโปรแกรม Arduino. ของคุณ

ตั้งโปรแกรม Arduino. ของคุณ
ตั้งโปรแกรม Arduino. ของคุณ

รหัสที่คุณจะอัปโหลดไปยัง Arduino Nano นั้นนำมาจากบทช่วยสอนของ guidomax โดยตรง เนื่องจากมันทำงานได้อย่างสมบูรณ์แบบสำหรับโครงการนี้:

int needToPrint = 0; จำนวน int; int ใน = 2;

int lastState = ต่ำ;

int trueState = ต่ำ;

LastStateChangeTime ยาว = 0;

ล้าง int = 0;

// ค่าคงที่

int dialHasFinishedRotatingAfterMs = 100;

int debounceDelay = 10;

การตั้งค่าเป็นโมฆะ () {

Serial.begin(9600);

pinMode(ใน, INPUT); }

วงเป็นโมฆะ () {

การอ่าน int = digitalRead (ใน);

if ((millis() - lastStateChangeTime) > dialHasFinishedRotatingAfterMs) { // ไม่ได้หมุนหมายเลข หรือเพิ่งจะหมุนเสร็จ

if (needToPrint) { // หากเพิ่งโทรออก เราจำเป็นต้องส่งหมายเลขลงบรรทัดซีเรียล // และรีเซ็ตการนับใหม่ เราปรับการนับด้วย 10 เพราะ '0' จะส่ง 10 พัลส์

Serial.print (นับ 10%, ธ.ค.);

needToPrint = 0;

นับ = 0;

เคลียร์ = 0; } }

ถ้า (อ่าน != lastState) { lastStateChangeTime = millis();

}

if ((millis() - lastStateChangeTime) > debounceDelay) { // debounce - สิ่งนี้จะเกิดขึ้นเมื่อเสถียร

if (reading != trueState) { // หมายความว่าสวิตช์เพิ่งหายไปจาก closed->open หรือกลับกัน trueState = การอ่าน; if (trueState == HIGH) { // เพิ่มจำนวนพัลส์ถ้ามันสูง

นับ++;

needToPrint = 1; // เราจะต้องพิมพ์หมายเลขนี้ (เมื่อหมุนเสร็จแล้ว)

}

}

}

LastState = การอ่าน; }

ขั้นตอนที่ 5: วางสายทุกอย่างขึ้น

วางสายทุกอย่างขึ้น
วางสายทุกอย่างขึ้น
วางสายทุกอย่างขึ้น
วางสายทุกอย่างขึ้น
วางสายทุกอย่างขึ้น
วางสายทุกอย่างขึ้น

การเดินสายสำหรับโครงการนี้ง่ายมาก โมดูลหน้าปัดควรมีเสาหกเหลี่ยมสองเสาที่ด้านหลังพร้อมสกรู นั่นคือการเชื่อมต่อสวิตช์ ขั้วไม่สำคัญ

หมายเหตุ: ละเว้นสีของสายไฟของฉันในรูปถ่าย ฉันผสมกราวด์กับ 5V ดังนั้นสิ่งเหล่านี้จึงกลับกัน

ต่อสายหนึ่งเส้นจาก Post A (GND) และเชื่อมต่อกับขากราวด์บน Arduino Nano ของคุณ ใช้ลวดเส้นที่สองแล้วบัดกรีและลวดที่สามไปทางด้านหนึ่งของตัวต้านทาน 470 โอห์ม สายที่สองจะไปที่ Post B (+) บนหน้าปัด สายที่สามจะถูกบัดกรีที่ด้านหนึ่งของตัวต้านทาน 10k ohm ใช้ลวดเส้นที่สี่แล้วบัดกรีจากอีกด้านหนึ่งของตัวต้านทาน 470 โอห์มไปที่ Pin 2 บน Arduino Nano ในที่สุด สายที่ห้าควรเชื่อมต่ออีกด้านหนึ่งของตัวต้านทาน 10k ohm กับพิน 5V บน Arduino Nano

เราใช้ตัวต้านทานและพิน 5V เพื่อดึงพินให้สูงเมื่อเปิดสวิตช์

ขั้นตอนที่ 6: การประกอบ

การประกอบ
การประกอบ
การประกอบ
การประกอบ

คุณควรสังเกตว่าส่วน Rotary_Top ของกล่องหุ้มมีรูเล็กๆ หกรู สิ่งเหล่านี้มีไว้สำหรับเม็ดมีดชุดความร้อนแบบเกลียวของคุณ ด้านบนสาม (ด้านล่างของพื้นผิวด้านบน) จะติดตั้งแป้นหมุน สามด้านล่างคือการขัน Rotary_Base กับ Rotary_Top

เม็ดมีดชุดความร้อนสามารถทำให้ร้อนด้วยหัวแร้ง (หรือเครื่องมือเฉพาะ) แล้วดันเข้าไปในรู ความร้อนจะทำให้พลาสติกละลาย ซึ่งจะแข็งตัวหลังจากนำความร้อนออกเพื่อยึดเม็ดมีดให้เข้าที่ การใช้เม็ดมีดชุดความร้อนทำได้ดีกว่าการขันเกลียวเข้ากับพลาสติกโดยตรง

ใส่เม็ดมีดชุดความร้อนหกชิ้น จากนั้นใช้สกรูเครื่อง M3 แบบสั้น (10 มม. หรือมากกว่านั้น) เพื่อยึดแป้นหมุน สังเกตรอยบากในคัตเอาท์ ซึ่งเป็นตำแหน่งที่นิ้วโลหะจะหยุด จากนั้นวางสาย Arduino Nano-with USB อย่างระมัดระวังภายในกล่องหุ้ม (หลวม ไม่ได้ติดตั้ง) แล้วขันฐานให้เข้าที่

คุณอาจต้องการใช้เทปสองหน้าหรือแถบคำสั่ง 3M เพื่อติดโครงเข้ากับโต๊ะทำงานของคุณ ดังนั้นจึงไม่เคลื่อนที่ไปมาเมื่อคุณหมุนแป้นหมุน

ขั้นตอนที่ 7: ตั้งค่า Python Script

ตั้งค่า Python Script
ตั้งค่า Python Script

ขั้นแรก ตรวจสอบให้แน่ใจว่าคุณได้ติดตั้ง Python แล้ว (ใช้ Python 3 เนื่องจาก Python 2 กำลังจะเลิกใช้)

จากนั้น คุณจะต้องติดตั้งไลบรารีที่จำเป็นสองไลบรารี: PyCAW และ PySerial

ใช้:

"pip ติดตั้ง pycaw" และ "pip ติดตั้ง pyserial" (จากหน้าต่าง Python หรือ Windows Powershell)

จากนั้นตรวจสอบเพื่อดูว่า Arduino Nano ของคุณเชื่อมต่อกับพอร์ตใด คุณสามารถตรวจสอบได้จากภายใน Arduino IDE ตรวจสอบให้แน่ใจว่าคุณได้เลือกพอร์ตนั้นไว้ จากนั้นเปิดมอนิเตอร์แบบอนุกรม ตรวจสอบให้แน่ใจว่าได้ตั้งค่าอัตราบอดของคุณไว้ที่ 9600 แล้วจึงหมุนหมายเลขเพื่อให้มั่นใจว่าหมายเลขดังกล่าวจะแสดงขึ้นในจอภาพแบบอนุกรม

หากเป็นเช่นนั้น ให้แก้ไขรหัส "rotary.py" ด้วยหมายเลขพอร์ตของคุณ หากคุณเรียกใช้สคริปต์ ตอนนี้คุณควรจะเปลี่ยนระดับเสียงได้โดยกดหมายเลข

ขั้นตอนสุดท้ายคือการตั้งค่าสคริปต์ให้ทำงานในพื้นหลังโดยอัตโนมัติเมื่อคุณบูตเครื่องพีซี

ในการทำเช่นนั้น เปลี่ยน "rotary.py" เป็น "rotary.pyw" ซึ่งจะทำให้มันทำงานในพื้นหลังได้ จากนั้นวางสคริปต์นั้นในโฟลเดอร์ต่อไปนี้: C:\Users\current_user\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup

แน่นอน คุณจะต้องเปลี่ยน "current_user" เป็นชื่อโฟลเดอร์ผู้ใช้จริงของคุณ

แค่นั้นแหละ! เมื่อใดก็ตามที่คอมพิวเตอร์ของคุณเริ่มทำงาน สคริปต์ Python นั้นจะเริ่มทำงาน มันจะตรวจสอบการเชื่อมต่อแบบอนุกรมจาก Arduino และจะตั้งปริมาณโปรแกรมทั้งหมดเป็นสิ่งที่คุณโทร!

Arduino Contest 2020
Arduino Contest 2020
Arduino Contest 2020
Arduino Contest 2020

รองชนะเลิศการแข่งขัน Arduino 2020

แนะนำ: