PDA

צפייה בגרסה מלאה : קופסת "שנה טובה" מבוססת Arduino



Gold
21-10-2019, 13:37:38
מה הקופסה עושה?
הקופסה נפתחת כאשר לוחצים על הקוד הנכון (אבל רק כשלוחצים ביחד על הספרות אז היא נפתחת) .
*והקוד ניתן לשינוי בקלות!
*בנוסף הקופסה נהפכת גם ל"don’t touch me" בשינוי קליל. בתגובה הבאה אוסיף סרטון מיוטיוב על קופסת "don’t touch me".

מדוע בניתי את הקופסה?
בניתי את קופסת "שנה טובה" בשביל חדר בריחה שהכנתי למשפחה שלי לערב ראש השנה בשביל גיבוש וללמוד תכנות ארדואינו בC++-.

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

זה מתאים לילדים?:(
ברור! אני בת 12 ותכנתתי את הקופסה הזאת לבד:p! (רק אם הסברים של אבא וגוגל), יותר מזה אני יכולה להסביר לכם כל שורה בתוכנית, וגם לילדים יהיה יותר קל ללמוד את זה, וזה יעזור להם בעתיד (אם זה בתכנות, אנגלית או יצירתיות!). מלבד זאת, לבנות את הקופסה (כולל הכל) לוקח יומיים שלוש לא יותר! בניתי את זה ביומיים כולל כמה שעות של הפסקה בים ביום השני, ממש כמו תיכנות מוצר בחיים האמיתיים וזה מצטרף לרשימת הדברים שהילדים שלכם ו/או אתם תלמדו.
לפי דעתי הילדים שלכם ואתם תהנו מאוד מבנית הקופסה תכנתתי. ועל הדרך תלמדו מיליארד דברים!

150135

150136

150137

150138

וסרטון קצר של הקופסה בפעולה :-)

150141


*מתכננת לבנות גם את קופסת "don’t touch me" ולהשתמש ב-ESP במקום ארדואינו

Gold
21-10-2019, 13:54:53
כמו שהבטחתי קופסת "don't touch me"
כדי לכם לראות, מצחיק מאוד!;)

https://www.youtube.com/watch?v=tGCW8xftdOA

Gold
21-10-2019, 13:56:53
וכמעט שכחתי את הקוד


#include <Servo.h>

Servo myservo;


void setup() {
myservo.attach(10);
for (int m = 0 ; m <= 9 ; m++ ){
pinMode(m, INPUT);
digitalWrite(m, HIGH);
for (int n = 1 ; n <= 3 ; n++)
myservo.write(10);
delay(15);
myservo.write(20);
}
}
void loop() {
if (!digitalRead(0) && digitalRead(1) && digitalRead(2) && digitalRead(3) && digitalRead(4) && digitalRead(5) && digitalRead(6) && !digitalRead(7) && !digitalRead(8) && digitalRead(9)) {
myservo.write(100);
delay(5000);
myservo.write(40);
}
}

TAOTAO
22-10-2019, 10:14:15
מגניב, אחלה רעיון :D

Gold
22-10-2019, 19:07:00
היי שמתי לב שחלק מהקוד שגוי, הסרוו אמור לנקוש שלוש פעמים בהדלקת הארדואינו כדי לתת לנו סימן שהתוכנית עובדת.
הינה הקוד התקין:


#include <Servo.h>

Servo myservo;


void setup() {
myservo.attach(10);
for (int m = 0 ; m <= 9 ; m++ ){
pinMode(m, INPUT);
digitalWrite(m, HIGH);
for (int n = 1 ; n <= 3 ; n++)
myservo.write(10);
delay(100);
myservo.write(20);
delay(100);
}
}
void loop() {
if (!digitalRead(0) && digitalRead(1) && digitalRead(2) && digitalRead(3) && digitalRead(4) && digitalRead(5) && digitalRead(6) && !digitalRead(7) && !digitalRead(8) && digitalRead(9)) {
myservo.write(100);
delay(5000);
myservo.write(40);
}
}