O projeto consiste em nove peças impressas e uma postagem de arranhões em gatos. Qualquer materials pode ser usado para impressão. Imprimi -o do PLA preto comum com três perímetros externos e 10% de preenchimento.
O projeto inclui dois parafusos que podem ser alterados de acordo com o tamanho e a forma dos alimentos.
https://www.alza.cz/pet/pethaus-skrabadlo-pro-kocky-dr-255-sysi-83-cm-sede-d13031099.htm
https://www.kaufland.cz/product/372941024/
🔧 Lista de peças
1 × Arduino Uno
Motor de servo 1 × Mg90S (360 °)
Módulo de microfone 1 × W104 (possui saídas VCC, GND, A0, DO, TRIMMER para sensibilidade)
Cabos de conexão (masculino-masmo)
(opcional) Breadboard para fácil fiação
📐 Diagrama de fiação
Microfone W104:
VCC → Arduino 5V
GND → Arduino GND
A0 → Arduino A1
Servo mg90s (360 °):
Sinal (fio amarelo/laranja) → Arduino D9
VCC (fio vermelho) → Arduino 5V
GND (fio marrom/preto) → Arduino GND
⚠️ O servo desenha um pouco de corrente, recomendo conectar -me diretamente ao arduino de 5V se você estiver usando USB ou uma fonte de alimentação mais forte (pelo menos 1A). Para estar seguro, você pode alimentar o servo externamente com 5V e conectar o GND.
💻 Código Arduino
Monitora a saída analógica do microfone (A1).
Se o valor exceder um limite (SOUNHRESHOLD), o servo se vira para a esquerda por 300 ms e depois para 2 s imediatamente depois e finalmente para.
Os valores do microfone são exibidos no monitor serial.
#embrace
Servo myservo;
const int micanalogpin = A1; // Saída analógica do microfone
const int servopin = 9; // pino pwm para o servo
const int partoSignal = 92; // Cease servo
const int lesfSignal = 80; // rotação esquerda
const int DIREVIÇÃO = 100; // rotação direita
const int SoundHreshold = 424; // limiar de detecção de som (pode ser ajustado)
Void Setup () {
Serial.start (9600); // Inicialize a comunicação serial
myservo.connect (servopin);
myServo.write (Stopsignal); // servo começa parado
}
Void Loop () {
int SoundLevel = analogread (Micanalogpin); // lendo sinal analógico
// Show in Serial Monitor
Serial.print ("Nível analógico: ");
Serial.println (Soundlevel);
// If the sound stage is increased than the brink
if (SoundLevel> SoundThreshold) {
MyServo.Write (LeftSignal); // Vire o servo à esquerda
atraso (300); // 300 ms
MyServo.Write (Direitos); // Vire o servo à direita
Atraso (2000); // 2 segundos
myServo.write (Stopsignal); // Pare o servo
atraso (1000); // pausa curta
}
delay(50); // Small delay to make the dump not too quick
}