תוכן עניינים:

טלפון מסתובב: 7 שלבים
טלפון מסתובב: 7 שלבים

וִידֵאוֹ: טלפון מסתובב: 7 שלבים

וִידֵאוֹ: טלפון מסתובב: 7 שלבים
וִידֵאוֹ: איך לשחרר אייפון תקוע או על מסך שחור 2024, יולי
Anonim
הר טלפון מסתובב
הר טלפון מסתובב

מדריך זה נוצר להגשמת דרישת הפרויקט של Makecourse באוניברסיטת דרום פלורידה (www.makecourse.com).

רוצה ליצור טלפון מסתובב כך שתוכל להציג את התוכן של הטלפון שלך לאורך או לרוחב ללא צורך להחזיק אותו? לאחר מכן, אל תחפש עוד.

כדי ליצור פרויקט זה, תזדקק ל:

- מיקרו -בקר Arduino ו- IDE

- כבל USB להעלאת קוד

- לוח לחם

- חוטי מגשר

- תצוגת אל סי די

- סרוו

- עמוד שניתן לצרף לסרוו

- שלט IR

- מקלט IR

- נגד 10k אוהם

- קנו Airframe+ קליפ טלפון (או משהו שיחזיק את הטלפון במקום)

- סוללת 9 V להספק נייד או סתם ארדואינו המופעל באמצעות USB

שלב 1: בנה את מעגל מקלט ה- IR

בנה את מעגל מקלט IR
בנה את מעגל מקלט IR
בנה את מעגל מקלט IR
בנה את מעגל מקלט IR

ראשית, הקפיצו על GND ו- +5V מהארדואינו למסילות החשמל בלוח הלחם שלכם. לאחר מכן, הקפץ את הנגד שלך 10k אוהם ממעקה החשמל +5V לפין הפלט של פוטוטרנזיסטור מקלט ה- IR שלך. לאחר מכן, השתמש בחוט מגשר כדי להתחבר לסיכה 11 בארדואינו מסיכת הפלט של מקלט ה- IR. לאחר מכן, השתמש בשני חוטי מגשר כדי לשלוח קרקע +5V לפינים המתאימים במקלט ה- IR. אין צורך במסנן RC המצויר בסכימה למעלה. לבסוף, לא ערכתי את הסכימה המוצגת בשלב זה, והמקור לכך מצוי בתמונה.

שלב 2: חבר את סרוו, עמוד ומחזיק הטלפון

חבר את סרוו, עמוד ומחזיק הטלפון
חבר את סרוו, עמוד ומחזיק הטלפון
חבר את סרוו, עמוד ומחזיק הטלפון
חבר את סרוו, עמוד ומחזיק הטלפון
חבר את סרוו, עמוד ומחזיק הטלפון
חבר את סרוו, עמוד ומחזיק הטלפון

כעת, השתמש בשני חוטי מגשר כדי לקפוץ מהאדמה ו -5 V מסילות החשמל ללוח לתוך החוטים החומים והאדומים של הסרוו, בהתאמה. לאחר מכן, השתמש בחוט מגשר אחד כדי לחבר את סיכה 9 על הארדואינו לחוט הכתום של הסרוו.

לאחר מכן, צרף טור לראש הסרוו כפי שמוצג בתמונה השנייה.

לבסוף, צרף משהו שיחזיק את הטלפון לעמודה, כמו מסגרת+קנו אוויר, כפי שמוצג בתמונה השלישית.

שלב 3: חבר את צג ה- LCD לקריאת סרוו

חבר את צג ה- LCD לקריאת סרוו
חבר את צג ה- LCD לקריאת סרוו

קפוץ לקרקע +5V ממסילות החשמל של הלוח אל הפינים המתאימים בתצוגת LCD. כמו כן, הקפיצו את סיכות ה- SDA וה- SCL מתוך ה- LCD אל ה- Ardiuno. ניתן לזהות את סיכות ה- SDA וה- SCL של Arduino מהחלק האחורי של הלוח של Arduino והם שני הסיכות מעל AREF וקרקע מעל סיכה 13. סיכת SCL היא הגבוהה ביותר. זה מאפשר לתצוגת LCD לקרוא את מיקום הסרוו הנוכחי.

שלב 4: השתמש בקוד ובספריות המצורפות לתכנות ה- Arduino

השתמש בקוד ובספריות המצורפות לתכנת הארדואינו
השתמש בקוד ובספריות המצורפות לתכנת הארדואינו

הורד את הקובץ RotatingMountCode.zip. התקן את מזהה Arduino ופתח את הקובץ שהורדת ל- Documents / Arduino. הקפד להעתיק את התוכן של תיקיית הסקיצות והספריות שלי לתיקיית הסקיצות והספריות שלך. פתח את הסקיצה של ServoIRandLCD והעלה אותה ל- Arduino שלך.

עיין בשלבים מאוחרים יותר להסבר קוד.

שלב 5: חבר את מקור החשמל הרצוי ל- Arduino והשתמש בשלט כדי לסובב את ההר

חבר את מקור החשמל הרצוי ל- Arduino והשתמש בשלט כדי לסובב את ההר!
חבר את מקור החשמל הרצוי ל- Arduino והשתמש בשלט כדי לסובב את ההר!
חבר את מקור החשמל הרצוי ל- Arduino והשתמש בשלט כדי לסובב את ההר!
חבר את מקור החשמל הרצוי ל- Arduino והשתמש בשלט כדי לסובב את ההר!

או השאר את הארדואינו מחובר למחשב או נתק אותו מהמחשב והשתמש בסוללה של 9V כדי לספק מתח ארדואינו. לבסוף, השתמש בשלט IR זול לשליטה בסרוו ולכן כיוון הרכבה לטלפון!

המספר 1 בשלט צריך להגדיר את מיקום הסרוו ל 0 מעלות, מספר 2 עד 90 מעלות, ומספר 3 עד 180 מעלות. בינתיים, כפתורי + ו- - בשלט צריכים להגדיל או להקטין את זווית הסרוו במעלה אחת, בהתאמה.

הערה: אם אתה משתמש בשלט IR שונה מזה שמוצג כאן, ייתכן שקודי ה- IR המתאימים לכפתורים שונים השתנו. אם כן, שנה את הסקיצה של ServoIRandLCD כדי להשתמש בקודי ה- IR במקום זאת.

שלב 6: קרא את זה להסבר על קוד המקור

קראו זאת להסבר קוד המקור
קראו זאת להסבר קוד המקור
קראו זאת להסבר קוד המקור
קראו זאת להסבר קוד המקור

קוד המקור של סקיצת Arduino ניתן למצוא למטה או בקובץ ה- zip המצורף בעבר. ניתן למצוא את הספריות הנדרשות רק בקובץ ה- zip המצורף בעבר בשלב 4.

הדבר הראשון שהקוד עושה הוא לכלול את הספריות הדרושות להפעלת כל הפונקציות במערכון. לאחר מכן, היא מצהירה על סיכה 9 על הארדואינו כסיכת האותות המותאמת ל- PWM עבור הסרוו. זה גם הופך את סיכה 11 בארדואינו לסיכה המשמשת למקלט ה- IR. לאחר מכן, הוא מצהיר על משתנה שלם המשמש לעקוב אחר מיקום השרוול במעלות ומגדיר אותו ל -0 מעלות, בהתחלה. לאחר מכן הוא מייצב את האובייקטים הנדרשים לאובייקט IRrecv, אובייקט סרוו ואובייקט LCD myDisplay (שמוגדר גם הוא באותו קו) כך שניתן להשתמש באובייקטים אלה בהמשך.

לאחר מכן, בפונקציית ההתקנה, יציאה טורית מופעלת במהירות של 9600 סיביות/שניות, כך שניתן להשתמש במסך הטורי כדי לעקוב אחר מיקום הסרוו אם תרצה. הוא גם מחבר את אובייקט myservo לסיכה 9, מפעיל את מקלט ה- IR ומאתחל את צג ה- LCD.

בפונקציית הלולאה הראשית, שגופה מבוצע רק אם מתקבלת שידור IR ממקלט ה- IR, מקלט ה- IR מפענח את האות שנשלח אליו משלט ה- IR באמצעות פונקציית הפענוח (& תוצאות) ולאחר מכן אם הצהרות קובעות מה כדי להגדיר את הסרוו בהתאם לערך ה- IR שהתקבל. פונקציית הכתיבה משמשת להגדרת הסרוו למעלות המתאימות שלה, ופונקציית הקריאה משמשת לאיתור הזווית הנוכחית של הסרוו ולהגדיל או להקטין אותה לפי הצורך.

לבסוף, הזווית הנוכחית של הסרוו נשלחת הן לצג הסדרתי והן לתצוגת ה- LCD באמצעות הפונקציה myservo.read (), והלולאות הראשיות חוזרות על עצמה ללא הגבלת זמן.

קוד מקור:

#כלול // ספרייה סטנדרטית של Arduino #כולל // ספריית IR #כלול "Wire.h" //Wire.h עבור LCD (לפעמים יש צורך) #כלול "LiquidCrystal_I2C.h" // ספריית LCD

#define servopin 9 // זה מגדיר את סיכה 9 כסיכה המשמשת להובלת השליטה בסרוו (כתום)

int RECV_PIN = 11; // צילום טרנזיסטור IR שולח פלט לפין 11

int currentAngle = 0; // הכריז על משתנה מספר שלם של currentAngle והגדר אותו ל- 0

IRrecv irrecv (RECV_PIN); // מייצג תוצאות decode_results של אובייקט מקלט IR; // מייעץ אובייקט decode_results. אובייקט זה נפרד ממקלט ה- IR.

סרוו מיסרבו; // לייצר אובייקט סרוו בשם 'myservo' // ניתן ליצור לכל היותר שמונה אובייקטים של סרוו

LiquidCrystal_I2C myDisplay (0x27, 16, 2); // מייצרת אובייקט LCD והגדרת תצורה

הגדרת בטל () {

Serial.begin (9600); // התחל יציאה טורית

myservo.attach (servopin); // מחבר את הסרוו על סיכה 9 לאובייקט הסרוו

irrecv.enableIRIn (); // הפעל את המקלט

myDisplay.init (); // לאתחל LCD

myDisplay.backlight (); // הפעל את התאורה האחורית של LCD

}

לולאת חלל () {

if (irrecv.decode (& תוצאות)) // אם השידור התקבל …

{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) //+ {// increment currentAngle = myservo.read (); myservo.write (currentAngle + 1); } if (results.value == 16769055) //- {// decrement currentAngle = 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 שלי לעזרה

צפה בסרטון היוטיוב הלא רשום שלי הדן במלואו ומדגים את הפרויקט אם יש לך שאלות!

מוּמלָץ: