Índice:

Dissuasão anti-roubo 'Home Alone' / Use Attiny13 para dirigir um motor de passo e um servo: 5 etapas
Dissuasão anti-roubo 'Home Alone' / Use Attiny13 para dirigir um motor de passo e um servo: 5 etapas

Vídeo: Dissuasão anti-roubo 'Home Alone' / Use Attiny13 para dirigir um motor de passo e um servo: 5 etapas

Vídeo: Dissuasão anti-roubo 'Home Alone' / Use Attiny13 para dirigir um motor de passo e um servo: 5 etapas
Vídeo: Deixe sua casa mais segura! Porta anti-ladrão 2024, Dezembro
Anonim
Dissuasor anti-roubo 'Home Alone' / Use Attiny13 para conduzir um motor de passo e um servo
Dissuasor anti-roubo 'Home Alone' / Use Attiny13 para conduzir um motor de passo e um servo
Dissuasor anti-roubo 'Home Alone' / Use Attiny13 para conduzir um motor de passo e um servo
Dissuasor anti-roubo 'Home Alone' / Use Attiny13 para conduzir um motor de passo e um servo

Este pode ser um dos meus projetos mais estranhos:-) Mas mesmo se você não estiver interessado em manter ladrões longe, este projeto pode ser usado para qualquer coisa onde você precise acionar um motor de passo ou servo motor, ou mesmo vários motores DC com um Attiny13. A maioria de vocês vai se lembrar do filme Home Alone, onde McCauly Calkin tenta fingir para os ladrões que na verdade ele não está sozinho em casa, colocando uma figura de papelão em um toca-discos e amarrando cordas em outra figura de papelão para que ele possa imitar as pessoas dançando. Como estou longe de casa com frequência, estou muito consciente de deixar minha casa para trás como se ela ainda estivesse ocupada. parece que alguém está presente. Eu adicionei uma 'TV falsa' que faz parecer que há uma TV tocando. Todas essas coisas ajudam, mas se se trata de simular a presença, não há nada melhor do que o movimento real. Então, eu precisava de algo que se movesse e como não tenho um toca-discos e queria algo que pudesse operar enquanto eu estivesse fora, eu precisava de algo um pouco mais sólido. A maneira mais óbvia de fazer uma figura de papelão criar uma impressão de movimento seria girá-lo 90 graus para que ele bloqueie alternadamente a luz e não bloqueie a luz. Eu fiz isso primeiro com um servo barato, mas isso deu dois problemas: era difícil adicionar uma figura de papelão, mesmo que não fosse muito grande, ao eixo e uma vez Sim, o arrasto seria demais para aquele servo. Um servo mais poderoso teve um aumento de preço muito acentuado, então comecei a pensar em 'Steppermotor'. Eu ainda tinha um que era pesado devido ao dissipador de calor conectado a ele, então parecia ideal. Um programa para girar o Steppermotor foi facilmente escrito em um Arduino, mas o arrasto ainda estava causando um pequeno problema, pois minha figura de papelão tinha o tamanho de um torso humano (cerca de 80 cm de comprimento). Ou tive que reforçar o papelão, tornando-o mais pesado, ou tive que torná-lo menor. Este último parecia ser a melhor solução, pois eu poderia simplesmente colocá-lo mais perto de uma luz. Durante todo esse tempo, eu também estava brincando com o pensamento de ter uma figura em pé. Motores, roldanas etc. passaram pela minha cabeça e, embora eu não tenha desistido completamente dessa ideia, por enquanto eu apenas decidi adicionar um pequeno recurso à figura de papelão e que era uma cabeça em movimento. Minha ideia era fazer a figura girar 90 graus, então ele lançaria uma sombra completa, e então acenaria com a cabeça. e foi aí que meu servo entrou novamente. Na verdade, eu não queria sacrificar um arduino inteiro apenas para virar uma figura de papelão. No contário, achei que um Attiny13 que eu tinha ao redor poderia fazer o trabalho tão bem: 4 pinos para o stepper, 1 pino para o servo. isso é exatamente o que um Attiny13 tem a oferecer. Admito que às vezes posso ser muito denso porque pensei em todos os tipos de cenários de como operar a contagem para funcionar em um tempo específico, por um tempo específico, porque idealmente eu queria controlar do 'Simulador em casa' que mencionei anteriormente. Então pensei em um fio, ou wireless, mas o Attin13 não foi a melhor ideia pq que tem um problema com Manchestercode e eu precisava de um pino para o receptor e a sensibilidade desses receptores baratos não é tão boa. Então eu já pensei em apenas uma troca comercial de cronômetro, mas então percebi que estava sendo um idiota. Como a coisa precisaria de seu próprio PSU, por que não pegar um wallwart e colocá-lo em um switch remoto que eu já poderia controlar do meu simulador At Home. Então, comecei a construir meu projeto final. BOM

Um ServoA SteppermotorA barato caixa de papelãoAn Attiny13An 8 pinos IC socketA Pedaço de stripboard 9 tiras de 17 furosAlguns cabos de extensão servoA ULN2003A 16 pinos IC socketA 10 k resistorA placa de corte de plástico (ou algum outro pedaço de material leve) 3 pinos macho cabeçalho (para servo) Cabeçalho macho de 6 pinos (para motor de passo) fita adesiva colada (claro)

Além disso: uma maneira de programar o Attiny

Apenas uma observação sobre o Steppermotor. Eu uso um antigo 55SI-25DAWC, mas se você ainda tiver que comprar um, há uma combinação de motor de passo / driver muito barata disponível: o 28BYJ-48. O motor em si custa 1,50 euro, mas por 2 euro você pode obter o mesmo motor com uma placa de driver. então isso é um bom negócio

Etapa 1: Construindo o Homem de Papelão 'em casa'

'Home Alone' Construindo o Homem de Papelão
'Home Alone' Construindo o Homem de Papelão
'Home Alone' Construindo o Homem de Papelão
'Home Alone' Construindo o Homem de Papelão

De uma caixa cortei um pedaço de 40x20 cm e um pedaço de 18x18. Prendi as duas peças juntas como uma cabeça e um torso, usando fita adesiva, deixando um pequeno espaço entre as duas peças, mas coberto pela fita adesiva, para formar uma dobradiça para o pescoço. (As fotos deixam isso bem claro) Da velha tábua de corte cortei um pedaço de 20 cm de comprimento, cerca de meio cm de espessura (a espessura da tábua) e cerca de 1,5 cm de largura. O 1,5 cm foi o suficiente para caber no eixo do meu stepper. se você tiver um stepper diferente, certifique-se de que a peça cortada é larga o suficiente para o eixo do seu stepper. Fiz um orifício no centro que caberia no meu eixo. Então eu colei o plástico na base do papelão 'Torso' Apenas sob o 'pescoço', com pedaços de papelão construí um suporte para o meu servo. Claro que isso pode ser feito com um ferro angular (ou plástico), mas é um pouco difícil de prender no torso de papelão, então usei apenas papelão para encaixar o servo. Eu adicionei um braço ao servo feito de um pedaço de plástico 11 x 0,6 x 0,6 da placa de corte e o prendi ao servo. Novamente, olhe as fotos para ver como isso é feito. Embora meu stepper fosse pesado o suficiente para carregar a figura de papelão, o torque e o arrasto causado por ele girar fariam o motor começar a 'andar', então criei uma placa de base a partir de 24 * 11 cm de placa de corte. Fiz dois furos para prender o motor de passo e ainda tenho amplo espaço para o controlador. Embora o servo gire 180 graus, posicionei o braço de forma que ele não colocasse a cabeça totalmente reta. Dessa forma, ele facilmente cai para trás quando o servo volta para a posição 0

Etapa 2: 'Home Alone' Construindo o Controlador

'Home Alone' Construindo o Controlador
'Home Alone' Construindo o Controlador
'Home Alone' Construindo o Controlador
'Home Alone' Construindo o Controlador
'Home Alone' Construindo o Controlador
'Home Alone' Construindo o Controlador
'Home Alone' Construindo o Controlador
'Home Alone' Construindo o Controlador

O controlador é um Attiny13, conectado a um ULN2003. Embora na minha versão eu tenha usado um pouco mais de pinos para tornar a placa mais flexível para uso em outros projetos, os únicos cabeçalhos de que você precisa são um cabeçote de servo macho de 3 pinos e um cabeçote macho de 6 pinos para o stepper

Etapa 3: 'Home Alone': o software

EDIT 2019 O projeto foi feito com base no outrora popular núcleo 'Smeezekitty' para o Attiny13. O agora frequentemente usado MicroCore do MCUDude aparentemente tem problemas com as variáveis nas instruções delayMicroseconds. Se você estiver usando esse, substitua "delayMicroseconds (300 + p * (2500/180));" por "atraso (5);"

O programa acima mostra como conduzir meu stepper específico e você pode precisar alterar os valores que estão sendo gravados no PORTB se você tiver um stepper. Como o Attiny13 é bastante pequeno na memória e também não fornece muitos pinos, o programa perde alguma sofisticação. Gravar diretamente em PORTB está OK, mas neste caso também gravará um “0” em PB4 e PB5. PB5 não é um grande problema, mas você pode querer usar PB4. No meu caso é onde eu coloco meu servo e isso realmente não causa nenhum problema já que eu não os uso ao mesmo tempo.

No entanto, se você quiser usar outro microcontrolador como um 328 e quiser evitar gravar em PB4 e PB5 e PB6 e PB7, use uma máscara para gravar apenas no bit 0-3. A máscara para fazer isso é B00001111.

Se você deseja definir os bits 0 e 2, faça o seguinte:

Em vez de PORTB = 5, indique: PORTB = (PORTB & ~ mask) | (B00000101);

Para aqueles que acham isso muito enigmático:

ele primeiro faz o AND do valor de PORTB com NOT mask e o OR é o resultado com o valor que queremos escrever e o atribui de volta ao PORTB.

Então, suponha que PORTB = 00010000 e desejemos escrever 00000101 nele, não podemos atribuir isso imediatamente porque isso limparia PB4.

No entanto, se fizermos conforme descrito, torna-se:

PORTB = (PORTB & 11110000) | 00000101

PORTB = (00010000 e 11110000) | 00000101

PORTB = 00010000 | 00000101

PORTB = 00010101

Escrevemos nosso valor e mantivemos PB4

Então, por que não podemos OR PORTB imediatamente com o valor que queremos em vez de AND-ing primeiro?

Bem, porque isso pode manter PB4 e PB5 … mas também mantém PB3-PB0 inalterado se um deles já contiver um '1'

Claro que inverter a máscara não seria necessário se definirmos já invertida, mas é prática comum fazê-lo como tal

Etapa 4: dissuasor contra roubo 'sozinho': use

assista ao vídeo para ver como funciona (girou -90 graus, desculpe por isso)

A intenção deste dispositivo é projetar sombras em movimento nas cortinas ou persianas. Portanto, funciona melhor com cortinas de luz. O próprio dispositivo não deve ser visível do lado de fora. Certifique-se de que haja uma fonte de luz em algum lugar atrás dele. Eu o controlo enviando um sinal RF para o interruptor remoto na tomada que alimenta a PSU wallwart para este dispositivo, mas você também pode usar um temporizador.

Etapa 5: 'Home Alone' O que não funcionou ……

Este vídeo mostra um de meus experimentos anteriores com um torso maior e apenas um servo simples. Obviamente, não é um bom design

Recomendado: