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

בקר סרוו סידורי מבוסס Arduino: 6 שלבים
בקר סרוו סידורי מבוסס Arduino: 6 שלבים

וִידֵאוֹ: בקר סרוו סידורי מבוסס Arduino: 6 שלבים

וִידֵאוֹ: בקר סרוו סידורי מבוסס Arduino: 6 שלבים
וִידֵאוֹ: תכנות ארדוינו למתחילים 2024, נוֹבֶמבֶּר
Anonim
בקר סרוו סידורי מבוסס Arduino
בקר סרוו סידורי מבוסס Arduino
בקר סרוו סידורי מבוסס Arduino
בקר סרוו סידורי מבוסס Arduino

זהו בקר סדרתי פשוט למספר סרוואות המבוססים על ה- Arduino. (גם ההנחיה הראשונה שלי:))

עיקר העבודה בעניין נבע מכך שגרמה לתוכנה לדבר עם הארדואינו וליצור פרוטוקול להעברת הנתונים. באשר להיבט החומרה כל מה שהשתמשתי בו היה שני סרוו (סרוו סטנדרטי של Parallax כאן.) Sparkfun Arduino ProtoShield ו- Arduino Duemilanove עם ATMEGA328, אך ניתן להחליף את רוב החלקים הללו בפריטים דומים. חשבתי על הפרויקט הזה כחלק ממערכת RC, אבל הגדרת התקשורת לקחה הרבה זמן. אם למישהו יש שיפורים, רעיונות או באגים אנא אל תהסס להגיב. עריכה: כתבתי את זה לפני זמן מה, רק פרסמתי אותו לאחרונה.

שלב 1: דברים שאתה עשוי להזדקק להם …

דברים שאתה עשוי להזדקק להם…
דברים שאתה עשוי להזדקק להם…
דברים שאתה עשוי להזדקק להם…
דברים שאתה עשוי להזדקק להם…

כמה דברים שתצטרך כדי לבנות זאת. 1. לוח Arduino (אתה בוחר) 2. שניים (או אחד) סרוו 3. חוטי מגשר 4. Visual Studio 2008 Express - קישור (אופציונלי) 5. Arduino IDE - קישור מצטערים אוהדי לינוקס ואפל, התוכנית שלי פועלת רק על Windows לעת עתה, אך עדיין תוכל לשלוח פקודות סדרתיות באופן ידני לארדואינו מבלי לשנות את הקוד.

שלב 2: חבר את החומרה

חבר את החומרה
חבר את החומרה

שום דבר לא מורכב במיוחד לשלב זה. רק חבר סרוו אחד לסיכה 9 והשני לסיכה 10.

שלב 3: תכנת את הארדואינו

תכנות את הארדואינו
תכנות את הארדואינו

עכשיו אתה יכול להעלות את הסקיצה על הארדואינו.

להלן פירוט פשוט לקוד: #include Servo myservo; // צור אובייקט סרוו לשליטה בסרוו סרוו myservo1; int incomingByte = 0, datacount = 0, counter = 0, ready = 0; // לנתוני סידורי נתונים נכנסיים [10]; const char verify [8] = "ma11hew"; פקודת צ'אר [3]; הגדרת חלל () {myservo.attach (9); myservo1.attach (10); Serial.begin (38400); // פותח יציאה טורית, מגדיר את קצב הנתונים Serial.println ("היי ארדואינו כאן!"); // נוסף כדי לסייע בזיהוי היציאה הטורית זה רק מגדיר את היציאה הטורקית ואת סרוווס. int i; עבור (i = 0; i <180; i ++) {myservo.write (i); עיכוב (15); } myservo.write (5); עבור (i = 0; i <180; i ++) {myservo1.write (i); עיכוב (15); } myservo1.write (5); } תנועת סחיפה פשוטה לוודא שהשרווסים פועלים כראוי. לולאת חלל () {מוכן = 0; מונה = 0; בעוד (1 == 1) {if (Serial.read ()! = אמת [counter]) {break; } if (counter == 6) {delay (20); פקודה [0] = Serial.read (); פקודה [1] = Serial.read (); // if (Serial.read () == ((פקודה [1] * 12) % 8)) // {מוכן = 1; //} Serial.println ("פקודה שמורה"); } מונה ++; עיכוב (2); } זה בודק את המאגר הטורי עבור מחרוזת ההרשאה הנכונה ואז תופס שני בתים עבור הפקודה. ההערה אם ההצהרה מאפשרת סכום בדיקה מאולתר אך תקשה על הממשק הידני. ניתן להגדיר מוכן ל- 0 כך שלא ינותחו פקודות כמו במקרה של נתונים פגומים. // חפש באמצעות פקודות אם (מוכן == 1) {אם (פקודה [0] == 'T') {פקודה [0] = 0; Serial.print ("בקרת מצערת על סיכה 9 עד:"); Serial.println (מפה (פקודה [1], 32, 126, 2, 180), DEC); myservo.write (מפה (פקודה [1], 32, 126, 2, 180)); } if (פקודה [0] == 'S') {פקודה [0] = 0; Serial.print ("בקרת מצערת על סיכה 10 עד:"); Serial.println (מפה (פקודה [1], 32, 126, 2, 180), DEC); myservo1.write (מפה (פקודה [1], 32, 126, 2, 180)); }}} שאר הקוד הוא לחפש בפקודה אחר פקודות תקפות (T או S.) אם אחת ההתאמות היא לוקחת את הבייט הבא ושולחת אותו לסרוו. עוד על המפה (פקודה [1], 32, 126, 2, 180) מאוחר יותר … הקוד כאן ניתן להרחבה לכל מה שתצטרך (למשל אורות, מנועים, IR וכו ') הקוד הזה אמור לפעול מצוין ללא שינויים.

שלב 4: התקן תוכנה

להתקין תוכנה
להתקין תוכנה

יש לי שתי דרכים להתקין את … מתקין nsis: הורד את המתקין לחילוץ עצמי להלן והפעל אותו. תהיה לך אפשרות להתקין מקורות במהלך ההתקנה. החבילה הבינארית של המתקין מתקינה את c ++ dlls הליבה כך שניתן להריץ אותה במחשב מבלי שהתקנת c ++ חזותית כבר מותקנת. לאחר סיום ההתקנה תוכל להריץ אותו משולחן העבודה או מתפריט ההתחלה. zip דרך (לא מאומת): הורד והפעל, זה אמור לעבוד. אולי. (לארכיון ה- zip יש אותו מבנה תיקיות שנוצר על ידי המתקין, ללא מקורות. אין לי מכונה ללא אולפן ויזואלי לבדיקה, כך שאולי זה לא יעבוד).

שלב 5: השתמש בתוכנית הממשק

השתמש בתוכנית הממשק
השתמש בתוכנית הממשק
השתמש בתוכנית הממשק
השתמש בתוכנית הממשק

כדי להשתמש בתוכנית בחר תחילה את קצב השידור שהוגדר במערכון הארדואינו. הסקיצה שלא השתנתה כברירת מחדל היא 38400 באוד אך ניתן לשנות אותה כך שתתאים לצרכים שלך לדברים כמו קישור רדיו איטי יותר. הערה: שיעורי השידור הגבוהים מ- 38400 לא היו יציבים במיוחד, אני חושב שזה בגלל שה- uart מתמלא לפני העיבוד של הנתונים. לאחר מכן, בחר את יציאת ה- COM לשימוש. התוכנית כברירת מחדל ל- COM4 הקפד לשנות אותה או שהתוכנית תקרוס. לבסוף, לחץ על פתח. אם הכל הלך טוב התוכנית תפתח את היציאה הטורית שנבחרה בקצב השידור שנבחר. אם לא התוכנית כנראה תקרוס למעט יוצא מן הכלל. וודא שהיציאה נכונה ונסה שוב. השתמש בתיבות הטקסט כדי לשלוח פקודות ישירות לארדואינו. "המפה (פקודה [1], 32, 126, 2, 180)" מגדילה את כל 94 הפקודות האפשריות, * רווח * עד ~, הנקראות על ידי הארדואינו ב- ASCII ל -2 עד 180 עבור הסרוו. כל בת פחות מ- ASCII 32 (רווח) או מעל 126 (~) ברירת מחדל ל -63 (?) פסי המסלול מספקים ממשק eaiser לפקודות ישירות. כל שלב שולח פקודה סדרתית לארדואינו בהדרגה.

שלב 6: להיות יצירתי

להיות יצירתי!
להיות יצירתי!
להיות יצירתי!
להיות יצירתי!

תחשוב על דברים מגניבים לעשות עם זה. כמה רעיונות: 1. מצערת מרחוק למכונית. 2. מצלמה תלת מימדית 3. רובר מתחת למים תהנה !!

מוּמלָץ: