Spisu treści:

Podajnik projektu: 14 kroków
Podajnik projektu: 14 kroków

Wideo: Podajnik projektu: 14 kroków

Wideo: Podajnik projektu: 14 kroków
Wideo: Drift Projekt - BMW e46 #14 - Co dalej z projektem? 2024, Listopad
Anonim
Podajnik projektów
Podajnik projektów

Czy kiedykolwiek chciałeś nakarmić swoje zwierzęta z dala od domu lub po prostu w zaciszu swojej sofy? Jeśli tak, to ten projekt jest dla Ciebie! Project Feeder to projekt typu open source, który umożliwia automatyczne lub ręczne karmienie zwierząt domowych z telefonu lub komputera. Możesz także śledzić transmisję na żywo i śledzić zachowania żywieniowe swojego zwierzaka.

Zanim zaczniesz!

Ten projekt jest zadaniem na studia i był ograniczony czasowo, więc jest bardzo „praca w toku”. Dlatego zdaję sobie sprawę, że są rzeczy, które można poprawić i które mogą zostać zaktualizowane w przyszłości. Zachęcam do kreatywności, doskonalenia i rozwijania tej koncepcji.

Na początek omówimy wymagania do zbudowania tego projektu. Naprawdę będziesz potrzebować umiejętności i narzędzi wymienionych poniżej.

Umiejętności twórcy:

  • Druk 3D lub dostęp do usługi drukowania
  • Lutowanie
  • Podstawowa wiedza z zakresu elektroniki

Narzędzia:

  • drukarka 3d
  • Lutownica
  • Pistolet do klejenia na gorąco lub inny klej, który działa na włókna do drukarek 3D
  • Wkrętaki

Kieszonkowe dzieci

Całkowity koszt budowy tego projektu wynosi około 120 € w zależności od tego, gdzie kupujesz część i jakie rabaty otrzymujesz.

Ważny:

Niektóre części są oznaczone jako „Unikalne”, co oznacza, że są specyficzne dla projektu konstrukcyjnego konstrukcji i potrzebujesz dokładnej kopii tej części.

Raspberry Pi 4 Model B / 2GB + 16GB (wymaganie min.) Karta Micro SD

Zapasy Rasberry Pi są w tej chwili bardzo ograniczone, będzie to wymagało rozejrzenia się.

Zasilacz 12V 60W

www.banggood.com/AC-100-240V-do-DC-12V-5A-…

Gniazdo zasilania prądem stałym 5,5 mm x 2,1 mm (unikalne)

www.banggood.com/10pcs-5_5-x-2_1mm-DC-Powe…

DC-DC 12V do 5V 3A Moduł zasilania obniżającego napięcie (unikalny)

www.banggood.com/LM2596-DC-DC-Voltage-Regu…

42mm 12V Nema 17 Dwufazowy silnik krokowy

www.banggood.com/42mm-12V-Nema-17-Two-Fas…

Moduł podwójnego mostka H L298N

www.banggood.com/Wholesale-L298N-Dual-H-Br…

GY6180 VL6180X Czas lotu czujnik odległości

www.banggood.com/GY6180-VL6180X-Time-Of-Fl…

Podczerwony czujnik unikania przeszkód (x3)

www.banggood.com/3Pcs-Podczerwień-Przeszkody-Av…

Kamera USB

www.banggood.com/Electronic-Camera-Module-…

Podświetlenie LCD 16×2, mikrokontroler 8051 I2C

www.hobbyelectronica.nl/product/1602-lcd-d…

Dwukierunkowy przesuwnik poziomu

www.banggood.com/nl/Two-Channel-IIC-I2C-Lo…

Rezystory o wspólnej wartości (10k, 220R, 470R)

www.banggood.com/Wholesale-Geekcreit-600pc…

Diody (x2)

Diody (x2)

Przełącznik ON/OFF 12V (unikalny)

www.banggood.com/5pcs-12V-Round-Rocker-Tog…

Nakrętki: 3x8mm, 3x10mm, 3x12mm

Krok 1: Flashowanie karty SD

Flashowanie karty SD
Flashowanie karty SD

W tym kroku będziesz musiał sflashować kartę SD z dostarczonym obrazem:

thomy.stackstorage.com/s/KbCfVgoU0t8gU3C

Obraz jest wyposażony we wstępnie skompilowany serwer WWW Apache, bazę danych i kod do interfejsu z podajnikiem. Więc nie musisz robić niczego, co wiąże się z konfiguracją oprogramowania.

Jeśli chcesz zajrzeć do kodu, możesz pobrać cały wymagany kod z:

github.com/VanIseghemThomas/ProjectFeeder

Upewnij się, że wiesz, jak poprawnie sflashować kartę SD lub nie przerywaj procesu, ponieważ może to spowodować uszkodzenie karty. Do flashowania karty użyłem oprogramowania o nazwie Win32DiskManager. Inny program, który znam, działa i jest nieco bardziej przyjazny dla użytkownika, nazywa się Ethcer. Oba działają równie dobrze.

Krok 2: SSH do Pi

SSH w Pi
SSH w Pi

Po zakończeniu flashowania możesz teraz włożyć kartę SD do pi i włączyć ją. Upewnij się, że jesteś podłączony do swojego pi za pomocą kabla Ethernet. Teraz powinieneś być w stanie połączyć się z nim za pomocą SSH z adresem IP 169.254.10.1. Używam programu o nazwie PuTTY, ale jeśli nie masz ochoty instalować oprogramowania, zawsze możesz wpisać następujące polecenie w wierszu polecenia:

ssh [email protected]

Teraz otwórz sesję. Podczas pierwszego łączenia napotkasz ostrzeżenie, możesz to zignorować i po prostu kontynuować. Zostaniesz poproszony o zalogowanie się jako użytkownik, a następnie hasło, dla tego obrazu użyj następujących danych logowania:

  • Użytkownik: feederpi
  • Hasło: Redeef1

Użytkownik 'pi' jest również aktywny, ale nie będziesz mógł się do niego zalogować. Dzieje się tak, ponieważ jest skonfigurowany do automatycznego logowania się przy zasilaniu i uruchamiania programu. Dlatego po zalogowaniu napotkasz następujące elementy:

[sudo] hasło do feederpi:

Po prostu naciśnij crtl+c i powinieneś mieć teraz powłokę.

Teraz wpisz:

sudo-i

Teraz jesteś zalogowany jako root.

Krok 3: Konfiguracja Wi-Fi

Konfiguracja Wi-Fi
Konfiguracja Wi-Fi

Teraz jesteś zalogowany jako root i możesz wpisać:

wpa_passphrase "Twój SSID" "Twoje hasło" >> /etc/wpa_supplicant/wpa_supplicant.conf

Aby sprawdzić, czy konfiguracja została dodana poprawnie, wpisz następujące polecenie. Możesz również usunąć hasło w postaci zwykłego tekstu dla bezpieczeństwa, jeśli chcesz, ale pamiętaj, aby zapisać zmiany po wyjściu.

nano /etc/wpa_supplicant/wpa_supplicant.conf

Teraz możesz zrestartować swoje pi, wpisując:

zrestartuj teraz

Teraz daj pi trochę czasu na uruchomienie i ponowne zalogowanie się przez SSH, tak jak poprzednio, aby sprawdzić, czy masz połączenie z Wi-Fi, wpisz:

ip a

Pod interfejsem wlan0 powinieneś zobaczyć coś podobnego z adresem IP, co oznacza, że udało Ci się połączyć z Wi-Fi. Później, gdy wszystko zostanie podłączone, oprogramowanie wyświetli to na wyświetlaczu LCD.

Krok 4: Drukowanie części

Części, których będziesz potrzebować do tego projektu, znajdziesz tutaj:

www.thingiverse.com/thing:4459996

Wydrukowanie wszystkich tych części zajmie trochę czasu, więc będziesz potrzebować trochę cierpliwości.

Oto ustawienia, których użyłem (PLA):

  • Wysokość warstwy: 0,3 mm
  • Prędkość drukowania: 50-60mm/s
  • Temperatura dyszy: 200°C
  • Temperatura łóżka: 60°C

Nie ma wiele do powiedzenia na ten temat, z wyjątkiem dobrej zabawy podczas drukowania.

Krok 5: Montaż części (wstęp)

Montaż części (wstęp)
Montaż części (wstęp)
Montaż części (wstęp)
Montaż części (wstęp)

W porządku, teraz wszystko składamy. Zanim to wszystko wyjaśnię, omówię kilka rzeczy, o których należy pamiętać, a które pomogą ci to zrobić.

WSKAZÓWKA 1:

Zdecydowałem się zrobić wszystkie otwory 2,5mm z wyjątkiem 3mm jak śruby. Umożliwia to gwintowanie gwintu przez wkręcanie śrub i eliminuje potrzebę stosowania nakrętek. Wkręcenie śruby jest dość trudne, użyj lutownicy, aby poszerzyć górę, co ułatwi włożenie śruby i rozpoczęcie wkręcania.

WSKAZÓWKA 2:

Jeśli tak jak ja brakuje ci śrub, po prostu wkręcaj tylko pary po przekątnej. Oszczędza to wiele z nich i działa dobrze.

Krok 6: Montaż blatu (dozownik)

Montaż blatu (dozownika)
Montaż blatu (dozownika)
Montaż blatu (dozownika)
Montaż blatu (dozownika)
Montaż blatu (dozownika)
Montaż blatu (dozownika)

Części są ułożone jak na zdjęciu.

Są one trzymane razem przez tak zwane "talerze". Jedna z płytek montuje się do silnika krokowego.

Upewnij się, że górna część śrub jest wyrównana z powierzchnią, w przeciwnym razie dopływ zostanie zablokowany. Powinieneś użyć do tego śrub 3x8mm i modelu "Stepper_offset" pomiędzy stepperem a zewnętrzną stroną płyty.

Teraz nałóż frez na stepper, powinno iść dość łatwo. Jeśli nie, możesz użyć wazeliny.

Reszta jest dość prosta, po prostu weź śrubę w miejscu, w którym znajdziesz otwór.

Krok 7: Montaż blatu (pojemnika)

Montaż blatu (kontenera)
Montaż blatu (kontenera)
Montaż blatu (kontenera)
Montaż blatu (kontenera)
Montaż blatu (pojemnika)
Montaż blatu (pojemnika)

Tutaj możesz zobaczyć, jak zrobiłem mój pojemnik. Kanister jest oryginalnie używany do wysuszonych kawałków zrostu.

Na górze chcesz przymocować czujnik TOF, ten będzie służył do pomiaru ilości jedzenia w pojemniku. Na zdjęciach widać jak go załączyłem. Najpierw wytopiłem otwory na piny lutownicą, a następnie przykleiłem czujnik gorącym klejem podczas podłączania kabli.

Do zamknięcia pojemnika zrobiłem 2 otwory lutownicą i wkręciłem 2 śruby. Aby zamknąć go w ten sposób, można użyć gumki, opaski na suwak lub drutu.

Krok 8: Montaż dna

Montaż dna
Montaż dna
Montaż dna
Montaż dna
Montaż dna
Montaż dna

Aby umieścić różne moduły, należy odnieść się do zdjęć, są one dość oczywiste. Część z tych zdjęć ma już okablowanie, na razie powinieneś spojrzeć w przeszłość. Zdjęcia zostały zrobione w trakcie opracowywania tego projektu. Początkowo plan polegał na zamontowaniu ogniwa obciążnikowego i zważeniu jedzenia, ale ze względu na awarię wzmacniacza ogniwa obciążnikowego w ostatniej chwili musiałem zrezygnować z tej funkcji i zastąpić ją transmisją wideo na żywo, która również jest całkiem fajna. Opcja jest zawsze dostępna, aby dodać komórkę obciążenia, ale będziesz musiał zagłębić się w kod i edytować kilka rzeczy.

Krok 9: Elektronika, czujniki i siłowniki

Elektronika, czujniki i siłowniki
Elektronika, czujniki i siłowniki
Elektronika, czujniki i siłowniki
Elektronika, czujniki i siłowniki
Elektronika, czujniki i siłowniki
Elektronika, czujniki i siłowniki
Elektronika, czujniki i siłowniki
Elektronika, czujniki i siłowniki

Teraz czas na założenie lutownicy. Dostarczyłem 2 reprezentacje tego, co musisz zrobić, jeden standardowy schemat elektryczny, jedną reprezentację wizualną. Gorąco sugeruję skorzystanie ze schematu elektrycznego, ponieważ daje on o wiele więcej wglądu w to, jak wszystko działa i jest moim zdaniem ze sobą połączone. Jedynym powodem, dla którego ta druga jest tutaj, jest to, że była obowiązkowa. Powodem, dla którego to mówię, jest to, że nie ma dużo miejsca na kable, więc musisz być wydajny z okablowaniem GND, +5V itp., co zależy od tego, jak chcesz poprowadzić kable. Więc nie podłączaj wszystkiego dokładnie do siebie jak na schemacie, będzie działać, ale nie będzie pasować.

W przypadku przełącznika, który widzisz, podłączyłem wszystkie 3 przewody, ponieważ przełącznik ma wbudowaną diodę LED, która wskazuje, czy zasilanie jest włączone. 2 niekolorowe przewody działają jak przełącznik, kolorowy przewód przechodzi do GND.

Ogólnie jest to kolejność, w której wszystko podłączyłem:

  1. Sekcja zasilania: gniazdo zasilania, mostek h, konwerter boost buck, przełącznik
  2. Raspberry Pi (patrz następny krok, aby uzyskać więcej informacji)
  3. Czujniki podczerwieni
  4. diody LED
  5. Wejścia krokowe
  6. Część I2C: 3,3 V, SDA, SCL

Posiadanie prototypowej płytki drukowanej do lutowania nie jest konieczne, ale przydatne, tak jak ja.

Nie zapomnij również podłączyć aparatu do portu USB pi.

Ważny:

Upewnij się, że ustawiłeś konwerter boost buck na 5 V przed podłączeniem części 5 V obwodu. W przeciwnym razie możesz zaryzykować smażenie wszystkiego. Aby to wyregulować, należy obrócić potencjometr i spojrzeć na odczyt napięcia na ekranie.

Krok 10: Elektronika, Raspberry Pi

Elektronika, Raspberry Pi
Elektronika, Raspberry Pi

Ze względu na ograniczenia w oprogramowaniu do rysowania schematu nie byłem w stanie narysować jak podłączyć Raspberry Pi.

Dla +5V możesz po prostu podłączyć do pinu 5V pi, ale to omija zabezpieczenia, takie jak bezpiecznik. Jeśli spojrzysz na dół, powinieneś zobaczyć kilka padów oznaczonych jako TPxx, w naszym przypadku szukamy TP1 lub TP2. Przylutuj swój przewód +5V do jednego z nich, ale uważaj, aby nie zmostkować z innymi śladami. Najprawdopodobniej spowoduje to również unieważnienie gwarancji. Osobiście próbowałem podłączyć go do obu padów testowych i doszedłem do wniosku, że jest to prawdopodobnie najłatwiejszy i najbezpieczniejszy w użyciu TP2, z dala od innych odsłoniętych padów i nie ma wokół niego zbyt wielu śladów.

W przypadku GND po prostu weź jeden z pinów na górze, jak pokazano na schemacie, teraz jest to w porządku.

Krok 11: Testowanie elektroniki

Gdy wszystko jest prawidłowo podłączone, dobrą praktyką jest najpierw przetestowanie wszystkiego przed całkowitym złożeniem.

Oto lista kontrolna:

  • Adres IPV4 pojawia się na wyświetlaczu LCD
  • Potrafi połączyć się z IP przez przeglądarkę
  • Potrafi obrócić stepper przez "karmienie" i zobaczyć, jak zapalają się diody LED
  • Odczyty i aktualizacje statusu kontenera
  • Transmisja na żywo z kamery
  • Wykrywanie zdarzeń związanych z jedzeniem

Rozwiązywanie problemów:

Tutaj wymieniam niektóre problemy, które napotkałem i jak je naprawić.

- Mój LCD świeci, ale nic nie wyświetla:

1) W momencie pisania tego, pi potrzebuje około 2 minut, aby w pełni się uruchomić, więc musisz dać mu trochę więcej czasu.

2) Nie podłączyłeś poprawnie LCD. Możesz sprawdzić, czy podłączyłeś go poprawnie, wpisując następujące polecenie w powłoce:

sudo i2cdetect -y 1

Musi to zwrócić 2 adresy: 0x27 (=LCD) i 0x29 (=czujnik TOF). Jeśli 0x27 się nie pojawi, musisz sprawdzić okablowanie lcd. Jeśli oba się nie pojawią, musisz sprawdzić okablowanie pinów SDA i SCL. Np. sprawdź, czy przypadkiem nie zamieniłeś tych dwóch. W najgorszym przypadku zrobiłeś coś złego z 2 pojedynczymi komponentami lub coś się zepsuło.

- Mój wyświetlacz LCD utknął na „Łączenie z Wi-Fi”

Oznacza to, że twoje pi utknęła podczas próby połączenia się z jedną z sieci, z którą skonfigurowałeś połączenie. Oznacza to, że albo nie znajdujesz się w zasięgu punktu dostępu, albo zrobiłeś coś nie tak podczas konfigurowania np. literówka. W takim przypadku wróć do „Konfigurowania Wi-Fi” i przejrzyj go ponownie.

Oprogramowanie jest również skonfigurowane do łączenia się z sieciami domowymi o adresie IP zaczynającym się od „192.168”. Jeśli twoja sieć jest skonfigurowana z innym prywatnym zakresem, takim jak "10.0" lub "172.16", będziesz musiał przejść do /home/pi/project/main.py i w funkcji get_ips() zmienić: jeśli "192.168" w ip if "Twój prywatny zakres tutaj" w ip.

- Mój LCD wyświetla ip, ale nie mogę się połączyć:

1) Upewnij się, że łączysz się z adresem IP 192.168. X. X, drugi adres 169.254.10.1 jest zawsze skonfigurowany do łączenia się przez Ethernet bezpośrednio z komputerem. To nie zadziała, jeśli nie jesteś podłączony.

2) Upewnij się, że jesteś w tej samej sieci lub masz włączone przekierowanie portów w swojej sieci, jeśli chcesz uzyskać dostęp do podajnika spoza sieci.

- Stepper trzęsie się i nie obraca:

Oznacza to, że nie podłączyłeś poprawnie wejść lub wyjść podwójnego mostka H. Spróbuj zamienić je, aż zadziała.

Krok 12: Zakończenie

Ukończenie
Ukończenie
Ukończenie
Ukończenie
Ukończenie
Ukończenie
Ukończenie
Ukończenie

Teraz, gdy wiesz, jak wszystko działa, nadszedł czas, aby wszystko połączyć. Musiałem połączyć 2 części taśmą, ponieważ konstrukcja otworów nie jest wystarczająco wytrzymała, aby utrzymać napięcie i pękła dla mnie. To jedna z głównych rzeczy, które należy poprawić w przyszłości. Czystszą opcją jest po prostu sklejenie dwóch części, ale może to stanowić problem, gdy coś w środku pęknie i chcesz uzyskać dostęp do środka. Dlatego wybrałem starą dobrą taśmę elektryczną.

Gdy wejdziesz na stronę, powinieneś zostać przywitany pulpitem nawigacyjnym, w którym możesz robić takie rzeczy, jak ręczne karmienie, sprawdzać status, przeglądać dane i dodawać ustawienia wstępne.

Krok 13: Dodatek: rozszerzenie Chrome

Dodatek: rozszerzenie Chrome
Dodatek: rozszerzenie Chrome
Dodatek: rozszerzenie Chrome
Dodatek: rozszerzenie Chrome
Dodatek: rozszerzenie Chrome
Dodatek: rozszerzenie Chrome

Jeśli nie masz ochoty przeglądać pulpitu nawigacyjnego i po prostu chcesz szybko sprawdzić stan lub kanał, możesz użyć rozszerzenia Chrome. Ponieważ nie znajduje się on w oficjalnym sklepie internetowym Chrome, będziesz musiał go załadować tak, jakbyś tworzył taki pakiet.

Najpierw upewnij się, że pobierasz folder Feeder Extension z katalogu github:

github.com/VanIseghemThomas/ProjectFeeder

Przejdź do następującego adresu URL:

chrome://rozszerzenia/

Tam włącz tryb programisty i załaduj folder rozszerzenia. Teraz powinien pojawić się jako rozszerzenie.

Jeśli nie pojawia się na pasku Chrome, możesz go znaleźć w menu Chrome.

Krok 14: Oprogramowanie

Oprogramowanie
Oprogramowanie

Jeśli lubisz majstrować przy oprogramowaniu lub z jakiegoś powodu potrzebujesz nowej kopii pliku, wszystkie potrzebne pliki znajdziesz w utworzonym przeze mnie repozytorium GitHub:

Dostarczyłem również schemat EER dla bazy danych, na wypadek gdybyś chciał dodać funkcje do API. Zrzut bazy danych można również znaleźć w repozytorium GitHub. Cały kod backendu jest napisany w Pythonie. Flask służy do routingu, a Socket.io do gniazd sieciowych.

Zalecana: