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

קישור למיקרו -בקר ברחבי העולם בפחות מ- $ 20: 15 צעדים
קישור למיקרו -בקר ברחבי העולם בפחות מ- $ 20: 15 צעדים

וִידֵאוֹ: קישור למיקרו -בקר ברחבי העולם בפחות מ- $ 20: 15 צעדים

וִידֵאוֹ: קישור למיקרו -בקר ברחבי העולם בפחות מ- $ 20: 15 צעדים
וִידֵאוֹ: ✔ האם אתה מטומטם? במבחן הזה תגלה ! ( רק 12% מצליחים ) 2024, נוֹבֶמבֶּר
Anonim
קישור למיקרו -בקר ברחבי העולם במחיר של פחות מ -20 $
קישור למיקרו -בקר ברחבי העולם במחיר של פחות מ -20 $

שלוט על התרמוסטט הביתי שלך מהעבודה. הפעל ממטרה מכל מקום בעולם על ידי לחיצה על מתג. מדריך זה מראה כיצד לקשר בין שני או יותר בקרי מיקרו של 4 $ באמצעות עמוד השדרה של האינטרנט וכמה קוד VB. Net פשוט.זה מבוסס על מדריך קודם המראה כיצד לקשר בין מיקרו -למחשב ולהשתמש בסיר לשליטה על סרוו https://www.instructables.com/id/Control-real-world-devices-with-your-PC/ הפעם יש לנו מיקרו-בקר שמדבר עם תוכנית VB. Net ואז לאתר ftp, בחזרה ל- VB. Net אחר תכנית ומשם מיקרו -בקר שני בכל מקום בעולם, עם או בלי התערבות אנושית. אחרת איך המכונות במטריקס אמורות להשתלט אם הן לא יכולות לדבר ביניהן?

שלב 1: אסוף את החלקים

אסוף את החלקים
אסוף את החלקים

חלקים רבים זהים לזה של PC Control Instructable https://www.instructables.com/id/Control-real-world-devices-with-your-PC/ ומומלץ להשלים זאת לפני שתנסה כדי לקשר בין שני בקרי מיקרו. למרות שזה בהחלט אפשרי להשתמש בסיר לשליטה בסרוו, הפעם אנחנו הולכים על משהו פשוט יותר - מתג שמדליק לד. המתג יכול בקלות להיות חיישן מפלס טנקים וה- LED יכול להיות משאבה למטה ליד נהר אבל בואו נעשה משהו פשוט קודם כל.חלקים - שני שבבי Picaxe 08M - זמינים ממקורות רבים כולל Rev Ed https://www.rev- ed.co.uk/picaxe/ (בריטניה), PH אנדרסון https://www.phanderson.com/ (ארה ב) ו- Microzed https://www.microzed.com.au/ (אוסטרליה). השבבים האלה הם מתחת ל -4 $. שניים מתוך: פרוטובארד, סוללת 9V וספקי סוללה, נגד 10k, נגד 22k, קבל 33uF 16V, קבל 0.1uF, וויסת 5V הספק נמוך 7805L, חוטים (טלפון ליבה/חוט נתונים מוצק למשל Cat5/6), LED, 1k נגד. 1 מתוך: שקע וכיסוי נקבה D9 ו -2 מטרים של חוט נתונים (3 או 4) ליבה (להורדה) ומתג מתג. 2 מחשבים עם יציאות טוריות 9 פינים (ניתן לאתר באגים במחשב אחד) וחיבור לאינטרנט. למחשבים ללא יציאה טורית, USB למכשיר טורי https://www.rev-ed.co.uk/docs/axe027.pdf ושקע סטריאו קטן.

שלב 2: הורד והתקן כמה תוכנות

הורד והתקן כמה תוכנות
הורד והתקן כמה תוכנות

נזדקק ל- VB. Net ולתוכנת בקר picaxe החינמית ואם עשית את בקר המחשב האישי, כבר יהיו לך אלה. VB. Net (Visual Basic Express) זמין מ https://msdn2.microsoft.com/en -us/express/aa718406.aspx תוכנת picaxe זמינה מ https://www.rev-ed.co.uk/picaxe/ יהיה עליך להירשם ל- Microsoft כדי לקבל את ההורדה -אם זו בעיה השתמש בדוא"ל מזויף או משהו. דווקא מצאתי את זה מועיל לתת את הדוא"ל האמיתי שלי כשהם שולחים מדי פעם עדכונים. אני גם אזכיר את פורום picaxe https://www.picaxeforum.co.uk/ מכיוון שזהו סוג הפורום שמאייש מורים ומחנכים ו שם התלמידים בדרך כלל יכולים לקבל תשובות לשאלות תוך מספר שעות. הפורום מבין מאוד את השאלות הפשוטות ביותר מכיוון שחלק מהתלמידים עדיין נמצאים ברמת בית הספר היסודי. אנא אל תפחדו לבקש עזרה!

שלב 3: בנה מעגל הורדות

בנה מעגל הורדות
בנה מעגל הורדות

מעגל ההורדות הזה משתמש בשבב פיקאקס, כמה נגדים, וסת וסוללה של 9V. מידע נוסף זמין בתיעוד/העזרה של picaxe המופיע בתפריט העזרה של התוכנית. המסלול אמור לקחת רק כמה דקות לבנות לאחר שכל החלקים יהיו בהישג יד. ברגע ששבב מתוכנת הוא שומר את התוכנית שלו ב- EEPROM גם כאשר הכוח כבוי. מכיוון שאנו מתכנתים שני שבבים אולי כדאי לסמן את השבבים כדי שתדע איזה מהם. אתה תמיד יכול לחזור ולתכנת שבב על ידי הסרת קישור והזזת נגד.

אני יכול גם להוסיף כי פיקקסים פועלים בשמחה על 3 סוללות AA. אספקה מוסדרת של 5V שימושית להפעלת כניסות אנלוגיות מכיוון שמתחי הייחוס אינם משתנים, אך במעגלים פשוטים/כבויים אין צורך בהספקה מוסדרת. ניתן להשאיר את 5V רג במצבים אלה.

שלב 4: תכנת הצ'יפס

תכנת הצ'יפס
תכנת הצ'יפס

נקרא תוכנית אחת Tx ואחת Rx. Tx הוא שבב השליטה ויש לו מתג ומד. ל- Rx יש גם לד. כאשר המתג משתנה האות עובר מ- Tx ל- Rx, משנה את ה- LED ומשנה גם משתנה שני שחוזר לאחר מכן ל- Tx. אז לחץ על המתג ותוך פחות מדקה השינויים ב- LED בשני המעגלים המצביעים על כך שההודעה הגיעה לשם וה- Rx פועל על עמדת המתג החדשה. ברמה הפשוטה ביותר לפיקקס יש 14 רגידים של בתים בודדים. כאשר נוצרת רשת וירטואלית אנו מקשרים את כל הרישומים הללו, כך שאם בייט משתנה בפיקסה אחת הוא משתנה בכל הפיקסאות. ברור שאם שני פיקקסים מנסים לשנות את אותו הבייט אז זה יהפוך לבלבל מאוד אבל אם כל פיקאקס משנה רק בתים אחד אז כל שאר הפיקסאות יכולות לראות את השינוי הזה ויכולות לפעול על פיו. ניתן להעביר הודעות פשוטות קדימה ואחורה אם בייט מסוים משתנה רק בפיקסה אחת. סיר יכול לשנות את הערך ברישום ואחת או יותר פיקאקסות אחרות יכולות לחוש את השינוי הזה ולהזיז סרוו או כל דבר אחר ולהדליק תנור חימום. רישום שני יכול להחזיר את הטמפרטורה בחדר. העתק והדבק את התוכניות בתורן לתוך מתכנת הפיקסה והורד אותן לכל אחד מהשבבים המתאימים באמצעות חץ ההורדה הכחול מתוך מתכנת הפיקסה. Tx: main: serin 3, N2400, ("נתונים"), b0, b1, b2, b3, b4, b5, b6, b7, b8, b9, b10, b11, b12, b13 'קבל חבילה מהמחשב אם pin2 = 0 ואז 'בדוק את המתג והגדר את הרשם b0 בהתאם למצב b0 = 0 אחר b0 = 1 endif אם b1 = 0 אז' ערכות פיקסקס אחרות b1 תלויות b0 נמוכות 1 'הובילו אחר גבוה 1' הובילו ב- endif serout 0, N2400, ("נתונים", b0, b1, b2, b3, b4, b5, b6, b7, b8, b9, b10, b11, b12, b13) 'שלח חזרה למחשב ללכת mainand Rx: main: serin 3, N2400, ("נתונים"), b0, b1, b2, b3, b4, b5, b6, b7, b8, b9, b10, b11, b12, b13 'קבל חבילה מהמחשב b1 = b0' שנה את רשום b1 לרשום שווה b0 אם b1 = 0 ואז נמוך 1 'הוריד אחר גבוה 1' הוביל על endif serout 0, N2400, ("נתונים", b0, b1, b2, b3, b4, b5, b6, b7, b8, b9, b10, b11, b12, b13) 'שלח חזרה למחשב עבור אל main

שלב 5: בנה את מעגל ה- Tx

בנה את מעגל ה- Tx
בנה את מעגל ה- Tx

אם אתה עובר הלוך ושוב בין מעגל עבודה למעגל תכנות הקפד לשנות את החיבור לרגל 2 ואת המיקום של הנגד 22k מרגל 2 לרגל 4. או שאתה יכול לבנות מעגל הורדות ייעודי ולהזיז את השבבים ברחבי. רק שים לב אם מעגל פועל או מוריד מכיוון שהוא עלול לבלבל למדי. בפרט, שים לב שמעגל ריצה לא יפעל אם רגל 2 תישאר צפה - יש צורך להארקה. רגל 2 היא סיכת ההורדה ואם היא נשארת צפה היא אוספת RF תועה מאורות פלורו והשבב חושב שתוכנית אחרת יורדת.

כמו כן ראוי להזכיר את המינוח של פיקאקס המכנה סיכה פיזית לרגל וסיכה וירטואלית סיכה. לכן פלט על סיכה 2 בקוד הוא למעשה פלט ברגל פיזית 5. זה אולי נראה מוזר אבל זה אומר שאפשר להעביר את הקוד לפיקססים גדולים יותר כמו גרסאות 28 ו -40 פינים ועדיין לעבוד.

שלב 6: בנה את מעגל ה- Rx

בנה את מעגל ה- Rx
בנה את מעגל ה- Rx

המעגל הזה כמעט זהה למשדר - פשוט אין לו מתג.

שלב 7: כתוב קוד VB. Net

כתוב קוד VB. Net
כתוב קוד VB. Net

יכולתי לאסוף את הקוד ולהפוך את התוכנית הזו לזמינה בתור קובץ.exe אבל למידת VB. Net כל כך שימושית עד כדי כך ששווה לעבור עליה צעד אחר צעד. אם אתה מפעיל את זה בשני מחשבים שונים אתה יכול לבנות את התוכנית לתוך.exe שיוצר תוכנית התקנה קטנה שניתן להתקין אותה במחשב השני. או שאתה יכול לשים VB. Net על שני המחשבים ולהריץ את התוכניות מתוך VB. Net נניח שאתה יודע לפתוח פרויקט VB.net חדש משלב 7 ו -8 של https://www.instructables.com/id/S1MMU2XF82EU2GT /בטופס הריק בואו נוסיף את הרכיבים הבאים מסרגל הכלים ונשים אותם על הטופס במיקומים כפי שמוצג. עבור התוויות ותיבות הטקסט, שנה את מאפיין הטקסט (בצד ימין למטה) למה שצריך. אל תדאג לגבי ההגדרות של הטיימר - נשנה אותן בקוד אבל כן הקפד להכניס טיימר. תוכל להזיז דברים ואין חוקים אמיתיים לגבי המיקום. תיבת הטקסט הגדולה היא RichTextBox ושלוש הקטנות יותר הן תיבות טקסט רגילות. מבחינת הסדר אנו מתחילים בחלק העליון של הטופס ונעים כלפי מטה. אם תשאיר משהו בחוץ תהיה שגיאה בקוד שאמורה לתת רמז כלשהו. אנא בחר שם קובץ אקראי עבור Textbox3 - זהו השם של קבוצת הפיקסים הייחודית שלך בשרת ה- ftp וברור שאם כולנו נשתמש ב- אותו שם אז הנתונים הולכים להסתבך! מצטערים על המקפים בטבלה זו-הכנסת רווחים מאבדת את העיצוב בטבלה. ------------------------------ NotesLabel1 ------------------ Picaxe CommunicationsLabel2 ------------------ FTP StatusLabel3 ------------------ StatusLabel4 ---------- -------- Picaxe Registers תווית 5 ------------------ רישום 0-13 תווית 6 ------------------ ערך 0-255 תווית 7 ------------------ שם קובץ קישור FTP טקסט 1 ---------------- 0 -------- -------------------------------------- 0 הוא אפס לא OTextbox2 ----- ----------- 0 טקסטבוקס 3 ---------------- שם קובץ שלי --------------------- ---------- שנה כך שאין התנגשויות! לחצן 1 ------------------ שנה שינויים Richtextbox1 Picturebox1 Picturebox2 טיימר 1

שלב 8: הוסף קצת קוד

הוסף קצת קוד
הוסף קצת קוד

עיין בשלב 12 של ההנחיות האחרות למיקום הלחצן המתהפך בין תצוגת טופס לתצוגת קוד. עבור לתצוגת קוד והדבק את הקוד הבא. הצבעים כולם צריכים להופיע שוב כמו בצילום המסך. אם שורה לא הועתקה כראוי בגלל בעיית גלישת מילים אז מחק רווחים עד שהודעת השגיאה תעלם. ניסיתי להגיב על רוב השורות כך שהקוד לפחות הגיוני. מחק את ביט המעמד הציבורי כך שהטקסט ריק לפני הדבקתו - קוד זה כבר מכיל מחלקה ציבורית. אם אובייקט כמו תיבת טקסט לא הונח על הטופס או שיש לו שם שגוי הוא יופיע בקוד הטקסט עם קו כחול מתפתל מתחתיו. יבוא מערכת. ייבוא מחרוזות = Microsoft. VisualBasic 'כך שניתן להשתמש בו דברים כמו שמאל (וימין (עבור מחרוזות טופס מחלקה ציבורית 1 הצהרת ציבור Sub Lib Lib "kernel32" (ByVal dwMilliseconds As Integer) 'עבור הצהרות שינה Dim WithEvents serialPort כחדש IO. Ports. SerialPort החדש מצהיר על Dim PicaxeRegisters (0 עד 13) כאשר Byte 'רושם b0 עד b13 Dim ModifyFlag כ- Sub1 Private Private Form Boolean (שולח ByVal כאובייקט, ByVal e As System. EventArgs) מטפל ב- Me. Load' צריך את כל הדברים האשפתיים האלה. Timer1. Enabled = True 'שים את הקוד כברירת מחדל ל- false כאשר נוצר Timer1. Interval = 20000' כל 20 שניות PictureBox1. BackColor = Color. Gray 'התחל בתיבות comms אפורות PictureBox2. BackColor = Color. Gray ModifyFlag = False' אם לשנות ערך באופן ידני אז s kip download RichTextBox1. Multiline = True 'כך שניתן להציג יותר משורה אחת שיחה DisplayPicaxeRegisters ()' להציג את 14 הרשמים Call ReadFTPFilename () 'לקרוא את שם הקובץ מהדיסק (נשמר כל 20 שניות) Sub Sub SerialTxRx () Dim DataPacket () 0 עד 17) חבילת הנתונים כולה של Byte "נתונים" +14 בתים Dim i As Integer 'i היא תמיד שימושית עבור לולאות וכו'. I = 0 עד 3 DataPacket (i) = Asc (Mid ("Data", i + 1, 1)) 'הוסף את המילה' נתונים 'למנה Next For i = 0 עד 13 DataPacket (i + 4) = PicaxeRegisters (i)' הוסף את כל הבייטים למנה Next If serialPort. IsOpen ואז serialPort. Close () 'למקרה שכבר נפתח סיום אם נסה עם serialPort. PortName = "COM1" רוב המחשבים החדשים כברירת מחדל ל- com1 אך כל מחשב לפני 1999 עם עכבר סדרתי יגדל ככל הנראה ב- com2. BaudRate = 2400' 2400 היא המהירות המקסימלית עבור פיקססים קטנים. Parity = IO. Ports. Parity. None 'אין זוגיות. DataBits = 8' 8 סיביות. StopBits = IO. Ports. StopBits. One 'one stop bit. ReadTimeout = 1000' מילי שניות ds אז פסק זמן תוך שנייה אחת אם אין תגובה. פתח () 'פתח את היציאה הטורית. DiscardInBuffer ()' נקה את מאגר הקלט. כתוב (DataPacket, 0, 18) 'שלח את מערך חבילות הנתונים Call Sleep (300)' 100 אלפיות השנייה מינימום להמתין עד שחזרה של נתונים ועוד אם זרם הנתונים ארוך יותר. קרא (DataPacket, 0, 18) 'קרא בחזרה במערך מנות הנתונים. (i - 4) = DataPacket (i) 'העבר את חבילת הנתונים החדשה למערך הרישום הבא PictureBox1. BackColor = Color. GreenYellow' working Catch ex As Exception PictureBox1. BackColor = Color. Red 'לא עובד סיים נסה סיים תת תת FTPUpload (שם קובץ ByVal כמחרוזת) Dim localFile As String 'מקום לאחסון נתונים Dim remoteFile As String' שם הקובץ הוא תלוי רישיות זה ממש חשוב Const Host As String = "ftp://ftp.0catch.com" 'שים לב 0 הוא אפס לא תו O שם משתמש קבוע As String = "picaxe.0catch.com" סיסמת Const כמחרוזת = "picaxetester" Dim URI כמחרוזת localFile = שם קובץ 'אולי אין צורך, אבל אם תגדיר מיקום למשל c: / mydirectory יכול להוסיף בקלות בצורה הזו קובץ remoteFile = "/" + שם קובץ על צרכי שרת ftp "/" נוסף בחזית URI = host + remoteFile נסה לעמעם ftp כמערכת. Net. FtpWebRequest = CType (System. Net. FtpWebRequest. Create (URI), System. Net. FtpWebRequest) ftp. Credentials = חדש System. Net. NetworkCredential (שם משתמש, סיסמא) 'התחבר ftp. KeepAlive = False' יהיה ניתוק פעם בוצע ftp. UseBinary = True 'השתמש ב- comms בינארי ftp. Timeout = 9000' פסק זמן לאחר 9 שניות - שימושי מאוד מכיוון ש- ftp לפעמים מת (או תדירות השעון של 20 שניות) עשוי להיות איטי יותר לחיבורי חיוג ftp. Method = System. Net. WebRequestMethods. Ftp. UploadFile 'התחל לשלוח קובץ Dim fs כחדש FileStream (localFile, FileMode. Open)' פתח קובץ מקומי Dim filecontents (fs. Length) As Byte 'קרא לתוך זיכרון fs. Read (filecontents, 0, fs. Length) fs. Close () 'סגור את הקובץ Dim requestStream As Stream = ftp. GetRequestStream ()' start ftp link requestSt ream. Write (קובץ תוכן, 0, filecontents. Length) 'שלח אותו requestStream. Close ()' סגור את הקישור PictureBox2. BackColor = Color. GreenYellow 'שנה את התיבה לירוק כדי לומר שעבד בסדר Label2. Text = "FTP Connected"' טקסט שאומר שהוא מחובר Catch 'לא יכול לחבר את תיבת PictureBox2. BackColor = Color. Red' לאדום ללא חיבור Label2. Text = "נכשל העלאה ב- FTP" הטקסט אומר שהחיבור נכשל סיום נסה לסיים תת תת FTP הורדה (שם קובץ ByVal כמחרוזת) 'הורדות remotefile ל localfile Dim localFile As String' מקום לאחסון נתונים Dim remoteFile As String 'שם הקובץ הוא תלוי רישיות זה ממש חשוב Const Host As String = "ftp://ftp.0catch.com" שם משתמש Const As String = "picaxe.0catch.com "סיסמת Const כמחרוזת =" picaxetester "Dim URI כמחרוזת 'localFile =' C: \" + שם קובץ 'בספריית השורש אך ניתן לשנות את localFile = Filename' כך שניתן להוסיף c: / אם צריך להגדיר מיקום בפועל remoteFile = "/" + שם קובץ 'נוסף למיקום ftp מרוחק URI = host + remoteFile' make up כתובת מלאה נסה Dim Dim כ- System. Net. FtpWebRequest = CType (System. Net. FtpWebRequest. Create (URI), System. Net. FtpWebRequest) ftp. Credentials = New System. Net. NetworkCredential (שם משתמש, סיסמא) 'התחבר ל- ftp. KeepAlive = False 'יתנתק לאחר סיום ftp. UseBinary = True' מצב בינארי ftp. Timeout = 9000 'timeout לאחר 9 שניות ftp. Method = System. Net. WebRequestMethods. Ftp. DownloadFile' הורד קובץ 'הנקרא בחלקים כמו לא יודע כמה גדול הקובץ משתמש בתגובה כ- System. Net. FtpWebResponse = CType (ftp. GetResponse, System. Net. FtpWebResponse) שימוש ב- responseStream כ- IO. Stream = response. GetResponseStream שימוש ב- fs כ- New IO. FileStream (localFile, IO. FileMode. Create) מאגר עמום (2047) כבת בייט לקרוא כמספר שלם = 0 Do read = responseStream. Read (buffer, 0, buffer. Length) 'piece from ftp fs. Write (buffer, 0, read)' and כתוב לקובץ לולאה עד לקריאה = 0 'עד לא עוד חלקים responseStream. Close ()' סגור את קובץ ה- ftp fs. Flush () 'סלק fs. Close ()' וסגור את קובץ e סיים באמצעות responseStream. Close () 'סגור אותו גם אם לא היה שם סיים שימוש response. Close () PictureBox2. BackColor = Color. GreenYellow' תיבה ירוקה כפי שהיא עבדה Label2. Text = "FTP Connected" 'וטקסט שאומר זאת עבד סיים באמצעות Catch 'שים כאן קודי שגיאה PictureBox2. BackColor = תיבה אדומה' אדומה מכיוון שזה לא עבד Label2. Text = "FTP הורדה נכשלה" 'והודעה לומר זאת סוף נסה סוף Sub Sub Sub Timer1_Tick (שולח ByVal כ- System. Object, ByVal e As System. EventArgs) מטפל ב Timer1. Tick If ModifyFlag = False ואז 'אם המשתמש שינה בתים, אל תוריד את Label3. Text = "הורדת" System. Windows. Forms. Application. DoEvents () 'כך שטקסט תווית חדש מציג Call FTPDownload (TextBox3. Text)' הורד קובץ מרוחק Label3. Text = "הורד" System. Windows. Forms. Application. DoEvents () Call ReadRemoteFileToRegisters () 'שמור מספרי קבצים למערך הרישום Label3. Text = "מדבר עם picaxe" System. Windows. Forms. Application. DoEvents () Else ModifyFlag = False 'אפס את הדגל קץ אם Call SerialTxRx () 'שלח אל הפיקסה וקרא אותו בחזרה Label3. Text = "נשלח והתקבל מ- picaxe" System. Windows. Forms. Application. DoEvents () התקשר DisplayPicaxeRegisters () שמור מספרים לקובץ SaveRegistersToLocalFile () Label3. Text = "מעלה" System. Windows. Forms. Application. DoEvents () התקשר ל- FTPUpload (TextBox3. Text) 'שלח חזרה לאתר ftp בשם שמי Label3. Text = "מנוחה" שימור SaveFTPFilename ()' כך כתוב in בעת הפעלה מחדש Sub Sub DisplayPicaxeRegisters () Dim i As Integer Dim registernumber As String RichTextBox1. Multiline = True 'כך שניתן להציג יותר משורה אחת בתיבת הטקסט RichTextBox1. Clear ()' נקה את תיבת הטקסט עבור i = 0 עד 13 registernumber = Trim (Str (i)) 'חיתוך רווחים מובילים אם i <10 ואז registernumber = "0" + registernumber' הוסף 0 למספרים מתחת 10 End If RichTextBox1. AppendText (registernumber + "=" + Str (PicaxeRegisters (i)) + Chr (13)) הבא 'chr (13) הוא החזרת כרכרה אז שורה חדשה סוף Sub Button Sub Private Button1_Click (שולח ByVal כ- System. Object, ByVal e As System. EventArgs) מטפל בלחצן 1. לחץ על Dim i כמספר שלם 'בדוק מחוץ לטווח קודם i = Val (TextBox1. Text) אם i <0 או i> 13 ואז TextBox1. Text = 0 סוף אם i = Val (TextBox2. Text) אם i <0 או i> 255 ואז TextBox2. Text = 0 סוף אם PicaxeRegisters (Val (TextBox1. Text)) = Val (TextBox2. Text) 'שנה את הערך Call DisplayPicaxeRegisters ()' ו- רענן את התצוגה ModifyFlag = True 'וקישור ה- ftp הבא דילוג על הורדת End Sub Sub SaveRegistersToLocalFile ()' שמור מערך רישום בקובץ טקסט מקומי Dim i As Integer FileOpen (1, TextBox3. Text, OpenMode. Output) 'פתח את קובץ הטקסט בשם בתיבת הטקסט עבור i = 0 עד 13 PrintLine (1, Str (PicaxeRegisters (i))) 'שמור 14 ערכים הבא FileClose (1)' סגור את הקובץ End Sub Sub ReadRemoteFileToRegisters () 'קרא קובץ טקסט מקומי לתוך מערך הרישום Dim i As Integer Dim LineOfText כמחרוזת נסה FileOpen (1, TextBox3. Text, OpenMode. Input) 'קרא את שם הקובץ המרוחק For i = 0 To 13 LineOfText = LineInput (1)' קרא בשורה 14 es PicaxeRegisters (i) = Val (LineOfText) 'להמיר טקסט לערכים הבא FileClose (1) Catch ex As Exception FileClose (1)' קובץ אינו קיים אז אל תעשה דבר סיום נסה סיים Sub Sub ReadFTPFilename () 'כך שמו של קובץ ה- ftp המרוחק זהה בפעם הבאה שתוכנית זו מופעלת Dim LineOfText כמחרוזת נסה FileOpen (1, "FTPFilename.txt", OpenMode. Input) 'פתח את הקובץ LineOfText = LineInput (1) TextBox3. Text = LineOfText' קרא את שם FileClose (1) Catch ex as חריג FileClose (1) סוף נסה סוף Sub Sub SaveFTPFilename () FileOpen (1, "FTPFilename.txt", OpenMode. Output) 'שמור את שם קובץ ה- ftp המרוחק PrintLine (1, TextBox3. Text) FileClose (1) סיום כיתת SubEnd

שלב 9: הפעל את התוכנית בשני המחשבים האישיים

הפעל את התוכנית בשני המחשבים האישיים
הפעל את התוכנית בשני המחשבים האישיים

התחל להריץ את התוכנית על ידי לחיצה על המשולש הירוק שבמרכז העליון של המסך - כפתור 'התחל איתור באגים'. שום דבר לא יקרה במשך 20 שניות ואז התוכנית תנסה להתחבר לשרת ftp ותנסה להתחבר לפיקסה. תיבות התמונה יתחלפו לאדום או ירוק. מיקום ה- ftp הוא אתר חינמי וכל אחד יכול להשתמש בו, אך עליך להשתמש בשם קובץ עובד אחר ב- ftp (שלי הוא DoctorAcula1) אחרת כולנו יכולים להסתיים בנתונים של זה אם נשתמש באותו קובץ! אם תרצה תוכל בסופו של דבר להשיג אתר ftp משלך - פשוט שנה את מיקום ה- ftp, שם המשתמש והסיסמה בשני מקומות בקוד מאתר 0Catch שלי. רוב האתרים מאפשרים ftp. מחשבים מרובים יכולים לגשת לאותו קובץ ftp - שרת הקבצים ftp ממיין באיזה סדר זה קורה. מדי פעם יש התנגשויות או ניתוקים בנתונים ונדמה כי אלה קורים בכל 20 קבצים שקוראים.יש פסק זמן בקוד אם זה קורה אז זה לא מחזיר נתונים ולא נתונים פגומים. שימוש בחיבור פס רחב עם מהירות העלאה של 128kbs פירושו שהעלאת קובץ אורכת כ -3 שניות אך לפעמים עד 8 שניות, שרובן תופסות בלחיצת יד ולא בהעברת נתונים. זה קובע את זמן הטיימר 1 של מינימום של כ -20 שניות בהתחשב בהורדה, העלאה וצ'אט עם הפיקסה. עם פס רחב מהיר מאוד ייתכן שתוכל לקצר את זמן המחזור. תוכל לשנות רישום באופן ידני בתוך תוכנית VB. אם כן, מחזור הטיימר הבא מדלג על הורדה מאתר ה- ftp ושולח את הנתונים החדשים לפיקסה ולאחר מכן קורא אותו בחזרה ומעלה אותו. הנתונים החדשים מוצאים אפוא את דרכם לכל הפיקסים המקושרים לקבוצה זו. זה מועיל לאיתור באגים ו/או קישור תוכנת מחשב ללולאת החומרה של המיקרו -בקר. אתרים יכולים גם לגשת ללולאת החומרה באמצעות סקריפט PERL או דומה לכתיבת קובץ חדש לאתר ftp. צילום מסך זה צולם תוך שימוש בשבב ה- Tx, המתג היה מופעל והרשם b0 = to 1 נשלח לשבב ה- Rx אשר לאחר מכן שינה גם את הרשמה b1 ל -1. המנורה הודלקה אפוא על שני הלוחות. זהו יישום טריוויאלי אך קל להפעיל משאבה 3.6Kw במקום לד. כמה רעיונות נוספים נמצאים בכתובת https://drvernacula.topcities.com/ כולל קישור פיקאקס באמצעות קישורי רדיו המונעים על ידי שמש. עם קישורי רדיו ועוד אינטרנט אפשר ש'המכונות 'יגיעו לפינות רבות בעולם. יש כמה רעיונות בפורום picaxe לגבי הרחבת הרעיון הזה והחלפת אתר המחשב האישי ו- ftp בשבבי שרת אינטרנט ייעודיים המתחברים ישירות לנתב. ברור שזה יקטין את צריכת החשמל של קישור. אם אתה מעוניין בדיונים נוספים אנא פרסם את ההערות הניתנות ו/או בפורום picaxe. ד ר ג'יימס מושהאם אדלייד, דרום אוסטרליה

שלב 10: צילומי מסך של קוד

צילומי מסך של קוד
צילומי מסך של קוד

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

שלב 11: צילום מסך 2

צילום מסך 2
צילום מסך 2

צילום מסך 2

שלב 12: צילום מסך 3

צילום מסך 3
צילום מסך 3

צילום מסך 3

שלב 13: צילום מסך 4

צילום מסך 4
צילום מסך 4

צילום מסך 4

שלב 14: צילום מסך 5

צילום מסך 5
צילום מסך 5

צילום מסך 5

שלב 15: צילום מסך 6

צילום מסך 6
צילום מסך 6

צילום מסך 6

מוּמלָץ: