Spisu treści:

Raspberry Pi Cam Tank V1.0: 8 kroków (ze zdjęciami)
Raspberry Pi Cam Tank V1.0: 8 kroków (ze zdjęciami)

Wideo: Raspberry Pi Cam Tank V1.0: 8 kroków (ze zdjęciami)

Wideo: Raspberry Pi Cam Tank V1.0: 8 kroków (ze zdjęciami)
Wideo: Pi4: start z USB - wszystko co chcesz wiedzieć o USB BOOT, a nie masz kogo zapytać 8) 2024, Listopad
Anonim
Image
Image
Zbiornik kamery Raspberry Pi V1.0
Zbiornik kamery Raspberry Pi V1.0

Od małego kocham czołgi. Budowanie własnego czołgu to zawsze jedno z moich marzeń. Ale z powodu braku wiedzy i umiejętności. Sen to tylko sen.

Po latach studiów inżynierskich i wzornictwa przemysłowego. Zdobyłem umiejętności i wiedzę. A dzięki tańszym hobbystycznym drukarkom 3D. W końcu mogę zrobić krok.

Jakie cechy powinien mieć ten czołg?

  • Zdalnie sterowany
  • Zawieszone koła jałowe (jak prawdziwy czołg!)
  • Posiada obrotową wieżę i uchylny BB Gun może strzelać pociskami 6mm
  • Może przesyłać strumieniowo wideo do kontrolera, dzięki czemu można nim sterować z daleka

Na początku planowałem użyć arduino jako kontrolera, ale po kilku badaniach stwierdziłem, że nie ma praktycznego sposobu na samodzielną transmisję wideo. Jednak Raspberry Pi wydaje się być dobrym kandydatem do przesyłania strumieniowego wideo. I możesz to kontrolować przez żonę z twojego telefonu!

Zacznijmy.

Krok 1: Potrzebne części

Do kontroli

Raspberry Pi w wersji B

Zasilany koncentrator USB (Belkin F4u040)

Kamera internetowa USB (Logitech C270)

Klucz Wi-Fi (Edimax)

Kabel połączeniowy żeński na męski

Do jazdy

Dwa wysokie momenty obrotowe kontynuują serwo lub silnik (dla dwóch kół napędowych)

Jedna stalowa linka 1/8 do wałów kół (kupiona w magazynie i niedrogo)

Dziesięć łożysk ślizgowych (zamówionych w Mcmaster)

Niektóre sprężyny do zawieszenia (kupiony asortyment sprężyn w Harbour Freight, niedrogi)

Do wieży

Zabawka z automatycznym pistoletem BB

Jeden mini silnik prądu stałego o wysokim momencie obrotowym

Mikro serwo do przechylania w górę i w dół

Część stalowa 1/4 jako oś pistoletu

Inne rzeczy

Wydrukowałem w 3D większość części tego czołgu, jeśli masz łatwy dostęp do wycinarki laserowej, to też by zadziałało.

Do drukowania użyłem filamentu PLA, ponieważ łatwiej się z nim uporać (brak problemów z owijaniem na ABS). Ale naprawdę trudno później szlifować, ciąć, wiercić.

Możesz pomyśleć, że drukowanie 3D jest dobre dla niestandardowych części i możesz wydrukować bardzo skomplikowaną część jako jedną sztukę. To prawda. Uważam jednak, że dla hobbysty taki sposób nie jest praktyczny i ekonomiczny. Powody to:

Twoja hobbystyczna drukarka nie będzie tak dokładna.

Popełnisz błędy w pomiarach i obliczeniach (tolerancja, wyrównanie itp.).

W każdym razie jest dość duża szansa, że Twoje odbitki nie będą działać lub nie zmieszczą się na pierwszym zdjęciu. W przypadku małej części wystarczy zmienić model, a następnie wydrukować go ponownie. Ale w przypadku większej i bardziej skomplikowanej części frustrująca jest wiedza, że coś jest nie tak po wielu godzinach drukowania. To strata czasu i materiału. Oto moje podejście:

Bo wszystko jest symetryczne, wydrukuj tylko połowę, wypróbuj, jeśli wszystko działa dobrze, wydrukuj całość.

Modelowanie części z myślą o druku 3D. Czy może istnieć płaska powierzchnia do zamocowania łóżka drukarki? Czy można go podzielić na mniejsze części, aby uniknąć zbyt dużej konstrukcji nośnej?

Ponieważ części mają wiele funkcji (współdziałają z wieloma innymi częściami), podziel model na moduły. Więc jeśli jedna funkcja zawiodła, nie musisz ponownie drukować całej części. Po prostu dostosuj moduł i wydrukuj go ponownie. Do ich łączenia używam śrub i nakrętek.

Bądź dobrym przyjacielem z narzędziami ręcznymi, piłą ręczną, X-acto, wiertarką, pistoletem do klejenia na gorąco. Jeśli możesz naprawić błąd drukowania, napraw go.

To wyjaśnia, dlaczego mój czołg ma tak wiele części. Ciągle dopracowuję te części i gdy znajdę dobrą kombinację, mogę je wydrukować razem jako jeden kawałek. Wtedy byłby to mój Cam Tank v2.0.

Krok 2: System jazdy

Image
Image
System jazdy
System jazdy
System jazdy
System jazdy

Zawieszenie

Na początku zrobiłem prototyp bez zawieszenia, tylko osie w dolnej części kadłuba z łożyskami i kołami. Ale myśląc o wygodzie operatora (pojadę nim oglądając streaming video!), postanowiłem dodać zawieszenie, żeby było chłodniej.

Wszystko co mam to sprężyny śrubowe, bez hydrauliki, bez resorów piórowych. Na początku eksperymentowałem z mechanizmem drążka skrętnego z PLA. (Zawieszenie drążka skrętnego jest powszechne w niektórych zbiornikach). Okazuje się, że po kilku skręceniach wydrukowany pasek PLA zmięknie i ostatecznie pęknie. ABS może być lepszy do tego celu, ale nigdy nie próbowałem. Więc po dalszych badaniach znalazłem projekt zawieszenia Christie, oto krótki film pokazujący, jak to działa.

Jednak zawieszenie christie ma tak wiele małych części i wtedy nie mam zaufania do mojej drukarki. Więc zrobiłem takie zawieszenie.

(obraz)

Ta konfiguracja zajmuje zbyt dużo przestrzeni wewnętrznej. Więc obracam wewnętrzne ramię o 90 stopni. Zauważ, że pierwsze i ostatnie koło stało się krótsze

Tylny napinacz

Myślałem, że gdy czołg przejedzie jakieś przeszkody, nieobciążone koła mogą ruszyć w górę i tor straci napięcie. Dodałem więc jakiś mechanizm napinacza na tylnym kole. W zasadzie są to dwie sprężyny, które cały czas dociskają oś, wywierając na nią pewną siłę, aby napiąć gąsienice.

Koła napędowe i gąsienice

Zaprojektowałem te gąsienice i koła napędowe w solidworks. Nie wiem zbyt wiele o inżynierii mechanicznej, dlatego nie mogę wykonać obliczeń przekładni. Więc symulowałem części w solidworks, aby sprawdzić, czy działa, zanim nacisnę przycisk Drukuj. Każda ścieżka jest połączona z zapasowym 3mm filamentem. Działa całkiem dobrze z odrobiną szlifowania. Ale konstrukcja toru ma wadę, powierzchnia stykająca się z podłożem jest zbyt gładka, aby trudno było ją uchwycić. Jeśli wydrukuję go do góry nogami, mógłbym dodać trochę bieżnika, ale będzie to kosztować dużo materiału podtrzymującego ze względu na ząb. Przyszłe rozwiązania: 1: wydrukuj ząb oddzielnie, a następnie sklej je razem. 2. Nałóż trochę farby w sprayu z gumową powłoką.

Następnie wydrukowałem obudowę serw i upewniłem się, że koło napędowe można przykręcić śrubami do ramienia serw.

Krok 3: System broni

Image
Image
System broni
System broni
System broni
System broni

Ta część jest dla mnie najbardziej ekscytująca. Możesz kupić zabawkową czołg z aparatem. Ale nie znalazłem jednej zabawki łączącej aparat i jakąś broń.

Kupiłem tę automatyczną broń ASG za 9,99 $ na wyprzedaży. (Teraz jest to około 20 dolców i może później spróbuję czegoś tańszego) I rozerwij to, aby zrozumieć mechanizm. Mogę całkowicie wyciąć ciało i przykleić je do mojego zbiornika. Ale nie lubię brzydko wyglądającej połowy ciała. Zrobiłem więc trochę pomiarów i przemodelowałem część mechaniczną. Z tych kawałków nauczyłem się lekcji drukowania 3D: zawsze popełnisz błąd. Aby dopasować każdą część, potrzeba 5 wydruków, a także dużo cięcia, szlifowania i klejenia na gorąco, aby działała idealnie.

Po tym, jak każda część z zabawkowego pistoletu poruszała się poprawnie w moim replikowanym ciele, wydrukowałem cztery inne części, aby zacisnąć korpus. Dodano mechanizm przechylania, lejek pocisku BB i obsługę kamery. Wszystkie te części są przykręcone do korpusu pistoletu. Docelowo można je połączyć w co najmniej dwie części. Ale myślę, że nie jestem jeszcze gotowy.

Na podstawie wieży dodałem mikro serwo do przechylania i mikrosilnik prądu stałego do obracania.

Potem zacząłem testować broń, podłączyć 4 baterie AA i dobrze strzela. Bardzo się ucieszyłem, że działa dobrze. Ale następnego dnia znalazłem problem.

Oto film z moich testów broni. wieżyczka została podłączona do adaptera 3v.

Krok 4: Skonfiguruj Pi

To najważniejsza część, serce naszego zbiornika – Raspberry Pi!

Jeśli nie grałeś jeszcze w Raspberry Pi. Polecam zacząć od tej książki: Pierwsze kroki z raspberry pi autorstwa MAKE. Możesz uzyskać podstawy i wszechstronne zrozumienie Pi.

Pobierz najnowszy system operacyjny raspbian.

Kolejnym narzędziem, które bardzo polecam, jest Pulpit zdalny. Oto samouczek autorstwa Adama Rileya. Po skonfigurowaniu możesz wyświetlić pulpit Pi na swoim komputerze PC (nie testowano na komputerze Mac). Tak więc uruchomienie Pi "nago" oznacza brak konieczności używania wyświetlacza, myszy i klawiatury. Niektórzy z moich znajomych używają wiersza poleceń ssh. Ale wolę pulpit.

Na podstawie wcześniejszych badań wiedziałem, że Raspberry Pi jest w stanie przesyłać strumieniowo wideo. Zacząłem więc bawić się różnymi aplikacjami na Pi. Wiele aplikacji ma duże opóźnienie (sekundy) lub ma niską liczbę klatek na sekundę. Po kilku tygodniach wędrówek po filmach i samouczkach online na szczęście znalazłem rozwiązanie. Film na youtube o webiopi dał mi wiele nadziei. Więcej badań skłoniło mnie do przekonania, że to właściwa droga.

Webiopi to framework, który sprawił, że połączenie między Pi a innym urządzeniem internetowym jest naprawdę łatwe. Kontroluje wszystkie Pi GPIOS, a następnie uruchamia serwer zawierający dostosowany html. Możesz uzyskać dostęp do tego html z innych urządzeń (komputer, smartfon itp.) i kliknąć przycisk w przeglądarce w odległości Wi-Fi, uruchamia się GPIO.

Film, który wzbudził we mnie nadzieję, oparty jest na samouczku webiopi – projekt cambot. Jest on opisywany w magazynach MagPi #9[html][pdf] i #10[html][pdf]. Dzięki Ericowi PTAK!

Postępując zgodnie z samouczkiem krok po kroku, możesz zrobić kambot na dwa koła! Oto jak to działa: połącz dwa silniki za pomocą mostka H, a następnie kontroluj mostek H za pomocą 6 pinów GPIO, aby sterować kierunkiem i prędkością. Webiopi służy do sterowania GPIO. Streamer-j.webp

Jeśli jesteś nowy w Pi lub Linuksie, tak jak ja kilka miesięcy temu, możesz mieć mały problem po wykonaniu wszystkich kroków. Możesz uruchomić kod Pythona dla webiopi i strumieniowego wideo osobno, ale nie wiesz, jak uruchomić je razem? Zajęło mi trochę czasu, zanim dowiedziałem się, że możesz dodać & po poleceniu (& jest naprawdę trudne do wyszukania w google, BTW), co oznacza, że chcesz, aby to polecenie było uruchamiane w tle. Więc zrobię to za każdym razem:

sudo python cambot.py&

sudo./stream.sh

Wierzę, że tworzysz plik bash zawierający powyższe polecenie w jednym pliku i uruchamiasz raz. Jeszcze nie próbowałem.

Wypróbowałem więc tę podstawową konfigurację z dwoma silnikami prądu stałego, działa, ale silnik, który mam, nie jest wystarczająco mocny. Prowadzi mnie do innej opcji: serwa ciągłe.

Pojawia się wtedy nowe pytanie: czy webiopi obsługuje serwomechanizmy sterowane PWM?

Odpowiedź brzmi tak, ale nie sama: RPIO jest potrzebne do wygenerowania oprogramowania PWM

Instalacja RPIO (nie mam szczęścia do pierwszej metody instalacji apt-get. Metoda github działa dla mnie świetnie)

Przykładowy kod i inne dyskusje

Teraz twój bot jest ulepszony o dwa serwa! Pomyśl, co możesz zrobić z dodatkowymi ramionami!

Zmodyfikowałem powyższy przykładowy kod, aby pasował do mojego zbiornika. Aby to zrobić, nie potrzebujesz dyplomu z informatyki. Jesteś dobry tak długo, jak potrafisz zrozumieć przykładowy kod i wiesz, co skopiować i gdzie zmienić.

Krok 5: Połączenie elektroniczne

Połączenie elektroniczne
Połączenie elektroniczne
Połączenie elektroniczne
Połączenie elektroniczne
Połączenie elektroniczne
Połączenie elektroniczne

Power bank, który kupiłem, Anker Astro Pro, ma dwa porty USB i jeden port 9V (główny powód, dla którego kupiłem ten). Próbowałem zasilać Pi, klucz Wi-Fi i kamerę internetową za pomocą jednego portu USB. Nie uruchamia się. Użyłem więc drugiego portu USB do zasilanego koncentratora USB.

Wtedy pomyślałem, że może mógłbym zasilać serwa portem USB hub. Działa, ale połączenie Wi-Fi jest bardzo niestabilne.

Aby rozwiązać ten problem, przywiozłem 4 baterie AA do zasilania potrzeb serwomechanizmu 6V. Rozłożyłem kabel USB, aby odsłonić przewód uziemiający (czarny) i połączyć z uziemieniem pakietu baterii AA.

3 serwa, czerwony do 6V, czarny do masy i pin sygnałowy podłączony do pinów GPIO.

Zgodnie z planem silnik obrotowy wieży i silnik działka powinny być również zasilane napięciem 6V ze sterowaniem mostkiem H. Ale kiedy wszystko podłączyłem, broń nie strzela! Wygląda na to, że silnik próbuje się obracać, ale nie może napędzać kół zębatych. Napięcie wyjściowe jest prawidłowe, ale wydaje się, że nie ma wystarczającego prądu do napędzania. Próbowałem też MOSFET-u bez powodzenia.

Muszę zrezygnować z tej części z powodów czasowych. I dlatego w teście pistoletu muszę ręcznie podłączyć silnik pistoletu do adaptera. Jeszcze wiele do nauczenia się w elektronice. W najgorszym przypadku zawsze mogłem sterować pistoletem za pomocą serwa pociągnij i zwolnij spust.

Krok 6: Interfejs

Image
Image
Berło
Berło
Berło
Berło

Zmieniłem również interfejsy z przykładowych kodów cambot i rasprover. Ponieważ planowałem użyć smartfona jako kontrolera, zoptymalizowałem układ dla mojego telefonu (galaxy note3).

Większość układów i stylów można edytować w pliku index.html. Jednak domyślny styl przycisku (ciemnoszary z czarnym obramowaniem) jest zdefiniowany w pliku webiopi.css znajdującym się w /usr/share/webiopi/htdocs. Użyłem terminala do uruchomienia sudo nano w celu jego modyfikacji.

Strumień wideo znajduje się na środku ekranu, sterowanie jazdą po lewej stronie, a sterowanie bronią po prawej. Zaprojektowałem sterowanie jazdą jako dwa zestawy: góra (do przodu), stop, dół (do tyłu), które wymagają lepszej kontroli, ale na filmie widać, że czasami jest to niezręczne.

Krok 7: Plan na przyszłość

Jak widać, ten projekt nie jest jeszcze skończony. Dzięki konkursowi raspberry pi w zeszłym tygodniu bardzo się rozkręciłem, po prostu starając się ukończyć go przed terminem. Obraca się całkiem nieźle, dopóki nie odkryłem, że broń nie strzela…

Jest dużo do ulepszenia, ale mam nadzieję, że możesz się czegoś nauczyć z mojego doświadczenia.

Plan krótkoterminowy:

Spraw, aby pistolet działał!!!

Większy pojemnik na więcej BB

Czołg musi odkrywać świat - wyjdź poza domowe wifi!

Skonfiguruj węzeł ad-hoc na Pi, aby telefon mógł łączyć się z nim w dowolnym miejscu

Uruchom polecenie zbiornika podczas uruchamiania

Dodaj przycisk zamykania, aby bezpiecznie wyłączyć Pi.

Plan długoterminowy:

Lepszy system napędowy zapewniający stabilność i przyczepność

Zaprojektuj teraz własną płytkę drukowaną zamiast płytki prototypowej

Nagrywanie wideo z perspektywy pierwszej osoby

Kolejny pistolet? Zróbmy z niego statek bojowy!

Dodać czujniki do samodzielnego patrolowania?

Wizja komputerowa do automatycznego kierowania!

Kontroluj czołg daleko daleko: zobaczę wszystko w domu!

Krok 8: Dzięki za przeczytanie

Dziękuję za przeczytanie mojego słabego angielskiego (to nie jest mój pierwszy język). Mam nadzieję, że dobrze się tu bawiłeś lub czegoś się nauczyłeś. To będzie ciągły projekt, więc jeśli masz doświadczenie w jakiejkolwiek dziedzinie, doceniam twoją radę.

Jeśli masz jakieś pytania, zostaw komentarz, postaram się odpowiedzieć.

Pozwólcie, że zrobię aktualizację - Cam Tank2.0 - w najbliższej przyszłości.

Nareszcie film przedstawiający scenariusz bitwy. To całkiem zabawne.

Ciesz się i do zobaczenia następnym razem!

Zalecana: