Mundarija:
- 1 -qadam: IQ qabul qilgich sxemasini yarating
- 2 -qadam: Servo, ustun va telefon ushlagichini ulang
- 3 -qadam: Servo o'qish uchun LCD displeyni ulang
- 4 -qadam: Arduino dasturlash uchun biriktirilgan kod va kutubxonalardan foydalaning
- 5 -qadam: Arduino -ga kerakli quvvat manbasini ulang va tog'ni aylantirish uchun masofadan boshqarish pultidan foydalaning
- 6 -qadam: Buni manba kodini tushuntirish uchun o'qing
- 7 -qadam: Yordam uchun Youtube videoimni ko'ring
Video: Aylanadigan telefon o'rnatish: 7 qadam
2024 Muallif: John Day | [email protected]. Oxirgi o'zgartirilgan: 2024-01-30 13:26
Bu ko'rsatma Janubiy Florida universitetining Makecourse loyihasi talablarini bajarish uchun yaratilgan (www.makecourse.com).
Telefoningiz tarkibini portret yoki landshaft yo'nalishida ushlab turmasdan ko'rishingiz uchun aylanadigan telefon o'rnatgichini yasashni xohlaysizmi? Keyin, boshqa qaramang.
Ushbu loyihani yaratish uchun sizga kerak bo'ladi:
- Arduino mikrokontroller va IDE
- Kodni yuklash uchun USB kabeli
- Non paneli
- Jumper simlari
- LCD displey
- Servo
- Servoga biriktirilishi mumkin bo'lgan ustun
- IR masofadan boshqarish pulti
- IQ qabul qiluvchisi
- 10 k Ohm qarshilik
- Kenu Airframe+ telefon klipi (yoki telefonni ushlab turadigan narsa)
Portativ quvvat uchun 9 V batareya yoki USB orqali ishlaydigan Arduino
1 -qadam: IQ qabul qilgich sxemasini yarating
Birinchidan, Arduino -dan GND va +5V -ni non panelidagi elektr relslariga o'tkazing. Keyin, 10k ohmli rezistorni +5V kuchlanishli relsdan IQ qabul qiluvchi fototransistorining chiqish piniga o'tkazing. Keyin, Arduino -dagi 11 -pinni IQ qabul qilgichining chiqish pinidan ulash uchun o'tish simini ishlating. Keyin, IQ qabul qilgichidagi tegishli pimlarga topraklama va +5V yuborish uchun ikkita o'tish simini ishlating. Yuqoridagi sxemada tasvirlangan RC filtri kerak emas. Va nihoyat, men bu bosqichda ko'rsatilgan sxemani qilmadim va uning manbasi rasmda mavjud.
2 -qadam: Servo, ustun va telefon ushlagichini ulang
Endi, erdan va +5V kuchlanishli relslardan o'tish moslamasining jigarrang va qizil simlariga o'tish uchun ikkita o'tish simini ishlating. Keyin, bitta o'tish simidan foydalanib, Arduino -dagi 9 -pinni servoning to'q sariq simiga ulang.
Keyin, ikkinchi rasmda ko'rsatilgandek, servo boshiga ustun bog'lang.
Nihoyat, uchinchi rasmda ko'rsatilgandek, telefonni Kenu Airframe+kabi ustunga ushlab turish uchun biror narsa biriktiring.
3 -qadam: Servo o'qish uchun LCD displeyni ulang
Tarmoqli panjaradan erga va +5V ga o'tib, LCD displeyidagi tegishli pimlarga o'ting. Bundan tashqari, SDA va SCL pinlarini LCD displeydan Ardiuno -ga o'tkazing. Arduino SDA va SCL pinlari Arduino kartasining orqa qismidan aniqlanishi mumkin va bu AREF va Ground 13 -pin ustidagi ikkita pin. SCL -pin eng baland. Bu LCD displeyga joriy servo holatini o'qishga imkon beradi.
4 -qadam: Arduino dasturlash uchun biriktirilgan kod va kutubxonalardan foydalaning
RotatingMountCode.zip faylini yuklab oling. Arduino IDE -ni o'rnating va yuklangan faylni Documents / Arduino -ga oching. Mening eskizlarim va kutubxonalarim tarkibini eskizlar va kutubxonalar papkasiga nusxalashingizga ishonch hosil qiling. ServoIRandLCD eskizini oching va Arduino -ga yuklang.
Kodni tushuntirish uchun keyingi qadamlarni ko'ring.
5 -qadam: Arduino -ga kerakli quvvat manbasini ulang va tog'ni aylantirish uchun masofadan boshqarish pultidan foydalaning
Arduino -ni kompyuterga ulangan holda qoldiring yoki uni kompyuterdan uzing va Arduino -ni doimiy quvvat bilan ta'minlash uchun 9V batareyadan foydalaning. Nihoyat, servo va shuning uchun telefonni o'rnatish yo'nalishini boshqarish uchun arzon IR masofadan boshqarish pultidan foydalaning!
Masofadan boshqarish pultidagi 1 raqami servo holatini 0 darajaga, 2 raqamini 90 darajaga va 3 raqamini 180 darajaga o'rnatishi kerak. Shu bilan birga, masofadan boshqarish pultidagi + va - tugmalari servo burchagini mos ravishda 1 gradusga oshirishi yoki kamaytirishi kerak.
Eslatma: Agar siz bu erda tasvirlanganidan farqli o'laroq IR masofadan boshqarish pultidan foydalansangiz, turli tugmalarga mos keladigan IR kodlari o'zgartirilishi mumkin. Agar shunday bo'lsa, uning o'rniga IR kodlarini ishlatish uchun ServoIRandLCD eskizini o'zgartiring.
6 -qadam: Buni manba kodini tushuntirish uchun o'qing
Arduino eskizining manba kodini quyida yoki ilgari biriktirilgan.zip faylida topish mumkin. Kerakli kutubxonalarni faqat 4 -qadamda ilgari biriktirilgan.zip faylida topish mumkin.
Kod bajaradigan birinchi narsa, eskizdagi barcha funktsiyalarni bajarish uchun zarur bo'lgan kutubxonalarni o'z ichiga oladi. Keyinchalik, Arduino-dagi 9-pinni servo uchun PWM-ni yoqadigan signal pimi deb e'lon qiladi. Bundan tashqari, u Arduino -dagi 11 -pinni IQ qabul qilgich uchun ishlatiladi. Keyinchalik, u servo holatini gradusda kuzatib borish uchun ishlatiladigan butun sonli o'zgaruvchini e'lon qiladi va uni dastlab 0 darajaga o'rnatadi. Keyin, u IRrecv obyekti, servo ob'ekt va myDisplay LCD obyekti uchun kerakli ob'ektlarni ishga tushiradi (u ham xuddi shu satrda konfiguratsiya qilingan), bu ob'ektlardan keyinroq foydalanish mumkin bo'ladi.
Keyinchalik, sozlash funktsiyasida ketma -ket port 9600 bit/soniyada boshlanadi, shuning uchun ketma -ket monitor, agar kerak bo'lsa, servo holatini kuzatib borishi mumkin. Shuningdek, u myservo ob'ektini 9 -pinga ulaydi, IQ qabul qiluvchini ishga tushiradi va LCD displeyni ishga tushiradi.
Asosiy tsikl funktsiyasida, uning tanasi faqat IQ qabul qiluvchidan IQ uzatilishi qabul qilingan taqdirda bajariladi, IQ qabul qiluvchisi IQ masofadan boshqarish pultidan yuborilgan signalni dekodlash (va natijalar) funktsiyasidan foydalanib dekodlaydi, keyin esa bayonotlar nima ekanligini aniqlasa. qabul qilingan IQ qiymatiga qarab servo rejimini sozlash. Yozish funktsiyasi servoni kerakli darajaga o'rnatish uchun, o'qish funktsiyasi esa servoning joriy burchagini topish va kerak bo'lganda uni oshirish yoki kamaytirish uchun ishlatiladi.
Nihoyat, servoning joriy burchagi ketma -ket monitorga ham, LCD displeyga ham myservo.read () funksiyasi yordamida yuboriladi va asosiy halqalar cheksiz takrorlanadi.
Manba kodi:
#include // Arduino standart kutubxonasi #o'z ichiga // IR kutubxonasi #"Wire.h" //Wire.h uchun LCD (ba'zida kerak bo'ladi) #"LiquidCrystal_I2C.h" ni qo'shing // LCD kutubxona
#define servopin 9 // bu 9 -pinni servo boshqaruv chizig'i uchun ishlatiladigan pin sifatida belgilaydi (to'q sariq)
int RECV_PIN = 11; // IQ foto-tranzistor chiqishni 11-pinga yuboradi
int currentAngle = 0; // currentAngle tamsayı o'zgaruvchisini e'lon qiling va 0 ga o'rnating
IRrecv irrecv (RECV_PIN); // IQ qabul qiluvchining ob'ektini decode_results natijalarini yaratish; // decode_results ob'ektini yaratish. Bu ob'ekt IQ qabul qiluvchidan alohida.
Xizmat ko'rsatish xizmati; // "myservo" nomli Servo ob'ektini ishga tushiring // maksimal sakkizta servo ob'ektni yaratish mumkin
LiquidCrystal_I2C myDisplay (0x27, 16, 2); // LCD ob'ektini ishga tushiring va konfiguratsiyani o'rnating
bo'sh o'rnatish () {
Serial.begin (9600); // ketma -ket portni ishga tushiring
myservo.attach (servopin); // servo ob'ektga 9 -pinli servo biriktiriladi
irrecv.enableIRIn (); // qabul qilgichni ishga tushiring
myDisplay.init (); // LCD -ni ishga tushirish
myDisplay.backlight (); // LCD orqa nuri yoqish
}
void loop () {
if (irrecv.decode (& natijalar)) // agar uzatish qabul qilingan bo'lsa …
{Serial.print ("IR qiymati qabul qilindi:");
Serial.println (natijalar qiymati); // qabul qilingan qiymat
// olingan buyruqlarni sharhlang … if (results.value == 16724175) // 1 {// left myservo.write (0); }
if (results.value == 16718055) // 2 {// middle myservo.write (90); }
if (results.value == 16743045) // 3 {// o'ng myservo.write (180); }
if (results.value == 16754775) //+ {// increment currentAngle = myservo.read (); myservo.write (joriyAngle + 1); } if (results.value == 16769055) //- {// oqimi kamayadi currentAngle = myservo.read (); myservo.write (currentAngle - 1); }}
irrecv.resume (); // Keyingi qiymatni oling
// Serial monitorni chop etish Serial.print ("Hozirgi servo holati:");
Serial.println (myservo.read ()); // bu servo holatini oladi va ketma -ket monitorga yuboradi
// LCD bosib chiqarish myDisplay.clear ();
myDisplay.print ("Servo daraja.:");
myDisplay.print (myservo.read ());
kechikish (200); // servo harakatini barqaror qilish uchun kechiktirish
}
7 -qadam: Yordam uchun Youtube videoimni ko'ring
Agar sizda biron bir savol bo'lsa, loyihani to'liq muhokama qiladigan va namoyish etadigan, ro'yxatga olinmagan YouTube videoimni ko'ring!
Tavsiya:
MultiBoard o'rnatish/o'rnatish: 5 qadam
MultiBoardni o'rnatish/o'rnatish: MultiBoard - bu bir nechta klaviaturani Windows kompyuteriga ulash uchun ishlatilishi mumkin bo'lgan dastur. Va keyin bu klaviaturalarning kiritilishini qayta dasturlang. Masalan, ma'lum bir tugma bosilganda, dasturni oching yoki AutoHotkeyscript -ni ishga tushiring
Retro uslubda aylanadigan mobil telefon: 4 qadam (rasmlar bilan)
Retro uslubidagi aylanadigan mobil telefon: Ushbu loyiha amaliy ehtiyojlar va qiziqarli narsalarni qilishni xohlashdan kelib chiqqan. Ko'pchilik zamonaviy oilalar sifatida biz haqiqiy " uy " ni to'xtatdik. telefon (simli) ko'p yillar oldin. Buning o'rniga bizda " eski " uy raqami
Raspbian -ni Raspberry Pi 3 B -ga HDMI holda o'rnatish - Raspberry Pi 3B bilan ishlashni boshlash - Raspberry Pi 3: 6 qadamlarini o'rnatish
Raspbian -ni Raspberry Pi 3 B -ga HDMI holda o'rnatish | Raspberry Pi 3B bilan ishlashni boshlash | Sizning Raspberry Pi 3-ni o'rnatish: Ba'zilaringiz bilasizki, Raspberry Pi kompyuterlari juda ajoyib va siz butun kompyuterni bitta kichik taxtada olishingiz mumkin. Raspberry Pi 3 Model B to'rt yadroli 64-bitli ARM Cortex A53-ga ega. 1,2 gigagertsli chastotada. Bu Pi 3 ni taxminan 50 ga oshiradi
Raspberry Pi aylanadigan telefon qutisi: 10 qadam (rasmlar bilan)
Raspberry Pi aylanadigan telefon qutisi: Men Raspberry Pi uchun qiziqarli loyihani qidirayotgan edim va bu ish qiziqarli bo'lishiga qaror qildim. Men eski aylanadigan telefonni topdim va uni Pi uchun sumkaga aylantirdim. Menga taxminan 40 dollarlik ehtiyot qismlar kerak edi, ehtimol siz buni arzonroqqa qila olasiz. Butun loyiha davom etdi
Arduino -ga aylanadigan telefon qo'ng'irog'ining interfeysi: 6 qadam (rasmlar bilan)
Arduino -ga aylanadigan telefonni terish interfeysi: Arduino loyihalarida eski telefonni bir necha maqsadlarda ishlatish mumkin - uni yangi kirish qurilmasi sifatida ishlating yoki aylanadigan telefonni kompyuterga ulash uchun Arduino -dan foydalaning. qo'ng'iroqni qanday ulash kerakligini tasvirlaydigan juda oddiy qo'llanma