ESP32 להורים וילדים: להתאמן על סימלטור ולתכנת עם GPT

ככה משתמשים בצ׳אט ג׳יפיטי כדי לכתוב קוד בסימולטור של מיקרובקר - עוד לפני שנוגעים בציוד ובחיווט.

המאמר הזה הוא מאמר המשך המסביר על לימוד טכנולוגיה, תכנות ואלקטרוניקה דרך מיקרובקרים מסוג ESP32. אנא קראו את המאמר הקודם שהוא מבוא ל ESP32 לילדים ולהורים.

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

סימולטור הוא בעצם מערכת המדמה מיקרובקר, חיבורים וחיישנים שונים ומדמה בעצם סביבה מלאה וירטואלית של מיקרובקר. מה שכדאי לעשות הוא לעבוד קודם כל עם סימולטור כדי לראות שמה שאנו רוצים לבנות עובד בתיאוריה לפני שאנחנו מחווטים את הכל במציאות. בטח ובטח שבהתחלה.

הסימולטור שאני מאד אוהב לעבוד איתו הוא Wokwi. לא נדרשת הרשמה, התקנה או בלגן – הוא עובד דרך הדפדפן ותומך בלא מעט חיישנים ויישומים.

על מנת להתאמן, נכנס לאתר https://wokwi.com – ההוראות הן נכונות לשעת כתיבת הפוסט אבל גם אם ממשק האתר ישתנה – הרעיון הוא ליצור פרויקט התחלתי במיקרופייתון על ESP32.

נגלול למטה ונחפש את Start Your Project – נבחר את MicroPython

אחרי כן נבחר את New Project ונבחר MicroPython on ESP32

וזהו – אנחנו בעצם באמולטור שבו אפשר גם לכתוב קוד וגם אפשר לחבר דברים.

בואו נתאמן – נוודא שמצד שמאל כתוב לנו:

print("Hello, ESP32!")

ונלחץ על כפתור ה-play הירוק. תוך כמה שניות הכל ירוץ ונראה בטרמינל Hello ESP32!

גם בעולם האמיתי, כשאנחנו מחברים ESP32 למחשב, אנו יכולים לראות את הטרמינל שלו. כשטרמינל זה מקום שבו יש פלט מחשובי.

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

Act as a senior programming instructor that explains everything to a student.
I have ESP32 that runs MicroPython. Write me a code that turn on the onboard LED. 

לא רק שאני מקבל הסברים מרובים, אני מקבל קוד שניתן להעתיקו ישר לאמולטור ולהריץ אותו.

import machine

# Define the LED pin (usually it's GPIO2 for the onboard LED)
LED_PIN = 2

# Set up the pin for output
led = machine.Pin(LED_PIN, machine.Pin.OUT)

# Turn on the LED 
led.value(1)

אם נקליד את הקוד ונלחץ על Restart simulator, נראה שהקוד עובד!

מקבלים גם הסברים ארוכים. הכנסנו את הקוד וזה לא עובד? יש תקלה כלשהי? לא להתבייש להציק לצ׳אט ג׳יפיטי. למשל: The led is not on אם הקוד שהוא נתן לכם לא עובד.

לא להתבייש להשתמש בצ׳אט ג׳יפיטי – כמובן שעדיף ללמוד פייתון בצורה מסודרת, אבל גם אם לא – אפשר לעשות דברים בסיסיים עם אפס ידע ואפילו הידע יגיע לבד ככל שתמשיכו לעבוד איתו.

אני אתן עכשיו תרגיל – נסו להשתמש בצ׳אט ג׳יפיטי על מנת למצוא את התשובה – תגרמו למנורה הכחולה להבהב. אפשר ורצוי לתת קוד שעובד כדוגמה. למשל:


Refactor the following code to make the internal led blink.
###
import machine

# Define the LED pin (usually it's GPIO2 for the onboard LED)
LED_PIN = 2

# Set up the pin for output
led = machine.Pin(LED_PIN, machine.Pin.OUT)

# Turn on the LED 
led.value(1)
###

ה-### נועדו לסמן קוד או בלוק של טקסט לצ׳אט ג׳יפיטי. הוא גם יתן הסבר וגם יתן לכם קוד.

במאמר הבא נמשיך עם הסימולטור ונבנה מעגל חשמלי ונלמד על העקרונות שלו בלי ללכלך את הידיים – גם שם נעזר בצ׳אט ג׳יפיטי על מנת לכתוב קוד.

פוסטים נוספים שכדאי לקרוא

DALL·E 2023-10-21 22.28.58 - Photo of a computer server room with red warning lights flashing, indicating a potential cyber threat. Multiple screens display graphs showing a sudde
יסודות בתכנות

מבוא לאבטחת מידע: IDOR

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

ספריות ומודולים

מציאת PII באמצעות למידת מכונה

כך תגנו על משתמשים שלכם שמעלים מידע אישי רגיש כמו תעודות זהות באמצעות שירות אמאזוני.

תמונה מצוירת של רובוט שמנקה HTML
יסודות בתכנות

סניטציה – למה זה חשוב

הסבר על טכניקה פשוטה וידועה מאד שאנו מפעילים על מידע לפני שאנחנו מציגים אותו ב-HTML באפליקציה או באתר.

גלילה לראש העמוד