หน้านี้อธิบายวิธีประกอบตัวควบคุม Android 13 ซึ่งควบคุมการเคลื่อนไหวของชุดทดสอบฟิวชั่นเซ็นเซอร์และไฟส่องสว่างสำหรับ ITS ในกล่อง การทดสอบฟิวชั่นเซ็นเซอร์เป็นส่วนหนึ่งของ ชุดทดสอบภาพของกล้อง (Camera ITS) ใน ชุดทดสอบความเข้ากันได้ (CTS) คอนโทรลเลอร์ Android 13 ได้รับการออกแบบมาให้ง่ายต่อการประกอบและลดต้นทุนเมื่อเทียบกับคอนโทรลเลอร์เวอร์ชันก่อนหน้า ประโยชน์เพิ่มเติมคือการแยกแหล่งจ่ายไฟระหว่างอุปกรณ์อิเล็กทรอนิกส์และเซอร์โว และการควบคุมเซอร์โวสูงสุดสามตัวและไฟสามดวงจากคอนโทรลเลอร์ตัวเดียว
ภาพรวมคอนโทรลเลอร์ Android 13
การควบคุมเซอร์โวและแสงในแท่นทดสอบ
อุปกรณ์ทดสอบเซนเซอร์ฟิวชันช่วยให้โทรศัพท์มีการเคลื่อนไหวคงที่เพื่อการทดสอบที่ทำซ้ำได้ โทรศัพท์หมุนอยู่ด้านหน้าเป้าหมายกระดานหมากรุกเพื่อให้สามารถจับภาพโดยโทรศัพท์ในตำแหน่งต่างๆ สำหรับ test_sensor_fusion เซอร์โวจะหมุนโทรศัพท์ไปรอบๆ ศูนย์กลางกล้องของแกน 90 องศาและถอยหลังในเวลาประมาณ 2 วินาที สำหรับ test_video_stabilization เซอร์โวจะหมุนโทรศัพท์ไปรอบๆ ศูนย์กลางกล้องของแกน 10 องศาและย้อนกลับซ้ำๆ เพื่อเลียนแบบการเคลื่อนไหวของโทรศัพท์เมื่อถ่ายวิดีโอขณะเดิน รูปที่ 1 แสดงโทรศัพท์สองเครื่องที่เคลื่อนที่ในแท่นทดสอบฟิวชันเซ็นเซอร์ รูปที่ 2 แสดงโทรศัพท์เครื่องหนึ่งเคลื่อนที่ในแท่นทดสอบฟิวชันเซ็นเซอร์
ITS-in-a-box ให้สภาพแวดล้อมการทดสอบที่สอดคล้องกันโดยมีระยะห่างคงที่ระหว่างแท็บเล็ตทดสอบและโทรศัพท์ทดสอบ นอกเหนือจากการให้แสงสว่างที่สม่ำเสมอโดยไม่มีแหล่งกำเนิดแสงภายนอก สำหรับ test_auto_flash จำเป็นต้องใช้สภาพแวดล้อมที่มืดและปิดไฟเพื่อเรียกใช้ฟังก์ชันแฟลชอัตโนมัติบนโทรศัพท์ทดสอบ รูปที่ 3 แสดงไฟในกล่อง ITS-in-a-Box ที่กำลังปิดและเปิดโดยตัวควบคุม Android 13
รูปที่ 1 การเคลื่อนไหวของโทรศัพท์ในแท่นทดสอบสำหรับ test_sensor_fusion
รูปที่ 2 การเคลื่อนไหวของโทรศัพท์ในแท่นทดสอบสำหรับ test_video_stabilization
รูปที่ 3 ไฟถูกปิดและเปิดสำหรับ test_auto_flash
การควบคุมเซอร์โวมอเตอร์
เซอร์โวมอเตอร์แบบอะนาล็อกในแท่นทดสอบเป็นเซอร์โวแบบระบุตำแหน่งที่ควบคุมโดยใช้การปรับความกว้างพัลส์ (PWM) ตัวอย่างการควบคุมตำแหน่งทั่วไปแสดงในรูปที่ 3 สัญญาณควบคุมมีระยะเวลา 20 ms การเปลี่ยนความกว้างพัลส์เป็นความกว้างต่ำสุดจะทำให้มอเตอร์เคลื่อนที่ไปยังตำแหน่งที่เป็นกลาง และการเปลี่ยนความกว้างพัลส์เป็นความกว้างสูงสุดจะทำให้มอเตอร์เคลื่อนที่ตามเข็มนาฬิกา 180 องศา
รูปที่ 4 คำอธิบายการควบคุมเซอร์โวทั่วไป
วิดีโอสอน
นี่คือวิดีโอบทแนะนำเกี่ยวกับวิธีตั้งค่าคอนโทรลเลอร์ Android 13
ประวัติการแก้ไข
ตารางต่อไปนี้อธิบายประวัติการแก้ไขของอุปกรณ์ Camera ITS WForV และรวมถึงลิงก์ดาวน์โหลดไฟล์ที่ใช้งานจริงแต่ละเวอร์ชัน
วันที่ | การแก้ไข | ดาวน์โหลดไฟล์การผลิต | บันทึกการเปลี่ยนแปลง |
---|---|---|---|
ธันวาคม 2022 | 1.1 |
| |
มีนาคม 2565 | 1 |
|
การใช้งานคอนโทรลเลอร์ Android 13
เพื่อควบคุมการเคลื่อนที่ของเซอร์โวมอเตอร์และแสงผ่านคอมพิวเตอร์แม่ข่าย อุปกรณ์ทดสอบฟิวชั่นเซ็นเซอร์ต้องใช้การเชื่อมต่อ USB คอนโทรลเลอร์ Android 13 ใช้บอร์ด Arduino UNO R3 ที่เชื่อมต่อ USB โดยมีบอร์ดกำหนดเส้นทางแบบกำหนดเอง (หรือ ชิลด์ ) ติดตั้งอยู่ด้านบน แผงป้องกันสองชั้นได้รับการออกแบบด้วยเครื่องมือออกแบบ PCB แบบ โอเพ่นซอร์ส ออนไลน์ และมีจำหน่ายที่ มุมมองด้านบนและด้านล่างของแผงป้องกันการกำหนดเส้นทางแบบกำหนดเองจะแสดงในรูปที่ 5 และ 6
รูปที่ 5 แผงป้องกันการกำหนดเส้นทางแบบกำหนดเอง (มุมมองด้านบน)
รูปภาพ 6 แผงป้องกันการกำหนดเส้นทางแบบกำหนดเอง (มุมมองด้านล่าง)
ตัวควบคุม Android 13 สามารถควบคุมแท่นฟิวชันเซ็นเซอร์ได้สูงสุด 3 เครื่องและ ITS-in-a-box 3 เครื่องจากคอมพิวเตอร์โฮสต์เครื่องเดียว มุมมองด้านบนแสดงโครงร่างซิลค์สกรีนสำหรับการติดตั้งส่วนหัวของมอเตอร์ 3 พินสามตัวตามแนวแกนกลาง และแจ็คไฟ LED สามตัว มุมมองด้านล่างแสดงโครงร่างซิลค์สกรีนสำหรับการเชื่อมต่อส่วนหัว 4 และ 8 พินที่จำเป็นในการจับคู่กับ UNO, แจ็คไฟ 5 V และตัวเก็บประจุบายพาส 10 uF
หากต้องการแยกกระแสไฟและกระแสไฟของเซอร์โว ให้จ่ายไฟให้กับเซอร์โวผ่านแจ็ค 5 V ภายนอก อุปกรณ์อิเล็กทรอนิกส์ UNO ได้รับพลังงานแยกจากกันผ่านขั้วต่อ USB และไม่มีการแบ่งปันพลังงานระหว่างบอร์ดทั้งสอง โปรดทราบว่าแจ็คไฟภายนอกที่มีอยู่บน UNO ไม่ได้ใช้งาน และถูกปกปิดไว้ในการออกแบบกล่องหุ้ม เพื่อหลีกเลี่ยงความสับสนเมื่อเชื่อมต่อไฟเข้ากับคอนโทรลเลอร์
รูปที่ 7 ไฟส่องสว่างและไฟ 12V ที่เชื่อมต่อกับคอนโทรลเลอร์ Android 13
ขึ้นอยู่กับขนาดลำกล้องของกำลังไฟส่องสว่าง ให้ใช้อะแดปเตอร์ตามความจำเป็น
รูปที่ 8 อะแดปเตอร์เชื่อมต่อไฟส่องสว่างเข้ากับคอนโทรลเลอร์
กำลังประกอบคอนโทรลเลอร์ Android 13
สูตรการผลิต (BOM)
จำนวน | คำอธิบาย | PN/ลิงค์ |
---|---|---|
1 | ชิลด์ CameraITS Arduino หนา 1.6 มม | https://oshwlab.com/leslieshaw1023/cameraits_arduino_shield_populated |
1 | อาร์ดูโน่ UNO R3 | https://store.arduino.cc/usa/arduino-uno-rev3 |
6 | แจ็คกระบอกมุมขวา 2.1x5.5 มม. 5 V ทะลุรู | 101179 |
2 | ตัวเก็บประจุแทนทาลัม 35 V, 10%, 10 uF | 2290863 |
2 | ตัวเก็บประจุแบบเซรามิก 50 V, 5%, 100 pF 1206 | 12065A101JAT2A |
3 | 1 kΩ, ตัวต้านทานแบบยึดบนพื้นผิว | CRCW08051K00FKEAC |
3 | เพาเวอร์มอสเฟต | RFP30N06LE |
3 | ระยะพิทช์ 1x3x, 100 มิล (2.54 มม.) ส่วนหัวตัวผู้ทะลุรู | 732-5316-ND |
1 | ระยะพิทช์ 1x8x, 100 มิล (2.54 มม.) หัวต่อตัวผู้ผ่านรู | 732-5321-ND |
1 | ระยะพิทช์ 1x4x 100 มิล (2.54 มม.) หัวต่อตัวผู้ผ่านรู | 732-5317-ND |
3 | แป้นรองไนลอนตัวเมีย-ตัวเมีย 11 มม. (กว้าง 5 มม. เกลียว M3-0.5) | 92319a317 |
4 | ตะแกรงไนลอนตัวผู้-ตัวเมีย 6 มม. (กว้าง 5 มม., เกลียว M3-0.5) | 95783a004 |
3 | M3-0.5 สกรูไนลอนหัวกระทะ 6 มม | 92492A716 |
4 | M3-0.5 สกรูหัวแบน 8 มม | XM2510008A20000 |
2 | M3-0.5 สกรูหัวแบน 6 มม | XM2510006A20000 |
6 | สกรูโลหะแผ่นหัวกลม #4, 1/2 นิ้ว | 90925A110 |
1 | แหล่งจ่ายไฟ 5 V, 15 W ตามรายการ UL, ปลั๊ก 2.1x5.5 มม. (มอเตอร์) | KSAS0180500300VU-VI |
1 | แหล่งจ่ายไฟ 12 V, 60 W ตามรายการ UL, ปลั๊ก 2.1x5.5 มม. (ไฟ) | GSM60A12-P1J |
เครื่องมืออื่น ๆ ที่จำเป็น
- หัวแร้ง บัดกรี บัดกรี-ดูด
- ไขควงหัวแฉกขนาดเล็ก
- ไขควงทอร์กขนาด T10
การเติมบอร์ดเส้นทาง
เติมด้านบนและด้านล่างของบอร์ดกำหนดเส้นทางโดยให้ชิ้นส่วนต่างๆ พอดีกับโครงร่าง ที่ด้านล่างของบอร์ด คุณสามารถจัดตำแหน่งส่วนหัวตัวผู้ได้โดยการวางส่วนหัวไว้ในตำแหน่งที่ถูกต้องในบอร์ด Arduino และวางบอร์ดกำหนดเส้นทางที่ด้านบนของตัวเชื่อมต่อ จากนั้นสามารถบัดกรีส่วนหัว 1x8 และ 1x4 เข้าที่ เพื่อรับประกันการจัดตำแหน่งที่ดีระหว่าง Arduino และบอร์ดกำหนดเส้นทาง เช่นเดียวกันสามารถทำได้กับแจ็คไฟ แต่จำเป็นต้องใช้ชิมสำหรับการประกอบที่แน่นหนา เนื่องจากแจ็คไฟไม่ได้วางอยู่บน Arduino หลังจากการประกอบ หลังจากบัดกรีตัวเก็บประจุบายพาสแล้ว ด้านบนของบอร์ดสามารถใส่ส่วนหัวตัวผู้ขนาด 1x3 จำนวน 6 ตัวสำหรับการควบคุมมอเตอร์ได้ โปรดทราบว่าส่วนหัวควรอยู่ในทิศทางเพื่อให้ด้านล่างของขั้วต่อแบบ snap in หันไปทางมอเตอร์เพื่อให้มีที่ว่างสูงสุดสำหรับที่ยึดมอเตอร์
เมื่อส่วนประกอบทั้งหมดถูกบัดกรีเข้าที่แล้ว ระบบสามารถประกอบได้โดยใช้สแตนด์ออฟและสกรู มีสแตนด์ออฟตัวผู้-ตัวเมีย 6 มม. สี่ตัวเพื่อให้เสถียรภาพทางกลระหว่าง Arduino และด้านล่างของตู้พลาสติก อย่างไรก็ตาม มีช่องว่างระหว่างหญิง-หญิงขนาด 11 มม. เพียงสามช่องระหว่าง Arduino และชิลด์แบบกำหนดเอง เนื่องจากรูหนึ่งบน Arduino (รูใกล้กับพิน SCL) ไม่สามารถใช้งานได้เนื่องจากอยู่ใกล้กับส่วนหัวตัวเมียบน Arduino ขันเกลียวสแตนด์ออฟหญิง - หญิงสามตัวเข้ากับสแตนด์ออฟชายหญิงสามตัวเพื่อยึดสแตนด์ออฟเข้ากับ Arduino จากนั้นติดแผงป้องกันแผงกำหนดเส้นทางเข้ากับแท่นรองด้วยสกรู M3 ทั้งสามตัว รูปที่ 9 แสดงแผนผังของชิลด์ Arduino
รูปที่ 9 แผนผังของโล่ Arduino
ตู้ควบคุม
คอนโทรลเลอร์มีกล่องหุ้มแบบกำหนดเอง ตัวควบคุมที่ประกอบแล้วจะติดตั้งเข้ากับโครงเครื่องโดยใช้สกรูจมสี่ตัวผ่านแผ่นด้านล่างของโครงเครื่อง ประกอบกล่องหุ้มโดยใช้สกรูประกอบหัวกลมหกตัวและสกรูประกอบหัวแบนสองตัว ข้อมูลที่เกี่ยวข้อง เช่น เซอร์โวและแหล่งจ่ายไฟภายนอก 5 V จะถูกฝังไว้ที่ด้านบนพลาสติก รูปที่ 10 แสดงภาพของคอนโทรลเลอร์ภายในกล่องหุ้มที่ประกอบไว้
รูปที่ 10 แผง ป้องกันแบบมีประชากรและระบบประกอบในตู้
การควบคุมซอฟต์แวร์จากโฮสต์
สามารถดาวน์โหลดไมโครโค้ดลงใน UNO เพื่อกำหนดพิน PWM ให้กับสัญญาณมอเตอร์และกำหนดช่วงความกว้างพัลส์สำหรับมุมต่างๆ ไมโครโค้ดสำหรับการควบคุมการหมุนเซอร์โวของมอเตอร์ HS-755MB ทั้งหกตัวรวมอยู่ใน แหล่งข้อมูลอื่นๆ ส่วนนั้นยังมีลิงก์ไปยังโปรแกรมง่ายๆ ที่เรียกว่า rotator.py
ซึ่งหมุนเซอร์โว
การใช้คอนโทรลเลอร์ Android 13
การใช้งานกล้อง ITS:
python tools/run_all_tests.py device=device_id camera=0 rot_rig=arduino:1 scenes=sensor_fusion
พร้อมสคริปต์ทดสอบรวม:
python rotator.py --ch 1 --dir ON --debug
คอนโทรลเลอร์รุ่นก่อนหน้าและความเข้ากันได้
ตัวควบคุม Rev. 2 และตัวควบคุม Rev. 1 (แสดงในรูปที่ 11 และ 12) เข้ากันไม่ได้กับ Android 13 และไม่รองรับ test_preview_stabilization, test_video_stabilization และ test_auto_flash เนื่องจากไม่อนุญาตให้มีการเคลื่อนไหวละเอียดที่จำเป็นสำหรับการรักษาเสถียรภาพและการจัดแสง ควบคุม.
รูปที่ 11 คอนโทรลเลอร์ Arduino Rev. 2
รูปที่ 12 ตัว ควบคุมชุด Cana
ทรัพยากรอื่นๆ
ดาวน์โหลดการเขียนแบบเครื่องกล
ดาวน์โหลดการควบคุมซอฟต์แวร์
- Arduino Micro-code สำหรับ Android 11 และสูงกว่า
VarSpeedServo_and_lighting_control.ino
- รหัสทดสอบการควบคุม Python
rotator.py