Mục lục:

Ngăn chặn trộm 'ở nhà một mình' / Sử dụng Attiny13 để điều khiển Steppermotor và Servo: 5 bước
Ngăn chặn trộm 'ở nhà một mình' / Sử dụng Attiny13 để điều khiển Steppermotor và Servo: 5 bước

Video: Ngăn chặn trộm 'ở nhà một mình' / Sử dụng Attiny13 để điều khiển Steppermotor và Servo: 5 bước

Video: Ngăn chặn trộm 'ở nhà một mình' / Sử dụng Attiny13 để điều khiển Steppermotor và Servo: 5 bước
Video: Chết Cười với những cái bẫy Khắm Lọ của cậu bé - review phim hài ở nhà một mình 1 2024, Tháng mười một
Anonim
'Ở nhà một mình' Răn đe trộm / Sử dụng Attiny13 để điều khiển Steppermotor và Servo
'Ở nhà một mình' Răn đe trộm / Sử dụng Attiny13 để điều khiển Steppermotor và Servo
'Ở nhà một mình' Răn đe trộm / Sử dụng Attiny13 để điều khiển Steppermotor và Servo
'Ở nhà một mình' Răn đe trộm / Sử dụng Attiny13 để điều khiển Steppermotor và Servo

Đây có thể là một trong những dự án kỳ lạ nhất của tôi:-) Nhưng ngay cả khi bạn không quan tâm đến việc tránh xa kẻ trộm, dự án này có thể được sử dụng cho bất kỳ thứ gì mà bạn cần lái động cơ steppermotor hoặc động cơ servo, hoặc thậm chí một số động cơ DC với Attiny13 Hầu hết các bạn sẽ nhớ bộ phim Ở nhà một mình, nơi McCauly Calkin cố gắng giả vờ với những tên trộm rằng trên thực tế anh ta không ở nhà một mình, bằng cách đặt một hình bìa cứng trên máy ghi âm và đặt dây lên một hình bìa cứng khác để anh ta có thể bắt chước mọi người. Vì tôi thường xuyên vắng nhà nên tôi rất ý thức về việc bỏ lại ngôi nhà của mình như thể nó vẫn còn đang ở. trông giống như ai đó đang có mặt. Tôi đã thêm một 'TV giả' làm cho nó trông giống như đang có TV đang phát. Vì vậy, tôi cần một thứ gì đó có thể chuyển động và vì tôi không có máy ghi âm và muốn một thứ gì đó có thể hoạt động khi tôi đi vắng, tôi cần một thứ gì đó có trạng thái rắn chắc hơn một chút. để xoay nó 90 độ để nó luân phiên chặn ánh sáng và không chặn ánh sáng. Lần đầu tiên tôi đã làm điều đó với một servo rẻ tiền nhưng điều đó gây ra hai vấn đề: Thật khó để thêm một hình bìa cứng, thậm chí là một hình không quá lớn, vào trục và một lần Tôi đã làm, lực cản sẽ quá nhiều cho servo đó. Một servo mạnh hơn có giá tăng rất cao nên tôi bắt đầu nghĩ đến 'Steppermotor'. Tôi vẫn có một cái khá nặng do tản nhiệt gắn vào nó có vẻ lý tưởng. thân người (dài khoảng 80 cm). Tôi phải gia cố tấm bìa cứng, làm cho nó nặng hơn, hoặc tôi phải làm nó nhỏ lại. Giải pháp thứ hai dường như là giải pháp tốt nhất vì tôi có thể đặt nó gần hơn với ánh sáng. Động cơ, ròng rọc, v.v. lướt qua tâm trí tôi và mặc dù tôi vẫn chưa hoàn toàn từ bỏ ý định đó, bây giờ tôi chỉ quyết định thêm một tính năng nhỏ vào hình bìa cứng và đó là một cái đầu chuyển động. Ý tưởng của tôi là để hình này quay 90 độ, vì vậy nó sẽ đổ bóng đầy đủ, và sau đó nó sẽ gật đầu. và đó là nơi mà servo của tôi xuất hiện trở lại. Tôi thực sự không muốn hy sinh cả một chiếc arduino chỉ để biến một con số bằng bìa cứng. Về phần tiếp theo, tôi đoán một chiếc Attiny13 mà tôi đã đặt xung quanh cũng có thể thực hiện công việc: 4 chân cho bước, 1 chân cho servo. đó chính xác là những gì Attiny13 phải cung cấp. Tôi thừa nhận rằng một số người tôi có thể rất dày đặc vì tôi đã nghĩ ra tất cả các loại kịch bản về cách vận hành mã hóa hoạt động tại một thời điểm cụ thể, trong một thời điểm cụ thể vì lý tưởng là tôi muốn kiểm soát nó từ 'At home simulator' mà tôi đã đề cập trước đó. Vì vậy, tôi nghĩ về một dây hoặc không dây, nhưng Attin13 không phải là ý tưởng tốt nhất vì nó có vấn đề với Manchestercode và tôi cần một chân cắm cho bộ thu và độ nhạy của những bộ thu rẻ tiền đó không phải là tốt. Vì vậy, tôi đã nghĩ về chỉ một công tắc hẹn giờ thương mại, nhưng sau đó tôi nhận ra mình là một tên ngốc. Vì mọi thứ sẽ cần PSU của riêng nó, tại sao không lấy một chiếc wallwart và đặt nó vào một Công tắc từ xa mà tôi đã có thể điều khiển từ trình mô phỏng Tại nhà của mình. Vì vậy, tôi bắt đầu xây dựng thiết kế cuối cùng của mình.

Một hộp bìa cứng ServoA Steppermotor giá rẻAn Attiny13An 8 chân Ổ cắm ICA Mảnh bảng 9 dải 17 lỗMột số dây nối dài servoA ULN2003A Ổ cắm IC 16 chânA điện trở 10 k Một bảng cắt nhựa (hoặc một số mảnh vật liệu nhẹ khác) Đầu cắm nam 3 chân (cho servo) Băng keo dán đầu nam 6 pin (đối với động cơ steppermotor) (tất nhiên)

Ngoài ra: Một cách để lập trình Attiny

Chỉ là một nhận xét về Steppermotor. Tôi sử dụng một 55SI-25DAWC cũ, nhưng nếu bạn vẫn phải mua một cái thì có sẵn một combo động cơ / trình điều khiển rất rẻ: 28BYJ-48. Bản thân động cơ có giá 1,50 euro, nhưng với 2 euro, bạn có thể nhận được cùng một động cơ đó với bảng điều khiển. vì vậy đó là một việc tốt

Bước 1: 'Ở nhà một mình' Xây dựng người đàn ông các tông

'Ở nhà một mình' Xây dựng người đàn ông các tông
'Ở nhà một mình' Xây dựng người đàn ông các tông
'Ở nhà một mình' Xây dựng người đàn ông các tông
'Ở nhà một mình' Xây dựng người đàn ông các tông

Từ một chiếc hộp, tôi cắt một mảnh có kích thước 40x20 cm và một mảnh có kích thước 18x18. Tôi gắn hai mảnh lại với nhau để làm đầu và thân, sử dụng băng keo, để lại một khoảng trống nhỏ giữa hai mảnh, nhưng được băng keo che lại, để tạo thành bản lề cho cổ. (Hình ảnh cho thấy điều này rất rõ ràng) Từ chiếc thớt cũ, tôi cắt một miếng dài 20 cm, dày khoảng nửa cm (bề dày của tấm ván) và rộng khoảng 1,5 cm. 1,5 cm là đủ để phù hợp với trục của bước của tôi. Nếu bạn có một bước khác, hãy đảm bảo rằng mảnh bạn cắt đủ rộng cho trục của bước của bạn. dưới 'cổ', từ những mảnh bìa cứng, tôi đã tạo ra một giá đỡ cho servo của mình. Tất nhiên điều này có thể được thực hiện bằng sắt góc (hoặc nhựa), nhưng hơi khó để gắn vào thân các tông, vì vậy tôi chỉ sử dụng bìa cứng để lắp servo. Tôi đã thêm một cánh tay vào servo được làm từ một miếng nhựa 11 x 0,6 x 0,6 từ thớt và gắn nó vào te Servo. Một lần nữa, hãy nhìn vào các bức ảnh để xem điều này được thực hiện như thế nào Mặc dù bước của tôi đủ nặng để mang hình bìa cứng, nhưng mô-men xoắn và lực cản gây ra bởi nó quay sẽ khiến động cơ bắt đầu 'đi bộ' xung quanh, vì vậy tôi đã tạo ra một tấm cơ sở từ 24 * 11 cm của thớt. Tôi đã khoan hai lỗ để gắn động cơ bước và vẫn có không gian rộng rãi cho bộ điều khiển. Bằng cách đó, nó dễ dàng rơi trở lại khi servo quay trở lại vị trí 0

Bước 2: 'Ở nhà một mình' Xây dựng bộ điều khiển

'Home Alone' Cấu tạo bộ điều khiển
'Home Alone' Cấu tạo bộ điều khiển
'Home Alone' Cấu tạo bộ điều khiển
'Home Alone' Cấu tạo bộ điều khiển
'Home Alone' Cấu tạo bộ điều khiển
'Home Alone' Cấu tạo bộ điều khiển
'Home Alone' Cấu tạo bộ điều khiển
'Home Alone' Cấu tạo bộ điều khiển

Bộ điều khiển là An Attiny13, được gắn vào ULN2003. Mặc dù trong phiên bản của tôi, tôi đã sử dụng nhiều chân hơn một chút để làm cho bảng linh hoạt hơn để sử dụng cho các dự án khác, nhưng tiêu đề duy nhất bạn cần là đầu cắm servo đực 3 chân và đầu cắm đực 6 chân cho bước

Bước 3: 'Ở nhà một mình': phần mềm

CHỈNH SỬA 2019 Dự án được thực hiện dựa trên lõi 'Smeezekitty' phổ biến một thời cho Attiny13. MicroCore thường được sử dụng hiện nay từ MCUDude dường như có vấn đề với các biến trong các câu lệnh delayMicroseconds. Nếu bạn đang sử dụng cái đó, hãy thay thế "delayMicroseconds (300 + p * (2500/180));" bởi "delay (5);"

Chương trình trên cho thấy cách điều khiển bước cụ thể của tôi và bạn có thể cần thay đổi các giá trị đang được ghi vào PORTB nếu bạn có bước anotehr. Vì Attiny13 có bộ nhớ khá nhỏ và cũng không cung cấp quá nhiều chân cắm, nên chương trình đã bỏ lỡ một số sự tinh tế. Viết trực tiếp vào PORTB là OK, nhưng trong trường hợp này, nó cũng sẽ ghi “0” vào PB4 và PB5. PB5 không có nhiều vấn đề, nhưng bạn có thể muốn sử dụng PB4. Trong trường hợp của tôi, đó là nơi tôi đặt servo và điều đó không thực sự gây ra sự cố vì tôi không sử dụng chúng cùng lúc.

Tuy nhiên, nếu bạn muốn sử dụng một bộ vi điều khiển khác chẳng hạn như 328 và bạn muốn tránh ghi vào PB4 và PB5 và PB6 và PB7, hãy sử dụng mặt nạ để chỉ ghi vào bit 0-3. Mặt nạ để làm điều đó là B00001111.

Nếu sau đó bạn muốn đặt các bit 0 và 2, hãy làm như sau:

Thay vì PORTB = 5, trạng thái: PORTB = (PORTB & ~ mask) | (B00000101);

Đối với những người thấy điều này quá khó hiểu:

trước tiên nó là giá trị của PORTB với mặt nạ NOT và OR là kết quả với giá trị mà chúng tôi muốn ghi và gán lại giá trị đó cho PORTB.

Vì vậy, giả sử PORTB = 00010000 và chúng ta muốn ghi 00000101 vào nó, chúng ta không thể gán nó ngay lập tức vì điều đó sẽ xóa PB4.

Tuy nhiên, nếu chúng tôi làm như mô tả, nó sẽ trở thành:

PORTB = (PORTB & 11110000) | 00000101

PORTB = (00010000 & 11110000) | 00000101

PORTB = 00010000 | 00000101

PORTB = 00010101

Chúng tôi đã ghi giá trị của mình và giữ PB4

Vì vậy, tại sao chúng ta không thể ngay lập tức HOẶC PORTB với giá trị chúng ta muốn thay vì VÀ nhập nó trước?

Chà vì điều đó có thể giữ cho PB4 và PB5… nhưng nó cũng giữ cho PB3-PB0 không thay đổi nếu một trong số chúng đã chứa ký hiệu ‘1’

Tất nhiên việc đảo ngược mặt nạ sẽ không cần thiết nếu chúng ta định nghĩa nó đã được đảo ngược, nhưng thực tế phổ biến là làm như vậy

Bước 4: Ngăn chặn Trộm 'Ở nhà Một mình': Sử dụng

xem video để thấy nó hoạt động (nó đã xoay -90 độ, xin lỗi vì điều đó)

Mục đích của thiết bị này là ném bóng chuyển động lên rèm hoặc rèm. Do đó, nó hoạt động tốt nhất với rèm sáng. Bản thân thiết bị sẽ không được nhìn thấy từ bên ngoài. Đảm bảo thiết bị có nguồn sáng ở đâu đó. Điều khiển bằng cách gửi tín hiệu RF đến Công tắc từ xa trong ổ cắm điện nguồn cấp nguồn PSU wallwart cho thiết bị này, nhưng bạn cũng có thể sử dụng bộ hẹn giờ.

Bước 5: 'Ở nhà một mình' Những gì không hoạt động ……

Video này cho thấy một trong những thử nghiệm trước đây của tôi với phần thân lớn hơn và chỉ là một servo đơn giản. Rõ ràng không phải là một thiết kế tốt

Đề xuất: