Spisu treści:
- Kieszonkowe dzieci
- Krok 1: Przegląd projektu
- Krok 2: Przegląd kodu
- Krok 3: Mocowanie Nema 17 do podstawy i świdra
- Krok 4: Okablowanie L298N i RTC
- Krok 5: Kodowanie z komentarzami
- Krok 6: Problemy i jak je naprawiłem
Wideo: Automatyczny podajnik psa: 6 kroków
2024 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2024-01-30 11:27
To jest mój projekt automatycznego karmnika dla zwierząt. Nazywam się Parker, jestem w klasie 11 i wykonałem ten projekt 11 listopada 2020 r. Jako CCA (Course Culminating Activity) w tym projekcie pokażę ci, jak zrobić automatyczny karmnik dla zwierząt z Arduino UNO. Możesz wybrać czas, który możesz zmienić. Pokarm będzie dozowany przez ślimak i nakarmi twoje zwierzęta!
Kieszonkowe dzieci
Elektronika:
- Arduino UNO
- L298N - 10$ - Steruje Nema 17
- NEMA 17 - 10$ - Obraca ślimakiem, dzięki czemu jedzenie jest dozowane
- RTC (DS1307) - 10$ - Daje czas
- Zasilacz 12V - 5$ - Zasila wszystko
- Mini tablica do krojenia chleba - dodatkowa przestrzeń na okablowanie
- Przewody połączeniowe - Łączą wszystko
- Przewody żeńskie-męskie - Łączy wszystko
Sprzęt komputerowy:
- Filament do druku 3D - do drukarki 3d
- 2 śruby M4 - przytrzymuj płytę podstawy na miejscu
- 4 śruby Nema 17 - Przytrzymaj Nema w dół
- PVC T 48mm wymiar wewnętrzny 66mm wymiar zewnętrzny - 3$
Narzędzia:
- drukarka 3d
- Wiertarka
- Pistolet lutowniczy
Krok 1: Przegląd projektu
Konstrukcja karmnika dla zwierząt jest bardzo prosta. Lej trafia na górę PVC T. Następnie pokrywa z tyłu PVC T (jak pokazano na rysunku) z przymocowanym do niej Nema 17. Następnie Nema 17 zostanie wepchnięta z tyłu świdra, który widać powyżej, a śruba wejdzie w bok, aby utrzymać go na miejscu, aby nie deformował otworu, który widać powyżej!
Wtedy świder po prostu wypchnie jedzenie z rury do miski!
Krok 2: Przegląd kodu
RTC i Stepper mają bibliotekę o nazwie RTClib.hi Stepper.h, która dodaje uproszczony kod dla RTC i Steppera. Stwierdzenia if są bardzo proste, ich powiedzenie, jeśli godzina i minuty są równe podanemu czasowi, spowoduje obrót nemy, która będzie dozować jedzenie. Reszta kodu jest bardzo łatwa do zrozumienia nawet dla kogoś, kto ma dzień doświadczenia.
Krok 3: Mocowanie Nema 17 do podstawy i świdra
Najpierw weź swoją płytę podstawową i przymocuj ją do Nemy 17, korzystając z gotowych otworów w płycie podstawy. Gdy to zrobisz, chcesz przymocować świder do Nemy za pomocą tylnego otworu na nim. Następnie połącz płytę podstawy ze ślimakiem i dołączoną Nema, a następnie wkręć śruby M2 z każdej strony.
Krok 4: Okablowanie L298N i RTC
W tym kroku dowiesz się, jak podłączyć L298N i RTC
Zaczniemy od pinów 8, 9, 10, 11 do L298N
- Pin 8 (biały) do IN1
- Pin 9 (fioletowy) do IN2
- Pin 10 (różowy) do IN3
- PIN 11 (żółty) do IN4
Następnie podłączymy Nema 17 do L298N
- OUT1 do 1 na NEMA
- OUT2 do 2 na NEMA
- OUT3 do 3 na NEMA
- OUT4 do 4 na NEMA
Podłączanie 12V i Arduino do L298N (Nie można znaleźć 12V, więc wyobraź sobie baterię 9V jako zasilanie)
- V do 12V
- Uziemienie do GND
- 5V do 5V na płytce do krojenia chleba
Podłączanie RTC do Arduino
- GND do GND
- 5V do 5V na płytce do krojenia chleba
- SDA do A5
- SCL do A4
Kołki do zworek
Wszystkie piny zworek powinny być na L298N
Krok 5: Kodowanie z komentarzami
Kod wyraźniejszy na zdjęciach powyżej
// Imię i nazwisko: Parker Frederick
// Nazwa projektu: Auto Pet Feeder // Data: wtorek, 10 listopada 2020 // Nauczyciel: M. Bonisteel // Opis: Nakarm swoje zwierzaki o określonej godzinie!
// Biblioteki dla rzeczy, których użyłem #include #include #include "RTClib.h"
RTC_DS1307 RTC; // Mówi, jakiego RTC używam
// Tutaj ustawiasz czas na jedzenie
// Godziny int mornFeedTime = 12; int nightFeedTime = 7; //Minuty int mornFeedTimeM = 29; int nightFeedTimeM = 00; //Sekundy int mornFeedTimeS = 20; int nightFeedTimeS = 00;
char daysOfTheWeek [7][12] = {"Niedziela", "Poniedziałek", "Wtorek", "Środa", "Czwartek", "Piątek", "Sobota"}; // Sprawia, że zwykłe dni zamieniają się w dni tygodnia
const int posuw = 200; // To są twoje kroki, więc ile razy chcesz się kręcić
Stepper myStepper(pasza, 8, 9, 10, 11); // Twoje szpilki do Nema 17 i większości innych stepperów
void setup() { Serial.begin(9600);
podczas (!Serial); // Jeśli zegar czasu rzeczywistego nie działa, wyświetli go na ekranie szeregowym if (! rtc.begin()) { Serial.println("Nie można znaleźć zegara czasu rzeczywistego"); natomiast (1); }
// To powie ci, czy zegar czasu rzeczywistego jest uruchomiony i wyświetli go na ekranie szeregowym if (! rtc.isrunning()) { Serial.println("RTC jest uruchomiony!");
rtc.adjust(DataCzas(F(_DATA_), F(_CZAS_))); // Zajmie to czas komputera i użyje go w RTC
// Jeśli chcesz mieć ustawiony czas zamiast czasu komputera, możesz to zrobić tutaj //rtc.adjust(DateTime(2020, 10, 29, 8, 28, 0)); // Rok/Miesiąc/Dzień/Godzina/Minuta/Sekunda } myStepper.setSpeed(200); // Prędkość, z jaką chcesz skręcić }
void loop() { DateTime now = rtc.now();
// To sprawi, że zmienna będzie tą godziną, która jest w tej chwili etc int hr = now.hour(); int mi = teraz.minuta(); int se = teraz.druga();
// Zakoduj tak, aby o ustawionej godzinie wydało jedzenie i obróciło się 5 razy, to jeśli na poranne karmienie
if (hr == mornFeedTime && mi == mornFeedTimeM && mornFeedTimeS == se) { Serial.println("Śniadanie!"); mójStepper.step(-feed); opóźnienie(700);
mójStepper.step(-feed); opóźnienie(700);
mójStepper.step(-feed); opóźnienie(700);
mójStepper.step(-feed); opóźnienie(700);
mójStepper.step(-feed); opóźnienie(700);
mójStepper.step(-feed); opóźnienie(700);
mójStepper.step(-feed); opóźnienie(700);
}
// Zakoduj, aby o ustawionej godzinie wydało jedzenie i obróciło się 5 razy, to jest do karmienia na noc
if (hr == nightFeedTime && mi == nightFeedTimeM && nightFeedTimeS == se) { Serial.println("Obiad!"); mójStepper.step(-feed); opóźnienie(700);
mójStepper.step(-feed); opóźnienie(700);
mójStepper.step(-feed); opóźnienie(700);
mójStepper.step(-feed); opóźnienie(700);
mójStepper.step(-feed); opóźnienie(700);
mójStepper.step(-feed); opóźnienie(700);
mójStepper.step(-feed); opóźnienie(700); }
// Spowoduje to wyświetlenie ROK, MIESIĄC, DZIEŃ, GODZINA, MINUTA, SEKUNDA w serialu
Serial.print(teraz.rok(), DEC); Serial.print('/'); Serial.print(teraz.miesiąc(), DEC); Serial.print('/'); Serial.print(teraz.day(), DEC); Serial.print(" ("); Serial.print(daysOfTheWeek[now.dayOfTheWeek()]); Serial.print() "); Serial.print(teraz.godzina(), DEC); Serial.print(':'); Serial.print(teraz.minuta(), DEC); Serial.print(':'); Serial.print(teraz.second(), DEC); Serial.println(); }
Strona internetowa, której używałem dla RTC Usunąłem większość rzeczy innych niż stwierdzenia if, które mówią, czy RTC jest włączony, czy wyłączony. Używałem tej strony głównie do nauki programowania RTC
Strona internetowa, której użyłem do silnika krokowego, pomogła mi zrozumieć, jak zaprogramować silnik krokowy, aby działał, tak naprawdę niczego z niego nie zachowałem. To po prostu pomogło mi zrozumieć, jak to zakodować
Krok 6: Problemy i jak je naprawiłem
Kilka problemów, które miałem
- Potrzebowałem zasilacza 12 V, miałem tylko baterię 9 V, znalazłem jeden i został szybko rozwiązany.
- Podłączając L298N do NEMA 17 miałem złe przewody na A i A- co powodowało lekkie drgania. Po prostu naprawiłem to, zmieniając przewody w drugą stronę.
- Próbowałem uprościć kod, ponieważ w instrukcji if myStepper.step(-feed); w kółko wyglądał na niechlujny. Więc musiałem to zmienić z powrotem.
- Miałem niewłaściwy rozmiar płyty bazowej, jak widać na zdjęciu, więc musiałem wydrukować trochę nową w 3D i pasowała idealnie!
- Mam problem z tym, że się zacina, ponieważ świder jest za mały, więc zacina się prostym sposobem, aby to naprawić, powiększając świder o niewielką ilość!
Zalecana:
Automatyczny podajnik psa !!: 4 kroki
Automatyczny podajnik dla psów !!: Łatwy, pomocny i zdrowy
Empatyczne projektowanie: automatyczny podajnik szczurów Arduino: 18 kroków
Empatyczne projektowanie: automatyczny podajnik szczurów Arduino: ten instruktaż służy jako wszechstronny przewodnik po stworzeniu automatycznego urządzenia do karmienia szczurów lub zwierząt domowych podobnej wielkości. Inspiracją do tego projektu był szczur mojej siostry, którego trzeba nakarmić dokładnie 4 granulkami pokarmu na
Automatyczny podajnik roślin WiFi ze zbiornikiem - Konfiguracja uprawy wewnątrz / na zewnątrz - Rośliny wodne automatycznie ze zdalnym monitorowaniem: 21 kroków
Automatyczny podajnik roślin Wi-Fi ze zbiornikiem - Konfiguracja uprawy wewnątrz / na zewnątrz - Rośliny wodne automatycznie ze zdalnym monitorowaniem: W tym samouczku zademonstrujemy, jak skonfigurować niestandardowy system podajnika roślin wewnątrz / na zewnątrz, który automatycznie podlewa rośliny i może być monitorowany zdalnie za pomocą platformy Adosia
Automatyczny podajnik psa: 5 kroków
Automatyczny karmnik dla psów: Jest to samouczek krok po kroku, jak zrobić automatyczny karmnik dla psów za pomocą Arduino. Jest to idealne rozwiązanie, jeśli jesteś poza domem przez większą część dnia. Zamiast czekać cały dzień na jedzenie przez psa lub chować się do domu, aby go nakarmić, to urządzenie
Automatyczny podajnik ryb Amazon Alexa Powered: 5 kroków
Automatyczny podajnik ryb Amazon Alexa Powered: Zapomniałeś karmić swoje ryby? Teraz pozwól Alexa karmić twoje ryby z dowolnego miejsca na świecie, tak, w dowolnym miejscu. Ten projekt został zaprojektowany tak, abyś mógł karmić swojego zwierzaka z dowolnego miejsca na świecie, za pomocą dowolnego urządzenia/aplikacji Alexa.Chcesz nakarmić innego zwierzaka?Nie ma problemu tylko