מה נלמד כאן
- מספרים אקראיים ומודול
random - זרע אקראיות
- קובייה אלקטרונית
קובייה בלי קובייה

לוחצים, ומספר בין 1 ל-6 מופיע על התצוגה.
הידע שצריך
1. שלושת השלבים
הדק (לחיצה) → הגרלה → תצוגה.
2. האמת על אקראיות במחשב
⚠️ מחשב לא יודע לייצר אקראיות אמיתית. מה שהוא מייצר הוא סדרה שנראית אקראית — תוצאה של חישוב. אלה מספרים פסאודו-אקראיים.
3. זרע האקראיות
נקודת ההתחלה נקבעת על ידי זרע (seed). אם הזרע זהה בכל הפעלה — הסדרה זהה. קובייה כזו חסרת ערך.
הפתרון — והרעיון היפה של השיעור:
from machine import ADC, Pin
import random
adc = ADC(Pin(34)) # פין שלא מחובר לכלום
noise = adc.read()
random.seed(noise)
קוראים פין אנלוגי שלא מחובר לשום דבר.
פין צף כזה קולט רעש חשמלי אקראי — בדיוק אותו "זבל" שבשיעור 4 היה בעיה שפתרנו עם Pull-Up. כאן הוא בדיוק מה שאנחנו רוצים.
אותה תופעה פיזיקלית — פעם בעיה, פעם פתרון.
4. random.randint
random_int = random.randint(1, 6)
⚠️ שימו לב להבדל מ-Arduino: שם
random(1, 7)החזירה 1 עד 6 (הגבול העליון לא נכלל). בפייתוןrandint(1, 6)מחזירה 1 עד 6 — שני הגבולות נכללים.זו טעות קלאסית למי שעובר בין השפות.
הניסוי
המטרה: לחיצה מגרילה 1 עד 6 ומציגה.
רשימת רכיבים
| הרכיב | כמות |
|---|---|
| לוח ESP32 | 1 |
| לוח ניסוי 400 נקודות | 1 |
| תצוגת שבעה מקטעים | 1 |
| לחצן | 1 |
| נגד 220Ω | 8 |
| נגד 10kΩ | 1 |
התרשים החשמלי

החיבור

הקוד
from machine import Pin, ADC
import random
import time
pin_list = [5, 16, 17, 18, 19, 23, 12, 13]
pins = [Pin(p, Pin.OUT) for p in pin_list]
number_list = [
[1,1,1,1,1,1,0,0], [0,1,1,0,0,0,0,0], [1,1,0,1,1,0,1,0],
[1,1,1,1,0,0,1,0], [0,1,1,0,0,1,1,0], [1,0,1,1,0,1,1,0],
[1,0,1,1,1,1,1,0], [1,1,1,0,0,0,0,0], [1,1,1,1,1,1,1,0],
[1,1,1,1,0,1,1,0],
]
button = Pin(14, Pin.IN)
# זרע מרעש של פין לא מחובר
adc = ADC(Pin(34))
adc.atten(ADC.ATTN_11DB)
random.seed(adc.read())
def display_number(num):
if num < 0 or num > 9:
return
for i in range(8):
pins[i].value(number_list[num][i])
while True:
if button.value() == 0:
time.sleep(0.2)
while button.value() == 0:
pass
display_number(random.randint(1, 6))
מה אמור לקרות

נסו בעצמכם
- הסירו את
random.seedוהפעילו מחדש כמה פעמים. אותם מספרים? עכשיו הבנתם. - הוסיפו אנימציית הטלה: ספרות מתחלפות מהר לפני שהתוצאה נעצרת.
- ספרו 100 הטלות. כמה פעמים יצא כל מספר?
- הוסיפו זמזם בכל הטלה.
- ב-Shell:
import randomואזrandom.randint(1,6)כמה פעמים.


