 Bonjour. Hello. I'm so glad to be here with you and to see a lot of friends from South America. So, hi. My name is Constanza. I'm from Buenos Aires, Argentina. I have some suites from my country if you want one of them. I'm a front-end developer at Mercado Libre. There is an e-commerce company from South America. I'm a team member of Chicas programando, a community of women that aims to make the tech industry in Argentina more diverse by organizing workshops and meetups and participating in different ways with other communities. But I'm here to talk about live robots and cats, three of the most popular things on the Internet, right? In this presentation, we are going to see this topic, a life story, a pet feeder design, and building a programming process of the pet feeder. But let me start with a life story. When I was four years old, my family made me clean up my bedroom, put the toys away in boxes, do the dishes, and sometimes do the patio. By then, I was so angry because all I wanted to do was to play with my friends and toys. So, I used to have this dream that was about creating robots that could help me with these chores I had. And then I grew up and I still have chores even more than before. But now I have two cats. Really, I have one cat because one of them passed away a few months ago. But this project is for him also. Orson and Haku. Sometimes they had to wait for me to be fed. Needless to say, I rarely get home early. So, if I give them the day serving in the morning, they eat it by noon. And when I got home at nine, they're hungry and asked for more food. So, I needed to think of a way to give them the food in smaller servings, even if I'm not around. Since I wish I could build a robot, 25 years had passed. And I still want one that helped me in my daily life. So, I know that nowadays there are a lot of options that fill our needs. But some are expensive and I can't afford them. And that's why I decided to build a pet feeder that I call Sasha. Then I started Googling some similar projects that could guide me in the development because I started to program two years ago. And I thought that this, I thought that was, that would be pretty difficult for me. So, I saw a lot of examples and most of them were built on Python and the structure were just for one cut. However, what I was, what I needed was something that could feel both cuts at the same time. Because I don't have much space in my home because it's cheaper than have two machines. So, these are the things I used to build Sasha, microcontroller or a computer, a serial dispenser and a servo motor. The serial dispenser is similar to that one, but it's the one I used is bigger than that. I used a microcontroller. So, I had to decide which microcontroller or if I would use a computer. There was an Arduino or a Raspberry Pi or something similar. For some reason, I thought a Raspberry Pi would be the best option due to how easy to work with its operating system. Actually, I use a Raspberry Pi because someone let me one, the model three. And I learned to configure it from scratch. I installed Raspberry Pi and a operating system for Raspberry Pi. For the servo motor, you need to use one to move the dispenser blades. There are many models of servo motors. You can get the one that turns 45 degrees or 180 degrees or there are some that has a continuous rotation. I decided to use a JavaScript to develop the feeder because I'm learning to program with this language and I wanted to code something different of what I do every day, which is frontend. I made a research and I found a platform called Jonify that allows you to work in a robotic system with JavaScript. But before that, I had to install Raspberry Pi. It enables you to work with Jonify on the Raspberry Pi to code. The configuration is pretty easy. You just have to install it and require the model in your JS file. Then you have to call both models in a function. That's it. To run the project, I use NodeJS. Let's go to the build-up process. As I never built something like that before, my knowledge on the subject was Node. I never connected wires before, but there are some things. There are one thing I learned from movies. That is that there are conventions for connecting cables. If you don't follow them, you can make a mess of things. All I wanted to do was not to burn my house. After the setup, the first thing I tried was turning on a tiny light and to my surprise, it worked. I dive into the world of servo motors and tried to make one work, but that part wasn't that easy as I was expecting. I needed to connect the servo motor to the Raspberry Pi by jumper wires. I used three of them because servo motor has three. The signal, the red one that is positive and the black one is the negative. The Raspberry Pi has a lot of pins where to put the wires, but you cannot use just any. I connected the wires to different pins and the servo motor didn't work until I found out that there are some things that need to be connected to a specific pin of the Raspberry Pi. For example, controlling the direction of the servo motor blades. To do that, we need to connect to a pulse with modulation pin. I used the GPIO 18 and the Raspberry Pi has just four PWM pins, so I connected to one of them. The other one must be connected to a five volt pin and a ground pin. During the process, I learned that not all servo motors are the same. As I said before, some of them turn 45 degrees, others 180 degrees and there are some with continuous rotation. I used all of them until I found the one I needed. You have to set which pin are you going to use, which type of servo motor. I didn't know that you must consider the weight of what you want to move. I had to try servo motors for different weights. My house was full of servos all over the table. I chose the one that can resist 3.2 kilos. I started testing the feeder and I could make it stop with the amount of food I wanted. That's what happened. The food overfrewed a lot of times and all over the table and that drove my cats very crazy. There is a fun fact that when they heard the sound of the food getting out of the feeder, they came to me running and started meowing a lot of times. It turns out that to move the servo motor with continuous rotation, you need to move the blades clockwise. It is necessary to set the top speed of the servo blades and when you want to stop. There is servo.CW between the parentheses is the speed. I set the feeder to give them food twice a day and I used this NPN package that is called Notgram. You just have to set the minute, the hour and that's it. I left the program running and thanks to that I realized that the feeder wasn't working properly because it was letting out the food every hour. My cats were really happy about that. That wasn't what I was expecting. After spending a lot of time trying to figure out what was the problem, I realized that the package that I was using before Notgram wasn't working properly. So I replaced the package for other that works better. The feeder was almost done but one day my cats got up really, really early like 5.30 a.m. and they started meowing loudly. I was so sleepy and tired to get up and fill their bowls but I knew that if I didn't do that they would keep crying. That was the point where I thought I should include a new feature. That feature is send an email to the feeder from the comfort of my bed and then go back to sleep. I looked for another package. By that time I was like this cat is sticking its nose in every library I found until I got the right one for the project. To develop this new feature I found this package that allows you to set up the email configuration. It's called mail notifier. I can't explain how I felt the first time I mailed Sasha and it worked. I think that I might have shed a couple of tears literally. My next step is to develop a telegram bot so I can replace the email just sending a telegram message. The best thing about that is that I'm going to learn how to build a bot. This was the feeder before becoming a robot and that is with the Raspberry Pi. That's awesome. After a lot of time developing and testing Sasha I can say that the dream I had when I was a child came true. So I built a robot. I have a lot of time. I have a lot of fun building Sasha because there is nothing better than developing something new with your poor bodies by our side. Building Sasha and getting all these achievements made me realize that I wanted to do more projects involving robotics and that there are a lot of potential use cases of home automation that I would love to implement like control non-smart things like the lights or air conditioners or the temperature of the room, etc. I know that these things already exist but I would love to build them from scratch because I learned a lot during the process and that encouraged myself to keep growing as a developer. But what makes this project almost perfect is that you can build this feeder only with little JavaScript knowledge. And one thing I realized that it's a perfect activity to teach to program even if there are parts that include not coding like building the structure, gluing pieces, etc. because you can teach variables, conditioners using packages, set it up a computer and I don't know much JavaScript and as I said before I'm learning and I've shown to other people, to my English teacher, how the feeder works and they started saying that they want to do things like that for themselves and they think that it's incredible how with a little bit of hardware or something that you may find in your home and a little bit of code you can make something new work. This project only has 42 lines of code. It's really small. And I'm sure that there are amazing projects to be built and to be shown and maybe those projects can inspire other people to do things, to facilitate chores or change how they interact with their homes or with just a little bit of code. So I have the resources if you want to check. That's it. Thank you so much.