สารบัญ:

'อยู่บ้านคนเดียว' กันขโมย/ ใช้ Attiny13 เพื่อขับ Steppermotor และเซอร์โว: 5 ขั้นตอน
'อยู่บ้านคนเดียว' กันขโมย/ ใช้ Attiny13 เพื่อขับ Steppermotor และเซอร์โว: 5 ขั้นตอน

วีดีโอ: 'อยู่บ้านคนเดียว' กันขโมย/ ใช้ Attiny13 เพื่อขับ Steppermotor และเซอร์โว: 5 ขั้นตอน

วีดีโอ: 'อยู่บ้านคนเดียว' กันขโมย/ ใช้ Attiny13 เพื่อขับ Steppermotor และเซอร์โว: 5 ขั้นตอน
วีดีโอ: live metabolism and Q&A 29/10/20 2024, ธันวาคม
Anonim
'อยู่บ้านคนเดียว' กันขโมย / ใช้ Attiny13 เพื่อขับ Steppermotor และเซอร์โว
'อยู่บ้านคนเดียว' กันขโมย / ใช้ Attiny13 เพื่อขับ Steppermotor และเซอร์โว
'อยู่บ้านคนเดียว' กันขโมย / ใช้ Attiny13 เพื่อขับ Steppermotor และเซอร์โว
'อยู่บ้านคนเดียว' กันขโมย / ใช้ Attiny13 เพื่อขับ Steppermotor และเซอร์โว

นี่อาจเป็นหนึ่งในโครงการที่แปลกประหลาดที่สุดของฉัน:-) แต่แม้ว่าคุณจะไม่สนใจที่จะกันขโมยออกไป โปรเจ็กต์นี้สามารถใช้ทำอะไรก็ได้ที่คุณต้องการขับสเต็ปเปอร์มอเตอร์หรือเซอร์โวมอเตอร์ หรือแม้แต่มอเตอร์ DC หลายตัวที่มี Attiny13 พวกคุณส่วนใหญ่จะจำภาพยนตร์เรื่อง Home Alone ที่ McCauly Calkin พยายามแกล้งทำเป็นโจรว่าที่จริงแล้วเขาไม่ได้อยู่บ้านคนเดียวโดยเอาหุ่นกระดาษแข็งใส่เครื่องเล่นแผ่นเสียงและร้อยเชือกบนหุ่นกระดาษแข็งอีกอันเพื่อที่เขาจะได้เลียนแบบผู้คน การเต้นรำ เนื่องจากฉันต้องออกจากบ้านบ่อยๆ ฉันจึงมีสติมากที่จะทิ้งบ้านไว้ข้างหลังราวกับว่าบ้านยังมีคนว่างอยู่ ด้วยเหตุนี้ฉันจึงเผยแพร่ 'เครื่องจำลองที่บ้าน' ก่อนหน้านี้ซึ่งเปลี่ยนไฟในรูปแบบเฉพาะด้วยการสุ่มที่เพียงพอ ดูเหมือนมีคนอยู่ ฉันเพิ่ม 'ทีวีปลอม' ที่ทำให้ดูเหมือนมีทีวีกำลังเล่นอยู่ ทั้งหมดนี้ช่วยได้ แต่ถ้าเป็นการจำลองการมีอยู่ ไม่มีอะไรดีไปกว่าการเคลื่อนไหวจริง ดังนั้นฉันจึงต้องการบางสิ่งบางอย่างที่เคลื่อนไหวได้ และเนื่องจากฉันไม่มีเครื่องเล่นแผ่นเสียงและต้องการบางสิ่งบางอย่างที่สามารถทำงานได้ในขณะที่ฉันไม่อยู่ ฉันต้องการบางสิ่งบางอย่างที่มีเสถียรภาพมากขึ้นอีกเล็กน้อย วิธีที่ชัดเจนที่สุดในการสร้างหุ่นกระดาษแข็งจะสร้างความประทับใจให้กับการเคลื่อนไหวคือ หมุน 90 องศาเพื่อให้สลับกันแสงและไม่บังแสง ตอนแรกฉันทำแบบนั้นกับเซอร์โวราคาถูก แต่นั่นทำให้เกิดปัญหาสองประการ: เป็นการยากที่จะเพิ่มหุ่นกระดาษแข็ง แม้แต่อันที่ไม่ใหญ่เกินไป กับเพลา และครั้งเดียว ฉันทำแล้วการลากจะมากเกินไปสำหรับเซอร์โวตัวนั้น เซอร์โวที่ทรงพลังกว่ามีราคาสูงขึ้นอย่างมาก ดังนั้นฉันจึงเริ่มคิดว่า 'Steppermotor' ฉันยังมีอันที่หนักอยู่เนื่องจากมีฮีทซิงค์ติดอยู่ ดังนั้นมันจึงดูสมบูรณ์แบบ โปรแกรมสำหรับเปลี่ยน Steppermotor นั้นเขียนได้ง่ายบน Arduino แต่การลากก็ยังทำให้เกิดปัญหาอยู่บ้างเนื่องจากหุ่นกระดาษแข็งของฉันมีขนาดเท่ากับ ลำตัวมนุษย์ (ยาวประมาณ 80 ซม.) ฉันต้องเสริมกระดาษแข็งทำให้หนักขึ้นหรือต้องทำให้เล็กลง อย่างหลังดูเหมือนจะเป็นทางออกที่ดีที่สุดเพราะฉันสามารถวางมันไว้ใกล้แสงได้ ตลอดเวลานั้นฉันก็เล่นกับความคิดเพื่อให้ร่างนั้นยืนขึ้น มอเตอร์ รอก ฯลฯ เข้ามาในหัวฉัน และแม้ว่าฉันจะยังไม่เลิกล้มความคิดนั้นเสียทั้งหมด แต่สำหรับตอนนี้ ฉันเพิ่งตัดสินใจเพิ่มคุณลักษณะเล็กๆ ให้กับหุ่นกระดาษแข็ง และนั่นก็ทำให้หัวเคลื่อนไหวได้ ความคิดของฉันคือการให้ร่างนั้นหมุนไป 90 องศา ดังนั้นมันจึงฉายเงาเต็มแล้วจึงพยักหน้า และนั่นคือที่ที่เซอร์โวของฉันเข้ามาอีกครั้ง จริง ๆ แล้วฉันไม่ต้องการเสียสละ Arduino ทั้งหมดเพียงเพื่อเปลี่ยนร่างกระดาษแข็ง ในทางกลับกัน ฉันเดาว่า Attiny13 ที่ฉันวางไว้รอบๆ ก็สามารถทำงานได้เช่นกัน: 4 พินสำหรับสเต็ปเปอร์ 1 พินสำหรับเซอร์โว นั่นคือสิ่งที่ Attiny13 นำเสนอ ฉันยอมรับว่าบางครั้งฉันสามารถมีความหนาแน่นมากเพราะฉันคิดถึงสถานการณ์ต่างๆ เกี่ยวกับวิธีการใช้งาน contarption ให้ทำงานในเวลาที่กำหนด ในช่วงเวลาที่กำหนด เพราะในอุดมคติแล้ว ฉันต้องการควบคุม จาก 'เครื่องจำลองที่บ้าน' ที่ฉันพูดถึงก่อนหน้านี้ ดังนั้นฉันจึงคิดเกี่ยวกับสายหรือไร้สาย แต่แล้ว Attin13 ไม่ใช่ความคิดที่ดีที่สุดเพราะมีปัญหากับ Manchestercode และฉันต้องการพินสำหรับตัวรับและความไวของตัวรับสัญญาณราคาถูกเหล่านั้นก็ไม่ค่อยดีนัก ดังนั้นฉันจึงคิดเกี่ยวกับสวิตช์จับเวลาเชิงพาณิชย์ แต่แล้วฉันก็รู้ว่าฉันเป็นคนงี่เง่า เนื่องจากสิ่งนี้จำเป็นต้องมี PSU ของตัวเอง ทำไมไม่ลองนำ wallwart มาใส่ใน Remote Switch ที่ฉันสามารถควบคุมได้จากโปรแกรมจำลอง At Home ของฉัน ฉันจึงเริ่มสร้างการออกแบบขั้นสุดท้าย BOM

ServoA SteppermotorA ราคาถูก กล่องกระดาษแข็งAn Attiny13An 8 pins IC socketA Piece of stripboard 9 strips of 17 holessome servo extension cordsA ULN2003A 16 pins IC socketA 10 k resistorAพลาสติกเขียง (หรือชิ้นส่วนของวัสดุเบาอื่น ๆ) ส่วนหัว 3 ขาตัวผู้ (สำหรับเซอร์โว) หัวต่อตัวผู้ 6 พิน (สำหรับสเต็ปเปอร์มอเตอร์) เทปกาว (แน่นอน)

นอกจากนี้:วิธีการตั้งโปรแกรม Attiny

เป็นเพียงข้อสังเกตเกี่ยวกับ Steppermotor ฉันใช้ 55SI-25DAWC รุ่นเก่า แต่ถ้าคุณยังต้องซื้ออีกตัวหนึ่ง มีคอมโบสเต็ปเปอร์มอเตอร์/ไดรเวอร์ราคาถูกมาก: 28BYJ-48 ตัวมอเตอร์เองมีราคา 1.50 ยูโร แต่สำหรับ 2 ยูโร คุณจะได้มอเตอร์ตัวเดียวกันกับบอร์ดควบคุม นั่นเป็นข้อตกลงที่ดี

ขั้นตอนที่ 1: 'อยู่บ้านคนเดียว' สร้างคนกระดาษแข็ง

'อยู่บ้านคนเดียว' สร้างคนกระดาษแข็ง
'อยู่บ้านคนเดียว' สร้างคนกระดาษแข็ง
'อยู่บ้านคนเดียว' สร้างคนกระดาษแข็ง
'อยู่บ้านคนเดียว' สร้างคนกระดาษแข็ง

จากกล่องฉันตัดชิ้นขนาด 40x20 ซม. และ 18x18 ชิ้น ฉันติดทั้งสองชิ้นเข้าด้วยกันเป็นส่วนหัวและลำตัว โดยใช้เทปพันสายไฟ โดยปล่อยให้มีช่องว่างเล็ก ๆ ระหว่างสองชิ้น แต่ปิดด้วยเทปพันสายไฟเพื่อสร้างบานพับสำหรับคอ (ภาพทำให้ชัดเจนมาก)จากเขียงเก่าฉันตัดชิ้นยาว 20 ซม. หนาประมาณครึ่งซม. (ความหนาของกระดาน) และกว้างประมาณ 1.5 ซม. 1.5 ซม. ก็เพียงพอแล้วที่จะพอดีกับเพลาของสเต็ปเปอร์ของฉัน หากคุณมี stepper ที่แตกต่างกัน ตรวจสอบให้แน่ใจว่าชิ้นส่วนที่คุณตัดนั้นกว้างพอสำหรับเพลาของ stepper ของคุณ เจาะรูตรงกลางที่จะพอดีกับเพลาของฉัน จากนั้นฉันก็ติดพลาสติกเข้ากับฐานของกระดาษแข็ง 'Torso' Just ใต้ 'คอ' จากกระดาษแข็ง ฉันสร้างที่ยึดสำหรับเซอร์โวของฉัน แน่นอนว่าสามารถทำได้ด้วยเหล็กฉาก (หรือพลาสติก) แต่ติดยากเล็กน้อยกับเนื้อตัวของกระดาษแข็ง ดังนั้นฉันจึงใช้กระดาษแข็งเพื่อให้พอดีกับเซอร์โว ฉันเพิ่มแขนให้กับเซอร์โวที่ทำจากพลาสติก 11 x 0.6 x 0.6 จากเขียงและติดเข้ากับ te Servo ดูภาพอีกครั้งเพื่อดูว่ามันทำได้อย่างไร แม้ว่า stepper ของฉันจะหนักพอที่จะบรรทุกหุ่นกระดาษแข็งได้ แต่แรงบิดและการลากที่เกิดจากการหมุนของมันจะทำให้มอเตอร์เริ่ม 'เดิน' ไปรอบ ๆ ดังนั้นฉันจึงสร้างแผ่นฐานขึ้นมา เขียง 24*11 ซม. ฉันเจาะรูสองรูเพื่อติดสเต็ปเปอร์มอเตอร์และยังมีพื้นที่เพียงพอสำหรับตัวควบคุม แม้ว่าเซอร์โวจะหมุนไป 180 องศา แต่ฉันได้วางแขนไว้ไม่ให้หัวตั้งตรงจนสุด วิธีนั้นจะถอยกลับอย่างง่ายดายเมื่อเซอร์โวหมุนกลับไปที่ตำแหน่ง 0

ขั้นตอนที่ 2: 'Home Alone' การสร้างคอนโทรลเลอร์

'อยู่บ้านคนเดียว' สร้างคอนโทรลเลอร์
'อยู่บ้านคนเดียว' สร้างคอนโทรลเลอร์
'อยู่บ้านคนเดียว' สร้างคอนโทรลเลอร์
'อยู่บ้านคนเดียว' สร้างคอนโทรลเลอร์
'อยู่บ้านคนเดียว' สร้างคอนโทรลเลอร์
'อยู่บ้านคนเดียว' สร้างคอนโทรลเลอร์
'อยู่บ้านคนเดียว' สร้างคอนโทรลเลอร์
'อยู่บ้านคนเดียว' สร้างคอนโทรลเลอร์

คอนโทรลเลอร์คือ An Attiny13 ซึ่งต่ออยู่กับ ULN2003 แม้ว่าในเวอร์ชันของฉัน ฉันใช้พินเพิ่มขึ้นอีกเล็กน้อยเพื่อทำให้บอร์ดมีความยืดหยุ่นมากขึ้นเพื่อใช้สำหรับโปรเจ็กต์อื่น ๆ ส่วนหัวเดียวที่คุณต้องการคือส่วนหัวเซอร์โวตัวผู้ 3 พินและส่วนหัวตัวผู้ 6 พินสำหรับสเต็ปเปอร์

ขั้นตอนที่ 3: 'อยู่บ้านคนเดียว': ซอฟต์แวร์

แก้ไข 2019 โครงการถูกสร้างขึ้นบนพื้นฐานของแกน 'Smeezekitty' ที่ครั้งหนึ่งเคยเป็นที่นิยมสำหรับ Attiny13 MicroCore ที่ใช้บ่อยในขณะนี้จาก MCUDude มีปัญหากับตัวแปรในคำสั่ง delayMicroseconds หากคุณกำลังใช้อันนั้น ให้แทนที่ "delayMicroseconds(300 + p * (2500 / 180));" โดย "ล่าช้า(5);"

โปรแกรมด้านบนแสดงวิธีการขับ stepper เฉพาะของฉัน และคุณอาจต้องเปลี่ยนค่าที่เขียนไปยัง PORTB หากคุณมี anotehr stepper เนื่องจาก Attiny13 มีหน่วยความจำค่อนข้างเล็กและไม่มีพินมากเกินไป โปรแกรมจึงพลาดความซับซ้อนบางอย่างไป การเขียนโดยตรงไปยัง PORTB นั้นใช้ได้ แต่ในกรณีนี้ จะเขียน “0” ไปที่ PB4 และ PB5 ด้วย PB5 ไม่ใช่ปัญหามากนัก แต่คุณอาจต้องการใช้ PB4 ในกรณีของฉันนั่นคือที่ที่ฉันใส่เซอร์โวของฉันและนั่นไม่ได้ทำให้เกิดปัญหาจริงๆเพราะฉันไม่ได้ใช้มันในเวลาเดียวกัน

อย่างไรก็ตาม หากคุณต้องการใช้ไมโครคอนโทรลเลอร์อื่น เช่น 328 และต้องการหลีกเลี่ยงการเขียนไปยัง PB4 และ PB5 และ PB6 และ PB7 ให้ใช้มาสก์เพื่อเขียนไปยังบิต 0-3 เท่านั้น หน้ากากที่ทำคือ B00001111

หากคุณต้องการตั้งค่าบิตบิต 0 และ 2 ให้ทำดังนี้:

แทนที่จะเป็น PORTB=5 ให้ระบุ: PORTB=(PORTB &~mask) | (B00000101);

สำหรับผู้ที่พบว่าสิ่งนี้คลุมเครือเกินไป:

อันดับแรก ANDs ค่าของ PORTB โดยไม่ปิดบัง และผลลัพธ์ของ OR ด้วยค่าที่เราต้องการจะเขียนและกำหนดค่านั้นกลับเป็น PORTB

ดังนั้น สมมติว่า PORTB= 00010000 และเราต้องการเขียน 00000101 ลงไป เราไม่สามารถกำหนดได้ทันที เพราะนั่นจะล้าง PB4

แต่ถ้าเราทำตามที่อธิบายไว้ มันจะกลายเป็น:

PORTB=(PORTB & 11110000) | 00000101

PORTB=(00010000 & 11110000) | 00000101

PORTB=00010000 | 00000101

PORTB= 00010101

เราได้เขียนคุณค่าของเราและเก็บ PB4

เหตุใดเราจึงไม่สามารถ OR PORTB ได้ทันทีด้วยค่าที่เราต้องการแทน AND-ing ก่อน

เพราะนั่นอาจทำให้ PB4 และ PB5 อยู่ได้… แต่มันก็ทำให้ PB3-PB0 ไม่เปลี่ยนแปลงหากหนึ่งในนั้นมี '1' อยู่แล้ว

แน่นอนว่าการกลับหัวกลับหางก็ไม่จำเป็นหากเราจะนิยามมันกลับหัวกลับหางแล้ว แต่เป็นเรื่องปกติที่จะทำอย่างนั้น

ขั้นตอนที่ 4: 'Home Alone' Burglar Deterrent: Use

ดูวิดีโอเพื่อดูว่ามันใช้งานได้ (มันหมุน -90 องศา ขอโทษด้วย)

จุดประสงค์ของอุปกรณ์นี้คือการสร้างเงาที่เคลื่อนไหวบนผ้าม่านหรือมู่ลี่ ดังนั้นจึงใช้ได้ดีกับม่านแสง ไม่ควรมองเห็นตัวอุปกรณ์เองจากภายนอก ตรวจสอบให้แน่ใจว่ามีแหล่งกำเนิดแสงอยู่ด้านหลัง ฉันควบคุมโดยส่งสัญญาณ RF ไปยังสวิตช์ระยะไกลในเต้ารับไฟหลักที่ป้อน Wallwart PSU สำหรับอุปกรณ์นี้ แต่คุณยังสามารถใช้ตัวจับเวลาได้อีกด้วย

ขั้นตอนที่ 5: 'อยู่บ้านคนเดียว' สิ่งที่ใช้งานไม่ได้……

วิดีโอนี้แสดงหนึ่งในการทดลองก่อนหน้าของฉันกับลำตัวที่ใหญ่ขึ้นและเป็นเพียงเซอร์โวธรรมดา เห็นได้ชัดว่าไม่ใช่การออกแบบที่ดี

แนะนำ: