สารบัญ:
- ขั้นตอนที่ 1: 'อยู่บ้านคนเดียว' สร้างคนกระดาษแข็ง
- ขั้นตอนที่ 2: 'Home Alone' การสร้างคอนโทรลเลอร์
- ขั้นตอนที่ 3: 'อยู่บ้านคนเดียว': ซอฟต์แวร์
- ขั้นตอนที่ 4: 'Home Alone' Burglar Deterrent: Use
- ขั้นตอนที่ 5: 'อยู่บ้านคนเดียว' สิ่งที่ใช้งานไม่ได้……
วีดีโอ: 'อยู่บ้านคนเดียว' กันขโมย/ ใช้ Attiny13 เพื่อขับ Steppermotor และเซอร์โว: 5 ขั้นตอน
2024 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2024-01-30 13:04
นี่อาจเป็นหนึ่งในโครงการที่แปลกประหลาดที่สุดของฉัน:-) แต่แม้ว่าคุณจะไม่สนใจที่จะกันขโมยออกไป โปรเจ็กต์นี้สามารถใช้ทำอะไรก็ได้ที่คุณต้องการขับสเต็ปเปอร์มอเตอร์หรือเซอร์โวมอเตอร์ หรือแม้แต่มอเตอร์ 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: 'อยู่บ้านคนเดียว' สิ่งที่ใช้งานไม่ได้……
วิดีโอนี้แสดงหนึ่งในการทดลองก่อนหน้าของฉันกับลำตัวที่ใหญ่ขึ้นและเป็นเพียงเซอร์โวธรรมดา เห็นได้ชัดว่าไม่ใช่การออกแบบที่ดี
แนะนำ:
[2020] ใช้ Micro:bits สองตัว (x2) เพื่อควบคุมรถ RC: 6 ขั้นตอน (พร้อมรูปภาพ)
[2020] การใช้ Micro:bits (x2) สองอันเพื่อควบคุมรถ RC: หากคุณมี micro:bits (x2) สองตัว คุณเคยคิดที่จะใช้พวกมันเพื่อควบคุมรถ RC จากระยะไกลหรือไม่? คุณสามารถควบคุมรถ RC ได้โดยใช้ micro:bit ตัวหนึ่งเป็นตัวส่งสัญญาณ และอีกตัวหนึ่งเป็นตัวรับ เมื่อคุณใช้ตัวแก้ไข MakeCode เพื่อเข้ารหัส micro:b
ใช้ Ultrasonic Sensor กับ Magicbit [Magicblocks]: 5 ขั้นตอน
ใช้ Ultrasonic Sensor กับ Magicbit [Magicblocks]: บทช่วยสอนนี้จะสอนให้คุณใช้ Ultrasonic Sensor กับ Magicbit ของคุณโดยใช้ Magicblocks เราใช้ magicbit เป็นบอร์ดพัฒนาในโปรเจ็กต์นี้ ซึ่งใช้ ESP32 ดังนั้นสามารถใช้บอร์ดพัฒนา ESP32 ในโครงการนี้ได้
ใช้ Buzzer บน Magicbit [Magicblocks]: 4 ขั้นตอน
ใช้ Buzzer บน Magicbit [Magicblocks]: บทช่วยสอนนี้จะสอนให้คุณใช้ Buzzer บน Magicbit โดยใช้ Magicblocks เราใช้ magicbit เป็นบอร์ดพัฒนาในโปรเจ็กต์นี้ ซึ่งใช้ ESP32 ดังนั้นสามารถใช้บอร์ดพัฒนา ESP32 ในโครงการนี้ได้
ใช้ Fusion เพื่อสร้างเครื่องมือไม้นี้!: 4 ขั้นตอน
ใช้ Fusion เพื่อสร้างเครื่องมือที่ทำจากไม้!: นี่เป็นหนึ่งในโครงการที่ง่ายที่สุดที่ฉันทำโดยใช้ Fusion 360 เพื่อช่วยผู้เริ่มต้นใช้งานซอฟต์แวร์ มันแสดงฟังก์ชันพื้นฐานบางอย่างของซอฟต์แวร์และใช้เวลามากง่ายเกินไป ซอฟต์แวร์ที่จำเป็น: Fusion 360 โดย Autodesk ข้อกำหนดเบื้องต้น
ใช้ 2 Shift Registers (74HC595) เพื่อขับ 16 LEDs: 9 Steps
การใช้ 2 Shift Registers (74HC595) กับไดรฟ์ 16 LEDs: วงจรนี้จะใช้ 2 shift register (74HC595) shift register จะขับเป็นเอาต์พุต 16 LEDs รีจิสเตอร์กะแต่ละตัวจะขับ LED 8 ดวง รีจิสเตอร์กะมีสายเพื่อให้เอาต์พุตรีจิสเตอร์แต่ละอันดูเหมือนซ้ำกัน