Spisu treści:

Mechaniczna: 7 kroków
Mechaniczna: 7 kroków

Wideo: Mechaniczna: 7 kroków

Wideo: Mechaniczna: 7 kroków
Wideo: Poradnik: Idealny rower w 7 krokach - obejrzyj, zanim kupisz! 2024, Listopad
Anonim
Mechaniczna
Mechaniczna

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

Krok 1: Koncepcja

Podczas burzy mózgów nad pomysłem na ten projekt postanowiłem stworzyć coś, co będzie użyteczne i przydatne w moim codziennym życiu. Niewiele takich rzeczy może mieć wymóg dwóch stopni swobody, więc postanowiłem zrobić prosty zegar, aby spełnić ten wymóg, a także umieścić go na biurku, aby pokazywać godzinę. Pierwotnie chodziło o wykonanie zegarka na rękę, ale wydrukowana w 3D część byłaby za mała, a silniki napędzające zegarek nadal byłyby za duże dla zegarka na rękę.

Stąd ten projekt, znalazłem części zamienne wokół mojego mieszkania i postanowiłem nad tym popracować.

Krok 2: Części

- Części drukowane 3D

- 2 silniki krokowe 28BYJ-48 5 V DC

-2 ULN2003 płyta sterownika silnika krokowego

- Arduino Uno

-Moduł Bluetooth HC-05

Wszystkie te części są wykonane przeze mnie z wyjątkiem wskazówek zegara. Nie jestem bardzo kreatywny. Poniżej link do jego twórcy.

www.thingiverse.com/thing:1441809

Krok 3: Montaż części

Montaż części
Montaż części

(1)- Musisz włożyć Gear_1 i 2 do silników krokowych. Będą ciasno dopasowane, więc potrzeba trochę siły, aby pozostały na swoim miejscu.

(2)- Baza_0 pozostanie na dole zespołu.

(3)- Baza_1 zostanie umieszczona na górze SpurGear_1, jest to główny element wskazówki minutowej. Możesz skleić te dwa elementy razem, upewnij się, że podstawa znajduje się na górze sprzętu.

(4)- Baza_2 zostanie umieszczona na górze SpurGears_2, jest to główny składnik wskazówki godzinowej. To samo dotyczy tej części jako kroku (3)

(5)- Wskazówki zegarów można przykleić na górze Base_1 i Base_2 lub wywiercić mały otwór, aby były dopasowane.

(6)- Aby dopasować koło zębate minutnika do koła zębatego czołowego, potrzebujesz platformy 1 cm, aby umieścić cały zespół na górze za pomocą jednego z silników krokowych.

Powodem tego jest to, że główna podstawa nie może być wysoka, ponieważ drugi silnik krokowy nie byłby w stanie osiągnąć wysokiego biegu. Tak czy inaczej, potrzebna jest platforma dla jednego z silników krokowych.

Krok 4: Biblioteka dla Arduino IDE

Kod dla tego projektu jest oparty na bibliotece firmy Tyhenry o nazwie CheapStepper.h

github.com/tyhenry/CheapStepper

Aby zainstalować tę bibliotekę na swoim arduino. Kliknij klon lub pobierz na powyższy link i pobierz go jako plik zip.

W środowisku Arduino IDE. Szkic -> Dołącz bibliotekę -> Dodaj bibliotekę. ZIP

Ze wszystkich bibliotek, które działają, ta wykorzystywała silnik krokowy najlepiej i niezwykle łatwy w użyciu.

Krok 5: Konfiguracja deski do krojenia chleba

Konfiguracja deski do krojenia chleba
Konfiguracja deski do krojenia chleba
Konfiguracja deski do krojenia chleba
Konfiguracja deski do krojenia chleba

Użyłem nakładki Arduino do mojego Arduino UNO. Wygląda bardziej czysto, ale zamiast tego można uzyskać małą płytkę stykową i umieścić ją na Arduino UNO. Postępuj zgodnie z kolorem na schemacie, ponieważ niektóre przewody znajdują się jeden na drugim. Kołki 4-7 są dla jednego, a kołki 8-11 dla drugiego.

Moduł Bluetooth musi być podłączony przewodowo RX -> TX i TX -> RX do płytki Arduino.

Niebieskie przewody to połączenia ze sterowników do Arduino UNO

Zielone przewody to połączenia RX i TX

Czarne przewody są uziemione.

Czerwone przewody to 5V.

Krok 6: Kod

Poniżej znajduje się kod tego projektu.

Wyjaśnienie kodu będzie tutaj.

Tani stepper krokowy (8, 9, 10, 11); TaniStepper stepper_2(4, 5, 6, 7);

boolean moveZgodnie z ruchem wskazówek zegara = prawda;

//37,5 min = 4096;

//1 min = 106,7;

//5 min = 533,3;

//15 min = 1603;

//30 min = 3206;

//60 min = 6412;

int pełne = 4096;

int połowa = pełna/2; //2048

zmiennoprzecinkowy pełny czas = 6412; // 1 godzina

zmiennoprzecinkowa połowa czasu = cały_czas/2; // 30 min 3026

float fif_time = połowa_czasu/2; // 15 min 1603

pływak jeden_raz = pełny_czas/60; // 1 min 106

float five_time = one_time*5; // 5 min 534,3

float jeden_s = jeden_raz/60; // 1 sek 1,78

//możemy zrobić po 30 minut, obracając silnik 3206 i resetując

To jest główna kalkulacja dla tego projektu. Stepper wykonałby 4096 kroków, aby obrócić się o pełne 360 stopni, ale ponieważ koła zębate są większe niż koła zębate przymocowane do steppera, więc wykonanie pełnego obrotu wymaga więcej kroków. Ponieważ przekładnia czołowa jest głównym elementem, który kręci rękami. Muszę wykonać różne testy, aby upewnić się, że wartości są prawidłowe.

full_time to zmienna, którą przypisałem do pełnego obrotu ręki. Jest to dość spójne, ale gdy kroki są dzielone przez 2, aby uzyskać określony ruch, wartość zmiennoprzecinkowa zmniejsza się, co utrudnia kierowcom wykonanie swojej pracy.

Ruch zgodnie z ruchem wskazówek zegara = true; jest sprawienie, aby silnik krokowy poruszał się zgodnie z ruchem wskazówek zegara, ale ponieważ obraca on zębatkę czołową w kierunku przeciwnym do ruchu wskazówek zegara, musimy ustawić wartość logiczną na fałsz. Możesz również zadeklarować, że jest fałszywe na początku, ale to wyjaśnia, jak to działa.

void setup() {Serial.begin(9600);

Serial.println("Gotowy do ruchu!");

poz = jednorazowy; del = 900; stosunek = 60;

ruch zgodnie z ruchem wskazówek zegara = fałsz; }

W tym miejscu deklaruję wartość logiczną moveClockwise jako fałsz. pos będzie liczbą kroków, del będzie opóźnieniem, a stosunek wynosi albo dla minut/sek = 60 lub godzin/min = 12

Dłonie sterujemy za pomocą modułu Bluetooth. Najpierw potrzebujesz szeregowego terminala Bluetooth z urządzenia z Androidem. Połącz się z Hc-05 za pomocą PIN 0000 lub 1234. Możesz użyć przykładowego kodu z Arduino IDE, aby sprawdzić, czy działa poprawnie. Gdy jest podłączony, powinien migać bardzo powoli, a nie szybko, gdy nie jest podłączony.

void loop() {stan = 0;

if(Serial.available() > 0) {

stan = Serial.odczyt(); }

for (liczba zmiennoprzecinkowa s=0; s<(poz; s++){

stepper.step(przesuńw prawo); }

for (liczba zmiennoprzecinkowa s=0; s<(dodatnia/stosunek); s++){

stepper_2.step(przesuńw prawo); }

opóźnienie(del);

Serial.available() > 0 jest ważny, ponieważ jest to sposób działania modułu Bluetooth. To stwierdzenie będzie prawdziwe w przypadku komunikacji między Arduino a twoim urządzeniem. Zmienna state określi 3 inne zmienne, które zadeklarowałem na górze setup(), a także wypisze, jaką operację wykonuje kod. Dwie pętle for to główna funkcja, która steruje ruchem silnika krokowego.

if (stan == '1') {

poz = jednorazowy; del = 0; stosunek = 12;

Serial.println("Operacja 1: Bez opóźnienia"); }

To jeden z przykładów wykorzystania danych wejściowych z urządzenia Bluetooth do zmiany sposobu działania systemu. Możesz edytować te zmienne, jakkolwiek chcesz kontrolować rozdania.

Krok 7: Demo i wnioski

Image
Image
Demo i wnioski
Demo i wnioski

To jest demo systemu, pokazujące jak on działa. Do obudowy można użyć wszystkiego, co zmieściłoby wszystkie elementy w środku. Ten projekt był prosty i przyjemny w wykonaniu, ponieważ po raz pierwszy wydrukowałem w 3D. Moduł Bluetooth był fajny do wymyślenia i użycia. Jest kilka błędów, które popełniłem, było za późno na zmianę, ale produkt końcowy jest w porządku.

Zalecana: