דילוג לתוכן

ארדואינו

4 נושאים 6 פוסטים
  • מדריך | מדריך מקיף לעולם הארדואינו

    2
    0 הצבעות
    2 פוסטים
    30 צפיות
    אלישיא
    מדריך מתקדם לארדואינו אונו ו-ESP32 תוכן עניינים מבוא השוואה בין Arduino Uno ל-ESP32 ניהול זיכרון מתקדם קושחות מותאמות אישית MicroPython תקשורת אלחוטית חיישנים ופלטים מתקדמים דוגמאות קוד מבוא

    Arduino Uno ו-ESP32 הם שני מיקרו-בקרים פופולריים המשמשים למגוון רחב של פרויקטים אלקטרוניים. בעוד שה-Arduino Uno מתאים למתחילים ולפרויקטים בסיסיים, ה-ESP32 מציע יכולות מתקדמות יותר כמו Wi-Fi ו-Bluetooth מובנים.

    השוואה בין Arduino Uno ל-ESP32 Arduino Uno מעבד: ATmega328P (16 MHz) זיכרון RAM: 2KB זיכרון Flash: 32KB פינים דיגיטליים: 14 פינים אנלוגיים: 6 ESP32 מעבד: Dual-core Xtensa LX6 (240 MHz) זיכרון RAM: 520KB זיכרון Flash: עד 16MB פינים דיגיטליים: עד 34 פינים אנלוגיים: עד 18 Wi-Fi ו-Bluetooth מובנים ניהול זיכרון מתקדם Arduino Uno // שימוש ב-PROGMEM לשמירת מחרוזות בזיכרון התוכנית const char text[] PROGMEM = "טקסט ארוך שיישמר בזיכרון Flash"; // שימוש ב-malloc ו-free לניהול זיכרון דינמי int* dynamicArray = (int*)malloc(10 * sizeof(int)); free(dynamicArray); ESP32 // שימוש ב-PSRAM (אם קיים) #include <esp_heap_caps.h> void* ptr = heap_caps_malloc(1000, MALLOC_CAP_SPIRAM); // שימוש ב-Non-Volatile Storage (NVS) #include <Preferences.h> Preferences preferences; preferences.begin("my-app", false); preferences.putInt("counter", 42); קושחות מותאמות אישית Arduino Uno שימוש ב-Arduino IDE עם Bootloader מותאם: avrdude -c arduino -p atmega328p -P COM3 -b 115200 -U flash:w:custom_firmware.hex ESP32 בניית קושחה מותאמת עם ESP-IDF: idf.py menuconfig idf.py build idf.py -p COM3 flash שימוש ב-esptool לצריבת קושחה: esptool.py --port COM3 write_flash 0x1000 custom_firmware.bin MicroPython התקנת MicroPython על ESP32 esptool.py --port COM3 erase_flash esptool.py --port COM3 write_flash -z 0x1000 esp32-20220117-v1.18.bin דוגמת קוד MicroPython from machine import Pin import time led = Pin(2, Pin.OUT) while True: led.value(not led.value()) time.sleep(1) תקשורת אלחוטית ESP32 Wi-Fi דוגמת קוד #include <WiFi.h> const char* ssid = "MyNetwork"; const char* password = "MyPassword"; void setup() { Serial.begin(115200); WiFi.begin(ssid, password); while (WiFi.status() != WL_CONNECTED) { delay(1000); Serial.println("מתחבר ל-WiFi..."); } Serial.println("מחובר!"); Serial.println(WiFi.localIP()); } חיישנים ופלטים מתקדמים דוגמת קוד ל-I2C #include <Wire.h> void setup() { Wire.begin(); Serial.begin(115200); } void loop() { Wire.beginTransmission(0x68); // כתובת I2C של החיישן Wire.write(0x6B); // רגיסטר Power Management Wire.write(0); // מפעיל את החיישן Wire.endTransmission(true); Wire.requestFrom(0x68, 14, true); // קריאת נתונים מהחיישן // עיבוד הנתונים... } דוגמאות קוד דוגמה 1: מערכת RTOS על ESP32 #include <freertos/FreeRTOS.h> #include <freertos/task.h> void Task1(void * parameter) { for(;;) { Serial.println("Task 1"); vTaskDelay(1000 / portTICK_PERIOD_MS); } } void Task2(void * parameter) { for(;;) { Serial.println("Task 2"); vTaskDelay(2000 / portTICK_PERIOD_MS); } } void setup() { Serial.begin(115200); xTaskCreatePinnedToCore(Task1, "Task1", 10000, NULL, 1, NULL, 0); xTaskCreatePinnedToCore(Task2, "Task2", 10000, NULL, 1, NULL, 1); } void loop() { // הלולאה הראשית ריקה כי אנחנו משתמשים ב-RTOS } טיפים מתקדמים השתמשו ב-Serial.printf() על ESP32 לפלט יעיל יותר: Serial.printf("ערך חיישן: %d, טמפרטורה: %.2f\n", sensorValue, temperature); שימוש ב-Deep Sleep למקסום חיי סוללה: #define uS_TO_S_FACTOR 1000000 // המרה ממיקרו-שניות לשניות #define TIME_TO_SLEEP 5 // זמן שינה בשניות void setup() { esp_sleep_enable_timer_wakeup(TIME_TO_SLEEP * uS_TO_S_FACTOR); esp_deep_sleep_start(); } שימוש ב-watchdog timer למניעת קריסות: #include <esp_task_wdt.h> void setup() { esp_task_wdt_init(30, true); // מאתחל watchdog של 30 שניות esp_task_wdt_add(NULL); // מוסיף את הליבה הנוכחית למעקב } void loop() { esp_task_wdt_reset(); // מאפס את ה-watchdog // קוד נוסף... }
  • הכרה בסיסית של ארדואינו אונו

    2
    0 הצבעות
    2 פוסטים
    10 צפיות
    אלישיא
    מדריך לארדואינו אונו: מבוא למתחילים

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

    מהו ארדואינו?

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

    המטרה העיקרית

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

    היתרון העיקרי

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

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

    הארדואינו מורכב ממרכיבים בסיסיים:

    מיקרו-בקר (Microcontroller): רכיב שאחראי על ביצוע הקוד שאתה כותב. חיבור USB: מאפשר חיבור המחשב לארדואינו לצורך תכנות והספקת מתח. 14 פינים דיגיטליים: לפלט/קלט דיגיטלי (כמו הפעלה וכיבוי של רכיבים). 6 פינים אנלוגיים: לקריאת ערכים משתנים כמו ערכי מתח מחיישנים. מייצב מתח (5V): מספק יציבות במתח שמועבר למעגלים. סביבת הפיתוח (IDE)

    Arduino IDE הוא הכלי שבו כותבים את הקוד עבור הארדואינו. הקוד נכתב בשפות C ו-C++, ויש המון דוגמאות זמינות בספריית ה-IDE.

    שתי הפונקציות החשובות ביותר: setup() - מתבצעת פעם אחת כאשר הלוח מקבל חשמל. משמשת בדרך כלל להגדרת הפינים. loop() - מבצעת פעולות חוזרות ונשנות כל עוד הלוח דולק.

    דוגמה בסיסית:

    void setup() { pinMode(13, OUTPUT); // הגדרת פין 13 כפלט } void loop() { digitalWrite(13, HIGH); // הדלקת הנורה delay(1000); // המתנה של 1000 מילישניות (שנייה) digitalWrite(13, LOW); // כיבוי הנורה delay(1000); // המתנה של שנייה נוספת } לוחות הרחבה (Shields)

    לארדואינו קיימים לוחות הרחבה שניתן לחבר אליו בקלות על מנת להוסיף לו יכולות נוספות. דוגמאות כוללות:

    לוח לרשת אלחוטית (WiFi Shield): מוסיף קישוריות WiFi. לוח מנועים (Motor Shield): מאפשר שליטה במנועים. לוח לרשת מקומית (Ethernet Shield): מאפשר חיבור לרשתות מקומיות. דוגמאות לשימושים בארדואינו מנעול לדלת בנקישה סודית: פתיחת דלת על ידי סדרת נקישות על החיישן. רובוט פותר קובייה הונגרית: תוכנית שמניעה רובוט לפתרון קובייה הונגרית. שלט רחוק אוניברסלי: יצירת שלט אוניברסלי לתפעול מכשירים שונים. אוסצילוסקופ קוד פתוח: כלי למדידת תדרים וזרמים במעגל חשמלי. קהילת הארדואינו

    הארדואינו פותח על ידי סטודנטים באיטליה ושואב את שמו מבר מקומי. המיקרו-בקר המשמש בארדואינו הוא בדרך כלל מסדרת AVR של חברת Atmel.

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

    ההבדל בין דיגיטלי לאנלוגי פינים דיגיטליים: עובדים ב-2 מצבים בלבד – פלט או קלט, כאשר הם מבוססים על 0 (נמוך) או 1 (גבוה). לדוגמה: הדלקת נורית (LED) או קריאה ממתג. פינים אנלוגיים: עובדים על סקלת מתח רציפה. לדוגמה, קריאת ערך מחיישן טמפרטורה שנותן טווח של ערכים (לא רק 0 או 1).
  • מדריך | מדריך מקיף לארדואינו

    1
    0 הצבעות
    1 פוסטים
    2 צפיות
    אין תגובות
  • מדריך | עולם ה-Arduino וה-IoT

    1
    0 הצבעות
    1 פוסטים
    3 צפיות
    אין תגובות