Съдържание:

Училищен звънец за ученици от разстояние: 6 стъпки
Училищен звънец за ученици от разстояние: 6 стъпки

Видео: Училищен звънец за ученици от разстояние: 6 стъпки

Видео: Училищен звънец за ученици от разстояние: 6 стъпки
Видео: Детето ми се храни само със зеленчуци 2024, Юли
Anonim
Училищен звънец за студенти от разстояние
Училищен звънец за студенти от разстояние

С пандемията COVID-19 много детски училища са преминали дистанционно. Този звънец за домашно училище е забавен начин да спазвате графика, който използва Raspberry Pi и USB високоговорител. Можете да се справите с детето си и то да научи за програмиране и да „звъни на звънеца“. Създадох това за дъщеря си, която отива в 7 -ми клас (в момента чрез дистанционна доставка) и работи добре, за да ни държи навреме.

Консумативи

За този проект ще ви трябва:

  • Компютър Raspberry Pi - Най -добре работи, ако имате WiFi, използвах RPi 3B от комплект Kano
  • A Speaker - Използвах USB високоговорител

Кодът може лесно да се изпълнява на Linux компютър на вашия ученик или дори на микроконтролер, работещ с микропитон, стига микроконтролерът да има някакъв механизъм за получаване на текущата дата/час. Също така може да се използва всеки усилен говорител или дори по -хладен реле / аналогов звънец.

Стъпка 1: Настройте вашия Raspberry Pi

Настройте своя Raspberry Pi
Настройте своя Raspberry Pi

Има голям брой ресурси за настройка на компютър с Raspberry Pi, затова ви насочвам към такъв, който Google намира. Важното е, че вашият компютър има начин да получи правилната дата и час. Повечето съвременни компютри Raspberry Pi с активиран WiFi използват NTP протокол, за да зададат времето от интернет, което е начинът, по който получих правилното време. Настроих моя RPi да бъде „без глава“, което означава, че няма клавиатура или монитор, но е достъпен чрез защитена обвивка (SSH) през интернет. Ако сте добри с RPi, можете да направите тази настройка без клавиатура / видео / мишка, но е по -лесно просто да настроите pi с тези аксесоари.

Обърнете внимание, че не трябваше да използвам графичния интерфейс, затова просто изтеглих „Raspberry Pi OS (32-битова) Lite“, която е по-малка и по-бърза за изтегляне и се зарежда по-бързо.

Конфигурирайте мрежовите и интерфейсните опции на Raspberry Pi

$ sudo raspi-config

В конфигурацията направете следното:

  • Променете паролата - направете това първо, надявам се, преди да влезете онлайн!
  • В „Мрежови опции“,

    • Променете името на хоста. Използвах името на хоста: „schoolbell“.
    • Свържете се с вашата безжична LAN (ако не сте го направили в настройката)
  • Под „Опции за взаимодействие“включете SSH достъпа
  • Винаги е добре да стартирате опцията „Актуализиране“

След като направите това и рестартирате, трябва да можете да се свържете с Raspberry Pi от друг компютър в същата локална мрежа, като използвате SSH клиент. Свържете се с него, като използвате следните идентификационни данни:

име на хост: schoolbell.local

потребител: pi парола: whateveryousetitas

От кутия на Linux това е толкова просто, колкото да напишете този команден ред в подканата $:

$ ssh [email protected]

… въведете парола при подкана

Това ще ви влезе и можете да проверите дали часът на Raspberry Pi е правилен. В командния ред въведете командата date и проверете отговора:

pi@schoolbell: ~ $ дата

Чет 3 септември 20:44:34 AKDT 2020

Надявам се това да е сегашното време. Ако не е правилно, потърсете в Google за настройка на NTP на Raspberry Pi.

Стъпка 2: Включете вашата звукова система

Накарайте вашата звукова система да работи
Накарайте вашата звукова система да работи

Ще свирим MP3 файлове за камбаните, така че трябва да изтеглим софтуер за декодиране на тези аудио файлове. Получих пакета mpg321, като въведох тази команда:

pi@schoolbell: ~ $ sudo apt-get install mpg321

Следвайте подканите, за да инсталирате този софтуер.

Използвах стар USB високоговорител, който имаше странен драйвер и не се конфигурира напълно автоматично като звукова карта по подразбиране, така че открих, че мога да "хакна" високоговорителя да работи, като използва неговия хардуерен адрес. След като включих високоговорителя, използвах командата 'aplay -l', за да изброя аудио устройства:

pi@schoolbell: ~ $ aplay -l

**** Списък на хардуерни устройства за възпроизвеждане **** карта 0: Слушалки [bcm2835 Слушалки], устройство 0: bcm2835 Слушалки [bcm2835 Слушалки] Подустройства: Подустройство #0: подустройство #0 Подустройство #1: подустройство #1 Подустройство #2: subdevice #2 Subdevice #3: subdevice #3 Subdevice #4: subdevice #4 Subdevice #5: subdevice #5 Subdevice #6: subdevice #6 Subdevice #7: subdevice #7 карти 1: CODEC [USB Audio CODEC], устройства 0: USB аудио [USB аудио] Подустройства: Подустройство #0: подустройство #0

Устройството, което искам, е долното, карта 1, устройство 0.

Тествах високоговорителя с "високоговорител-тест", използвайки устройството "hw: 1, 0", което означава хардуерна карта 1, устройство 0

pi@schoolbell: ~ $ speaker -test -D hw: 1, 0

Тази програма издава шум от високоговорителите. Насладете се на шума и след това напишете control-C, когато се дразните. Ако не чувате шум, опитайте с Google.

Сега имате звук!

Стъпка 3: Тествайте възпроизвеждането на камбани и/или правете нови звуци

Тестово възпроизвеждане на камбанни звуци и/или издаване на нови звуци
Тестово възпроизвеждане на камбанни звуци и/или издаване на нови звуци

За моята камбана изтеглих звука „bing-bong“от „freesound.org“. Благодаря на Benboncan, че направи този звук достъпен:

freesound.org/people/Benboncan/sounds/93646/

Можете да възпроизвеждате звука директно. Мога директно да изтегля mp3 версия на този файл, като напиша тази команда на компютъра Raspberry Pi (ако приемем, че е на WiFi):

pi@schoolbell: ~ $ wget

След това преименувах този файл:

pi@schoolbell: ~ $ 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). Написани и авторски права от Джо Дрю, сега поддържани от Nanakos Chrysostomos и други. Използва код от различни хора. Вижте „README“за повече! ТОЗИ СОФТУЕР НЕ СЕ АБСОЛЮТНО БЕЗ ГАРАНЦИЯ! ИЗПОЛЗВАЙТЕ НА СВОЙ РИСК! Възпроизвеждане на MPEG поток от bing-bong-chime-hq.mp3… MPEG 1.0 слой III, 128 kbit/s, 44100 Hz моно [0:02] Декодирането на bing-bong-chime-hq.mp3 завърши.

Поздравления! Имате аудио.

Използвайки кода за редактиране на звук „audacity“на моя лаптоп, разделих файла на „bing“и „bong“за по-забавно. Можете да използвате всеки mp3 или може би друг формат (не съм тествал други) звукови файлове.

Стъпка 4: Инсталирайте кода и задайте своя график

Инсталирайте кода и задайте своя график
Инсталирайте кода и задайте своя график

Кодът е скрипт на python, който получава текущата дата/час и ако датата е ден от седмицата, а не празник, той проверява дали времето съвпада с часа на звънеца, като прозвучава, ако трябва.

Първо ще го накарате да работи, след това ще го автоматизирате да работи всяка минута.

Изтеглете кода от Github:

gist.github.com/BillSimpson/d7a1a531995c8b63492bb47ef8872618

Намирам за лесно да направя това, като запиша файла на локален компютър, след което използвам защитено копие (scp), за да го поставя на Raspberry pi.

На локалната си машина копирайте кода от браузъра си, след което го поставете в текстов файл и го запазете с името на файла „schoolbell.py“. След това scp файла над:

local-machine: ~ $ scp schoolbell.py [email protected]: ~/

Ще бъдете подканени да въведете паролата за потребителя pi на schoolbell.local - въведете паролата и файлът ще бъде копиран сигурно. Тази команда трябва да се изпълнява в същата директория, където е записан скриптът на python, и да я копира в началната директория на потребителя pi. Можете да преминете към schoolbell.local и кодът трябва да е там:

local-machine: ~ $ ssh [email protected]

След това на schoolbell.local избройте файловете (може да видите още файлове):

pi@schoolbell: ~ $ ls

bing-bong-chime-hq.mp3 schoolbell.py

Сега редактирайте кода, така че да има вашия график за звънене, като използвате редактор като pico:

pi@schoolbell: ~ $ pico schoolbell.py

Кодът има три „речника“, които определят тоновете на звънеца, които да се пускат, времето за тяхното пускане и празниците, които трябва да се избягват, Камбаните през уикендите автоматично се пропускат.

Например речникът на камбаните е:

камбани = {

'warn': 'bing-bong-chime-hq.mp3', 'start': 'bing-bong-chime-hq.mp3', 'end': 'bing-bong-chime-hq.mp3'}

Това определя три вида камбани, предупредителен звънец, начало на класа и край. Тъй като имаме само един тон на звънец, всички те сочат към един и същ файл, но ако направите различни тонове, можете да ги промените. Можете дори да добавите други видове тонове на камбани. Аз също си играех с помощта на синтезатор на реч, за да говоря камбаните, но това не се гледаше благосклонно от другите в къщата.

Речникът на bellschedule е подобен, но "ключът" сега е времето за камбаната. трябва да използвате формата HH: MM с водещи нули и 24-часово време (военно време).

bellschedule = {

'09: 00 ':' start ', #' Bus 'bell to be ready '09: 28': 'warn',….. '13: 58 ':' warn ', # за период 4 '14: 00 ':' start ', '15: 00': 'end'}

Стойността в тази двойка ключ: стойност е типът на звънеца, който да се използва и трябва да съответства на един от звънените дефинирани по -горе.

И накрая, речникът на празниците изброява датите за почивка. Форматът е ГГГГ-мм-дд, с водещи нули, както е показано.

празници = {

'2020-09-07', …. '2021-03-11', '2021-03-12' }

След като приключите с редактирането, запишете файла, като излезете от редактора, като въведете ctrl-X, ако използвате pico.

Направете кода на python изпълним чрез:

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). Написани и авторски права от Джо Дрю, сега поддържани от Nanakos Chrysostomos и други. …. повече продукция ….

Трябваше да чуеш камбаната.

Сега тествайте кода, като използвате време като аргумент. Не забравяйте да въведете времето с водещи нули. Например, за да изпробвам звънеца „училищен автобус“в 9 часа сутринта, въвеждам:

pi@schoolbell: ~ $./schoolbell.py 09:00

Това би трябвало да накара звънеца ви да звъни! Можете също така да тествате, че не звъни по време, което не е камбана.

Стъпка 5: Автоматизирайте бягането с Crond

Автоматизирайте бягането с Crond
Автоматизирайте бягането с Crond

Демонът „cron“е планировчик, който изпълнява повтарящи се задачи в Linux система. Той проверява дали датата/часът съответства на модел в таблицата cron (crontab) и след това изпълнява код, ако е така. Можете да го редактирате с помощта на командата "crontab -e":

pi@schoolbell: ~ $ crontab -e

Това ще отвори файлов редактор и в долната част на този файл ще добавите следния ред:

* * * * * python3 /home/pi/schoolbell.py

Тази команда казва на cron да стартира python3, изпълнявайки вашия скрипт в нормалната домашна директория (/home/pi). Петте *казват, че това трябва да работи всяка минута (първа *), всеки час (следваща *…), всеки ден от месеца, всеки месец и всеки ден от седмицата.

Сега всяка минута ще се изпълнява скриптът schoolbell.py. През повечето минути кодът ще се изпълнява и ще открие, че трябва просто да излезе, без да звъни, но ако се окаже, че е ударил звънец, ще прозвучи.

Обърнете внимание, че тъй като cron работи само всяка минута, не можете да направите камбаните по -детайлни от минутата. Мисля, че теоретично е възможно, ако системата ви се затопли, cron може да не работи няколко секунди след края на минутата, което ще закъснее звънеца. Ако по някакъв начин cron не работи цяла минута, звънецът щеше да бъде пропуснат.

Съвет: За удължени празници (например лято) можете да добавите хаштаг (#) към първия знак на този ред, което го превръща в коментар и по този начин игнорира изпълнението му. Когато училището отново е на сесия, просто премахнете # и то ще започне да се изпълнява отново.

Стъпка 6: Персонализирайте и се наслаждавайте

Сега трябва да имате работеща система за звънене в домашни условия и вашият ученик никога да не закъснява за час.

Можете да персонализирате този проект, като промените тоновете на звънеца.

  • Можете да го накарате да звъни на Биг Бен, с четвъртичасови звънци и звънене на часовете.
  • Можете да опитате фристайла на любимия си рапър.
  • Можете да отправяте подсъзнателни съобщения, за да се съсредоточите върху изучаването.

Пазете се в това време на COVID.

Образ
Образ
Образ
Образ

Вицешампион в семейното състезание „Не мога да докосна това“

Препоръчано: