Мазмуну:

Бир баскычтуу радио агымынын кутусу: 7 кадам (сүрөттөр менен)
Бир баскычтуу радио агымынын кутусу: 7 кадам (сүрөттөр менен)

Video: Бир баскычтуу радио агымынын кутусу: 7 кадам (сүрөттөр менен)

Video: Бир баскычтуу радио агымынын кутусу: 7 кадам (сүрөттөр менен)
Video: Биржан Байбол, Нурайым Акылбекова "Аруум" 2024, Ноябрь
Anonim
Бир баскычтуу радио агымынын кутусу
Бир баскычтуу радио агымынын кутусу

Мен досумдун барына кутуча курдум, анын ичинде Raspberry Pi бар жана бир баскычты басуу менен ал Darkice жана Icecast аркылуу веб-сайтка аудио жөнөтөт, ошол эле учурда 'On-Air' белгисин күйгүзөт. Мен муну адамдар мурунтан эле жасап жаткан нерсе деп ойлогом, бирок көп изденүүдөн кийин эч нерсе таппай койдум жана муну өзүм үчүн чечип, аны Инструктивдүү кылууну чечтим.

Мен Raspberry Pi 3+ B колдондум, бирок мен айткандай, ал кандайдыр бир Piде иштейт (балким GPIO пин сандары ар кандай болушу мүмкүн, бирок мен муну тастыктай албайм). Мен OS үчүн NOOBS пакетин колдондум жана киргизүү үчүн супер жөнөкөй үн картасын сатып алдым. Мен ошондой эле Пиди коргоо үчүн кутуга коопсуз өчүрүү баскычын жана активдүүлүк LEDин коштум.

Сага керек болот:

Raspberry Pi

SD картадагы NOOBS пакети

Күйгүзүү/Өчүрүү (мен ушундай чоң кызыл авариялык токтотуу баскычын колдондум, бирок бул "чыкылдатуу" которгучунун ар кандай түрү болушу мүмкүн)

Баскыч

1 LED

"On-Air" белгиси, мен LED массиви менен өзүмдүкүн жасадым

Паяльник жана кичине туташтыргыч такта (мен тегерегимдеги бирөөсүнүн тилкесин кесип алдым)

Үн картасы (мен ушундай супер жөнөкөйдү колдондум)

1-кадам: Сиздин Server орнотуу

Биз колдонуп жаткан чыныгы радиостанция үчүн мен бул бөлүктү кылган жокмун, анткени мен серверге кире алган жокмун жана менин досум муну жасады, бирок Icecast веб-сайтында негизги орнотуу көрсөтмөсү бар жана мен аны ала алдым ал кантип баратканын көрүү үчүн башында Piден иштейт. Же болбосо, эсепти internet-radio.com сайтынан алсаңыз болот жана ал Darkice менен иштейт.

2-кадам: Pi орнотуу жана Darkice орнотуу

NOOBS пакети менен SD картты алыңыз. Сиз Raspbianди ачып, бардык жаңыртууларды орноткондон кийин Терминал терезесин ачыңыз жана териңиз:

sudo apt-get update

Sudo apt-get darkice орнотуу

Darkice Debianдын бир бөлүгү, ошондуктан ал автоматтык түрдө орнотулат, бир нече мүнөт талап кылынат.

Иштетүү түрүндө аяктагандан кийин:

караңгы

Бул ката жөнүндө кабар берет жана иштебейт, бирок бул жакшы. Билдирүүдө бул сыяктуу бир нерсе айтылат:

Конфигурация файлын колдонуу: /etc/darkice.cfg

Сиз бул файлды түзөтүшүңүз керек, ошондуктан чакыруу түрүндө:

sudo nano /etc/darkice.cfg

Бул wiki. Radioreference баракчасындагы маалыматты колдонуу менен ачылган файлды түзөтүңүз, аяктагандан кийин CTRL-X басуу үчүн, Y сактоо үчүн жана Терминалдын чакырыгына кайтууңуз керек. Жаңы программаны орноткондон кийин кайра жүктөө дайыма жакшы болот, андыктан:

кайра жүктөө

жана Pi кайра баштаганда Терминал терезесин кайра ачыңыз. Эми сиз "Darkice" деп жазсаңыз, ал эч кандай ката билдирүүсүз иштеши керек. Эгерде сиз https:// YOURSERVERADDRESS: 8000/(8000 же icecast сервериңиз кайсы портко жүктөлгөн болсо) барсаңыз, сиз туташып турганыңызды билдирүүчү статистика барагын алышыңыз керек. Болбосо, конфигурация файлын жаңыртыңыз (аудио киргизүү линиясы мага бир аз кыйынчылыктарды берди, бирок мен бардык варианттарды сынап көрүп, акыры үн картамды таптым). Darkice туура иштеп баштагандан кийин, кийинки кадамга өтүңүз.

3-кадам: Агымдын баскычы жана аба белгиси

Агымдын баскычы жана эфир белгиси
Агымдын баскычы жана эфир белгиси

Мен бул үчүн ар кандай үйрөткүчтөрдү кылдым, анткени Pythonдогу баскычка иш -аракетти аныктоо үчүн эч ким жок болчу. Мен туш болгон эң чоң көйгөй Darkiceтин фондо иштөөсүн камсыздоо болчу (жана Python скрипти иштей баштаганда тоңуп калбасын), бирок мен кодер досумдан жардам сурап кайрылдым, ал муну кантип жасоо керектигин ойлоду ала бербе. Кыязы, бул коддун кайсы бир жеринде '&' колдонулушу мүмкүн, бирок мен кодер эмесмин жана менде эмне бар, ошону менен аралашпоону чечтим. Мен иштей баштагандан кийин, мен төмөнкү орнотуулар менен калганга чейин нан кабелиндеги бардык кабелдерди өчүрө баштадым:

GPIO16 тышкы 3 чекиттүү туташтыргычка.

GPIO7 ON-Air белгиси үчүн LED массивинин оң терминалына.

GPIO25 чыкылдатуу-которуштуруу үчүн.

Чыкылдатуу-которгучтун экинчи тарабы 3 чекиттүү туташтыргычка тиркелет.

LED массивинин терс терминалы да 3 чекиттүү туташтыргычка тиркелет.

(Диаграмманын башка компоненттери кийинки кадамда түшүндүрүлөт).

Биз аяктаган Python скрипти төмөнкүдөй (бул бардык проект үчүн Нускамалык экенине көңүл буруңуз, мен кодду түшүндүрүү үчүн жетиштүү деңгээлде билбейм. Мен аны ар кандай функциялар үчүн башка окуу куралдарынан бириктирип койгом):

импорттоо убактысын импорттоо RPi. GPIO GPIO GPIO.setwarnings (False) GPIO.setmode (GPIO. BOARD) ledPin = 12 buttonPin = 16 GPIO.setup (ledPin, GPIO. OUT) GPIO.setup (buttonPin, GPIO. IN, pull_up_down) = GPIO. PUD_UP)

toggle = False

def start_darkice ():

басып чыгаруу ("чакан субпроцесс") #result = subprocess.call ('sh screen -S darkice -d -m darkice') os.system ('screen -S darkice -d -m darkice') басып чыгаруу ('кайра улантуу') def stop_darkice (): os.system ('screen -X -S darkice quit')

чын болсо:

buttonState = GPIO.input (buttonPin) if buttonState == True: эгер которулбаса: toggle = Чыныгы басып чыгаруу ('darkice күйгүзүү') start_darkice () #print ('BUTTON STATE TRUE') GPIO.output (ledPin, GPIO. HIGH)

башка:

if toggle: toggle = False print ('stopice darkice') stop_darkice () #print ('BUTTON STATE FALSE') GPIO.output (ledPin, GPIO. LOW) time.sleep (1)

Py файлы ушул Нускамага тиркелет, сиз жөн гана жүктөп алып, эгер кааласаңыз 5 -кадамды аткарсаңыз болот.

4 -кадам: Коопсуз өчүрүү баскычы жана активдүүлүк LED

Коопсуз өчүрүү баскычы жана активдүүлүк LED
Коопсуз өчүрүү баскычы жана активдүүлүк LED

Коопсуздук үчүн жана Pi өмүрүн узартуу үчүн, мен коопсуз өчүрүү баскычын жана тышкы ишмердүүлүктүн LEDин коштум, ошондуктан адамдар кутучаны сууруу коопсуз экенин билишет. Мен бул экөөнө тең окуу куралдарын оңой таптым, бирок Raspberry Pi 3 B+ ACT LEDинин GPIO пини бар экенин байкадым, ал эми мурунку моделдер жок жана эгерде сизде эски Pi бар болсо, бул көйгөй жаратышы мүмкүн.

Светодиоддун оң терминалын GPIO13кө, терсин GPIO26га тиркеңиз. ACT LED иштеши үчүн, BOOT каталогундагы config.txt файлын түзөтүшүңүз керек. Муну Raspbian браузеринен же төмөнкү менен таба аласыз:

sudo nano /usr/boot/config.txt

Файлды түзөтүп жатканда төмөнкү саптарды кошуңуз:

# SD ACT LED dtoverlay = pi3-act-led, gpio = 19 катары тышкы LEDди колдонуңуз

Азыр тышкы LED SD картанын активдүүлүгү менен жылтылдайт.

Түртүүчү терминалдарды GPIO3 жана GPIO8ге туташтырыңыз. Мен үйрөткүчтөн төмөнкү кодду таптым жана ал жакшы иштейт:

импорттоо убактысы

def shutdown ():

check_call (['sudo', 'poweroff'])

shutdown_btn = Баскыч (2, hold_time = 1)

shutdown_btn.when_held = өчүрүү

пауза ()

убакыт.уйку (1)

Бул py файл, эгер кааласаңыз, жүктөп алууңуз үчүн тиркелет. Менин баскычымды 1 секунд кармап туруу керек, эгер сиз аны өзгөрткүңүз келсе, 'hold-time =' маанисин өзгөртөсүз.

5 -кадам: Python скрипттерин жүктөөчүдөн иштетиңиз

Дагы, бул темада көптөгөн үйрөткүчтөр бар, мен муну Dexter Industriesтен колдондум жана rc.local файлын түзөтүү менен биринчи кадамды аткардым.

sudo nano /etc/rc.local

Бул жерде сиз документтин аягына файлдын жолун толуктооңуз керек, ар бир саптын аягында '&' менен толтуруңуз. Сиз файлдардын ар бири үчүн бир сапты кошушуңуз керек:

sudo python/home/pi/YOURFILENAME, py &

sudo python /home/pi/YOURFILENAME2.py &

линиянын алдында

чыгуу 0

Ар бир саптын аягындагы '&' программанын циклдерин камсыз кылуу үчүн маанилүү.

6 -кадам: кутуну куруу

Кутуну куруу
Кутуну куруу
Кутуну куруу
Кутуну куруу
Кутуну куруу
Кутуну куруу

Бул толугу менен сизге байланыштуу. Бул чындыгында Пи өлчөмүндө болушу керек, бирок мен радио агымын бир кыйла ырааттуу деңгээлде кармап туруу үчүн компрессор койдум, ошондуктан кутуча бир аз чоңураак. Менин шахтамын алдыда эфирде жана чоң кызыл баскычта тешик бар, мен ди-джейлер үчүн кичине нускама картасын жасап, баскычтын астына түшүрдүм. Кутунун капталында баскычты басуу үчүн тешик бар, ACT LED жана аудио киргизүү, плюс штрихке кутуну кантип коопсуз жабуу керектиги жазылган инструкциялар.

7 -кадам: Орнотуу

Орнотуу
Орнотуу
Орнотуу
Орнотуу
Орнотуу
Орнотуу
Орнотуу
Орнотуу

Бардык өзүнчө компоненттерди кутуңузга орнотуңуз, ысыктын алдын алуу үчүн Pi айланасында аба айлануусуна жол берүү дайыма жакшы экенин эске алыңыз. Микшериңиздеги аудио кабелдерди тиркеп, баскычты басып, эфирден ырахат алыңыз!

Сунушталууда: