สารบัญ:

สร้างตัวควบคุมกล้องไร้สายมัลติฟังก์ชั่น (ราคาถูก!) ของคุณเอง: 22 ขั้นตอน (พร้อมรูปภาพ)
สร้างตัวควบคุมกล้องไร้สายมัลติฟังก์ชั่น (ราคาถูก!) ของคุณเอง: 22 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: สร้างตัวควบคุมกล้องไร้สายมัลติฟังก์ชั่น (ราคาถูก!) ของคุณเอง: 22 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: สร้างตัวควบคุมกล้องไร้สายมัลติฟังก์ชั่น (ราคาถูก!) ของคุณเอง: 22 ขั้นตอน (พร้อมรูปภาพ)
วีดีโอ: ใส่ปุ่มมัลติฟังก์ชั่นพวงมาลัย สำหรับจอแอนดรอยส์ | Steering wheel multifunction android 2024, กรกฎาคม
Anonim
สร้างตัวควบคุมกล้องไร้สายแบบมัลติฟังก์ชั่น (ราคาถูก!) ของคุณเอง
สร้างตัวควบคุมกล้องไร้สายแบบมัลติฟังก์ชั่น (ราคาถูก!) ของคุณเอง
สร้างตัวควบคุมกล้องไร้สายแบบมัลติฟังก์ชั่น (ราคาถูก!) ของคุณเอง
สร้างตัวควบคุมกล้องไร้สายแบบมัลติฟังก์ชั่น (ราคาถูก!) ของคุณเอง
สร้างตัวควบคุมกล้องไร้สายแบบมัลติฟังก์ชั่น (ราคาถูก!) ของคุณเอง
สร้างตัวควบคุมกล้องไร้สายแบบมัลติฟังก์ชั่น (ราคาถูก!) ของคุณเอง

บทนำ เคยจินตนาการที่จะสร้างตัวควบคุมกล้องของคุณเองหรือไม่ หมายเหตุสำคัญ: ตัวเก็บประจุสำหรับ MAX619 คือ 470n หรือ 0.47u แผนผังถูกต้อง แต่รายการส่วนประกอบไม่ถูกต้อง - อัปเดต นี่คือการเข้าร่วมการแข่งขัน Digital Days ดังนั้นหากคุณพบว่ามีประโยชน์ โปรดให้คะแนน/โหวต/แสดงความคิดเห็นเป็นที่น่าพอใจ! ถ้าคุณชอบมันมากและสะดุดล้ม ให้กด "ฉันชอบ!":) อัปเดต: ให้ความสำคัญกับ hackaday! hackaday.com/2009/10/13/a-different-breed-of-camera-controllers/ Update: ภาพถ่ายใหม่ของการทำงานของเลเซอร์ทริกเกอร์! อัปเดต: รางวัลที่หนึ่ง =D ขอบคุณสำหรับการโหวตและ/หรือการให้คะแนน! คำแนะนำนี้มีไว้เพื่อประโยชน์ของผู้ใช้ SLR ที่ต้องการใช้กล้องได้ไกลขึ้นอีกเล็กน้อย อย่างไรก็ตาม หากมีจุดใดจุดหนึ่งและถ่ายภาพด้วยอินเทอร์เฟซ IR คุณอาจพบว่าสิ่งนี้น่าสนใจ แน่นอนว่าสิ่งนี้จะใช้งานได้ (ด้วยการดัดแปลงเล็กน้อย) กับแฮ็กกล้อง ซึ่งคุณสามารถเชื่อมต่อเอาต์พุตแบบลอจิคัลกับเทอร์มินัลทริกเกอร์ของกล้องได้ สิ่งนี้เริ่มต้นจากการกวดวิชาเต็มรูปแบบ แต่เนื่องจากข้อจำกัดที่ไม่คาดคิดบางอย่างที่ฉันพบในภายหลัง อาจเป็นแนวทางเพิ่มเติมเกี่ยวกับวิธีการทำสิ่งต่าง ๆ ให้สำเร็จ - ฉันมักจะปล่อยให้คุณเลือกว่าคุณจะทำสิ่งต่าง ๆ ได้อย่างไร ฉันคิดว่าเป็นวิธีที่ดีกว่าในการทำสิ่งต่างๆ มากกว่าแค่พูดสุ่มสี่สุ่มห้าว่า "คุณต้องทำสิ่งนี้" คิดว่านี่เป็นบทเรียนในการออกแบบตัวควบคุมกล้อง เราได้จัดเตรียมแผนผังและโค้ดทั้งหมดไว้เพื่อให้คุณคัดลอกได้เสมอ จะเป็นกรณีง่ายๆ ในการถ่ายโอนการออกแบบไปยังแผ่นกระดานและเพิ่ม LCD สำหรับคนส่วนใหญ่ ฉันได้ศึกษาวิธีการทำเขียงหั่นขนมแล้ว เนื่องจากกระบวนการคล้ายกันมากและช่วยให้สามารถแก้ไขข้อผิดพลาดได้ก่อนที่คุณจะทำการออกแบบอย่างถาวร คุณสมบัติ: โหมดช็อตเดียว โหมดช่วงเวลา (ไทม์แลปส์) โหมดช็อตทริกเกอร์ (ทริกเกอร์จากเซ็นเซอร์ภายนอก) พร้อมเงื่อนไขตัวแปร รวมการออกแบบเซ็นเซอร์ - แสง, เสียง (เป็นไปได้อีกมากมาย!) ค่าใช้จ่ายทั้งหมด - ต่ำกว่า £25 (ไม่รวมเครื่องมือ) จอ LCD สำหรับการเปลี่ยนแปลงการตั้งค่าที่ง่ายดาย เข้ากันได้กับ Nikon/Canon (เข้ารหัส), การสนับสนุนที่เป็นไปได้ (ยังไม่ทดลอง) สำหรับ Olympus/Pentax ไม่มีเฟิร์มแวร์ การปรับเปลี่ยนที่จำเป็น ใช้ IR จึงเป็นทั้งแบบไร้สายและไม่ทำให้กล้องของคุณเสียหาย ฉันมีความคิดสำหรับสิ่งนี้หลังจากนั่งข้างนอกในที่เย็นและคลิกที่รีโมทคอนโทรลของฉันเป็นเวลาหลายชั่วโมง ฉันทำช่วงเวลา 8 วินาทีสำหรับประมาณ 1,000 ภาพ ฉันคิดว่า เฮ้ มันเป็นแค่ IR LED ใช่ไหม เหตุใดฉันจึงไม่สามารถทำซ้ำและสร้างรีโมตของตัวเองด้วยการหน่วงเวลาในตัวได้ จากนั้นฉันก็พบว่า (ค่อนข้างน่าอายเพราะฉันคิดว่าฉันมีคลื่นสมองขนาดใหญ่) ว่าสิ่งนี้ทำเสร็จแล้วและมีคำแนะนำสองสามข้อในหัวข้อนี้ จุดที่การใช้งานของฉันแตกต่างจากเครื่องวัดช่วงเวลาส่วนใหญ่และรีโมทแบบ DIY คือช่วยให้สามารถปรับแต่งและโมดูลาร์ได้มากมาย เข้ากันได้กับทั้ง Nikon/Canon (และอาจมีรุ่นอื่นๆ ในภายหลัง) และรวมความสามารถในการถ่ายภาพบนทริกเกอร์เฉพาะ ความคิดนั้นง่าย คุณต้องการถ่ายภาพบางสิ่งที่ค่อนข้างเร็ว (ตอนนี้ถูกจำกัดด้วยความล่าช้าของชัตเตอร์ สำหรับฉัน 6ms) มีหลายวิธีในการทำเช่นนี้: 1. การลองผิดลองถูกที่คุณพยายามถ่ายภาพในเวลาที่เหมาะสม 2. การลองผิดลองถูกที่ปรับปรุงให้ดีขึ้น คุณทำให้ห้องมืดลง ใส่กล้องของคุณบนหลอดไฟ (เปิดชัตเตอร์) และยิงแฟลช ในเวลาที่เหมาะสม 3. ซื้อตัวควบคุมทริกเกอร์เฉพาะที่มีเซ็นเซอร์เสียง/แสงบางชนิดเพื่อถ่ายภาพตามคำสั่งของคุณ 4. สร้างด้วยตัวเอง! ตกลง 1 และ 2 นั้นใช้ได้ดีสำหรับการล้อเล่นและสามารถให้ภาพที่ดีมาก แต่สิ่งที่ผมจะแสดงให้คุณเห็นคือ มันเป็นไปได้ที่จะสร้างวงจรที่จะให้ผลลัพธ์ที่สม่ำเสมอครั้งแล้วครั้งเล่า ที่สำคัญที่สุด ในช่วงเวลาที่คับแคบเหล่านี้ ค่าใช้จ่ายจะต่ำกว่ารุ่นอื่น ๆ (บางคนผลิตชุดอุปกรณ์ทำสิ่งนี้ แต่มีค่าใช้จ่ายมหาศาล ดูลิงก์) ความเก่งกาจของการออกแบบคือ: หากเซ็นเซอร์ของคุณสร้างแรงดันเอาต์พุตระหว่าง 0 ถึง 5V คุณสามารถใช้เซ็นเซอร์นี้เพื่อทริกเกอร์กล้องของคุณได้! ในทางกลับกัน นี่เป็นคำกล่าวที่น่าเบื่อ แต่เมื่อคุณเริ่มเข้าใจความหมายแล้ว มันจะมีพลังมาก เพียงแค่ตรวจสอบระดับแรงดันไฟฟ้า ทริกเกอร์ของคุณอาจเป็นแบบใช้แสง (LDR) แบบเสียง (ไมโครโฟนหรืออัลตราซาวนด์) ตามอุณหภูมิ (เทอร์มิสเตอร์) หรือแม้แต่โพเทนชิออมิเตอร์แบบธรรมดา อันที่จริงแล้วเกี่ยวกับอะไรก็ได้ คุณยังสามารถเชื่อมโยงวงจรกับคอนโทรลเลอร์อื่นและให้เอาต์พุตแบบลอจิคัลได้ ดังนั้นคุณจึงสามารถทริกเกอร์จากมันได้ ข้อจำกัดที่สำคัญเพียงอย่างเดียวของการออกแบบในปัจจุบันคือใช้งานได้เฉพาะกับอินเทอร์เฟซ IR การปรับเปลี่ยนซอฟต์แวร์และฮาร์ดแวร์เพื่อส่งออกผ่าน mini-USB หรืออินเทอร์เฟซอื่น ๆ นั้นค่อนข้างง่าย หมายเหตุ: ซอร์สโค้ด: ฉันได้จัดเตรียมแอปพลิเคชันบางอย่างไว้ในขั้นตอนที่ 13 รหัสที่ฉันเรียกใช้บนคอนโทรลเลอร์ของฉัน ณ ตอนนี้อยู่ในไฟล์ hex พร้อมกับไฟล์ c หลักและการอ้างอิง คุณสามารถเรียกใช้รหัสของฉันได้หากคุณไม่แน่ใจเกี่ยวกับการคอมไพล์ ฉันได้รวมโค้ดตัวอย่างบางส่วนที่คุณสามารถใช้ในขั้นตอนต่างๆ ได้ (มีชื่อที่ชัดเจนเช่น remote_test การทดสอบตามช่วงเวลา และการทดสอบ adc ถ้าฉันอ้างถึงโค้ดในขั้นตอนใดขั้นตอนหนึ่ง มีโอกาสเป็นไปได้มากทีเดียว แก้ไข: การอัปเดตเกี่ยวกับ ลูกโป่งแตก - ดูเหมือนฉันจะสายตาสั้นไปหน่อย ตอนที่บอกว่าคุณสามารถถ่ายภาพลูกโป่งที่กำลังแตกได้ง่าย ๆ ปรากฎว่าผิวของบอลลูนโดยเฉลี่ยเคลื่อนที่เร็วมากจนแตกจนหมดเมื่อกล้องของคุณยิง นี่ เป็นปัญหากับกล้องส่วนใหญ่ไม่ใช่ตัวควบคุม (ซึ่งตรวจจับ ADC ที่อัตราประมาณ 120kHz) วิธีแก้ไขคือการใช้แฟลชที่กระตุ้นซึ่งสามารถทำได้หากคุณเพิ่มสายไฟพิเศษและวงจรขนาดเล็กอื่น ๆ ที่ กล่าวว่าในทางทฤษฎีคุณสามารถใช้อย่างอื่นเพื่อป๊อปมันและเล่นกับความล่าช้า (หรือแม้แต่เปลี่ยนรหัสการหน่วงเวลาให้รวมไมโครวินาที) เม็ดอากาศเดินทาง 1 ม. ที่ 150ms-1 ใช้เวลาประมาณ 6-7 ms มีเวลามากพอที่จะกระตุ้นและยิง. เพียงแค่ขยับปืนก็จะทำให้เกิดความล่าช้าพื้นฐานสองสามไมโครวินาที NS. ขอโทษอีกครั้งสำหรับเรื่องนี้ ฉันจะเล่นในคืนนี้ถ้าฉันสามารถจับลูกโป่งได้ แต่ก็ยังมีประโยชน์หลายอย่างสำหรับทริกเกอร์เสียง เช่น ดอกไม้ไฟ! ฉันได้ใส่ช่วงเวลาที่รวดเร็วและสกปรกด้านล่างเพื่อแสดงให้เห็นว่ามันใช้งานได้:) อย่าลืมอ่านให้คะแนนและ / หรือโหวต! ไชโย Josh ข้อจำกัดความรับผิดชอบ ในกรณีที่มีบางอย่างผิดพลาดอย่างน่ากลัวหรือคุณก่อกวนกล้องของคุณ / หลอกหลอนแมวของคุณ ฉันจะไม่รับผิดชอบในสิ่งใดๆ การเริ่มต้นโครงการตามคำแนะนำนี้แสดงว่าคุณยอมรับและดำเนินการต่อด้วยความเสี่ยงของคุณเอง หากคุณสร้างหนึ่งในสิ่งเหล่านี้หรือใช้คำแนะนำของฉันเพื่อช่วยคุณ - โปรดส่งลิงค์ / ภาพถ่ายมาให้ฉันเพื่อที่ฉันจะได้รวมไว้ที่นี่! จนถึงตอนนี้ กระแสตอบรับล้นหลาม (อย่างน้อยก็ตามมาตรฐานของฉัน) ดังนั้นจึงเป็นเรื่องดีที่จะเห็นว่าผู้คนตีความมันอย่างไร ฉันกำลังแก้ไข 2 ขณะที่ฉันพิมพ์;)

ขั้นตอนที่ 1: ความคิดเริ่มต้นบางอย่าง…

แล้วเราจะสร้างสิ่งนี้ได้อย่างไร?ไมโครคอนโทรลเลอร์หัวใจและจิตวิญญาณของโครงการนี้คือ AVR ATMega8 โดยพื้นฐานแล้วเป็นชิป ATMega168 รุ่นตัดแต่งเล็กน้อยที่ Arduino ใช้ มันสามารถตั้งโปรแกรมได้ใน C หรือ Assembly และมีคุณสมบัติที่มีประโยชน์มากมายที่เราสามารถใช้เพื่อประโยชน์ของเรา" 28 พินซึ่งส่วนใหญ่เป็นอินพุต/เอาต์พุต (i/o)" ตัวแปลงอนาล็อกเป็นดิจิตอลออนบอร์ด" ใช้พลังงานต่ำ "ตัวจับเวลาออนบอร์ด 3 ตัว" แหล่งสัญญาณนาฬิกาภายในหรือภายนอก" ไลบรารีโค้ดและตัวอย่างจำนวนมากทางออนไลน์การมีหมุดจำนวนมากเป็นสิ่งที่ดี เราสามารถเชื่อมต่อกับหน้าจอ LCD มีอินพุต 6 ปุ่ม และยังมีเหลือเพียงพอสำหรับ IR LED เพื่อถ่ายภาพและไฟ LED แสดงสถานะบางตัว โปรเซสเซอร์ Atmel AVR ซีรีส์มีการสนับสนุนมากมายทางออนไลน์และมีบทช่วยสอนมากมายในการรับ เริ่มต้น (ฉันจะอธิบายสั้น ๆ นี้ แต่มีบทช่วยสอนเฉพาะที่ดีกว่า) และรหัสจำนวนมากที่จะครุ่นคิด สำหรับการอ้างอิง ฉันจะเขียนโค้ดโปรเจ็กต์นี้ใน C โดยใช้ไลบรารี AVR-LibC ฉันสามารถใช้ PIC เพื่อทำสิ่งนี้ได้อย่างง่ายดาย แต่ AVR ได้รับการสนับสนุนอย่างดี และตัวอย่างทั้งหมดที่ฉันพบสำหรับรีโมตนั้นใช้ AVR! จอ LCD มี เป็นจอแสดงผลสองประเภทหลักคือแบบกราฟิกและตัวอักษรและตัวเลข การแสดงผลแบบกราฟิกมีความละเอียด และคุณสามารถใส่พิกเซลได้ทุกที่ที่คุณต้องการ ข้อเสียคือพวกเขาเขียนโค้ดได้ยากขึ้น (แม้ว่าจะมีไลบรารีอยู่ก็ตาม) การแสดงตัวเลขและตัวอักษรเป็นเพียงแถวของอักขระหนึ่งแถวขึ้นไป จอ LCD มีที่เก็บอักขระพื้นฐานไว้บนเครื่อง (เช่น ตัวอักษร ตัวเลขและสัญลักษณ์บางตัว) และง่ายต่อการแสดงสตริงและอื่นๆ ข้อเสียคือพวกมันไม่ยืดหยุ่นและการแสดงกราฟิกแทบจะเป็นไปไม่ได้เลย แต่มันเหมาะกับจุดประสงค์ของเรา พวกเขายังถูกกว่า!ตัวอักษรและตัวเลขถูกจัดหมวดหมู่ตามจำนวนแถวและคอลัมน์ของพวกเขา 2x16 นั้นค่อนข้างธรรมดา โดยมีสองแถวที่มีอักขระ 16 ตัว โดยแต่ละตัวจะเป็นเมทริกซ์ขนาด 5x8 คุณสามารถรับ 2x20 ได้เช่นกัน แต่ฉันไม่เห็นความจำเป็น ซื้ออะไรก็ได้ที่คุณสบายใจ ฉันเลือกใช้ LCD ที่มีแสงพื้นหลังสีแดง (ฉันต้องการใช้สำหรับการถ่ายภาพดวงดาวและแสงสีแดงจะดีกว่าสำหรับการมองเห็นตอนกลางคืน) คุณสามารถไปได้โดยไม่ต้องใช้แสงไฟ - เป็นทางเลือกของคุณทั้งหมด หากคุณเลือกเส้นทางที่ไม่มีแสงย้อน คุณจะประหยัดพลังงานและประหยัดเงิน แต่คุณอาจต้องใช้ไฟฉายในที่มืด เมื่อมองหา LCD คุณควรตรวจสอบให้แน่ใจว่า HD44780 ควบคุมอุปกรณ์ดังกล่าว เป็นโปรโตคอลมาตรฐานอุตสาหกรรมที่พัฒนาโดยฮิตาชิและมีห้องสมุดที่ดีมากมายที่เราสามารถใช้เพื่อส่งออกข้อมูล รุ่นที่ฉันซื้อคือ JHD162A จาก eBay การป้อนข้อมูลจะทำโดยใช้ปุ่มต่างๆ (แบบง่าย!) ฉันเลือก 6 - เลือกโหมด ตกลง/ถ่าย และ 4 ทิศทาง นอกจากนี้ยังควรซื้อปุ่มเล็กๆ อีกปุ่มหนึ่งเพื่อรีเซ็ตไมโครในกรณีที่เครื่องขัดข้อง สำหรับอินพุตทริกเกอร์ แนวคิดพื้นฐานบางอย่างคือตัวต้านทานแบบใช้แสงหรือไมโครโฟนอิเล็กเตรต นี่คือที่ที่คุณสามารถสร้างสรรค์หรือตระหนี่ได้ขึ้นอยู่กับงบประมาณของคุณ เซ็นเซอร์อัลตราซาวนด์จะเสียค่าใช้จ่ายเพิ่มขึ้นอีกเล็กน้อยและต้องมีการเขียนโปรแกรมเพิ่มเติม แต่คุณสามารถทำบางสิ่งที่เรียบร้อยจริงๆ กับพวกเขาได้ คนส่วนใหญ่จะพอใจกับไมโครโฟน (อาจเป็นเซ็นเซอร์ทั่วไปที่มีประโยชน์ที่สุด) และอิเล็กเตรตมีราคาถูกมาก โปรดทราบว่าจะต้องมีการขยายสัญญาณด้วย (แต่ฉันจะอธิบายในภายหลัง) เอาต์พุต - สถานะ เอาต์พุตจริงเพียงอย่างเดียวที่เราต้องการคือสถานะ (นอกเหนือจากจอแสดงผล) ดังนั้น LED สองสามดวงจึงจะทำงานได้ดีที่นี่ เอาต์พุต - การยิงสำหรับการถ่าย รูปภาพ เราต้องเชื่อมต่อกับกล้อง และเราต้องการแหล่งกำเนิดแสงที่สามารถผลิตรังสีอินฟราเรดได้ โชคดีที่มีไฟ LED จำนวนมากที่ทำเช่นนี้ และคุณควรพยายามเลือกไฟที่มีกำลังสูงพอสมควร หน่วยที่ฉันเลือกมีพิกัดกระแสสูงสุด 100mA (ไฟ LED ส่วนใหญ่อยู่ที่ประมาณ 30mA) คุณควรสังเกตเอาต์พุตความยาวคลื่นด้วย แสงอินฟราเรดอยู่ในส่วนความยาวคลื่นที่ยาวกว่าของสเปกตรัม EM และคุณควรมองหาค่าที่ประมาณ 850-950 นาโนเมตร ไฟ LED IR ส่วนใหญ่มีแนวโน้มไปทางปลาย 950 และคุณอาจเห็นแสงสีแดงเล็กน้อยเมื่อเปิดเครื่อง นี่ไม่ใช่ปัญหา แต่เป็นสเปกตรัมที่สูญเปล่า ดังนั้นพยายามเข้าใกล้ 850 ถ้าเป็นไปได้ พลังงานเราจะใช้พลังงานทั้งหมดได้อย่างไร นี้? มันจะเป็นแบบพกพาดังนั้นแบตเตอรี่! ฉันเลือกใช้แบตเตอรี่ AA 2 ก้อน จากนั้นเพิ่มเป็น 5V ฉันจะอธิบายเหตุผลเบื้องหลังในหัวข้อถัดไป'การใส่และการก่อสร้าง'วิธีการทำส่วนนี้ขึ้นอยู่กับคุณ ฉันตัดสินใจใช้สตริปบอร์ดสำหรับวงจรหลังจากสร้างต้นแบบเพราะราคาถูกและยืดหยุ่น และประหยัดการออกแบบ PCB แบบกำหนดเอง ฉันได้จัดเตรียมแผนผังเพื่อให้คุณมีอิสระที่จะสร้างเลย์เอาต์ PCB ของคุณเอง - แม้ว่าคุณจะทำ ฉันก็ยินดีเป็นอย่างยิ่งที่มีสำเนา! เคสนี้เป็นทางเลือกของคุณทั้งหมด มันจะต้องพอดีกับหน้าจอ, ปุ่ม (ในรูปแบบที่เข้าใจง่ายถ้าเป็นไปได้) และแบตเตอรี่ เมื่อแผงวงจรทำงาน แผงวงจรนี้ไม่ได้ซับซ้อนขนาดนั้น การเชื่อมต่อจำนวนมากเป็นเพียงกับสิ่งต่างๆ เช่น ปุ่ม/LCD

ขั้นตอนที่ 2: การจัดการพลังงาน

การจัดการพลังงาน
การจัดการพลังงาน

การจัดการพลังงานสำหรับโครงการเช่นนี้ เห็นได้ชัดว่าการพกพาเป็นสิ่งสำคัญ แบตเตอรี่จึงเป็นทางเลือกที่เหมาะสม! ในตอนนี้ สำหรับอุปกรณ์พกพา สิ่งสำคัญคือคุณต้องเลือกแหล่งแบตเตอรี่ที่สามารถชาร์จใหม่ได้หรือหาได้ง่าย สองตัวเลือกหลักคือแบตเตอรี่ 9V PP3 หรือแบตเตอรี่ AA ฉันแน่ใจว่าบางคนจะถือว่าแบตเตอรี่ 9V เป็นตัวเลือกที่ดีที่สุดเพราะว่า 9V ดีกว่า 3 ใช่ไหม ไม่ใช่ในกรณีนี้ แบตเตอรี่ 9V มีประโยชน์อย่างมาก ให้แรงดันไฟโดยสิ้นเปลืองอายุการใช้งานของแบตเตอรี่ วัดเป็น mAh (มิลลิแอมป์ชั่วโมง) การประเมินนี้จะบอกคุณในทางทฤษฎีว่าแบตเตอรี่จะใช้งานได้นานเพียงใดที่ 1mA ในชั่วโมง (แม้ว่าจะใช้เกลือเพียงเล็กน้อย แต่มักอยู่ภายใต้สภาวะโหลดต่ำในอุดมคติ) ยิ่งคะแนนสูงเท่าไหร่ แบตเตอรี่ก็จะยิ่งใช้งานได้นานขึ้นเท่านั้น แบตเตอรี่ 9V ได้รับการจัดอันดับสูงสุดและประมาณ 1,000mAh ในทางกลับกัน ถ่านอัลคาไลน์ AA มีความจุ 2900mAh เกือบสามเท่า การชาร์จแบบ NiMH สามารถทำได้ แม้ว่า 2500mAh จะเป็นปริมาณที่เหมาะสม (โปรดทราบว่าแบตเตอรี่แบบชาร์จซ้ำได้ทำงานที่ 1.2V ไม่ใช่ 1.5!) หน้าจอ LCD ต้องการอินพุต 5V (10%) และ AVR (ไมโครคอนโทรลเลอร์) ต้องการเหมือนกัน (แม้ว่าความเร็วสัญญาณนาฬิกาความถี่ต่ำจะลงได้ถึง 2.7 ก็ตาม) นอกจากนี้เรายังต้องการแรงดันไฟฟ้าที่เสถียรพอสมควร หากความผันผวนเกี่ยวกับไมโครคอนโทรลเลอร์อาจทำให้เกิดปัญหากับไมโครคอนโทรลเลอร์ได้ ในการดำเนินการนี้ เราจะใช้ตัวควบคุมแรงดันไฟฟ้า คุณต้องตัดสินใจเลือกราคาเทียบกับประสิทธิภาพในขณะนี้ คุณมีตัวเลือกในการใช้ตัวควบคุมแรงดันไฟฟ้าแบบ 3 พินอย่างง่าย เช่น LM7805 (78 ซีรีส์, เอาต์พุต +5 โวลต์) หรือวงจรรวมขนาดเล็ก การใช้ตัวควบคุมแบบธรรมดาหากคุณเลือกตัวเลือกนี้ คุณจะต้องแบกรับ ไม่กี่จุดในใจ ประการแรก ตัวควบคุมสามพินมักต้องการอินพุตที่สูงกว่าเอาต์พุตเสมอ จากนั้นจึงลดแรงดันไฟฟ้าลงเป็นค่าที่ต้องการ ข้อเสียคือมีประสิทธิภาพแย่มาก (50-60% เป็นไปที่ดี) ข้อดีคือราคาถูกและใช้งานกับแบตเตอรี่ 9V ได้ คุณสามารถซื้อรุ่นพื้นฐานได้ในราคา 20 เพนนีในสหราชอาณาจักร คุณควรจำไว้เสมอว่าหน่วยงานกำกับดูแลมีแรงดันตกคร่อม - ช่องว่างขั้นต่ำระหว่างอินพุตและเอาต์พุต คุณสามารถซื้อตัวควบคุม LDO (Low DropOut) พิเศษที่มี dropouts ที่ประมาณ 50mV (เทียบกับ 1-2V กับการออกแบบอื่นๆ) กล่าวอีกนัยหนึ่ง ให้มองหา LDO ที่มีเอาต์พุต +5V การใช้วงจรรวมวิธีที่เหมาะที่สุดคือตัวควบคุมการสลับ สำหรับวัตถุประสงค์ของเรา โดยปกติแล้ว แพ็คเกจ 8 พินที่รับแรงดันไฟฟ้าและให้เอาต์พุตที่มีการควบคุมที่ประสิทธิภาพสูง - เกือบ 90% ในบางกรณี คุณสามารถรับตัวแปลงแบบสเต็ปอัพหรือสเต็ปดาวน์ (บูสต์/บั๊กตามลำดับ) ขึ้นอยู่กับสิ่งที่คุณต้องการใส่เข้าไป หรือคุณสามารถซื้อตัวควบคุมที่จะให้เอาต์พุตที่ต้องการสูงกว่าหรือต่ำกว่า ชิปที่ฉันใช้สำหรับโครงการนี้คือ MAX619+ เป็นสเต็ปอัพเรกูเลเตอร์ 5V ที่ใช้ 2 AA (ช่วงอินพุตคือ 2V-3.3V) และให้เอาต์พุต 5V คงที่ ต้องการตัวเก็บประจุเพียงสี่ตัวเท่านั้นจึงจะใช้งานได้และประหยัดพื้นที่มาก ราคา - 3.00 รวมฝา อาจเป็นการคุ้มค่าที่จะใช้ประโยชน์จากแบตเตอรี่ของคุณให้มากขึ้น ข้อเสียอย่างเดียวที่สำคัญคือมันไม่ได้ป้องกันการลัดวงจร ดังนั้นหากมีกระแสไฟกระชาก เตือนไว้! นี่เป็นเรื่องเล็กน้อยที่สมเหตุสมผลในการแก้ไขด้วยวงจรเสริม: การออกแบบชิปที่มีประโยชน์อีกอย่างหนึ่ง - แม้ว่าโซลูชันจะไม่เรียบร้อยเท่า LT1307 อีกครั้งตัวควบคุม 5V แต่สามารถรับอินพุตได้หลากหลายและมีประโยชน์เช่นการตรวจจับแบตเตอรี่ต่ำ มีค่าใช้จ่ายค่อนข้างมากกว่าที่เกือบ 5 เมื่อใช้ตัวเหนี่ยวนำ ตัวเก็บประจุขนาดใหญ่ และตัวต้านทาน รางแรงดันไฟฟ้าเราจะใช้รางแรงดันไฟฟ้าหลักสองราง อย่างแรกจะเป็น 3V จากแบตเตอรี่ ซึ่งจะใช้เพื่อจ่ายไฟให้กับ LED และส่วนประกอบอื่นๆ ที่มีกำลังค่อนข้างสูง MAX619 ของฉันได้รับการจัดอันดับสูงสุด 60mA เท่านั้น (แม้ว่าค่าสูงสุดที่แน่นอนคือ 120mA) ดังนั้นจึงง่ายต่อการเชื่อมต่อไมโครคอนโทรลเลอร์กับ MOSFET เพื่อควบคุม LEDs MOSFET ดึงกระแสไฟแทบไม่ออกมาและทำหน้าที่เป็นตัวแบ่งวงจรเมื่ออินพุตเกตต่ำกว่า 3V เมื่อไมโครคอนโทรลเลอร์ส่งลอจิก 1 บนพิน แรงดันไฟฟ้าคือ 5V และ FET เปิดขึ้น จากนั้นทำหน้าที่เป็นไฟฟ้าลัดวงจร (เช่น สายไฟ) ราง 5V จะจ่ายไฟให้กับ LCD ไมโครคอนโทรลเลอร์ และวงจรขยายสัญญาณใดๆ สำหรับ เซ็นเซอร์อินพุตการใช้พลังงานหากเราดูเอกสารข้อมูลต่างๆ เราทราบว่า AVR ใช้เวลาไม่เกิน 15-20mA ที่โหลดสูงสุด LCD ใช้เวลาเพียง 1mA ในการทำงาน (อย่างน้อยเมื่อฉันทดสอบ งบประมาณสำหรับ 2) เมื่อเปิดไฟแบ็คไลท์ คุณจะตัดสินใจได้เอง การเชื่อมต่อโดยตรงกับราง 5V (ฉันลองแล้ว) นั้นใช้ได้ แต่ตรวจสอบให้แน่ใจว่ามีตัวต้านทานออนบอร์ด (ตามรอยบน PCB) ก่อนที่คุณจะทำ มันดึง 30mA แบบนั้น - แย่มาก! ด้วยตัวต้านทาน 3.3k จึงยังคงมองเห็นได้ (เหมาะสำหรับการถ่ายภาพแอสโตร) และดึงเพียง 1mA เท่านั้น คุณยังสามารถรับความสว่างที่เหมาะสมได้โดยใช้ 1k หรืออย่างอื่น ฉันไม่เป็นไรกับการวาดของฉันเพียง 2mA โดยเปิดไฟแบ็คไลท์! หากคุณต้องการ การเพิ่มปุ่มปรับความสว่างโดยใช้โพเทนชิออมิเตอร์ 10k นั้นไม่ใช่เรื่องง่าย IR LED อาจใช้สูงสุด 100mA แต่ฉันได้ผลลัพธ์ที่ดีกับ 60mA ทั่วทั้งตัวฉัน (การทดลอง!) จากนั้น คุณสามารถลดกระแสไฟนั้นลงครึ่งหนึ่งได้ เนื่องจากคุณกำลังทำงานอย่างมีประสิทธิภาพที่รอบการทำงาน 50% (เมื่อ LED ถูกมอดูเลต) อย่างไรก็ตาม มันเปิดอยู่เพียงเสี้ยววินาที เราจึงไม่ต้องกังวลเกี่ยวกับเรื่องนี้ ไฟ LED อื่นๆ ที่คุณควรลองใช้ คุณอาจพบว่ากระแสไฟเพียง 10mA ก็เพียงพอแล้วที่จะให้ความสว่างที่ดี สำหรับ LED พลังงานต่ำ (ยกเว้น IR) คุณไม่ได้ออกแบบไฟฉาย! ฉันเลือกที่จะไม่เพิ่มตัวบ่งชี้กำลังในวงจรของฉัน เพียงเพราะมันเป็นกระแสจำนวนมากที่ไม่ได้ใช้งานมากนัก ใช้สวิตช์เปิด/ปิดเพื่อตรวจสอบว่าเปิดอยู่หรือไม่! โดยรวมแล้ว คุณไม่ควรใช้งานเกิน 30mA ในแต่ละครั้ง และด้วยการจ่ายไฟตามทฤษฎีประมาณ 2500 (เพื่อให้สามารถเปลี่ยนแปลงได้) mAh ที่ควรให้มากกว่า 80 ชั่วโมง ตรงกับทุกอย่างบน เมื่อไม่ได้ใช้งานโปรเซสเซอร์เป็นส่วนใหญ่ ค่านี้จะเพิ่มขึ้นอย่างน้อยสองเท่า/สามเท่า ดังนั้นคุณจึงไม่ควรต้องเปลี่ยนแบตเตอรี่บ่อยมาก สรุปแล้ว ไปกันเถอะ ง่ายแล้วไม่ใช่เหรอ! คุณสามารถเลือกราคาถูกและร่าเริงด้วยแบตเตอรี่ 9V และตัวควบคุม LDO โดยเสียค่าใช้จ่ายด้านประสิทธิภาพหรือจ่ายเพิ่มอีกนิดและใช้ IC เฉพาะเพื่อทำ งบประมาณของฉันยังต่ำกว่า 20 แม้ว่าจะใช้ IC คุณจึงลดได้มากกว่านี้หากต้องการ

ขั้นตอนที่ 3: มอง ATmega8. ให้ละเอียดยิ่งขึ้น

มองใกล้ที่ ATmega8
มองใกล้ที่ ATmega8

PinsImage 1 เป็นไดอะแกรม pinout สำหรับ ATMega8 (เหมือนกับ 168/48/88 ความแตกต่างเพียงอย่างเดียวคือจำนวนหน่วยความจำออนบอร์ดและตัวเลือกการขัดจังหวะ) พิน 1 - รีเซ็ตควรเก็บไว้ที่แรงดัน VCC (หรืออย่างน้อย ตรรกะ 1). หากต่อสายดิน อุปกรณ์จะซอฟต์รีเซ็ตพิน 2-6 - พอร์ต D, อินพุต/เอาต์พุตทั่วไปพิน 7 - VCC, แรงดันไฟฟ้า (+5V สำหรับเรา)พิน 8 - GroundPin 9, 10 - XTAL, อินพุตนาฬิกาภายนอก (ส่วนหนึ่งของพอร์ต B)พิน 11 - 13 พอร์ต D, อินพุต/เอาต์พุตทั่วไปพิน 14 - 19 พอร์ต B, อินพุต/เอาต์พุตทั่วไปพิน 20 - AVCC, แรงดันแหล่งจ่ายอนาล็อก (เหมือนกับ VCC)พิน 21 - AREF, แรงดันอ้างอิงอนาล็อกพิน 22 - GroundPin 23-28 พอร์ต C, อินพุต/เอาต์พุตทั่วไปพอร์ต i/o ที่ใช้งานได้: D = 8, C = 6, B = 6A พอร์ตที่ใช้งานได้ทั้งหมด 20 พอร์ตนั้นยอดเยี่ยมมาก เพื่อความเรียบง่าย คุณควรจัดกลุ่มเอาต์พุตของคุณเป็นพอร์ต (เช่น D เป็นพอร์ตเอาต์พุต) หรือเป็น กลุ่มบนบอร์ด - คุณอาจต้องการให้ LCD ทำงานจากพอร์ต C เพียงเพื่อให้สายไฟเป็นระเบียบเรียบร้อยในมุมนั้น มีหมุดพิเศษสามตัวที่จำเป็นสำหรับการตั้งโปรแกรม ได้แก่ MISO (18), MOSI (17) และ SCK (19)สิ่งเหล่านี้จะทำหน้าที่เป็นพิน i/o อย่างมีความสุขหากจำเป็น การล็อกสัญญาณที่เราส่งไปยังกล้องจะต้องมีการจับเวลาที่แม่นยำ (แม่นยำถึงประมาณไมโครวินาที) ดังนั้นจึงเป็นเรื่องสำคัญที่เราจะต้องเลือกแหล่งสัญญาณนาฬิกาที่ดี AVR ทั้งหมดมีออสซิลเลเตอร์ภายในที่ชิปสามารถรับนาฬิกาได้ ข้อเสียคือสามารถผันผวนประมาณ 10% ตามอุณหภูมิ/ความดัน/ความชื้น สิ่งที่เราทำได้เพื่อต่อสู้กับสิ่งนี้คือใช้คริสตัลควอตซ์ภายนอก มีให้เลือกตั้งแต่ 32768kHz (นาฬิกา) ถึง 20MHz ฉันเลือกใช้คริสตัล 4 เมกะเฮิร์ตซ์เนื่องจากมีความเร็วพอสมควร แต่ก็ค่อนข้างอนุรักษ์พลังงานไว้เมื่อเทียบกับ 8 เมกะเฮิร์ตซ์ + การจัดการพลังงานออนบอร์ดฉันต้องการใช้รูทีนการนอนหลับในโค้ดของฉันจริงๆ อันที่จริงฉันเขียนเวอร์ชันแรกเพื่อใช้โปรเซสเซอร์ที่ไม่ทำงานในขณะที่หมดเวลา ขออภัย เนื่องจากข้อจำกัดด้านเวลา ฉันพบปัญหาบางอย่างเกี่ยวกับการเรียกใช้นาฬิกาจากภายนอกและขัดจังหวะการใช้ตัวจับเวลา โดยพื้นฐานแล้วฉันต้องเขียนโค้ดใหม่เพื่อจัดการกับคอนโทรลเลอร์โดยไม่ตื่น - ซึ่งฉันทำได้ แต่เวลาเป็นปฏิปักษ์กับฉัน ด้วยเหตุนี้ อุปกรณ์จึงดึงพลังงานเพียง 20mA ish ดังนั้นคุณจึงสามารถหลีกเลี่ยงได้ หากคุณพร้อมจริงๆ กับโค้ดทั้งหมด สิ่งที่คุณต้องทำคือนาฬิกาภายในแล้วเรียกใช้ Timer 2 ในโหมดอะซิงโครนัสโดยใช้คริสตัล 4MHz เพื่อความล่าช้าที่แม่นยำยิ่งขึ้น ทำง่าย แต่ใช้เวลานาน ADCมีดทหารสวิสในชุดเครื่องมือ AVR ADC ย่อมาจาก Analogue to Digital Converter วิธีการทำงานค่อนข้างง่ายจากภายนอก แรงดันไฟฟ้าถูกสุ่มตัวอย่างบนขา (จากเซ็นเซอร์บางส่วนหรืออินพุตอื่น ๆ) แรงดันไฟฟ้าจะถูกแปลงเป็นค่าดิจิตอลระหว่าง 0 ถึง 1024 ค่า 1024 จะถูกสังเกตเมื่อแรงดันไฟฟ้าขาเข้าเท่ากับแรงดันอ้างอิง ADC หากเราตั้งค่าการอ้างอิงเป็น VCC (+5V) แต่ละดิวิชั่นจะเท่ากับ 5/1024 V หรือประมาณ 5mV ดังนั้นการเพิ่มขึ้นของ 5mV บนพินจะเพิ่มค่า ADC ขึ้น 1 เราสามารถนำค่าเอาต์พุต ADC เป็นตัวแปรแล้วเล่นซอกับมันเปรียบเทียบกับสิ่งต่าง ๆ ฯลฯ ในโค้ด ADC เป็นฟังก์ชันที่มีประโยชน์อย่างเหลือเชื่อ และช่วยให้คุณทำสิ่งดีๆ มากมาย เช่น เปลี่ยน AVR ของคุณให้เป็นออสซิลโลสโคป ความถี่สุ่มตัวอย่างอยู่ที่ประมาณ 125kHz และต้องตั้งค่าตามสัดส่วนของความถี่สัญญาณนาฬิกาหลัก การลงทะเบียน คุณอาจเคยได้ยินเกี่ยวกับการลงทะเบียนมาก่อน แต่อย่ากลัว! การลงทะเบียนเป็นเพียงการรวบรวมที่อยู่ (สถานที่) ในหน่วยความจำ AVR รีจิสเตอร์แบ่งตามขนาดบิต รีจิสเตอร์ 7 บิตมี 8 ตำแหน่ง เนื่องจากเราเริ่มจาก 0 มีรีจิสเตอร์สำหรับทุกอย่าง และเราจะดูรายละเอียดเพิ่มเติมในภายหลัง ตัวอย่างบางส่วนรวมถึงรีจิสเตอร์ PORTx (โดยที่ x คือ B, C หรือ D) ที่ควบคุมว่าพินถูกตั้งค่าสูงหรือต่ำและตั้งค่าตัวต้านทานแบบดึงขึ้นสำหรับอินพุต DDRx รีจิสเตอร์ซึ่งกำหนดว่าพินเป็นเอาต์พุตหรืออินพุตเป็นต้น เอกสารข้อมูลขนาดใหญ่ของวรรณกรรม มีน้ำหนักประมาณ 400 หน้า; แผ่นข้อมูล AVR เป็นข้อมูลอ้างอิงอันมีค่าสำหรับโปรเซสเซอร์ของคุณ ซึ่งประกอบด้วยรายละเอียดของรีจิสเตอร์ทุกตัว พินทุกตัว วิธีการทำงานของตัวจับเวลา ฟิวส์ตัวใดที่ควรตั้งค่าเป็นอย่างอื่น และอื่นๆ อีกมากมาย โดยไม่มีค่าใช้จ่ายและคุณจะต้องใช้ไม่ช้าก็เร็ว ดังนั้นดาวน์โหลดสำเนา!www.atmel.com/dyn/resources/prod_documents/doc2486.pdf

ขั้นตอนที่ 4: การจัดสรรพิน

การจัดสรรพิน
การจัดสรรพิน

ฉันได้กล่าวถึงอินพุตและเอาต์พุตที่เราต้องการแล้ว ดังนั้นเราควรจัดสรรพินให้พวกมัน ตอนนี้ PORT D มี 8 พิน ซึ่งสะดวกเพราะสามารถใช้เป็นพอร์ตเอาต์พุตของเราได้ LCD ต้องใช้ 7 พินในการทำงาน - 4 พินข้อมูลและ 3 พินควบคุม IR LED ต้องการเพียงขาเดียว ประกอบเป็น 8. PORTB ของเรา จะเป็นพอร์ตปุ่ม มี 6 อินพุต แต่เราต้องใช้เพียง 5 อันเท่านั้น ซึ่งจะเป็นโหมดและปุ่มทิศทาง PORTC คือ พิเศษก็คือพอร์ต ADC เราต้องการเพียงหนึ่งพินสำหรับอินพุตทริกเกอร์และควรวางไว้บน PC0 (คำย่อทั่วไปสำหรับพินพอร์ตในกรณีนี้คือพอร์ต C, พิน 0) จากนั้นเรามีพินสองสามตัวสำหรับไฟ LED แสดงสถานะ (อันหนึ่งจะสว่างขึ้นเมื่อค่า ADC อยู่เหนือเงื่อนไขบางอย่าง อีกอันจะสว่างขึ้นเมื่อต่ำกว่าเงื่อนไขบางประการ) นอกจากนี้เรายังจะใส่ปุ่ม ok/shoot ไว้ที่นี่ ด้วยเหตุผลที่ชัดเจนในภายหลัง หลังจากทั้งหมดนี้ เราได้ใช้พอร์ตส่วนใหญ่หมดแล้ว แต่เรายังเหลืออีกเล็กน้อยหากคุณต้องการขยายโครงการ - อาจมีทริกเกอร์หลายตัว?

ขั้นตอนที่ 5: การสื่อสารกับกล้อง

การสื่อสารด้วยกล้อง
การสื่อสารด้วยกล้อง
การสื่อสารด้วยกล้อง
การสื่อสารด้วยกล้อง

รางวัลที่หนึ่งในการประกวดภาพถ่าย Digital Days

แนะนำ: