Spisu treści:

Obrotowy uchwyt do telefonu: 7 kroków
Obrotowy uchwyt do telefonu: 7 kroków

Wideo: Obrotowy uchwyt do telefonu: 7 kroków

Wideo: Obrotowy uchwyt do telefonu: 7 kroków
Wideo: Jak wybrać DOBRY uchwyt samochodowy do telefonu? 2024, Lipiec
Anonim
Obrotowy uchwyt do telefonu
Obrotowy uchwyt do telefonu

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

Chcesz zrobić obrotowy uchwyt do telefonu, aby móc wyświetlać zawartość telefonu w orientacji pionowej lub poziomej bez konieczności trzymania go? Nie szukaj dalej.

Aby stworzyć ten projekt, będziesz potrzebować:

- Mikrokontroler Arduino i IDE

-Kabel USB do przesyłania kodu

- Deska do krojenia chleba

- Przewody połączeniowe

- Wyświetlacz LCD

- Serwo

- Kolumna, którą można przymocować do serwomechanizmu

- Pilot na podczerwień

- Odbiornik podczerwieni

- Rezystor 10 kΩ, - Kenu Airframe+ Phone Clip (lub coś do trzymania telefonu w miejscu)

- Bateria 9 V do zasilania przenośnego lub tylko Arduino zasilanego przez USB

Krok 1: Zbuduj obwód odbiornika podczerwieni

Zbuduj obwód odbiornika podczerwieni
Zbuduj obwód odbiornika podczerwieni
Zbuduj obwód odbiornika podczerwieni
Zbuduj obwód odbiornika podczerwieni

Najpierw przeskocz GND i +5 V z Arduino do szyn zasilających na płytce stykowej. Następnie przeskocz rezystor 10 kΩ z szyny zasilającej +5 V do pinu wyjściowego fototranzystora odbiornika podczerwieni. Następnie użyj przewodu połączeniowego, aby połączyć się z pinem 11 w Arduino z pinu wyjściowego odbiornika podczerwieni. Następnie użyj dwóch przewodów połączeniowych, aby wysłać masę i +5V do odpowiednich pinów odbiornika podczerwieni. Filtr RC przedstawiony na powyższym schemacie nie jest konieczny. Na koniec nie wykonałem schematu pokazanego w tym kroku, a jego źródło znajduje się na zdjęciu.

Krok 2: Podłącz serwo, kolumnę i uchwyt telefonu

Podłącz serwo, kolumnę i uchwyt telefonu
Podłącz serwo, kolumnę i uchwyt telefonu
Podłącz serwo, kolumnę i uchwyt telefonu
Podłącz serwo, kolumnę i uchwyt telefonu
Podłącz serwo, kolumnę i uchwyt telefonu
Podłącz serwo, kolumnę i uchwyt telefonu

Teraz użyj dwóch przewodów połączeniowych, aby przeskoczyć z uziemienia i +5 V szyn zasilających płytki stykowej odpowiednio do brązowych i czerwonych przewodów serwomechanizmu. Następnie użyj jednego przewodu połączeniowego, aby podłączyć pin 9 na Arduino do pomarańczowego przewodu serwomechanizmu.

Następnie przymocuj kolumnę do głowicy serwomechanizmu, jak pokazano na drugim obrazku.

Na koniec przymocuj do kolumny coś, co przytrzyma telefon, na przykład Kenu Airframe+, jak pokazano na trzecim obrazku.

Krok 3: Podłącz wyświetlacz LCD do odczytu serwomechanizmu

Podłącz wyświetlacz LCD do odczytu serwa
Podłącz wyświetlacz LCD do odczytu serwa

Przeskocz do masy i +5 V z szyn zasilających płytki stykowej do odpowiednich pinów na wyświetlaczu LCD. Przeskocz także piny SDA i SCL z wyświetlacza LCD na Ardiuno. Piny Arduino SDA i SCL można zidentyfikować z tyłu płyty Arduino i są to dwa piny nad AREF i Ground nad pinem 13. Pin SCL jest najwyższy. Dzięki temu wyświetlacz LCD może odczytać aktualną pozycję serwomechanizmu.

Krok 4: Użyj kodu i bibliotek dołączonych do programowania Arduino

Użyj kodu i bibliotek dołączonych do programowania Arduino
Użyj kodu i bibliotek dołączonych do programowania Arduino

Pobierz plik RotatingMountCode.zip. Zainstaluj Arduino IDE i rozpakuj pobrany plik do Documents\Arduino. Upewnij się, że skopiowałeś zawartość folderu Moje szkice i biblioteki do folderu szkiców i bibliotek. Otwórz szkic ServoIRandLCD i prześlij go do swojego Arduino.

Zobacz dalsze kroki, aby uzyskać wyjaśnienie kodu.

Krok 5: Podłącz żądane źródło zasilania do Arduino i użyj pilota, aby obrócić uchwyt

Podłącz żądane źródło zasilania do Arduino i użyj pilota, aby obrócić uchwyt!
Podłącz żądane źródło zasilania do Arduino i użyj pilota, aby obrócić uchwyt!
Podłącz żądane źródło zasilania do Arduino i użyj pilota, aby obrócić uchwyt!
Podłącz żądane źródło zasilania do Arduino i użyj pilota, aby obrócić uchwyt!

Pozostaw Arduino podłączone do komputera lub odłącz go od komputera i użyj baterii 9 V, aby zapewnić zasilanie prądem stałym Arduino. Na koniec użyj taniego pilota na podczerwień do sterowania serwomechanizmem, a tym samym orientacją uchwytu telefonu!

Numer 1 na pilocie powinien ustawić pozycję serwa na 0 stopni, numer 2 na 90 stopni, a numer 3 na 180 stopni. Tymczasem przyciski + i - na pilocie powinny zwiększać lub zmniejszać kąt serwomechanizmu odpowiednio o 1 stopień.

Uwaga: Jeśli używasz innego pilota na podczerwień niż ten przedstawiony tutaj, możliwe jest, że zmienią się kody IR odpowiadające różnym przyciskom. Jeśli tak, zmodyfikuj szkic ServoIRandLCD, aby zamiast tego używał tych kodów IR.

Krok 6: Przeczytaj to, aby uzyskać wyjaśnienie kodu źródłowego

Przeczytaj to, aby uzyskać wyjaśnienie kodu źródłowego
Przeczytaj to, aby uzyskać wyjaśnienie kodu źródłowego
Przeczytaj to, aby uzyskać wyjaśnienie kodu źródłowego
Przeczytaj to, aby uzyskać wyjaśnienie kodu źródłowego

Kod źródłowy szkicu Arduino znajdziesz poniżej lub w załączonym wcześniej pliku.zip. Wymagane biblioteki można znaleźć tylko we wcześniej załączonym pliku.zip w kroku 4.

Pierwszą rzeczą, jaką robi kod, jest dołączenie niezbędnych bibliotek potrzebnych do uruchomienia wszystkich funkcji w szkicu. Następnie deklaruje pin 9 na Arduino jako pin sygnałowy z obsługą PWM dla serwomechanizmu. Sprawia również, że pin 11 w Arduino jest pinem używanym do odbiornika podczerwieni. Następnie deklaruje zmienną całkowitą używaną do śledzenia pozycji serwa w stopniach i początkowo ustawia ją na 0 stopni. Następnie tworzy instancję wymaganych obiektów dla obiektu IRrecv, obiektu serwo i obiektu myDisplay LCD (który również jest skonfigurowany w tym samym wierszu), dzięki czemu obiekty te mogą być później użyte.

Następnie, w funkcji konfiguracji, port szeregowy jest uruchamiany z szybkością 9600 bitów/s, więc w razie potrzeby monitor szeregowy może być używany do śledzenia pozycji serwomechanizmu. Podłącza również obiekt myservo do pinu 9, uruchamia odbiornik podczerwieni i inicjalizuje wyświetlacz LCD.

W funkcji pętli głównej, której treść jest wykonywana tylko wtedy, gdy z odbiornika IR jest odbierana transmisja IR, odbiornik IR dekoduje sygnał wysłany do niego z pilota IR za pomocą funkcji dekodowania (&wyniki), a następnie, jeśli instrukcje określają, co ustawić serwo na w zależności od otrzymanej wartości IR. Funkcja zapisu służy do ustawiania serwomechanizmu na odpowiednie stopnie, a funkcja odczytu służy do znajdowania bieżącego kąta serwomechanizmu i zwiększania lub zmniejszania go w razie potrzeby.

Na koniec bieżący kąt serw jest wysyłany zarówno do monitora szeregowego, jak i wyświetlacza LCD za pomocą funkcji myservo.read(), a główne pętle iterują w nieskończoność.

Kod źródłowy:

#include //Arduino standard library#include //IR library #include "Wire.h" //Wire.h dla LCD (czasami potrzebne) #include "LiquidCrystal_I2C.h" //LCD library

#define servopin 9 // definiuje pin 9 jako pin używany do przewodu sterującego serwomechanizmu (pomarańczowy)

wewn. PIN_ODBIORU = 11; // fototranzystor IR wysyła wyjście do pinu 11

int currentAngle = 0; //deklaruj zmienną całkowitą currentAngle i ustaw ją na 0

IRrecv nieodwoł.(RECV_PIN); //utwórz instancję obiektu odbiornika podczerwieni decode_results results; //zainicjuj obiekt decode_results. Ten obiekt jest oddzielony od odbiornika podczerwieni.

Serwo myservo; //zainicjuj obiekt Servo o nazwie „myservo” //maksymalnie można utworzyć osiem obiektów serwo

LiquidCrystal_I2C myDisplay (0x27, 16, 2); //utwórz obiekt LCD i skonfiguruj konfigurację

pusta konfiguracja () {

Serial.początek(9600); //uruchom port szeregowy

myservo.attach(servopin); //przyłącza serwo na pin 9 do obiektu serwo

nieodwoł.enableIRIn(); //uruchom odbiornik

mójWyświetlacz.init(); //zainicjuj LCD

mójWyświetlacz.podświetlenie(); //włącz podświetlenie LCD

}

pusta pętla () {

if (irrecv.decode(&results)) //jeśli transmisja została odebrana…

{ Serial.print("Otrzymano wartość IR: ");

Serial.println(wyniki.wartość); //wyświetlana wartość otrzymana

//interpretuj otrzymane polecenia… if (results.value == 16724175) //1 { //left myservo.write(0); }

if (results.value == 16718055) //2 { //middle myservo.write(90); }

if (results.value == 16743045) //3 { //prawo myservo.write(180); }

if (results.value == 16754775) //+ { //increment currentAngle = myservo.read(); myservo.write(aktualny kąt + 1); } if (results.value == 16769055) //- { //zmniejszenie currentAngle = myservo.read(); myservo.write(currentAngle - 1); } }

nieodzysk.wznowienie(); //Odbierz następną wartość

//Serial monitor print Serial.print("Aktualna pozycja serwa: ");

Serial.println(myservo.read()); //to pobiera pozycję serwa i wysyła ją do monitora szeregowego

//Wydruk LCD myDisplay.clear();

myDisplay.print("Stopnie serwo: ");

myDisplay.print(myservo.read());

opóźnienie(200); //opóźnienie, aby działanie serwomechanizmu było stabilne

}

Krok 7: Obejrzyj mój film na YouTube, aby uzyskać pomoc

Obejrzyj mój niepubliczny film na YouTube, który w pełni omawia i demonstruje projekt, jeśli masz jakiekolwiek pytania!

Zalecana: