Агуулгын хүснэгт:

Эргэдэг утасны холболт: 7 алхам
Эргэдэг утасны холболт: 7 алхам

Видео: Эргэдэг утасны холболт: 7 алхам

Видео: Эргэдэг утасны холболт: 7 алхам
Видео: БЕСПРОВОДНОЕ ВИДЕОНАБЛЮДЕНИЕ WIFI комплект KERUI со слежением за людьми 2024, Арваннэгдүгээр
Anonim
Эргэдэг утасны холболт
Эргэдэг утасны холболт

Энэхүү зааварчилгааг Өмнөд Флоридагийн их сургуулийн Макекурсын төслийн шаардлагыг биелүүлэх зорилгоор бүтээсэн болно (www.makecourse.com).

Утасныхаа контентийг босоо эсвэл ландшафтын хэв маягаар харахгүйгээр харахын тулд эргэдэг утасны бэхэлгээ хийхийг хүсч байна уу? Дараа нь цаашид харах хэрэггүй.

Энэхүү төслийг бий болгохын тулд танд дараахь зүйлс хэрэгтэй болно.

- Arduino микроконтроллер ба IDE

- Код оруулах USB кабель

- Талхны самбар

- холбогч утас

- LCD дэлгэц

- Серво

- Серво руу залгах боломжтой багана

- IR алсын удирдлага

- IR хүлээн авагч

- 10 к ом эсэргүүцэл

- Kenu Airframe+ Утасны хавчаар (эсвэл утсаа байрлуулах зүйл)

- Зөөврийн чадалтай 9 В батерей эсвэл USB -ээр ажилладаг Arduino

Алхам 1: IR хүлээн авагчийн хэлхээг бий болгох

IR хүлээн авагчийн хэлхээг бий болгох
IR хүлээн авагчийн хэлхээг бий болгох
IR хүлээн авагчийн хэлхээг бий болгох
IR хүлээн авагчийн хэлхээг бий болгох

Нэгдүгээрт, Arduino -аас GND ба +5V -ийг үсрээд талхны тавцан дээрх цахилгаан төмөр зам руу ороорой. Дараа нь +5V цахилгаан дамжуулах хоолойноос IR хүлээн авагчийн фототранзисторын гаралтын зүү рүү 10 к ом эсэргүүцэл үзүүлээрэй. Дараа нь холбогч утсыг ашиглан IR хүлээн авагчийн гаралтын зүүгээс Arduino дээрх 11 -р зүүг холбоно уу. Дараа нь хоёр холбогч утсыг ашиглан IR хүлээн авагч дээрх холбогдох зүү рүү газардуулга ба +5V дамжуулна. Дээрх бүдүүвч зураг дээрх RC шүүлтүүр шаардлагагүй. Эцэст нь би энэ алхамд үзүүлсэн схемийг хийгээгүй бөгөөд үүний эх сурвалж нь зураг дээр байгаа болно.

Алхам 2: Серво, багана, утас эзэмшигчийг холбоно уу

Серво, багана, утас эзэмшигчийг холбоно уу
Серво, багана, утас эзэмшигчийг холбоно уу
Серво, багана, утас эзэмшигчийг холбоно уу
Серво, багана, утас эзэмшигчийг холбоно уу
Серво, багана, утас эзэмшигчийг холбоно уу
Серво, багана, утас эзэмшигчийг холбоно уу

Одоо хоёр холбогч утсыг ашиглан газраас болон +5V талхны цахилгаан шугамын үсрэлтийг servo -ийн хүрэн, улаан утас руу тус тус хий. Дараа нь нэг холбогч утсыг ашиглан Arduino дээрх 9 -р зүүг servo -ийн улбар шар утсанд холбоно уу.

Дараа нь хоёр дахь зураг дээр үзүүлсэн шиг servo -ийн толгой дээр багана хавсаргана уу.

Эцэст нь утсыг багана дээр байрлуулах зүйлийг Kenu Airframe+шиг гуравдахь зурагт үзүүлсэн шиг хавсаргаарай.

Алхам 3: Серво уншихын тулд LCD дэлгэцийг холбоно уу

Серво уншихын тулд LCD дэлгэцийг холбоно уу
Серво уншихын тулд LCD дэлгэцийг холбоно уу

Талхны хавтангийн цахилгаан төмөр замаас +5V -ийг үсрэн LCD дэлгэц дээрх холбогдох тээглүүр рүү ороорой. Мөн SDA ба SCL тээглүүрийг LCD дэлгэцээс Ardiuno руу үсрээрэй. Arduino -ийн SDA ба SCL тээглүүрийг Arduino хавтангийн ар талаас таних боломжтой бөгөөд AREF болон Ground 13 -р дээрх хоёр зүү нь SCL зүү нь хамгийн өндөр нь юм. Энэ нь LCD дэлгэц нь одоогийн servo байрлалыг унших боломжийг олгодог.

Алхам 4: Arduino програмчлахдаа хавсаргасан код, номын санг ашиглана уу

Arduino програмчлахдаа хавсаргасан код, номын санг ашиглана уу
Arduino програмчлахдаа хавсаргасан код, номын санг ашиглана уу

RotatingMountCode.zip файлыг татаж авах. Arduino IDE -ийг суулгаад татаж авсан файлыг Documents / Arduino руу задална уу. Миний ноорог, номын сангийн фолдерын агуулгыг ноорог, номын сангийнхаа хавтсанд хуулж байгаа эсэхийг шалгаарай. ServoIRandLCD ноорогыг нээгээд Arduino дээрээ байршуулна уу.

Кодыг тайлбарлахын тулд дараагийн алхамуудыг үзнэ үү.

Алхам 5: Хүссэн тэжээлийн эх үүсвэрийг Arduino -той холбож, алсын удирдлагаар уулыг эргүүлээрэй

Хүссэн тэжээлийн эх үүсвэрийг Arduino -той холбож, алсын удирдлагаар уулыг эргүүлээрэй!
Хүссэн тэжээлийн эх үүсвэрийг Arduino -той холбож, алсын удирдлагаар уулыг эргүүлээрэй!
Хүссэн тэжээлийн эх үүсвэрийг Arduino -той холбож, алсын удирдлагаар уулыг эргүүлээрэй!
Хүссэн тэжээлийн эх үүсвэрийг Arduino -той холбож, алсын удирдлагаар уулыг эргүүлээрэй!

Arduino -г компьютер дээрээ залгаарай эсвэл компьютерээсээ салгаад 9V батерей ашиглан Arduino -г тогтмол гүйдлийн хүчээр хангах хэрэгтэй. Эцэст нь хямдхан IR алсын удирдлага ашиглан servo -ийг хянах боломжтой бөгөөд ингэснээр утасны бэхэлгээний чиглэлийг анхаарч үзээрэй!

Алсын удирдлага дээрх 1 тоо нь servo байрлалыг 0 градус, 2 дугаарыг 90 градус, 3 дугаарыг 180 градусаар тохируулах ёстой. Үүний зэрэгцээ алсын удирдлага дээрх + ба - товчлуурууд нь servo -ийн өнцгийг 1 градусаар нэмэгдүүлэх эсвэл бууруулах ёстой.

Тэмдэглэл: Хэрэв та энд байгаа зурагнаас өөр IR алсын удирдлага ашиглаж байгаа бол янз бүрийн товчлууруудад харгалзах IR кодыг өөрчлөх боломжтой. Хэрэв тийм бол эдгээр IR кодыг ашиглахын тулд ServoIRandLCD ноорогыг өөрчилнө үү.

Алхам 6: Эх кодын тайлбарыг уншина уу

Эх кодын тайлбарыг уншина уу
Эх кодын тайлбарыг уншина уу
Эх кодын тайлбарыг уншина уу
Эх кодын тайлбарыг уншина уу

Arduino ноорогны эх кодыг доороос эсвэл өмнө хавсаргасан.zip файлаас олж болно. Шаардлагатай номын сангуудыг зөвхөн 4 -р алхамд өмнө хавсаргасан.zip файлаас олж болно.

Кодын хийх ёстой хамгийн эхний зүйл бол ноорог дээрх бүх функцийг ажиллуулахад шаардлагатай номын санг оруулах явдал юм. Дараа нь энэ нь Arduino дээрх 9-р зүүг servo-ийн ХОУХ-ны идэвхжүүлсэн дохионы зүү гэж зарлав. Энэ нь мөн Arduino дээрх 11 -р зүүг IR хүлээн авагчид ашигладаг. Дараа нь энэ нь servo -ийн байрлалыг градусаар хянахад ашигладаг бүхэл тоон хувьсагчийг зарлаж, эхлээд 0 градус болгож тохируулдаг. Дараа нь энэ нь IRrecv объект, servo объект болон myDisplay LCD объектод шаардлагатай объектыг үүсгэдэг (үүнийг нэг мөрөнд тохируулсан байдаг) тул эдгээр объектыг дараа нь ашиглах боломжтой болно.

Дараа нь тохиргооны функц дээр цуваа портыг 9600 бит/сек -ээр эхлүүлдэг тул хэрэв хүсвэл сероны мониторыг ашиглаж болно. Мөн myservo объектыг 9 -р зүүгээр холбож, IR хүлээн авагчийг эхлүүлж, LCD дэлгэцийг эхлүүлнэ.

Үндсэн давталтын функцэд зөвхөн IR хүлээн авагчаас IR дамжуулалтыг хүлээн авсан тохиолдолд гүйцэтгэгддэг, IR хүлээн авагч нь декод (& үр дүн) функцийг ашиглан IR алсын удирдлагаас илгээсэн дохиог тайлдаг бөгөөд хэрэв мэдэгдэл нь юу болохыг тодорхойлдог бол хүлээн авсан IR утгаас хамааран servo -ийг тохируулах. Бичих функцийг servo -ийг зохих түвшинд тохируулахын тулд ашигладаг бөгөөд унших функцийг servo -ийн одоогийн өнцгийг олж, шаардлагатай бол нэмэгдүүлэх эсвэл багасгахад ашигладаг.

Эцэст нь, servo -ийн одоогийн өнцгийг myservo.read () функцийг ашиглан цуваа дэлгэц болон LCD дэлгэц рүү илгээдэг бөгөөд гол гогцоонууд нь тодорхойгүй хугацаагаар давтагддаг.

Эх код:

#оруулах // Arduino стандарт номын сан #оруулах // IR номын сан

#тодорхойлох servopin 9 // энэ нь зүү 9 -ийг servo удирдлагад ашигладаг зүү гэж тодорхойлдог (улбар шар)

int RECV_PIN = 11; // IR гэрэл транзистор гаралтыг 11-р зүү рүү илгээдэг

int currentAngle = 0; // currentAngle бүхэл тоон хувьсагчийг зарлаж 0 болгож тохируулна

IRrecv irrecv (RECV_PIN); // IR хүлээн авагчийн объектын decode_results үр дүнг бий болгох; // decode_results объектыг үүсгэх. Энэ объект нь IR хүлээн авагчаас тусдаа юм.

Servo myservo; // 'myservo' нэртэй Servo объектыг бий болгох // хамгийн ихдээ найман servo объект үүсгэж болно

LiquidCrystal_I2C myDisplay (0x27, 16, 2); // LCD объектыг эхлүүлж, тохиргоог тохируулна уу

хүчингүй тохиргоо () {

Цуваа эхлэх (9600); // цуваа портыг эхлүүлэх

myservo.attach (servopin); // 9 -р зүү дээрх servo -ийг servo объект руу хавсаргана

irrecv.enableIRIn (); // хүлээн авагчийг эхлүүлэх

myDisplay.init (); // LCD дэлгэцийг эхлүүлэх

myDisplay.backlight (); // LCD арын гэрлийг асаах

}

void loop () {

if (irrecv.decode (& үр дүн)) // хэрэв дамжуулалтыг хүлээн авсан бол …

{Serial.print ("IR утга хүлээн авсан:");

Serial.println (үр дүнгийн утга); // дэлгэцийн утгыг хүлээн авлаа

// хүлээн авсан тушаалуудыг тайлбарлах … if (results.value == 16724175) // 1 {// left myservo.write (0); }

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

if (results.value == 16743045) // 3 {// баруун myservo.write (180); }

if (results.value == 16754775) //+ {// increment currentAngle = myservo.read (); myservo.write (currentAngle + 1); } if (results.value == 16769055) //- {// decrement currentAngle = myservo.read (); myservo.write (currentAngle - 1); }}

irrecv. resume (); // Дараагийн утгыг хүлээн авна уу

// Serial monitor хэвлэх Serial.print ("Одоогийн servo байрлал:");

Serial.println (myservo.read ()); // энэ нь servo байрлалыг авч цуваа дэлгэц рүү илгээдэг

// LCD хэвлэх myDisplay.clear ();

myDisplay.print ("Servo deg.:");

myDisplay.print (myservo.read ());

саатал (200); // servo actuation -ийг тогтвортой болгохын тулд хойшлуулах

}

Алхам 7: Тусламж авахын тулд миний Youtube видеог үзээрэй

Хэрэв танд ямар нэгэн асуулт байвал төслийг бүрэн хэлэлцэж, харуулсан миний жагсаалтгүй YouTube видеог үзээрэй!

Зөвлөмж болгож буй: