תכירו: Raspberry Pi Pico

בשנים האחרונות הוציאה קרן Raspberry Pi מחשבים קטנים שיועדו בהתחלה לקהל צעיר שרצה להיכנס לעולם המחשבים. מחירי המחשבים היו נמוכים מאוד, מה שגרם לחברות רבות להסתער על ההצעות של הקרן, ולקרן להוציא גרסאות שונות שמתאימות יותר לשוק המסחרי (כולל כל ה-Compute Module). אחד הדברים הטובים שניתן לאמר על הקרן – הוא שהקרן לא שכחה את הקהל המקורי והיא אף הוציאה לאחרונה את ה-Raspberry Pi 400 – מקלדת שבתוכה מחשב, כמו המחשבים שהיו בשנות ה-80 המאוחרות ושנות ה-90 המוקדמות.

לאחרונה הוציאה הקרן משהו חדש, שלא כולם יודעים איך “לבלוע”. פוסט זה ינסה להבהיר במה מדובר, במה זה שונה משאר לוחות ה-Pi ומדוע בעצם כל המתחרים של ה-Pi – די מתלהבים.

לפניכם מצד ימין ה-Pi Pico. מי שיסתכל מקרוב, יזהה משהו די מוזר: אין שום חיבורים למסך, יש חיבור מיקרו USB יחיד, נורת LED, הרבה חורים, כפתור, כמה שבבים ו.. זהו. מה זה?

ה-Pico, בניגוד לאחיו בסידרת ה-Raspberry Pi, אינו מחשב כללי מבוסס ARM (ולא, הוא לא מריץ לינוקס). מה שיש ב-Pico הוא בעצם מיקרו-בקר (Microcontroller) שמכיל כמה דברים, כמו מעבד +ARM-M0 דו ליבתי שרץ במהירות 133 מגהרץ, כ-264 קילובייט של זכרון סטטי, ו-2 מגהבייט אחסון Flash. הרעיון המרכזי כאן, שאין כאן OS כמו לינוקס, וכל מה שהבקר מריץ – רץ בזמן אמת.

ה-Pico עצמו לא יתן לך הרבה אם תרכוש אותו (הוא נמכר בזול: 4$ לחתיכה), הואיל ובברירת מחדל אין לך הרבה מול מה לעבוד, וזו בדיוק כל הנקודה של ה-Pico: את ה-Pico משלבים יחד עם חלקים אחרים (בשביל זה החורים בלוח) אם אנחנו רוצים לשלב סנסורים או אם אנחנו בכלל רוצים ליצור תקשורת כלשהי החוצה (ל-Pico אין WIFI או Bluetooth).

הקרן בנתה מיקרו-בקר שלראשונה פונה לקהל חדש – אלו שלא ממש חובבים/יודעים לכתוב ב-C ואף פעם לא תכנתו מיקרו-בקר. את ה-Pico אפשר לתכנת עם MicroPython שניתן להוריד למחשב, להתקין ל-Pico, וניתן בקלות לעבוד עם ה-Python, הן במצב REPL (כלומר – הכנסת פקודות וקבלת פלט בצורה מיידית דרך חיבור ה-USB של ה-Pico והתוכנה במחשב) או לשמור ב-2 מגהבייט Flash תוכנות פייתון ולהריץ אותן. כעת, כל מה שצריך זה הבנה די בסיסית בפייתון כדי להתחיל לתכנת מיקרו-בקר, וזו בהחלט גישה מרעננת.

אולם הקרן לא עצרה כאן ולא ניסתה להתחרות בלוחות של יצרנים אחרים, אלא להיפך: הקרן פנתה לכל ה”מתחרים” והציעה להם לבנות פתרונות שגם יתחרו ב-Pico וגם יתנו פונקציונאליות משלימה כמו תצוגה, אודיו, תקשורת, חיישנים ועוד, וחברות כמו Pimoroni, Adafruit, Arduino ואחרים – הכריזו על מוצרים חדשים שמבוססים על ה-RP2040 – המיקרו-בקר החדש של הקרן.

למי שתוהה איך המיקרו-בקר בהשוואה לאחרים: מדובר בסופו של דבר ב”מפלצת”. אם נשווה לדוגמא מול Arduino Uno, אז ל-UNO מהירות השעון של המיקרו-בקר היא 16 מגהרץ עם ליבה יחידה בשעה שה-Pico הוא עם ליבה כפולה ורץ במהירות 133 מגהרץ. ל-UNO יש 32K אחסון Flash בשעה של-Pico יש 2 מגהבייט, זכרון ל-UNO יש 2K ול-Pico יש 264K, ומבחינת מחיר – ה-Pico עולה 4$. אפשר לקנות באלי-אקספרס UNO ב-3-5$, אך יש גם סיכוי די גדול שתקבל מיקרו-בקר מזויף. לכן, גם אם אתה חובב ומשתמש ב-Arduino, תוכל לרכוש בקרוב את ה-Arduino Nano RP2040 Connect (בתמונה משמאל) ותוכל להשתמש בכל הספריות והכלים שאתה רגיל אליהם.

לסיכום: ה-Pico הוא כיוון חדש שהקרן לוקחת (לא, היא לא הולכת לרדת מסידרת ה-Pi בקרוב) בכך שהיא מפתחת מיקרו-בקר חדש (היא עבדה עליו במשך ה-6 שנים האחרונות) ולא מנסה להתחרות באחרים אלא להציע להם את המיקרו-בקר עם הרבה יותר פונקציות וביצועים יותר גבוהים, ובמחיר שחותך את רוב המתחרים. לראשונה – גם אלו שאין להם שום נסיון עם תכנות מיקרו-בקרים – יכולים להתחיל מאפס עם תיעוד עשיר ובמחיר שווה לכל נפש.

ה-LAB הבא פרק 10: חסימת פרסומות למכשירים בבית

קוראי בלוג זה הותיקים בוודאי יודעים על דעתי על פרסומות באתרים (אין לי בעיה עם פרסומות, כל עוד הם לא קופצים לך על הפרצוף ומפעילים מוסיקה בווליום בגלל שהעברת את העכבר בטעות ליידם ובוודאי לא פרסומות שגורמות למחשב לעבוד בצורה איטית!), ולכן החלטתי הפעם להדגים התקנה של אובונטו LTS עם PiHole, תוכנה בקוד חופשי שהופכת את המכונה שהיא רצה עליה לשרת DNS פנימי בבית/LAB כך שכל המשתמשים בבית שמשתמשים ברשת הפנימית/WIFI יוכלו לגלוש ללא פרסומות (כמעט).במילים אחרות, Pi Hole הוא מעין “פרוקסי” למכשירים/מחשבים בבית  שלך שמונע את הפרסומות מבלי שתצטרך להגדיר כל מכשיר/מחשב עם כל מיני חוסמי פרסומות.

לשם כך יש צורך ב-VM אבל למי שאין LAB או מערכת וירטואליזציה בבית, גם פתרון של Raspberry Pi-3 יעודי (ב-69$ כולל כל מה שצריך) יכול להיות פתרון מצוין לכך.

בעקרון מה ש-PiHole עושה הוא בעצם משמש כשרת DNS פנימי ויש צורך להגדיר בנתב הביתי את כתובת ה-DNS לשרות ה-DHCP אל ה-Pi Hole עצמו כך שכל בקשת DNS תעבור דרך האפליקציה ואם האתר מבקש גישה לשרת פרסומות, שרת הפרסומות חסום, וכך מקבלים גלישה טובה נטולת פרסומות (טוב, ברוב המקרים, לא כולם, במיוחד באתרים ישראליים ובפייסבוק). אם יש לכם שרת DNS פנימי כחלק מה-LAB, תוכלו להגדיר את ה-Pi Hole שיפנה אל שרת ה-DNS הפנימי הנוכחי שלכם ואם אתם רוצים שרת DHCP במקום שרות ה-DHCP של הנתב שלכם, אפשר לבטל שרות זה בנתב ולהפעיל זאת ב-Pi Hole.

בוידאו כאן תוכלו לראות הדגמה של הקמת שרת אובונטו LTS, הקמה והגדרות של Pi Hole.