Spisu treści:

Planetarium / planetarium z obsługą Bluetooth: 13 kroków (ze zdjęciami)
Planetarium / planetarium z obsługą Bluetooth: 13 kroków (ze zdjęciami)

Wideo: Planetarium / planetarium z obsługą Bluetooth: 13 kroków (ze zdjęciami)

Wideo: Planetarium / planetarium z obsługą Bluetooth: 13 kroków (ze zdjęciami)
Wideo: Inteligentny kubek z regulacją temperatury i obsługą z aplikacji - podgrzewany kubek Smarter Ember 2 2024, Lipiec
Anonim
Planetarium / planetarium z obsługą Bluetooth
Planetarium / planetarium z obsługą Bluetooth

Ta instrukcja została stworzona w celu spełnienia wymagań projektowych Makecourse na University of South Florida (www.makecourse.com).

To jest moje 3-planetarne planetarium/macierz. Zaczęło się jako semestralny projekt dla Makekursu, ale pod koniec semestru stało się niezwykle cennym doświadczeniem edukacyjnym. Nie tylko nauczyłem się podstaw mikrokontrolerów, ale także nauczyłem się wielu ciekawych rzeczy o C i C++, platformie Android, lutowaniu i ogólnie o działaniu elektroniki.

Podstawową funkcją Planetarium jest: otwórz aplikację na telefonie, połącz się z Planetarium, wybierz datę, naciśnij przycisk wysyłania i obserwuj, jak planetarium przesuwa Merkurego, Wenus i Ziemię na ich względne heliocentryczne długości geograficzne w tym dniu. Możesz cofnąć się o 1 AD/CE, a nawet o 5000 AD/CE, chociaż dokładność może się nieznacznie zmniejszyć, gdy idziesz do przodu lub do tyłu przez około 100 lat.

W tej instrukcji wyjaśnię, jak złożyć planety, system przekładni, który je napędza, płytkę drukowaną, która łączy wszystko razem, oraz kod Androida i C ++ (Arduino), który kontroluje planety.

Jeśli chcesz przejść do kodu, wszystko jest na GitHub. Kod Arduino jest tutaj, a kod Androida jest tutaj.

Krok 1: Części i narzędzia

Części fizyczne

  • 1 DC-47P Obudowa elektroniki o dużej wytrzymałości z serii DC - 9,58 USD
  • Arkusz akrylu/PMMA 0,08 cala (2 mm), co najmniej 15 cm x 15 cm (6 cali x 6 cali) - 2,97 USD
  • 3 jednobiegunowe silniki krokowe 28BYJ-48 - 6,24 USD
  • Glow in the Dark Planets - 8,27 USD (patrz uwaga 1)
  • Gwiazdy świecące w ciemności – 5,95 USD (opcjonalnie)

Elektronika

  • 3 sterowniki silników krokowych ULN2003 - 2,97 USD
  • 1 Atmel ATMega328(P) - 1,64 USD (patrz uwaga 2)
  • 1 HC-05 Bluetooth do modułu szeregowego - 3,40 USD
  • 1 oscylator kwarcowy 16 MHz - 0,78 USD za 10
  • 1 gniazdo IC DIP-28 0,99 USD za 10
  • 1 sztuka Stripboard (rozstaw = 0,1", rozmiar = 20 rzędów o długości 3,5") - 2,48 USD za 2
  • 1 gniazdo zasilania prądem stałym do montażu panelowego, żeńskie (5,5 mm OD, 2,1 mm ID) - 1,44 USD za 10
  • 2 kondensatory 22pF 5V - 3,00 USD za 100 (patrz uwaga 3)
  • Kondensator 2 1,0 μF - 0,99 USD za 50
  • 1 rezystor 10kΩ - 0,99 USD za 50

Narzędzia

  • Zapasowy Arduino lub AVR ISP - będzie potrzebny do zaprogramowania układu ATMega
  • Wkrętaki - do wyjmowania kolby ATMega z Arduino
  • Multimetr - a przynajmniej miernik ciągłości
  • Hammer - do naprawiania wszystkiego, co nie zostało zrobione The Right Way™
  • Wiertarka z wiertłami 5/16", 7/16" i 1 3/8"
  • Małe nożyki - do przycinania wyprowadzeń elementów
  • Linka miedziana 22 AWG (świetna cena i wiele opcji tutaj)
  • Lut - używam 60/40 z rdzeniem z kalafonii. Odkryłem, że cienki (<0,6 mm) lut znacznie ułatwia sprawę. Naprawdę można znaleźć lut wszędzie, ale to jest ten, z którym odniosłem sukces.
  • Topnik - bardzo lubię te topniki, ale naprawdę można użyć dowolnej formy topnika, o ile nie zawiera kwasu.
  • Lutownica / stacja lutownicza - możesz je dostać za całkiem tanio w serwisie eBay i Amazon, ale uważaj: frustracja zależy od ceny. Mój tani (25 USD) Stahl SSVT nagrzewa się absolutnie w nieskończoność, prawie nie ma pojemności cieplnej i słychać brzęczenie 60 Hz, które emanuje z elementu grzejnego. Nie jestem pewien, jak się z tym czuję.
  • Pomocna dłoń - To nieocenione narzędzia, które są niemal niezbędne do lutowania, a pomagają przy przyklejaniu planet do akrylowych prętów.
  • Epoxy - użyłem Loctite Epoxy for Plastics, który działał całkiem nieźle. Kiedy przez pomyłkę upuściłem jedno z ramion planetarnych (przymocowane do planety) na beton, żywica epoksydowa nie trzymała tych dwóch części razem. Ale z drugiej strony, dałem mu tylko około 15 z zalecanych 24 godzin, aby w pełni wyleczyć. Więc może inaczej by się nie rozpadł, ale nie mogę powiedzieć. Niezależnie od tego, możesz użyć prawie każdego kleju lub kleju, którego utwardzenie trwa dłużej niż kilka minut, ponieważ po nałożeniu kleju może być konieczne wprowadzenie drobnych korekt.
  • Wykałaczki - Będziesz potrzebować tych (lub dowolnego mieszadła jednorazowego) do żywicy epoksydowej lub dowolnego kleju dwuskładnikowego, chyba że jest on wyposażony w aplikator, który miesza obie części za Ciebie.
  • Drukarka 3D - użyłem ich do wydrukowania niektórych części układu zębatego (w tym pliki), ale jeśli możesz je wyprodukować innymi (być może mniej leniwymi) metodami, to nie jest to konieczne.
  • Laser Cutter - użyłem tego do wykonania przezroczystych ramion podtrzymujących planety. Podobnie jak w poprzednim punkcie, jeśli możesz wykonać części inną metodą (można je łatwo wyciąć innymi metodami), to nie jest to konieczne.

Oprogramowanie

  • Będziesz potrzebować Arduino IDE lub samodzielnych wersji AVR-GCC i AVRDude
  • Android Studio lub Android Tools for Eclipse (który został wycofany). Wkrótce może to być opcjonalne, ponieważ mogę przesłać skompilowany pakiet APK do Sklepu Play

Całkowity koszt

Całkowity koszt wszystkich części (bez narzędzi) to około 50 USD. Jednak wiele z podanych cen dotyczy więcej niż 1 sztuki. Jeśli policzysz tylko, ile z każdego elementu jest używane w tym projekcie, efektywny koszt całkowity wynosi około 35 USD. Najdroższym elementem jest obudowa, która stanowi prawie jedną trzecią całkowitego kosztu. W przypadku kursu MAKE musieliśmy włączyć pudełko do naszych projektów, więc było to konieczne. Ale jeśli szukasz łatwego sposobu na obniżenie kosztów tego projektu, sprawdź lokalnego sprzedawcę dużych pudełek; prawdopodobnie będą mieli duży wybór pudełek, które są tańsze niż typowa „obudowa dla elektroniki”. Możesz także tworzyć własne planety (drewniane kule to bez liku) i malować gwiazdy zamiast używać gotowych plastikowych. Możesz ukończyć ten projekt za mniej niż 25 USD!

Uwagi

  1. Możesz także użyć tego, co chcesz, jako „planety”. Możesz nawet namalować swój własny!
  2. Jestem prawie pewien, że albo te układy nie zostały fabrycznie załadowane z bootloaderem Arduino R3, jak mówili, albo musiał wystąpić jakiś błąd programistyczny. Niezależnie od tego na późniejszym etapie nagramy nowy bootloader.
  3. Gorąco polecam zaopatrzyć się w różne pakiety/asortymenty rezystorów i kondensatorów (ceramicznych i elektrolitycznych). W ten sposób jest to o wiele tańsze, a także możesz szybko rozpocząć projekt bez konieczności czekania na przybycie określonej wartości.

Krok 2: Wykonanie systemu przekładni

Wykonanie systemu przekładni
Wykonanie systemu przekładni
Wykonanie systemu przekładni
Wykonanie systemu przekładni
Wykonanie systemu przekładni
Wykonanie systemu przekładni

Zasadniczo wszystkie puste kolumny zagnieżdżają się w sobie i eksponują swoje koła zębate na różnych wysokościach. Następnie każdy z silników krokowych jest umieszczony na innej wysokości, każdy napędza inną kolumnę. Przełożenie wynosi 2:1, co oznacza, że każdy silnik krokowy musi wykonać dwa pełne obroty, zanim jego kolumna wykona jeden.

Do wszystkich modeli 3D dołączyłem pliki STL (do drukowania) oraz pliki części i zespołów Inventor (dzięki czemu można je dowolnie modyfikować). Z folderu exports musisz wydrukować 3 koła zębate krokowe i 1 wszystko inne. Części nie wymagają bardzo dokładnej rozdzielczości w osi Z, chociaż poziome łóżko jest ważne, aby koła zębate krokowe były dobrze dopasowane, ale nie tak ciasne, aby nie można było wsiadać i wysiadać. Wypełnienie około 10%-15% wydawało się działać dobrze.

Gdy wszystko zostanie wydrukowane, nadszedł czas na montaż części. Najpierw zainstaluj przekładnie krokowe na silnikach krokowych. Jeśli są trochę ciasne, stwierdziłem, że lekkie stukanie młotkiem działa znacznie lepiej niż pchanie kciukami. Gdy to zrobisz, wepchnij silniki do trzech otworów w podstawie. Nie dociskaj ich do samego końca, ponieważ może być konieczne dostosowanie ich wysokości.

Po umocowaniu ich w uchwytach upuść kolumnę Merkurego (najwyższą i najcieńszą) na kolumnę podstawy, a następnie Wenus i Ziemię. Wyreguluj steppery tak, aby dobrze współpracowały z każdym z trzech większych biegów i aby stykały się tylko z odpowiednim biegiem.

Krok 3: Cięcie laserowe i klejenie prętów akrylowych

Cięcie laserowe i klejenie prętów akrylowych
Cięcie laserowe i klejenie prętów akrylowych
Cięcie laserowe i klejenie prętów akrylowych
Cięcie laserowe i klejenie prętów akrylowych

Ponieważ chciałem, aby moje planetarium wyglądało dobrze w świetle lub w ciemności, zdecydowałem się na przezroczyste akrylowe paski, aby utrzymać planety w górze. W ten sposób nie odwracałyby uwagi planet i gwiazd, zasłaniając widok.

Dzięki niesamowitej przestrzeni produkcyjnej w mojej szkole, DfX Lab, mogłem użyć ich laserowej wycinarki CO2 o mocy 80 W do wycięcia akrylowych prętów. To był dość prosty proces. Wyeksportowałem rysunek Inventora jako plik PDF, a następnie otworzyłem i „wydrukowałem” plik PDF do sterownika drukarki Retina Engrave. Stamtąd dostosowałem rozmiar i wysokość modelu (TODO), ustawiłem ustawienia mocy (2 przebiegi @ 40% mocy zrobiły robotę) i pozwoliłem wycinarce laserowej zrobić resztę.

Po wycięciu akrylowych sztabek prawdopodobnie będą wymagały polerowania. Możesz je wypolerować środkiem do czyszczenia szkła (upewnij się, że nie zawiera żadnych chemikaliów oznaczonych tutaj literą „N”) lub mydłem i wodą.

Gdy to zrobisz, będziesz musiał przykleić paski do każdej z planet. Zrobiłem to z Loctite Epoxy for Plastics. Jest to dwuskładnikowa żywica epoksydowa, która twardnieje w około 5 minut, w większości utwardza się po godzinie, a w pełni twardnieje po 24 godzinach. To była idealna oś czasu, ponieważ wiedziałem, że po nałożeniu żywicy epoksydowej będę musiał trochę dostosować pozycje części. Był również szczególnie polecany do podłoży akrylowych.

Ten krok był sprawiedliwy. Instrukcje na opakowaniu były więcej niż wystarczające. Wystarczy wycisnąć równe części żywicy i utwardzacza na gazetę lub papierowy talerz i dokładnie wymieszać drewnianą wykałaczką. Następnie nałóż niewielką ilość na krótki koniec akrylowego pręta (upewniając się, że pokrywasz niewielką odległość w górę pręta) i niewielką ilość na spód planety.

Następnie trzymaj oba razem i dopasuj je, aż poczujesz się komfortowo z ich ustawieniem. W tym celu użyłem pomocnej dłoni, aby przytrzymać akrylowy pręt na miejscu (włożyłem kawałek papieru ściernego między dwa, ścierną stroną na zewnątrz, aby zacisk krokodylkowy nie porysował pręta) i szpulkę lutowia, aby utrzymać planetę nieruchomo.

Po całkowitym utwardzeniu żywicy epoksydowej (miałem tylko około 15 godzin na utwardzenie, ale zalecane jest 24 godziny) możesz wyjąć zespół z pomocnej dłoni i przetestować dopasowanie w kolumnach planety. Grubość arkuszy akrylowych, których użyłem, wynosiła 2,0 mm, więc zrobiłem jednakowej wielkości otwory w kolumnach planety. To było niezwykle ciasne, ale na szczęście, przy odrobinie szlifowania, udało mi się wsunąć kolumny.

Krok 4: Używanie poleceń AT do zmiany ustawień modułu Bluetooth

Używanie poleceń AT do zmiany ustawień modułu Bluetooth
Używanie poleceń AT do zmiany ustawień modułu Bluetooth

Ten krok może wydawać się trochę nie w porządku, ale jest o wiele łatwiej, jeśli zrobisz to przed przylutowaniem modułu bluetooth HC-05 do płyty.

Kiedy otrzymasz HC-05, prawdopodobnie będziesz chciał zmienić niektóre ustawienia fabryczne, takie jak nazwa urządzenia (zwykle „HC-05”), hasło (zwykle „1234”) i szybkość transmisji (moje przyszły zaprogramowane na 9600 bodów).

Najłatwiejszym sposobem zmiany tych ustawień jest połączenie się bezpośrednio z modułem z komputera. Do tego potrzebny jest konwerter USB na TTL UART. Jeśli masz jeden leżący w pobliżu, możesz go użyć. Możesz także użyć tego, który jest dostarczany z płytami Arduino bez USB (Uno, Mega, Diecimila itp.). Ostrożnie włóż mały płaski śrubokręt pomiędzy układ ATMega a jego gniazdo na płytce Arduino, a następnie włóż płaską główkę z drugiej strony. Ostrożnie podnieś chip trochę z każdej strony, aż będzie luźny i można go wyciągnąć z gniazda.

Teraz moduł bluetooth idzie na swoje miejsce. Po odłączeniu arduino od komputera podłącz Arduino RX do HC-05 RX i TX do TX. Podłącz Vcc na HC-05 do 5 V na Arduino, a GND do GND. Teraz podłącz pin stanu/klucza na HC-05 przez rezystor 10k do Arduino 5V. Pociągnięcie szpilki do góry umożliwia wydawanie poleceń AT w celu zmiany ustawień modułu bluetooth.

Teraz podłącz arduino do komputera i wyciągnij monitor szeregowy z Arduino IDE lub TTY z wiersza poleceń lub program emulatora terminala, taki jak TeraTerm. Zmień szybkość transmisji na 38400 (domyślna dla komunikacji AT). Włącz CRLF (w monitorze szeregowym jest to opcja „Zarówno CR, jak i LF”, jeśli używasz wiersza poleceń lub innego programu, sprawdź, jak to zrobić). Moduł komunikuje się z 8 bitami danych, 1 bitem stopu, bez bitu parzystości i bez kontroli przepływu (jeśli używasz Arduino IDE, nie musisz się tym martwić).

Teraz wpisz „AT”, a następnie powrót karetki i znak nowej linii. Powinieneś otrzymać odpowiedź „OK”. Jeśli nie, sprawdź okablowanie i wypróbuj różne szybkości transmisji.

Aby zmienić nazwę urządzenia, wpisz „AT+NAME=”, gdzie jest nazwą, którą chcesz, aby HC-05 nadawał, gdy inne urządzenia próbują się z nim sparować.

Aby zmienić hasło, wpisz „AT+PSWD=”.

Aby zmienić szybkość transmisji, wpisz „AT+UART=”.

Pełna lista poleceń AT znajduje się w tym arkuszu danych.

Krok 5: Projektowanie obwodu

Projektowanie obwodu
Projektowanie obwodu

Projekt obwodu był dość prosty. Ponieważ Arduino Uno nie zmieści się w pudełku z układem zębatym, postanowiłem przylutować wszystko na jednej płytce i używać tylko ATMega328 bez konwertera ATMega16U2 usb-to-uart, który jest na płytach Uno.

Schemat składa się z czterech głównych części (poza oczywistym mikrokontrolerem): zasilacz, oscylator kwarcowy, sterowniki silników krokowych i moduł bluetooth.

Zasilacz

Zasilacz pochodzi z zasilacza 3A 5V, który kupiłem na eBayu. Zakończony jest wtykiem baryłkowym o średnicy zewnętrznej 5,5 mm i średnicy wewnętrznej 2,1 mm z dodatnią końcówką. Tak więc końcówka łączy się z zasilaniem 5 V, a pierścień z masą. Jest też kondensator odsprzęgający 1uF, który wygładza wszelkie zakłócenia z zasilacza. Zauważ, że zasilanie 5 V jest podłączone zarówno do VCC, jak i AVCC, a masa jest podłączona zarówno do GND, jak i AGND.

Oscylator kwarcowy

Użyłem oscylatora kwarcowego 16 MHz i 2 kondensatorów 22 pF zgodnie z arkuszem danych dla rodziny ATMegaXX8. Jest on podłączony do pinów XTAL1 i XTAL2 na mikrokontrolerze.

Sterowniki silników krokowych

Tak naprawdę można je podłączyć do dowolnych pinów. Wybrałem je, ponieważ zapewnia to najbardziej kompaktowy i prosty układ, gdy przychodzi czas na umieszczenie wszystkiego na płytce drukowanej.

Moduł Bluetooth

TX HC-05 jest podłączony do RX mikrokontrolera, a RX do TX. Dzieje się tak, aby wszystko, co jest wysyłane do modułu bluetooth ze zdalnego urządzenia, było przekazywane do mikrokontrolera i na odwrót. Pin KEY pozostaje odłączony, aby nie doszło do przypadkowej rekonfiguracji ustawień na module.

Uwagi

Umieściłem rezystor podciągający 10k na bolcu resetującym. Nie powinno to być konieczne, ale pomyślałem, że może to zapobiec ryzyku, że pin resetujący będzie niski na dłużej niż 2,5us. Mało prawdopodobne, ale i tak jest.

Krok 6: Planowanie układu stripboardu

Planowanie układu stripboardu
Planowanie układu stripboardu

Układ stripboardu też nie jest zbyt skomplikowany. ATMega leży pośrodku, a sterowniki silników krokowych i moduł bluetooth są ustawione w jednej linii z pinami, do których muszą być podłączone. Oscylator kwarcowy i jego kondensatory znajdują się pomiędzy Stepper3 a HC-05. Jeden kondensator odsprzęgający znajduje się dokładnie tam, gdzie zasilacz wchodzi do płytki, a jeden znajduje się między Stepperami 1 i 2.

Znaki X oznaczają miejsce, w którym należy wywiercić płytki otwór, aby przerwać połączenie. Użyłem wiertła 7/64 i wierciłem tylko do momentu, w którym otwór był tak szeroki jak średnica wiertła. Zapewnia to, że ślad miedzi jest całkowicie podzielony, ale pozwala uniknąć niepotrzebnego wiercenia i zapewnia wytrzymałość płyty.

Krótkie połączenia można wykonać za pomocą mostka lutowniczego lub przez przylutowanie małego, nieizolowanego kawałka drutu miedzianego do każdego rzędu. Większe skoki należy wykonywać za pomocą izolowanego drutu na spodzie lub na górze deski.

Krok 7: Lutowanie

Lutowanie
Lutowanie
Lutowanie
Lutowanie
Lutowanie
Lutowanie
Lutowanie
Lutowanie

Uwaga: To nie będzie samouczek dotyczący lutowania. Jeśli nigdy wcześniej nie lutowałeś, YouTube i Instructables są tutaj Twoimi najlepszymi przyjaciółmi. Istnieje niezliczona ilość doskonałych samouczków, które uczą podstaw i niuansów (nie twierdzę, że znam niuanse; jeszcze kilka tygodni temu byłem beznadziejny w lutowaniu).

Pierwszą rzeczą, jaką zrobiłem ze sterownikami silników krokowych i modułem bluetooth, było wylutowanie wygiętych męskich nagłówków i przylutowanie prostych męskich nagłówków z tyłu płyty. Dzięki temu będą płasko na stripboardzie.

Następnym krokiem jest wywiercenie wszystkich otworów, które muszą zerwać połączenia, jeśli jeszcze tego nie zrobiłeś.

Następnie dodaj nieizolowane przewody połączeniowe do górnej części płyty. Jeśli wolisz mieć je na dole, możesz to zrobić później.

Najpierw przylutowałem gniazdo IC, aby dać punkt odniesienia dla pozostałych komponentów. Zwróć uwagę na kierunek gniazda! Półkoliste wcięcie powinno znajdować się najbliżej rezystora 10k. Ponieważ nie lubi pozostawać na miejscu przed przylutowaniem, możesz (oczywiście najpierw nałożyć topnik) ocynować dwie przeciwległe podkładki narożne i trzymając gniazdo w miejscu od spodu, ponownie rozlać cynowanie. Teraz gniazdo powinno pozostać na swoim miejscu, aby można było przylutować resztę pinów.

W przypadku części z wyprowadzeniami (w tym przypadku kondensatorów i rezystorów), włożenie części, a następnie lekkie zgięcie wyprowadzeń powinno utrzymać je na miejscu podczas lutowania.

Po przylutowaniu wszystkiego możesz użyć małych nożyków (lub, ponieważ nie miałem ich w pobliżu, starych obcinaczy do paznokci), aby przyciąć przewody.

To jest ważna część. Sprawdź, dwukrotnie sprawdź i trzykrotnie sprawdź wszystkie połączenia. Obejdź tablicę z miernikiem ciągłości, aby upewnić się, że wszystko jest połączone, co powinno być połączone i nic nie jest połączone, co nie powinno być.

Włóż chip do gniazda, upewniając się, że półkoliste wgłębienia znajdują się po tej samej stronie. Teraz podłącz zasilacz do ściany, a następnie do gniazda zasilania prądem stałym. Jeśli zapalą się kontrolki na sterownikach krokowych, odłącz zasilanie i sprawdź wszystkie połączenia. Jeśli ATMega (lub jakakolwiek część płyty, nawet przewód zasilający) bardzo się nagrzeje, odłącz zasilanie i sprawdź wszystkie połączenia.

Notatka

Topnik lutowniczy powinien zostać przemianowany na „Literally Magic”. Poważnie, flux czyni rzeczy magicznymi. Zastosuj go obficie w dowolnym momencie przed lutowaniem.

Krok 8: Nagrywanie bootloadera na ATMega

Nagrywanie bootloadera na ATMega
Nagrywanie bootloadera na ATMega

Kiedy dostałem swoje ATMegi, z jakiegoś powodu nie pozwalały na wgrywanie do nich żadnych szkiców, więc musiałem ponownie nagrać bootloader. To dość łatwy proces. Jeśli jesteś pewien, że masz już bootloader Arduino/optiboot na swoim chipie, możesz pominąć ten krok.

Poniższe instrukcje zostały zaczerpnięte z samouczka na arduino.cc:

  1. Prześlij szkic ArduinoISP na swoją płytkę Arduino. (Musisz wybrać kartę i port szeregowy z menu Narzędzia, które odpowiadają Twojej karcie)
  2. Podłącz płytkę Arduino i mikrokontroler, jak pokazano na schemacie po prawej stronie.
  3. Wybierz „Arduino Duemilanove lub Nano w/ATmega328” z menu Narzędzia > Tablica.(Lub „ATmega328 na płytce stykowej (8 MHz zegar wewnętrzny)” w przypadku korzystania z minimalnej konfiguracji opisanej poniżej.)
  4. Uruchom Narzędzia> Nagraj Bootloader> w / Arduino jako ISP. Powinieneś nagrać bootloader tylko raz. Po wykonaniu tej czynności możesz usunąć przewody połączeniowe podłączone do pinów 10, 11, 12 i 13 płyty Arduino.

Krok 9: Szkic Arduino

Cały mój kod jest dostępny na GitHub. Oto szkic Arduino na GitHub. Wszystko jest dokumentowane samodzielnie i powinno być stosunkowo łatwe do zrozumienia, jeśli wcześniej pracowałeś z bibliotekami Arduino.

Zasadniczo akceptuje linię wejściową przez interfejs UART, która zawiera pozycje docelowe dla każdej planety w stopniach. Przyjmuje te pozycje stopni i uruchamia silniki krokowe, aby przesunąć każdą planetę do docelowej pozycji.

Krok 10: Przesyłanie szkicu Arduino

Przesyłanie szkicu Arduino
Przesyłanie szkicu Arduino

Poniższe jest w większości skopiowane z ArduinoToBreadboard na stronie arduino.cc:

Gdy twój ATmega328p ma na sobie bootloader Arduino, możesz wgrywać do niego programy za pomocą konwertera USB na szeregowy (układ FTDI) na płycie Arduino. Aby to zrobić, usuwasz mikrokontroler z płyty Arduino, aby układ FTDI mógł zamiast tego komunikować się z mikrokontrolerem na płytce prototypowej. Powyższy schemat pokazuje, jak podłączyć linie RX i TX z płytki Arduino do ATmega na płytce stykowej. Aby zaprogramować mikrokontroler, wybierz „Arduino Duemilanove lub Nano w/ATmega328” z menu Narzędzia > Płytka. Następnie prześlij jak zwykle.

Jeśli okaże się to zbyt uciążliwym obowiązkiem, to po prostu włożyłem ATMega do gniazda DIP28 za każdym razem, gdy musiałem go zaprogramować, a następnie wyjąć. Dopóki będziesz ostrożny i delikatny ze szpilkami, powinno być w porządku.

Krok 11: Kod aplikacji na Androida

Podobnie jak kod Arduino, mój kod Androida jest tutaj. Znowu jest to udokumentowane, ale oto krótki przegląd.

Pobiera datę od użytkownika i oblicza, gdzie Merkury, Wenus i Ziemia były/są/będą w tym dniu. Dla uproszczenia zakłada północ, ale może wkrótce dodam wsparcie. Wykonuje te obliczenia przy użyciu niesamowitej biblioteki Java o nazwie AstroLib, która może zrobić znacznie więcej niż to, do czego jej używam. Gdy już ma te współrzędne, wysyła tylko długość geograficzną ("pozycję", o której zwykle myślisz, odnosząc się do orbit planetarnych) do modułu bluetooth dla każdej z planet. To takie proste!

Jeśli chcesz samodzielnie zbudować projekt, musisz najpierw przełączyć telefon w tryb programisty. Instrukcje mogą zależeć od producenta telefonu, samego modelu urządzenia, jeśli używasz niestandardowego modu itp.; ale zazwyczaj przejście do Ustawienia -> Informacje o telefonie i dotknięcie „Numer kompilacji” 7 razy powinno to zrobić. Powinieneś otrzymać wyskakujące powiadomienie z informacją, że masz włączony tryb programisty. Teraz przejdź do Ustawienia -> Opcje programisty i włącz debugowanie USB. Teraz podłącz telefon do komputera za pomocą kabla USB do ładowania i transmisji danych.

Teraz pobierz lub sklonuj projekt z GitHub. Gdy masz go lokalnie, otwórz go w Android Studio i naciśnij Uruchom (zielony przycisk odtwarzania na górnym pasku narzędzi). Wybierz swój telefon z listy i naciśnij OK. W telefonie zapyta, czy ufasz komputerowi, z którym jesteś połączony. Naciśnij „tak” (lub „zawsze ufaj temu komputerowi”, jeśli jest to twoja własna, bezpieczna maszyna). Aplikacja powinna się skompilować, zainstalować na telefonie i otworzyć.

Krok 12: Korzystanie z aplikacji

Korzystanie z aplikacji jest dość proste.

  1. Jeśli jeszcze nie sparowałeś HC-05 z telefonem, zrób to w Ustawienia -> Bluetooth.
  2. Kliknij „połącz” z menu opcji w prawym górnym rogu.
  3. Wybierz swoje urządzenie z listy
  4. Po kilku sekundach powinieneś otrzymać powiadomienie o połączeniu. Jeśli nie, sprawdź, czy planetarium jest włączone i nie pali się.
  5. Wybierz datę. Przewijaj w górę i w dół selektory kombinacji miesiąca, dnia i roku, a następnie użyj przycisków strzałek, aby przeskakiwać do tyłu lub do przodu o 100 lat za każdym razem.
  6. Hit wysłać!

W tym momencie powinieneś zobaczyć, jak Planetarium zaczyna poruszać swoimi planetami. Jeśli nie, upewnij się, że jest włączony.

Krok 13: Uwagi końcowe

Będąc moim pierwszym namacalnym projektem, trudno powiedzieć, że wiele się nauczyłem. Poważnie, nauczyło mnie to wielu rzeczy, od konserwacji wersji kodu, przez lutowanie, planowanie projektu, edycję wideo, modelowanie 3D, mikrokontrolery, do… Cóż, mógłbym kontynuować.

Chodzi o to, że jeśli wybierasz się na USF (Go Bulls!) i jesteś zainteresowany tego typu rzeczami, weź udział w kursie MAKE. Jeśli twoja szkoła oferuje coś podobnego, weź to. Jeśli nie jesteś w szkole lub nie masz podobnej klasy, po prostu zrób coś! Poważnie, to najtrudniejszy krok. Zdobywanie pomysłów jest trudne. Ale kiedy już masz pomysł, biegnij z nim. Nie mów „och, to głupie” lub „och, nie mam czasu”. Po prostu zastanów się, co sprawiłoby, że ten pomysł byłby niesamowity i zrób to.

Rozejrzyj się też po okolicy, aby sprawdzić, czy w pobliżu znajduje się hakerspace. Jeśli jesteś zainteresowany tworzeniem projektów dotyczących sprzętu i oprogramowania, ale nie wiesz od czego zacząć, będzie to świetne miejsce do rozpoczęcia.

Mam nadzieję, że podobał ci się ten Instruktaż!

Zalecana: