فهرست مطالب:
- تدارکات
- مرحله 1: رزبری پای خود را تنظیم کنید
- مرحله 2: سیستم صوتی خود را کار کنید
- مرحله 3: آزمایش پخش صداهای Bell و/یا ایجاد صداهای جدید
- مرحله 4: کد را نصب کرده و برنامه خود را تنظیم کنید
- مرحله 5: اجرای خودکار با Crond را خودکار کنید
- مرحله 6: سفارشی کنید و لذت ببرید
تصویری: زنگ مدرسه برای دانش آموزان از راه دور: 6 مرحله
2024 نویسنده: John Day | [email protected]. آخرین اصلاح شده: 2024-01-30 08:52
با همه گیری کووید -19 ، بسیاری از مدارس کودکان از راه دور تحویل داده اند. این زنگ مدرسه خانگی راهی سرگرم کننده برای ماندن در برنامه است که از رزبری پای و بلندگوی USB استفاده می کند. می توانید با بچه خود کار کنید و آنها می توانند در مورد برنامه نویسی بیاموزند و می توانند "زنگ بزنند". من این را برای دخترم که به کلاس 7 می رود (در حال حاضر از طریق تحویل از راه دور) ساختم ، و به خوبی کار می کند تا ما را به موقع نگه دارد.
تدارکات
برای این پروژه ، شما نیاز دارید:
- رایانه Raspberry Pi - اگر WiFi دارید بهتر کار می کند ، من از RPi 3B از کیت Kano استفاده کردم
- بلندگو - من از بلندگوی USB استفاده کردم
این کد می تواند به راحتی روی رایانه لینوکس دانش آموز شما یا حتی میکروکنترلری که میکروپایتون را اجرا می کند اجرا شود ، مادامی که میکروکنترلر مکانیزمی برای بدست آوردن تاریخ/زمان کنونی داشته باشد. همچنین می توان از هر بلندگوی تقویت شده یا حتی زنگ رله / آنالوگ سردتر استفاده کرد.
مرحله 1: رزبری پای خود را تنظیم کنید
منابع زیادی برای راه اندازی رایانه رزبری پای وجود دارد ، بنابراین من شما را به یکی از مواردی که گوگل پیدا کرده است ارجاع می دهم. نکته مهم این است که رایانه شما راهی برای بدست آوردن تاریخ و زمان صحیح دارد. اکثر رایانه های رزبری پای مجهز به WiFi از پروتکل NTP برای تنظیم زمان از اینترنت استفاده می کنند ، این راهی است که من زمان صحیح را دریافت کردم. من RPi خود را "بدون سر" تنظیم کردم ، به این معنی که صفحه کلید یا مانیتور ندارد ، اما از طریق پوسته ایمن (SSH) از طریق اینترنت قابل دسترسی است. اگر با RPi مهارت دارید ، می توانید این تنظیم را بدون صفحه کلید / ویدئو / ماوس انجام دهید ، اما تنظیم pi با این لوازم جانبی آسان تر است.
توجه داشته باشید که نیازی به استفاده از رابط گرافیکی ندارم ، بنابراین فقط "Raspberry Pi OS (32-bit) Lite" را بارگیری کردم ، که برای بارگیری کوچکتر و سریعتر است و سریعتر راه اندازی می شود.
شبکه Raspberry Pi و گزینه های رابط را پیکربندی کنید
$ sudo raspi-config
در تنظیمات ، موارد زیر را انجام دهید:
- رمز عبور را تغییر دهید - ابتدا این کار را انجام دهید ، امیدوارم قبل از آنلاین شدن!
-
در "گزینه های شبکه" ،
- نام میزبان را تغییر دهید. من از نام میزبان استفاده کردم: "زنگ مدرسه".
- به LAN بی سیم خود متصل شوید (اگر در راه اندازی این کار را نکرده اید)
- در بخش "گزینه های رابط" ، دسترسی SSH را روشن کنید
- همیشه خوب است که گزینه "Update" را اجرا کنید
پس از انجام این کار و راه اندازی مجدد ، باید بتوانید با استفاده از یک سرویس گیرنده SSH از رایانه دیگری در همان شبکه محلی به Raspberry Pi متصل شوید. با استفاده از اطلاعات زیر به آن متصل شوید:
نام میزبان: schoolbell.local
کاربر: pi رمز عبور: whateveryousetitas
از طریق جعبه لینوکس ، این کار به سادگی تایپ این خط فرمان در اعلان $ است:
$ ssh [email protected]
… رمز عبور را فوراً وارد کنید
با این کار وارد سیستم می شوید و می توانید صحت زمان رزبری پای را بررسی کنید. در خط فرمان ، دستور date را تایپ کرده و پاسخ را بررسی کنید:
pi@schoolbell: ~ $ date
پنج شنبه 3 سپتامبر 20:44:34 AKDT 2020
امیدوارم این زمان فعلی باشد. اگر صحیح نیست ، در مورد راه اندازی NTP در Raspberry Pi گوگل کنید.
مرحله 2: سیستم صوتی خود را کار کنید
ما در حال پخش فایل های MP3 برای زنگ ها هستیم ، بنابراین ما باید نرم افزاری را برای رمزگشایی این فایل های صوتی بارگیری کنیم. من با تایپ این دستور بسته mpg321 را دریافت کردم:
pi@schoolbell: su $ sudo apt-get install mpg321
برای نصب این نرم افزار دستورات را دنبال کنید.
من از بلندگوی USB قدیمی استفاده کردم ، که درایور عجیبی داشت و به طور کامل به عنوان کارت صدای پیش فرض پیکربندی نشده بود ، بنابراین متوجه شدم که می توانم اسپیکر را با استفاده از آدرس سخت افزاری آن "هک" کنم. پس از اتصال بلندگو ، از دستور 'aplay -l' برای لیست دستگاه های صوتی استفاده کردم:
pi@schoolbell: ap $ aplay -l
**** لیست دستگاه های سخت افزاری PLAYBACK **** کارت 0: هدفون [هدفون bcm2835] ، دستگاه 0: هدفون bcm2835 [هدفون bcm2835] زیر دستگاهها: زیر دستگاه #0: زیر دستگاه #0 زیر دستگاه #1: زیر دستگاه #1 زیر دستگاه #2: زیر دستگاه #2 زیر دستگاه #3: زیر دستگاه #3 زیر دستگاه #4: زیر دستگاه #4 زیر دستگاه #5: زیر دستگاه #5 زیر دستگاه #6: زیر دستگاه #6 زیر دستگاه #7: زیر دستگاه #7 کارت 1: CODEC [USB Audio CODEC] ، دستگاه 0: USB Audio [USB Audio] زیر دستگاهها: زیر دستگاه #0: زیر دستگاه #0
دستگاه موردنظر من دستگاه پایینی است ، کارت 1 ، دستگاه 0.
من اسپیکر را با "تست بلندگو" آزمایش کردم ، با استفاده از دستگاه "hw: 1، 0" ، یعنی کارت سخت افزار 1 ، دستگاه 0
pi@schoolbell: speaker $ speaker -test -D hw: 1، 0
این برنامه نویز را از بلندگوها خارج می کند. از سر و صدا لذت ببرید و وقتی عصبانی می شوید ، کنترل C را تایپ کنید. اگر صدایی نمی شنوید ، google را امتحان کنید.
حالا شما صدا دارید!
مرحله 3: آزمایش پخش صداهای Bell و/یا ایجاد صداهای جدید
برای صدای زنگ من ، صدای "bing-bong" را از "freesound.org" بارگیری کردم. با تشکر از Benboncan برای در دسترس قرار دادن این صدا:
freesound.org/people/Benboncan/sounds/93646/
می توانید صدا را مستقیماً پخش کنید. من می توانم مستقیماً نسخه mp3 این فایل را با تایپ این دستور در رایانه رزبری پای (با فرض اینکه روی WiFi قرار دارد) بارگیری کنم:
pi@schoolbell: ~ $ wget
سپس این فایل را تغییر نام دادم:
pi@schoolbell: m $ mv 93646_634166-hq.mp3 bing-bong-chime-hq.mp3
سپس آزمایش کردم که می توانم با این دستور زنگ را بزنم (خروجی را نشان می دهد):
pi@schoolbell: ~ $ mpg321 -a hw: 1، 0 bing-bong-chime-hq.mp3
MPEG 1.0/2.0/2.5 پخش کننده صوتی با عملکرد بالا برای لایه 1 ، 2 و 3. نسخه 0.3.2-1 (2012/03/25). نوشته و کپی رایت توسط جو درو ، اکنون توسط ناناکوس کریستوستوم و دیگران حفظ می شود. از کد افراد مختلف استفاده می کند. برای اطلاعات بیشتر به "README" مراجعه کنید! این نرم افزار به طور مطلق بدون گارانتی ارائه می شود! با ریسک خود استفاده کنید! پخش جریان MPEG از bing-bong-chime-hq.mp3… MPEG 1.0 لایه III ، 128 کیلوبیت بر ثانیه ، 44100 هرتز مونو [0:02] رمزگشایی bing-bong-chime-hq.mp3 به پایان رسید.
تبریک می گویم! شما صدا دارید.
با استفاده از کد ویرایش صدا "جسارت" در لپ تاپ ، برای تفریح بیشتر فایل را به "bing" و "bong" تقسیم کردم. می توانید از هرگونه فایل صوتی mp3 یا شاید فرمت دیگر (دیگران را آزمایش نکرده ام) استفاده کنید.
مرحله 4: کد را نصب کرده و برنامه خود را تنظیم کنید
کد یک اسکریپت پایتون است که تاریخ/زمان فعلی را دریافت می کند و اگر تاریخ روز هفته باشد و تعطیل نباشد ، بررسی می کند که آیا زمان با زمان زنگ مطابقت دارد و اگر باید.
ابتدا آن را به کار می اندازید ، سپس آن را به صورت خودکار هر دقیقه اجرا می کنید.
کد را از Github بارگیری کنید:
gist.github.com/BillSimpson/d7a1a531995c8b63492bb47ef8872618
من این کار را با ذخیره فایل در رایانه محلی و سپس استفاده از کپی امن (scp) برای قرار دادن آن بر روی Raspberry pi آسان می کنم.
در دستگاه محلی خود ، کد را از مرورگر خود کپی کنید ، سپس در یک فایل متنی بچسبانید و آن را با نام فایل "schoolbell.py" ذخیره کنید. سپس فایل را اسکرپ کنید:
local-machine: ~ $ scp schoolbell.py [email protected]:/
از شما خواسته می شود که گذرواژه کاربر pi را در schoolbell.local وارد کنید - گذرواژه را وارد کنید و فایل به طور ایمن کپی می شود. این دستور باید در همان دایرکتوری که اسکریپت پایتون ذخیره شده است اجرا شود و در فهرست اصلی کاربر pi کپی شود. می توانید به schoolbell.local ssh کنید و کد باید در آنجا باشد:
local-machine: ~ $ ssh [email protected]
سپس در schoolbell.local ، فایلها را لیست کنید (ممکن است فایلهای بیشتری را ببینید):
pi@schoolbell: ~ $ ls
bing-bong-chime-hq.mp3 schoolbell.py
حالا کد را ویرایش کنید تا برنامه زنگ خود را با استفاده از ویرایشگری مانند pico:
pi@schoolbell: ~ $ pico schoolbell.py
این کد دارای سه "فرهنگ لغت" است که آهنگ های زنگ را برای پخش ، زمان پخش آنها و تعطیلات را برای جلوگیری از آنها تعیین می کند ، زنگ آخر هفته ها به طور خودکار حذف می شوند.
به عنوان مثال ، فرهنگ لغت belltones عبارت است از:
زنگ = {
'warning': 'bing-bong-chime-hq.mp3'، 'start': 'bing-bong-chime-hq.mp3'، 'end': 'bing-bong-chime-hq.mp3'}
این سه نوع زنگ ، زنگ هشدار ، شروع کلاس و پایان را تعریف می کند. از آنجا که ما فقط یک زنگ داریم ، همه آنها به یک فایل اشاره می کنند ، اما اگر تن های مختلف ایجاد کنید ، می توانید آنها را تغییر دهید. حتی می توانید انواع دیگر زنگ ها را اضافه کنید. من همچنین با استفاده از یک ترکیب کننده گفتار برای گفتن زنگ ها بازی کردم ، اما دیگران در خانه آن را مورد توجه قرار ندادند.
فرهنگ لغت Bellschedule مشابه است ، اما "کلید" اکنون زمان زنگ است. شما باید از فرمت HH: MM با صفرهای پیشرو و زمان 24 ساعته (زمان نظامی) استفاده کنید.
bellschedule = {
'09: 00 ':' شروع '، # زنگ اتوبوس در حال آماده شدن است '09: 28': 'اخطار' ،….. '13: 58 ':' هشدار '، # برای دوره 4 '14: 00 ':' start '، '15: 00': 'end'}
مقدار در این کلید: جفت مقدار نوع زنگ مورد استفاده است و باید با یکی از زنگ های تعریف شده در بالا مطابقت داشته باشد.
در آخر ، فرهنگ لغت تعطیلات تاریخ تعطیلات را فهرست می کند. قالب YYYY-mm-dd است ، با صفرهای اصلی مطابق شکل.
تعطیلات = {
'2020-09-07', …. '2021-03-11', '2021-03-12' }
پس از اتمام ویرایش ، فایل را با خروج از ویرایشگر ذخیره کنید ، اگر از pico استفاده می کنید ، ctrl-X را تایپ کنید.
کد پایتون را اجرایی کنید:
pi@schoolbell: ~ $ chmod a+x schoolbell.py
این به همه کاربران اجازه می دهد کد را اجرا کنند ، "a" برای همه ، "+" برای اضافه کردن مجوز ، و "x" برای اجرا.
حالا کد را تست کرده و خروجی را مشاهده کنید. توجه داشته باشید که می توانید فایل را با تایپ نام فایل اجرا کنید اما باید با تایپ کردن "./" قبل از نام فایل ، آن را در فهرست فعلی قرار دهید:
pi@schoolbell: ~ $./schoolbell.py
این یک روز مدرسه است ، ساعت بررسی 21:35
کد به شما می گوید که روز مدرسه است (به عنوان مثال تعطیلات یا آخر هفته نیست) و می بیند که آیا زمان با زمان زنگ مطابقت دارد یا خیر. در این مورد ، زمان زنگ نبود ، بنابراین فقط تمیز خارج شد. اگر اتفاق می افتاد که زمان زنگ بود ، به صدا در می آمد.
برای آزمایش اینکه کد شما می تواند زنگ را اجرا کند ، از گزینه خط فرمان یک فایل برای پخش استفاده کنید. ما از فایل bing-bong خود استفاده خواهیم کرد:
pi@schoolbell: ~/schoolbell $./schoolbell.py bing-bong-chime-hq.mp3
این یک روز مدرسه است ، زمان بررسی 21:38 پخش کننده صوتی MPEG 1.0/2.0/2.5 با عملکرد بالا برای لایه های 1 ، 2 و 3. نسخه 0.3.2-1 (2012/03/25). نوشته و کپی رایت توسط جو درو ، در حال حاضر توسط ناناکوس کریستوستوم و دیگران حفظ می شود. …. خروجی بیشتر….
باید صدای زنگ را می شنیدی
اکنون کد را با استفاده از یک زمان به عنوان آرگومان آزمایش کنید. به یاد داشته باشید که زمان را با صفرهای پیشرو وارد کنید. به عنوان مثال ، برای آزمایش زنگ "اتوبوس مدرسه" در ساعت 9 صبح ، تایپ می کنم:
pi@schoolbell: ~ $./schoolbell.py 09:00
این باید باعث به صدا در آمدن زنگ شما شود! همچنین می توانید آزمایش کنید که در زمان های غیر زنگ به صدا در نمی آید.
مرحله 5: اجرای خودکار با Crond را خودکار کنید
cron 'daemon' زمانبندی است که کارهای تکراری را بر روی سیستم لینوکس اجرا می کند. بررسی می کند که آیا تاریخ/زمان با الگویی در جدول cron مطابقت دارد یا خیر و در صورت وجود کد را اجرا می کند. می توانید آن را با استفاده از دستور "crontab -e" ویرایش کنید:
pi@schoolbell: cr $ crontab -e
با این کار ویرایشگر فایل باز می شود و در انتهای این فایل ، خط زیر را اضافه می کنید:
* * * * * python3 /home/pi/schoolbell.py
این دستور به cron می گوید python3 را اجرا کند و اسکریپت شما را در فهرست اصلی خانه (/home/pi) اجرا کند. پنج *می گویند این باید هر دقیقه (اول *) ، هر ساعت (بعدی *…) ، هر روز از ماه ، هر ماه و هر روز از هفته اجرا شود.
اکنون ، هر دقیقه اسکریپت schoolbell.py اجرا می شود. در بیشتر دقایق ، کد اجرا می شود و می بیند که باید بدون زنگ زدن آن را ترک کند ، اما اگر به نظر برسد زمان زنگ خورد ، زنگ می زند.
توجه داشته باشید که چون cron فقط هر دقیقه اجرا می شود ، نمی توانید زنگ ها را دانه ای تر از دقیقه کنید. من فکر می کنم از لحاظ تئوری ممکن است که اگر سیستم شما خراب شود ، cron ممکن است چند ثانیه پس از پایان دقیقه اجرا نشود و زنگ را دیر کند. اگر به نحوی کرون یک دقیقه کامل اجرا نمی شد ، زنگ از دست می رفت.
نکته: برای تعطیلات طولانی مدت (به عنوان مثال تابستان) ، می توانید هشتگ (#) را به اولین نویسه این خط اضافه کنید ، که آن را به نظر تبدیل می کند و بنابراین اجرای آن را نادیده می گیرد. وقتی مدرسه شروع به کار کرد ، فقط # را حذف کنید و دوباره شروع به کار می کند.
مرحله 6: سفارشی کنید و لذت ببرید
اکنون ، شما باید یک سیستم زنگ مدرسه در خانه کار کنید و دانش آموز شما هرگز نباید در کلاس دیر کند.
می توانید این پروژه را با تغییر صدای زنگ سفارشی کنید.
- می توانید صدای زنگ بیگ بن را به صدا درآورید ، با صدای زنگ های چهار ساعته و ساعت ها.
- می توانید از سبک آزاد رپر مورد علاقه خود نمونه بگیرید.
- برای تمرکز بر مطالعه می توانید پیامهای غیرعلمی ارسال کنید.
در این دوران COVID ایمن باشید.
در مسابقه خانوادگی "Can't Touch This" نایب قهرمان شد
توصیه شده:
We are a Group of Tutorial 6 UQD10801 (Robocon1) دانش آموزان از Universiti Tun Hussein Onn مالزی (UTHM): صفحه کلید 4x4 و LCD آردوینو: 3 مرحله
We are a Group of Tutorial 6 UQD10801 (Robocon1) دانش آموزان از Universiti Tun Hussein Onn مالزی (UTHM): صفحه کلید 4x4 و LCD Arduino: صفحه کلیدها راهی عالی برای تعامل کاربران با پروژه شما هستند. می توانید از آنها برای حرکت در منوها ، وارد کردن گذرواژه ها و کنترل بازی ها و روبات ها استفاده کنید. در این آموزش ، نحوه تنظیم صفحه کلید در Arduino را به شما نشان خواهم داد. ابتدا توضیح خواهم داد که چگونه اردو
ESP8266 - سوکت کنترل از راه دور و از راه دور (امنیت سالمندان): 6 مرحله
ESP8266 - سوکت کنترل از راه دور و از راه دور (امنیت سالمندان): اطلاعات: این مونتاژ در صورت فراموشی وسایل وصل شده (عمدتا توسط افراد مسن مبتلا به آلزایمر) به منظور جلوگیری از گرم شدن بیش از حد ، آتش سوزی و حوادث است. پس از فعال شدن دکمه ، سوکت 110/220 VAC را به مدت 5 دقیقه دریافت می کند (دیگری
کنترل از راه دور جهانی از راه دور با Node-MCU: 12 مرحله
کنترل از راه دور جهانی با Node-MCU: سلام به همه و به این پروژه خوش آمدید! من یک شخص تنبل هستم و کابوس یک تنبل این است که وقتی متوجه می شوید که راه دور خیلی دور است ، تلویزیون تماشا کنید! متوجه شدم که اگر ریموتم را در دست داشته باشم هرگز خیلی دور نخواهد بود
مقدمه ای بر روباتیک برای دانش آموزان دبستانی با کنترل کننده مرغ مگس خوار: 18 مرحله
مقدمه ای بر روباتیک برای دانش آموزان دبستانی با کنترل کننده مرغ مگس خوار: اکثر ابزارهای رباتیک موجود در بازار امروز از کاربر می خواهند که نرم افزار خاصی را بر روی هارد دیسک خود بارگیری کند. زیبایی کنترل کننده روباتیک مرغ مگس خوار در این است که می توان آن را با استفاده از یک رایانه تحت وب مانند کروم بوک اجرا کرد. همچنین بوده است
کار با چندین کامپیوتر (برای دانش آموزان): 6 مرحله
کار با چندین کامپیوتر (برای دانش آموزان): کار با چندین کامپیوتر می تواند بسیار دشوار باشد. شما هرگز نمی دانید چه فایل هایی در کدام رایانه وجود دارد ، ممکن است با چندین نسخه از یک فایل دچار مشکل شوید ، و در نتیجه ، ممکن است فایل های خود را با هم گم کنید یا حداقل فایل های خود را داشته باشید