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

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

הנה חמש דוגמאות אמיתיות:
| היצור | התכונה | היישום |
|---|---|---|
| שפירית | יציבות וגמישות בתעופה | רחפני ארבעה מנועים |
| שלדג | מקור ארוך שחודר מים בלי התזה | חרטום רכבת הקצף |
| עכביש | קורים חזקים יותר מפלדה | סיבים סינתטיים בחוזק גבוה |
| שממית | הליכה על קירות חלקים | דבקים ביוניים ננומטריים |
| פרפר | תנועת כנפיים קלה וקצבית | רובוטים מעופפים |
2. המנגנון המכני

הפרפר משלב שני מנגנונים מכניים קלאסיים:
תמסורת גלגלי שיניים

מעבירה תנועה סיבובית מרכיב אחד לשני, ותוך כדי משנה מהירות, כיוון או מומנט. גלגל קטן שמסובב גלגל גדול — מאט את התנועה ומגביר את הכוח.
מנגנון ארכובה-מוט

הופך תנועה סיבובית לתנועת נדנוד או תנועה קווית הלוך ושוב. הוא בנוי משלושה חלקים:
- ארכובה (AB) — מחוברת לציר המנוע ומסתובבת
- מוט מחבר (BC) — נע קדימה ואחורה
- מוט מונע (CD) — מבצע את הנדנוד

כשהארכובה AB משלימה סיבוב של 360°, המוט BC נע, והוא מניע את CD לנדנוד.
וזה בדיוק מה שקורה בפרפר: המנוע מסתובב → גלגלי השיניים מעבירים ומאטים → הארכובה הופכת את הסיבוב לנדנוד → הכנפיים מתנופפות.

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










































הניסוי
המטרה: החיישן מזהה מרחק. מתחת ל-20 ס"מ — הכנפיים מתנופפות. מעל — נעצרות.
רשימת רכיבים
| הרכיב | כמות |
|---|---|
| לוח ESP32 | 1 |
| חיישן אולטרסוני | 1 |
| דרייבר מנועים | 1 |
| מנוע DC | 1 |
הקוד
#define trigPin 5
#define echoPin 16
#define motor1A 17
#define motor1B 18
float thresholdDistance = 20.0;
void setup() {
Serial.begin(115200);
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
pinMode(motor1A, OUTPUT);
pinMode(motor1B, OUTPUT);
}
void loop() {
float distance = getDistance();
Serial.print("Distance: ");
Serial.print(distance);
Serial.println(" cm");
if (distance != -1 && distance < thresholdDistance) {
analogWrite(motor1B, 255); // מתנופף
analogWrite(motor1A, 0);
} else if (distance != -1 && distance >= thresholdDistance) {
analogWrite(motor1B, 0); // עוצר
analogWrite(motor1A, 0);
}
delay(100);
}
float getDistance() {
digitalWrite(trigPin, LOW); delayMicroseconds(2);
digitalWrite(trigPin, HIGH); delayMicroseconds(10);
digitalWrite(trigPin, LOW);
unsigned long pulseTime = pulseIn(echoPin, HIGH, 5000); // פסק זמן
if (pulseTime > 0) {
return pulseTime * 0.0343 / 2;
} else {
return -1; // אין הד — מחזירים ערך מיוחד
}
}
שתי נקודות חשובות בקוד
1. פסק זמן ב-pulseIn:
pulseIn(echoPin, HIGH, 5000)
הפרמטר השלישי הוא פסק זמן של 5000 מיקרו-שניות. בלעדיו, אם אין הד — התוכנית תיתקע ותחכה לנצח. עם פסק זמן היא ממשיכה.
2. הערך -1:
הפונקציה מחזירה -1 כשאין מדידה תקינה, ו-loop בודקת את זה (distance != -1). זו דרך מסודרת לסמן "אין תשובה" בלי לבלבל אותה עם מרחק אמיתי.
זו קפיצת מדרגה מהשיעורים הקודמים. שם החזרנו 0 כשלא היה הד וזה התנגש עם מרחק קטן. כאן יש ערך שגיאה ייעודי. ככה כותבים קוד אמין.
נסו בעצמכם
- שנו את הסף מ-20 ל-40 ס"מ. איך זה משנה את התנהגות הפרפר?
- הוסיפו מהירויות שונות: ככל שקרובים יותר, הכנפיים מהירות יותר.
- הסירו את פסק הזמן מ-
pulseInוכוונו את החיישן לחלל פתוח. מה קורה? - שלבו עם שיעור 6: הפרפר מתנופף רק כשיש גם תנועה וגם אור.
- צפו במנגנון בפעולה והסבירו: כמה נדנודים לכל סיבוב של המנוע?


