فهرست مطالب:

دوار تلفن: 7 مرحله
دوار تلفن: 7 مرحله

تصویری: دوار تلفن: 7 مرحله

تصویری: دوار تلفن: 7 مرحله
تصویری: اگر یکی از این ۷ نشانه را در وجود تان مشاهده کردید پس شما یک نابغه هستید. 2024, جولای
Anonim
دوار سوار تلفن
دوار سوار تلفن

این دستورالعمل برای برآوردن الزامات پروژه Makecourse در دانشگاه فلوریدا جنوبی (www.makecourse.com) ایجاد شده است.

آیا می خواهید یک پایه تلفن چرخان ایجاد کنید تا بتوانید محتویات تلفن خود را بصورت عمودی یا افقی بدون نیاز به نگه داشتن آن مشاهده کنید؟ سپس ، دیگر نگاه نکنید.

برای ایجاد این پروژه ، شما نیاز دارید:

- میکروکنترلر آردوینو و IDE

- کابل USB برای بارگذاری کد

- تخته نان

- سیم جامپر

- صفحه نمایش ال سی دی

- سروو

- ستونی که می تواند به سروو متصل شود

- IR از راه دور

- گیرنده IR

- مقاومت 10k اهم

- Kenu Airframe+ کلیپ تلفن (یا چیزی برای نگه داشتن تلفن در جای خود)

- باتری 9 ولت برای تغذیه قابل حمل یا فقط USB آردوینو

مرحله 1: ساخت مدار گیرنده IR

ساخت مدار گیرنده IR
ساخت مدار گیرنده IR
ساخت مدار گیرنده IR
ساخت مدار گیرنده IR

ابتدا GND و +5V را از آردوینو به ریل های برق روی تخته نان خود برسانید. سپس ، مقاومت 10k اهم خود را از ریل قدرت +5V به پین خروجی فوتوترانزیستور گیرنده IR خود پرش کنید. در مرحله بعد ، از یک سیم جامپر برای اتصال به پایه 11 در آردوینو از پایه خروجی گیرنده IR استفاده کنید. سپس ، از دو سیم جامپر برای ارسال زمین و +5V به پین های مربوطه در گیرنده IR استفاده کنید. فیلتر RC نشان داده شده در شماتیک بالا ضروری نیست. در نهایت ، من شماتیک نشان داده شده در این مرحله را تهیه نکردم و منبع آن در تصویر موجود است.

مرحله 2: Servo ، Column و Phone Holder را وصل کنید

Servo ، Column و Phone Holder را وصل کنید
Servo ، Column و Phone Holder را وصل کنید
Servo ، Column و Phone Holder را وصل کنید
Servo ، Column و Phone Holder را وصل کنید
Servo ، Column و Phone Holder را وصل کنید
Servo ، Column و Phone Holder را وصل کنید

در حال حاضر ، از دو سیم جامپر برای پرش از زمین و +5V ریل برق ورق به ترتیب به سیمهای قهوه ای و قرمز سروو استفاده کنید. سپس ، از یک سیم بلوز برای اتصال پایه 9 روی آردوینو به سیم نارنجی سروو استفاده کنید.

سپس ، ستونی را به سر سروو وصل کنید که در تصویر دوم نشان داده شده است.

در نهایت ، چیزی را نگه دارید تا گوشی را روی ستون نگه دارید ، مانند Kenu Airframe+، همانطور که در تصویر سوم نشان داده شده است.

مرحله 3: صفحه نمایش LCD را برای Servo Readout متصل کنید

صفحه نمایش LCD را برای Servo Readout متصل کنید
صفحه نمایش LCD را برای Servo Readout متصل کنید

از ریل برق صفحه تختخواب خود و +5 ولت به پین های مربوطه در صفحه LCD بروید. همچنین ، پین های SDA و SCL را از LCD روی Ardiuno پرش کنید. پین های SDA و SCL آردوینو را می توان از پشت برد آردوینو تشخیص داد و دو پین بالای AREF و Ground بالای پین 13 هستند. پین SCL بالاترین پین است. این به صفحه نمایش LCD اجازه می دهد موقعیت سروو فعلی را بخواند.

مرحله 4: از کد و کتابخانه های پیوست شده برای برنامه نویسی آردوینو استفاده کنید

برای برنامه نویسی آردوینو از کد و کتابخانه های پیوست استفاده کنید
برای برنامه نویسی آردوینو از کد و کتابخانه های پیوست استفاده کنید

فایل RotatingMountCode.zip را بارگیری کنید. Arduino IDE را نصب کرده و فایل بارگیری شده را در Documents / Arduino از حالت فشرده خارج کنید. مطمئن شوید که محتویات پوشه طرح ها و کتابخانه های من را در پوشه طرح ها و کتابخانه های خود کپی کرده اید. طرح ServoIRandLCD را باز کرده و در Arduino خود بارگذاری کنید.

مراحل بعدی را برای توضیح کد مشاهده کنید.

مرحله 5: منبع تغذیه دلخواه را به آردوینو متصل کرده و از راه دور برای چرخاندن کوه استفاده کنید

منبع تغذیه دلخواه را به آردوینو متصل کرده و از راه دور برای چرخاندن کوه استفاده کنید!
منبع تغذیه دلخواه را به آردوینو متصل کرده و از راه دور برای چرخاندن کوه استفاده کنید!
منبع تغذیه دلخواه را به آردوینو متصل کرده و از راه دور برای چرخاندن کوه استفاده کنید!
منبع تغذیه دلخواه را به آردوینو متصل کرده و از راه دور برای چرخاندن کوه استفاده کنید!

یا آردوینو را به کامپیوتر وصل کرده یا آن را از رایانه جدا کرده و از باتری 9 ولت برای تأمین برق DC به آردوینو استفاده کنید. در نهایت ، برای کنترل سروو و در نتیجه جهت نصب تلفن ، از ریموت IR ارزان قیمت استفاده کنید!

شماره 1 روی ریموت باید موقعیت سروو را روی 0 درجه ، عدد 2 تا 90 درجه و عدد 3 تا 180 درجه تنظیم کند. در همین حال دکمه های + و - روی ریموت باید زاویه سروو را به ترتیب 1 درجه افزایش یا کاهش دهند.

توجه: در صورت استفاده از ریموت IR متفاوت از آنچه در تصویر نشان داده شده است ، ممکن است کد IR مربوط به دکمه های مختلف تغییر کرده باشد. اگر چنین است ، طرح ServoIRandLCD را اصلاح کنید تا در عوض از آن کدهای IR استفاده کنید.

مرحله 6: برای توضیح کد منبع این مطلب را بخوانید

برای توضیح کد منبع این مطلب را بخوانید
برای توضیح کد منبع این مطلب را بخوانید
برای توضیح کد منبع این مطلب را بخوانید
برای توضیح کد منبع این مطلب را بخوانید

کد منبع برای طرح آردوینو را می توانید در زیر یا در فایل.zip پیوست شده قبلی مشاهده کنید. کتابخانه های مورد نیاز را فقط می توانید در فایل.zip پیوست شده در مرحله 4 پیدا کنید.

اولین کاری که کد انجام می دهد شامل کتابخانه های لازم برای اجرای همه توابع در طرح است. سپس ، پین 9 در Arduino را به عنوان پین سیگنال فعال شده برای سروو اعلام می کند. همچنین باعث می شود پین 11 روی آردوینو پین مورد استفاده برای گیرنده IR باشد. سپس ، یک متغیر صحیح را که برای پیگیری موقعیت سروو در درجه استفاده می شود ، اعلام می کند و در ابتدا آن را روی 0 درجه تنظیم می کند. سپس ، اشیاء مورد نیاز را برای یک شی IRrecv ، یک شیء سروو ، و شی LCD myDisplay (که در همان خط پیکربندی شده است) مثال می زند ، بنابراین این اشیاء می توانند بعداً مورد استفاده قرار گیرند.

بعد ، در عملکرد راه اندازی ، پورت سریال با سرعت 9600 بیت بر ثانیه شروع می شود ، بنابراین در صورت دلخواه می توان از مانیتور سریال برای پیگیری موقعیت سرو استفاده کرد. همچنین شی myservo را به پین 9 متصل می کند ، گیرنده IR را روشن می کند و صفحه LCD را راه اندازی می کند.

در تابع حلقه اصلی ، که بدنه آن فقط در صورت دریافت یک مادون قرمز از گیرنده IR اجرا می شود ، گیرنده IR سیگنال ارسال شده از راه دور IR را با استفاده از تابع رمزگشایی (& results) رمزگشایی می کند و سپس اگر دستورات مشخص کنند بسته به مقدار IR دریافتی ، سروو را روی آن تنظیم کنید. تابع نوشتن برای تنظیم سروو در درجه های مناسب و تابع خواندن برای یافتن زاویه فعلی سروو و افزایش یا کاهش آن در صورت لزوم استفاده می شود.

در نهایت ، زاویه فعلی سروو با استفاده از تابع myservo.read () به مانیتور سریال و نمایشگر LCD ارسال می شود و حلقه های اصلی به طور نامحدود تکرار می شوند.

کد منبع:

#شامل // کتابخانه استاندارد آردوینو #شامل // کتابخانه IR #شامل "Wire.h" //Wire.h برای LCD (گاهی اوقات لازم است) #شامل "LiquidCrystal_I2C.h" // کتابخانه LCD

#سرووپین 9 را تعریف کنید // این پین 9 را به عنوان پین مورد استفاده برای سرور کنترل سرو (نارنجی) تعریف می کند

int RECV_PIN = 11 ؛ // ترانزیستور عکس IR خروجی را به پین 11 ارسال می کند

int currentAngle = 0؛ // متغیر صحیح currentAngle را اعلام کرده و روی 0 تنظیم کنید

IRrecv irrecv (RECV_PIN) ؛ // نمونه گیری از یک شی گیرنده IR decode_results results؛ // یک شیء decode_results را نمونه سازی کنید. این شیء جدا از گیرنده IR است.

Servo myservo؛ // نمونه یک شیء سروو با نام "myservo" // حداکثر هشت شیء سروو می تواند ایجاد شود

LiquidCrystal_I2C myDisplay (0x27 ، 16 ، 2) ؛ // شیء ال سی دی فوری و پیکربندی را تنظیم کنید

void setup () {

Serial.begin (9600)؛ // شروع پورت سریال

myservo.attach (سرووپین) ؛ // سروو روی پین 9 را به شیء سروو متصل می کند

irrecv.enableIRIn ()؛ // گیرنده را راه اندازی کنید

myDisplay.init ()؛ // مقداردهی اولیه LCD

myDisplay.backlight ()؛ // روشن کردن نور پس زمینه LCD

}

حلقه خالی () {

if (irrecv.decode (& results)) // در صورت دریافت انتقال…

{Serial.print ("مقدار IR دریافت شده:")؛

Serial.println (results.value) ؛ // نمایش مقدار دریافت شده

// تفسیر دستورات دریافتی … if (results.value == 16724175) // 1 {// left myservo.write (0)؛ }

if (results.value == 16718055) // 2 {// myservo.write وسط (90)؛ }

if (results.value == 16743045) // 3 {// right myservo.write (180)؛ }

if (results.value == 16754775) //+ {// increment currentAngle = myservo.read ()؛ myservo.write (currentAngle + 1) ؛ } if (results.value == 16769055) //- {// کاهش جریانAngle = myservo.read ()؛ myservo.write (currentAngle - 1) ؛ }}

irrecv.resume ()؛ // مقدار بعدی را دریافت کنید

// چاپ مانیتور سریال Serial.print ("موقعیت فعلی سروو:") ؛

Serial.println (myservo.read ()) ؛ // این موقعیت سروو را بازیابی کرده و آن را به مانیتور سریال ارسال می کند

// چاپ LCD myDisplay.clear ()؛

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

myDisplay.print (myservo.read ()) ؛

تأخیر (200) ؛ // تأخیر برای ثابت نگه داشتن عملكرد سروو

}

مرحله 7: ویدیوی یوتیوب من را برای کمک تماشا کنید

ویدئوی فهرست نشده من در YouTube را مشاهده کنید که در صورت داشتن هرگونه سوال ، پروژه را به طور کامل بحث کرده و نشان می دهد!

توصیه شده: