Съдържание:

Въртящ се монтаж на телефона: 7 стъпки
Въртящ се монтаж на телефона: 7 стъпки

Видео: Въртящ се монтаж на телефона: 7 стъпки

Видео: Въртящ се монтаж на телефона: 7 стъпки
Видео: Как да свържем въртяща IP камера с ТЕЛЕФОН - ревю 2024, Юли
Anonim
Въртяща се стойка за телефон
Въртяща се стойка за телефон

Тази инструкция е създадена в изпълнение на проектните изисквания на Makecourse в Университета на Южна Флорида (www.makecourse.com).

Искате ли да направите въртяща се стойка за телефон, за да можете да преглеждате съдържанието на телефона си в портретна или пейзажна ориентация, без да се налага да я държите? Тогава не търсете повече.

За да създадете този проект, ще ви трябва:

- Микроконтролер Arduino и IDE

- USB кабел за качване на код

- Платформа

- Джъмперни проводници

- ЛСД дисплей

- Серво

- Колона, която може да се прикрепи към серво

- IR дистанционно

- IR приемник

- 10k ом резистор

- Kenu Airframe+ Phone Clip (или нещо, което да държи телефона на място)

- 9 V батерия за преносимо захранване или просто захранван от USB Arduino

Стъпка 1: Изградете веригата на IR приемника

Изградете веригата на IR приемника
Изградете веригата на IR приемника
Изградете веригата на IR приемника
Изградете веригата на IR приемника

Първо, скочете GND и +5V от Arduino към захранващите релси на вашата дъска. След това прескочете своя 10k ом резистор от захранващата шина +5V към изходния щифт на фототранзистора на вашия IR приемник. След това използвайте джъмпер проводник, за да се свържете към щифт 11 на Arduino от изходния щифт на IR приемника. След това използвайте два джъмперни проводника, за да изпратите маса и +5V към съответните щифтове на IR приемника. RC филтърът, показан на схемата по -горе, не е необходим. И накрая, не направих схемата, показана в тази стъпка, и източникът за нея присъства на снимката.

Стъпка 2: Свържете серво, колона и държач за телефон

Свържете серво, колона и държач за телефон
Свържете серво, колона и държач за телефон
Свържете серво, колона и държач за телефон
Свържете серво, колона и държач за телефон
Свържете серво, колона и държач за телефон
Свържете серво, колона и държач за телефон

Сега, използвайте два джъмперни проводника, за да скочите от земята и +5V от релсите за захранване в съответно кафявите и червените проводници на серво. След това използвайте един джъмпер проводник, за да прикрепите щифт 9 на Arduino към оранжевия проводник на сервото.

След това прикрепете колона към главата на серво, както е показано на втората снимка.

Накрая прикачете нещо, което да държи телефона към колоната, като Kenu Airframe+, както е показано на третата снимка.

Стъпка 3: Свържете LCD дисплея за отчитане на серво

Свържете LCD дисплея за отчитане на серво
Свържете LCD дисплея за отчитане на серво

Прескачайте земята и +5V от релсите за захранване към съответните щифтове на LCD дисплея. Също така, прескочете щифтовете SDA и SCL от LCD към Ardiuno. SDA и SCL щифтовете на Arduino могат да бъдат идентифицирани от задната страна на дъската на Arduino и са двата пина над AREF и Ground над щифт 13. SCL щифтът е най -високият. Това позволява на LCD дисплея да отчете текущата позиция на серво.

Стъпка 4: Използвайте приложен код и библиотеки, за да програмирате Arduino

Използвайте приложен код и библиотеки, за да програмирате Arduino
Използвайте приложен код и библиотеки, за да програмирате Arduino

Изтеглете файла RotatingMountCode.zip. Инсталирайте Arduino IDE и разархивирайте изтегления файл в Documents / Arduino. Уверете се, че копирате съдържанието на папките ми скици и библиотеки в папката си скици и библиотеки. Отворете скицата на ServoIRandLCD и я качете на вашия Arduino.

Вижте по -късните стъпки за обяснение на кода.

Стъпка 5: Свържете желания източник на захранване към Arduino и използвайте дистанционното, за да завъртите монтажа

Свържете желания източник на захранване към Arduino и използвайте дистанционното, за да завъртите монтажа!
Свържете желания източник на захранване към Arduino и използвайте дистанционното, за да завъртите монтажа!
Свържете желания източник на захранване към Arduino и използвайте дистанционното, за да завъртите монтажа!
Свържете желания източник на захранване към Arduino и използвайте дистанционното, за да завъртите монтажа!

Или оставете Arduino включен в компютъра или го изключете от компютъра и използвайте 9V батерия, за да осигурите DC захранване на Arduino. И накрая, използвайте евтино IR дистанционно, за да управлявате сервото и следователно ориентацията на стойката за телефон!

Номер 1 на дистанционното трябва да зададе позицията на серво на 0 градуса, номер 2 на 90 градуса и номер 3 на 180 градуса. Междувременно бутоните + и - на дистанционното трябва да увеличат или намалят ъгъла на серво съответно с 1 градус.

Забележка: Ако използвате различно IR дистанционно от това на снимката тук, възможно е IR кодовете, съответстващи на различни бутони, да бъдат променени. Ако е така, променете скицата на ServoIRandLCD, за да използвате тези IR кодове вместо това.

Стъпка 6: Прочетете това за Обяснение на изходния код

Прочетете това за Обяснение на изходния код
Прочетете това за Обяснение на изходния код
Прочетете това за Обяснение на изходния код
Прочетете това за Обяснение на изходния код

Изходният код за скицата на Arduino може да се намери по -долу или в прикачения по -рано.zip файл. Необходимите библиотеки могат да бъдат намерени само в прикачения по -рано.zip файл в стъпка 4.

Първото нещо, което кодът прави, е да включва необходимите библиотеки, необходими за изпълнение на всички функции в скицата. След това той обявява щифт 9 на Arduino за сигнален пин с активирана ШИМ за серво. Той също така прави щифт 11 на Arduino щифта, използван за IR приемника. След това декларира целочислена променлива, използвана за проследяване на позицията на серво в градуси и първоначално я задава на 0 градуса. След това инсталира необходимите обекти за IRrecv обект, серво обект и myDisplay LCD обект (който също е конфигуриран в същия ред), така че тези обекти могат да се използват по -късно.

След това в функцията за настройка серийният порт се стартира при 9600 бита/сек, така че серийният монитор може да се използва за проследяване на позицията на серво, ако желаете. Той също така прикрепя обекта myservo към щифт 9, стартира IR приемника и инициализира LCD дисплея.

Във функцията на основния цикъл, чието тяло се изпълнява само ако е получено инфрачервено предаване от IR приемника, IR приемникът декодира сигнала, изпратен до него от IR дистанционното, използвайки функцията декодиране (& резултати) и след това ако изразите определят какво за да настроите серво в зависимост от получената IR стойност. Функцията за запис се използва, за да настрои сервото на нейните подходящи степени, а функцията за четене се използва, за да намери текущия ъгъл на серво и да го увеличи или намали, ако е необходимо.

И накрая, текущият ъгъл на серво се изпраща както към серийния монитор, така и към LCD дисплея, използвайки функцията myservo.read (), а основните цикли се повтарят за неопределено време.

Програмен код:

#include // Стандартна библиотека на Arduino #включва // IR библиотека #включва "Wire.h" //Wire.h за LCD (понякога е необходимо) #include "LiquidCrystal_I2C.h" // LCD библиотека

#define servopin 9 // това определя щифт 9 като щифт, използван за проводника за управление на серво (оранжево)

int RECV_PIN = 11; // IR фототранзистор изпраща изход към пин 11

int currentAngle = 0; // декларира целочислена променлива currentAngle и зададена на 0

IRrecv unrecv (RECV_PIN); // инстанцира обект на IR приемник decode_results резултати; // създаване на обект decode_results. Този обект е отделен от IR приемника.

Servo myservo; // създаваме екземпляр на серво обект с име „myservo“// могат да бъдат създадени максимум осем серво обекта

LiquidCrystal_I2C myDisplay (0x27, 16, 2); // създаваме екземпляр на LCD обект и настройваме config

void setup () {

Serial.begin (9600); // стартиране на сериен порт

myservo.attach (servopin); // прикрепя серво на щифт 9 към серво обекта

unrecv.enableIRIn (); // стартиране на приемника

myDisplay.init (); // инициализира LCD

myDisplay.backlight (); // включване на LCD подсветката

}

void loop () {

if (unrecv.decode (& results)) // ако предаването е получено …

{Serial.print ("Получена IR стойност:");

Serial.println (results.value); // получена стойност на показване

// интерпретираме получените команди… if (results.value == 16724175) // 1 {// ляво myservo.write (0); }

if (results.value == 16718055) // 2 {// среден myservo.write (90); }

if (results.value == 16743045) // 3 {// вдясно myservo.write (180); }

if (results.value == 16754775) //+ {// увеличаване на currentAngle = myservo.read (); myservo.write (currentAngle + 1); } if (results.value == 16769055) //- {// намаляване на currentAngle = myservo.read (); myservo.write (currentAngle - 1); }}

unrecv.resume (); // Получаване на следващата стойност

// Отпечатване на сериен монитор Serial.print ("Текуща позиция на серво:");

Serial.println (myservo.read ()); // това извлича серво позицията и я изпраща на серийния монитор

// LCD печат myDisplay.clear ();

myDisplay.print ("Серво дег.:");

myDisplay.print (myservo.read ());

забавяне (200); // забавяне за стабилно задействане на сервото

}

Стъпка 7: Гледайте My Youtube Video за помощ

Вижте моя скрит видеоклип в YouTube, който изцяло обсъжда и демонстрира проекта, ако имате въпроси!

Препоръчано: