This is an old revision of the document!


Pavlov's Cat

Introduction

My project is a food device which dispenses a specified quantity of candies every time a certain melody is playing and when the sensor detects the presence of a hand.

The idea of the project started when my friend received a cat as a present and she was struggling to teach her cat when it is time to eat and when it is not. Of course, I adapted it to dispense candies, not cat food, given the fact that I don't have one.

The purpose of the project is to teach your cat when it is time for her to eat and when it is not. This will be a relieve for the owners, not having to worry that if they leave the cat at home, she will eat all the food at once.

I believe that this project is useful for others because you can control the amount of food and also the time when the device will dispense the food. The fact that you can control it from your phone is a big plus especially that you can't guess when the cat is in front of the device.

General description

-~~~~~~~~~~~~~~~~~-

   Pavlov's Cat

-~~~~~~~~~~~~~~~~~-

  • Pavlov's Cat: the whole device that dispenses a specified quantity of candies every time a certain melody is playing and when the sensor detects the presence of a hand.
  • Arduino MKR1000: the wi-fi board
  • Buzzer: it is a signaling device that will play a melody
  • Servo motor: this small motor will move the “door” allowing the candies to be dispensed
  • Phototransistor: this will detect the presence of the hand

Hardware Design

  • Servo motor: A servo motor is a BLDC motor with a sensor for positional feedback. This allows the output shaft to be moved to a particular angle, position, and velocity that a regular motor cannot do.
  • Buzzer: A buzzer or beeper is an audio signaling device, which may be mechanical, electromechanical, or piezoelectric (piezo for short). Typical uses of buzzers and beepers include alarm devices, timers, train and confirmation of user input such as a mouse click or keystroke.
  • Phototransistor: A semiconductor device like a phototransistor is used to detect the light levels and changes the flow of current among emitter & collector terminals based on the light level it gets.
  • Arduino MKR1000: The Arduino MKR 1000 WiFi is the easiest point of entry to basic IoT and pico-network application design.

This is the block schema of the project This is the scheme with all the components connected.

Software Design

 Code description

First of all, we include all the libraries needed for Arduino, but also for the wi-fi and telegram part. We set the portion to the default value of 1, we declare the servo object, we declare the buzzerPin (i used pin 6 on the Arduino board), we set the initial value of startDetecting as being false, the timer will be 0, also the oldchatid will be null. In the method setup() we are starting the connection at wi-fi, we declare the token of the telegram bot, we declare the emoji used at the telegram keyboard, initialize the rows of the keyboard, and also we make the buzzerPin an output. In the loop method we check if there are any updates in the chat and if there is an update, we will print the message (the codes used for the keyboard emoji). If the text is indicating melody and food, then we play a certain melody, we display a message, the detection begins, we display a message that the servo is moving and we also calculate the time that is required until the hand reaches the range of the phototransistor. If the message is melody and no food, another melody will be played, we send a message that indicates that nothing will be done. Here are 2 cases. First, the hand is detected and it will display that the hand is detected, but nothing will happen and the second case, no hand is detected in the past minute and there will be a message saying that no hand was detected in the past minute. We also can set the amount of candies that will be dispensed. To be able to detect the hand, we need to know the threshold of the phototransistor and we adapt it in order to be able to differentiate when a hand is in range and when it is just ambiental light. We also have a function for playing the melody

Rezultate Obţinute

Care au fost rezultatele obţinute în urma realizării proiectului vostru.

Concluzii

Download

O arhivă (sau mai multe dacă este cazul) cu fişierele obţinute în urma realizării proiectului: surse, scheme, etc. Un fişier README, un ChangeLog, un script de compilare şi copiere automată pe uC crează întotdeauna o impresie bună ;-).

Fişierele se încarcă pe wiki folosind facilitatea Add Images or other files. Namespace-ul în care se încarcă fişierele este de tipul :pm:prj20??:c? sau :pm:prj20??:c?:nume_student (dacă este cazul). Exemplu: Dumitru Alin, 331CC → :pm:prj2009:cc:dumitru_alin.

Jurnal

Puteți avea și o secțiune de jurnal în care să poată urmări asistentul de proiect progresul proiectului.

Bibliografie/Resurse

Listă cu documente, datasheet-uri, resurse Internet folosite, eventual grupate pe Resurse Software şi Resurse Hardware.

Export to PDF

pm/prj2023/apredescu/dumitru.1685285757.txt.gz · Last modified: 2023/05/28 17:55 by andreea.dumitru0110
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0