りォヌムチュヌブむンタヌネットラゞオ



これは私の人生で最も長持ちする工芞品です。アむデアから完成たで12幎かかり、䜿えるようになりたしたこの間、移䜏、出生、死亡など、膚倧な数の出来事が起こりたしたが、その考えは私にあり、䜕があっおも私はそれを完了したした。そしお、この工芞品に䌎う道、ずげ、願望、そしおその結果ずしお䜕が起こったのかをお話ししたいず思いたす。



考え



このプロゞェクト では、ずっず前にルヌタヌをベヌスにしたWi-Fiラゞオのアむデアそのものを芋たした。どちらかずいえば-これは2009幎です。それはルヌタヌベヌスのラゞオ、Linux、mpdデヌモンでした。それで、これらは私にずっお完党に明確な甚語ではありたせんでした、しかし私は本圓にそのようなラゞオが欲しかったです。そしお、私はこのアむデアを思い぀いた。さらに、私はあらゆるランプ技術に非垞に觊発されたした増幅ランプ、むンゞケヌタヌランプ私のプロフィヌル写真にある6E1P、CRTスクリヌン。そしお、VFDディスプレむVFD-真空蛍光ディスプレむたたはロシア語の真空発光むンゞケヌタヌVLI、たたは陰極発光むンゞケヌタヌCLIも非垞に楜しい



ので、キャッシュディスプレむを䜿甚するこずにしたした。それから私はそれが䜕ず呌ばれるのかさえ知りたせんでしたバむダヌディスプレむ。



぀たり、賌入者のディスプレむ、シングルボヌドのコンピュヌタヌたたはルヌタヌ、Linux + mpd、真空蛍光むンゞケヌタヌ、およびこのようなもののためのある皮のコントロヌルです。私にむンスピレヌションを䞎えたプロゞェクトに䌌おいたす。



Wi-Fiラゞオにはさたざたなオプションがあるため、このクラフトに非垞に遅れたこずを理解しおいたす。しかし、それでも抂念的には今日でも他の郚分ずは異なり、そのようなデバむスの䜜成に぀いお読むこずは興味深いず思いたす。さらに、私はそれを魂のためにしたのであっお、売り物ではありたせんでした。



基本的なコンセプトずデザむン



圓時2010幎頃のこのラゞオには、別のプロゞェクト目暙がありたした。圓時、私はセルビア語を勉匷しおいお、「スむッチを入れる」こずでセルビアのラゞオ局を受信できるシンプルなデバむスが欲しかったのです。電話やコンピュヌタヌは、それ自䜓が私を倧いに混乱させたので、遞択肢ではありたせんでした。それを開くず、䜕をしおいたかを忘れおしたいたす。第二に、私は本圓に普通の身近なラゞオずできるだけ同じように鉄片を残し、幎配の人でもそれを䜿甚できるようにしたかったのです。そしお最埌に、私はコントロヌルを最小限に抑えたいず思いたした。1぀のボタンです。



私は、20䞖玀の30〜40幎代の建築、むンテリア、特に無線受信機の蚭蚈における蚭蚈゜リュヌションに非垞に刺激を受けたした。このスタむルはアヌルデコず呌ばれたす。私たちの囜では、このスタむルの明るい代衚は、レヌニン図曞通、゚アロポヌト地䞋鉄駅、マダコフスカダ、クラスノセルスカダの建物ですより正確には、それはこのスタむルの圱響を受けおいたす。レシヌバヌアヌキテクチャヌからすでに受け取ったデザむンに぀いお話す堎合、最も興味深いオプションは、スケヌルが䞀番䞊にあるものでした。





匷くむンスピレヌションを埗た蚭蚈䞊の決定



もちろん、圓初、このラゞオの本䜓は、䞊郚の受信機のように、貎重な朚材で䜜られるように蚈画されおいたした。そしお、ここハブレで䞀床でも、同様のプロゞェクトを行っおいるデザむナヌに䌚いたしたどれを芚えおいたせん、ごめんなさい。スケッチをしたり、プロゞェクトのこずを考えたりしたしたが、それでもあえおそんな真面目な道を歩む぀もりはありたせんでしたが、無駄でした 䞀般的に、いろいろな䞍思議な倢や欲望がありたした。しかし、それはすべお残酷な珟実に垰着したした。



実装の最初のステップ



すべおのWi-Fiラゞオの基本は、賌入者のディスプレむです。私は非垞に長い間ディスプレむを遞択し、愚かに買い物に行き、自分が䞀番奜きなものに芋えたした。私のお気に入りのディスプレむはPosiflexPD-2700です。私はそれに立ち寄った。





初めお電源を入れお、画面に画像を



衚瀺したす。これらのディスプレむの操䜜に関する別の蚘事を曞きたした。ここで読むこずができたす。したがっお、私は圌らの仕事の原則に぀いおは詳しく説明したせん。



このラゞオの「頭脳」ずしお、TP-Link 3020ルヌタヌ、Nokia N800はい、驚かないでください、N800、さたざたなラップトップ、あらゆる皮類の産業甚コンピュヌタヌ、キャッシュレゞスタヌ、さたざたな䞖代のRaspberry Pi、シングルボヌドデバむスなどが詊されたした。すべおが䞋された決定の普遍性に぀いお語っおいたす。そしお将来を芋据えお、いく぀かの決定は携垯性のために行われ、建蚭費を削枛するためではありたせん。



しかし、䞀般的に、私はこれらすべおの゜リュヌションが奜きではなかったか、そのようなタスクの機胜の点で過剰であったか、逆に、パフォヌマンスが䜎すぎおサりンド再生に問題がありたしたルヌタヌなど。次に、プロゞェクトの実斜においお私がたどった䞻な道筋をお話したす。Nokia N800のような行き止たりのブランチはありたせんこのアプロヌチのすべおのロマンスのために。



䜜業プロトタむプ



自埋型で、ラゞオを再生し、キッチンに立っおいた最初の実甚的なプロトタむプは、TP-Link3020ルヌタヌず100ルヌブル甚の䞭囜のUSBサりンドカヌドに基づいお実装したした。このルヌタヌはそのような工芞品にずっお玠晎らしいものです。その䞻な利点は、他のシングルボヌドずは異なり、最寄りのコンピュヌタヌストアで賌入できるこずです。メむンOSはOpenWRTで、サりンドはUSBを搭茉した500ルヌブル以䞋のほずんどのデシュマンスピヌカヌで再生されたした。䞀般的に、すべおが䞀番䞋にありたす。そしおそれもうたくいきたした芁するに、千回読むよりも䞀床芋る方が良いのです。





その埌、タブレットからビデオを制埡する方法はオプションではないこずが明らかになりたした。同じタブレットを䜿甚できるず、ラゞオの意味が倱われたす。そのため、゚ンコヌダヌを䜿甚しお制埡を远加するこずにしたした。圓初、゚ンコヌダヌはこのルヌタヌのGPIOに接続されおいたしたはい、GPIOが搭茉されおいたすが、その䜜業があたり奜きではなく、この゜リュヌションは移怍性がなかったため、将来、UARTを介しお接続されるarduinoに基づいお別の゚ンコヌダヌコントロヌラヌを䜜成したした。







゚ンコヌダヌはGPIOTP-Link 3020に接続されおいたす。



その埌、ラゞオ局を「構成」する必芁があり、ノブを回しおスラむダヌを画面䞊で動かしたずきに、叀いラゞオのように芋せたかったのです。このために、垂盎スティックフォントが5個実装されたした。そしお、私は毎回それをオヌバヌロヌドしたした、私の蚘事でフォントをダりンロヌドする方法に぀いお読んでください。結果はそのような解決策でした。





さお、これらの実隓でラゞオ自䜓を亀差させるこずは残っおおり、その結果、私たちは䟿利な制埡を埗るこずができたす。圌は䞀蚀で蚀ったが、実際には数ヶ月が経過したが、結果は私にずっお重芁である。





それはすべおのように思えたすが、私の友人のラゞオアマチュア党員ずい぀ものように-デバむスにはケヌスがなく、䜕をすべきかを考え始めたした。私は30幎代のオヌプンなビンテヌゞレシヌバヌに非垞に觊発されたした。そこでは、シヌルドずハンドルのあるコヌナヌがあり、すべおの内臓が無料です。





プロトタむプの倉皮



を繰り返すこずにしたした。これを行うために、圌は柱を匕き裂き、柱から寞法を取り陀き、段ボヌルからプロトタむプを䜜成したした。





スピヌカヌをガットし、アンプを取り出し、寞法を枬定



したす。カラムを分解した埌、そこからアンプを取り出し、ケヌス、アンプ、゚ンコヌダヌのノブのすべおの寞法を取り倖し、段ボヌルのすべおに芋た目どおりのマヌクを付けたした。





私が



思ったサむズのマヌキング、䜕が冗談であるか、それが䞀皮の段ボヌルのプロトタむプである段ボヌルでどのように芋えるかを芋おみたしょう。





段ボヌルラゞオ



そしおそれも機胜したす





それから圌はすべおの寞法をコピヌし、描いおレヌザヌカットに送りたした。





寞法



カットされたアクリルが埌になっお、これが組み立お埌の様子です。







フロントパネルには、電源ボタン、゚ンコヌダヌ、ボリュヌムノブがありたす。䞭には、独立した電源ずたくさんのハブがあるこずがわかりたす。正盎なずころ、芋栄えがよくありたせん。







倚くの人が気付くかもしれたせんが、アクリルは透明です。最初は、ディスプレむを背埌に配眮しお、ディスプレむが透けお芋えるようにしたかったのですディスプレむはすでに癜で、緑色のフィルタヌを通しお光っおいたす。しかし、私は色ずコントラストが奜きではありたせんでした。







写真では、オレンゞ色のアクリルを通しお光があり、正盎なディスプレむの色実際には癜です、およびディスプレむの1぀の青いフィルタヌ珟圚、ラゞオに緑がありたすがありたす。



結果ずしお埗られるデザむンはもちろんクヌルですが、私は自分自身に嘘を぀くこずはなく、実甚的ではありたせん。もちろん、それはうたくいき、私もしばらくこの補品を聎いおいたしたが、いく぀かの問題が明らかになりたした。第䞀に、この圢で䜿甚するこずは完党に䞍可胜でした。それはほこりを集め、䜕も䞊に眮くこずができず、倚くのスペヌスを占有したす。第二に、TP-Link 3020は無線に察しおかなり匱いこずが刀明し、倚くの人がその実装の問題に盎面したした。OpenWRTはフロヌティングポむントのハヌドりェアサポヌトを備えおいないため、mpdはプロセッサを100ロヌドし、サりンドでそれを聞くこずができたす䞍快なデゞタルクリックがありたす。それは、䞀般的に、そのような実装に終止笊を打぀。さらに、私の人生の倚くの状況で、私はもうこのプロゞェクトに埓事するこずができたせんでした、そしおこのラゞオは分解されお、文字通り箱に入れられたした。



最終決定



しかし、私がただあきらめたずは思わないでください。いいえ、アむデアは存続したした。そしお今、しばらくしお、私はこのラゞオを終わらせるこずに決めたした。そしお、それは私が䞭囜で買ったケヌスを持っおいたほどうたくいった。頭脳ずしお、私はビヌグルボヌンブラックを取りたした。それを䜿っお1぀のプロゞェクトに取り組み、その良い面ず悪い面を知っおいたす。スカヌフはもちろん叀いですが、このタスクに完党に適合したす。圓初、OpenWRTをメむンOSにしたかったのですが、Wi-Fiドラむバヌに問題がたくさんありたした。人気のPCM2704DACでサりンドカヌドを取りたした。圌女はこのリク゚ストで、癜いスカヌフなどの人気のあるオヌクションで簡単に怜玢されたす。私はサりンドカヌドに非垞に満足しおいたすが、䞀般的には、SoundBlasterでさえも眮くこずができたした。





プロトタむプの段階、さたざたなサりンドカヌド、シングルボヌドデバむス、Linuxむメヌゞ、Wi-Fiアダプタヌの詊甚、および最適な゜リュヌションの遞択



前回の蚘事では、コンポヌネントの遞択に時間を費やすこずに぀いお説明したした。そうしないず、問題が発生したす。同じように、Linux察応のUSBWi-Fiカヌドが欲しかったのです。そしおためらうこずなく、圌は自分のためにTP-LinkN150を取りたした。芁するに、これをしないでください。圌女は私から倧量の血を飲み、䞀週間圌女に費やした。私はOpenWRTの䞋でそれを埗るこずができたせんでした、Ubuntuで私はタンバリンでいく぀かの激しいダンスでそれを始めたした。芁するに、このマニュアルに埓っおむンストヌルしたした途䞭に指瀺がありたす。起動スクリプト/etc/rc.localは、私には次のようになりたす䞀連の実隓の埌。



#!/bin/sh
PATH="/sbin:/bin:/usr/bin"

ps -ef|grep wpa|awk '{print $2}' |xargs -i kill {}

#in case you want to test the script
ifdown wlan0
sleep 0.1
ifup wlan0
sleep 0.1
ifup wlan0
sleep 0.1
ifup wlan0
sleep 0.1
echo "nameserver 8.8.8.8" >> /etc/resolv.conf
#END
sleep 30
#    


䞀般的に、すべおの詊緎の埌、これらすべおが始たり、これらすべおが組み立おられお建物に入れられたした。誰もが自分のものを持っおいるので、私はすべおの詳现を説明したせん。しかし、私は脚甚に新しいブッシングを䜜り、底は䞋から合板で䜜られ、それにすべおを取り付けたした。ディスプレむは朚補のフレヌムに取り付けられたした。





フロントパネル



すべおが゚ンコヌダヌによっお制埡されたす。巊右-ステヌションの遞択、゚ンコヌダボタンを抌す-䞀時停止; ボタンを2回短く抌す-時刻ず日付の衚瀺時蚈のように機胜したす。





背面パネル



これはたさにWi-Fi無線であるにもかかわらず、蚺断ずデバッグのためにむヌサネット経由で接続する可胜性を残したした。ご芧のずおり、珟圚、ケヌスにはアンプがありたせん。私の意芋では、さらに䟿利なラむンアりトだけです。䞭を芋おみたしょう。







巊偎には電源が​​あり、䞋の面には朚補フレヌムのディスプレむがあり、右偎にぱンコヌダがありたす。電源が接続されおいるUSBハブの䞊郚では、ディスプレむにも電源が䟛絊され、サりンドボックスもハブに挿入されおいたす。シングルボヌド自䜓は、合板にねじ蟌たれたラックのアルミニりムコヌナヌに立っおいたす。゚ンコヌダヌコントロヌラヌは右偎に隠れおおり、こんな感じです。





゚ンコヌダヌコントロヌラヌ



これは、UARTを介しおビヌグルボヌンに接続される䞀般的なアルドゥむンカです。



゜ヌスコヌドず蚭定に぀いお䞀蚀



コヌドの説明を蚘事に远加するず、読みやすさがすぐに半分になるこずに気づきたした。したがっお、この蚘事ではコヌドはほずんどありたせんが、2぀の蚘事はコヌドの説明にのみ専念できたす。 mpdデヌモンの蚭定に぀いおは説明したせん。Habréに関する蚘事を含め、䜕千もの蚘事があり、マニュアル自䜓は通垞それに぀いお網矅されおいたす。 BeagleboneでのLinuxセットアップは省略したす。 Arduinoを接続するためにUARTをオンにする必芁がない限り。しかし、これも簡単にグヌグルで怜玢できたす。プロゞェクト党䜓の゜ヌスコヌドはgithubにあり、誰でも利甚できたす。



コヌドのすべおのポむントを分析するわけではありたせん。ディスプレむの操䜜に぀いおは、以前の蚘事で説明したした。ファむルを確認したす。



arduino_encoderフォルダヌには、arduino゚ンコヌダヌプロゞェクトが含たれおいたす。そこにはすべおが盎感的にはっきりしおいお、どういうわけかそれを敎理する理由がわかりたせん。ラゞオ自䜓の゜ヌスコヌドであるLinuxフォルダヌでは、プロゞェクトからプロゞェクトぞずさたよったのはこのコヌドでした。



  • Makefile


これはプロゞェクト自䜓のアセンブリであり、ここでは新しいこずは䜕もありたせん。



  • control.c


これはすべおの魔法が起こるマスタヌプログラムです。



  • uart.c
  • uart.h


これが既補のUART初期化コヌドです。LinuxでUARTを䜿甚しおCで䜜業するすべおの人にずっお、これら2぀のファむルを調べるこずをお勧めしたす。たあ、私はたた、そのお勧めLinuxでUARTでの䜜業に私のりェビナヌを芋お誰も䞀床や二床もそれらに芋えるが。



  • display.c
  • display.h
  • output.h


ご想像のずおり、これはディスプレむを操䜜するためのコヌドです。さらに、文字倉換コヌドをそれにねじ蟌む必芁がありたした。



  • charset_coverter.c
  • charset_coverter.h


衚瀺はCP866コヌディングで機胜したす。たた、コン゜ヌルからロシア語でメッセヌゞを衚瀺するには、次のトリックを䜿甚する必芁がありたす。



echo -en " \n dlinyj" | iconv -f UTF-8 -t CP866 > /dev/ttyACM0


しかし、ニュアンスがありたす。文字「e」はなく、ハヌド蚘号「」ず゜フト蚘号「b」は逆になっおいたす。したがっお、デコヌド埌、デコヌドする必芁がありたす。



  • mpc.c
  • mpc.h


mpdデヌモンの操䜜。䞀般的には、それを操䜜するためのラむブラリがありたすが、あたり倚くの関数を必芁ずしないので、すべおを最初から゜ケットに曞き蟌むこずにしたした。おそらくそれは誰かに圹立぀でしょう。



  • term.c
  • term.h


ああ、それは玠晎らしい郚分です。ディスプレむなしでコヌドをデバッグしなければならないこずがあったので、゚ンコヌダの代わりにキヌボヌド制埡を䜿甚しお、ディスプレむの「シミュレヌタ」を䜜成したした。これは次のようになりたす。最初の写真には日付ず時蚈があり、2番目の写真にはメロディヌずステヌションがありたす。









これを䜜成する方法の詳现に぀いおは、蚘事「タヌミナルグラフィックス」を参照しおください。



私のためにラゞオ局を远加するのは次のスクリプトです。



#! /bin/sh -
# Some configuration settings
VOLUME=60
#mpc volume $VOLUME	# adjust this to suit your speakers/amplifier
mpc clear	# clear current playlist

mpc add http://relay3.slayradio.org:8000/						#*Slay Radio
mpc add http://fr1.streamhosting.ch:8080						#*lounge-radio.com
mpc add http://us-tx1.streams.bassdrive.com:9000/				#*DnBHeaven.com
mpc add http://uk2.internet-radio.com:31491						#*AmbientRadio.org
mpc add http://www.partyvibe.com:8010/							#*PARTY VIBE RADIO
mpc add http://streamer.psyradio.org:8120						#*psyradio chillout

mpc add http://live.coolradio.rs/cool128
mpc add http://big2.bigportal.ba:8100/big2


特に電子音楜のために掚奚できるストリヌミングラゞオ局がある堎合は、コメントを曞き蟌んでください:)



管理ず構成を簡単にするために、ympdプロゞェクトからWebむンタヌフェむスを远加したした。こんな感じです。





その結果、最埌の/etc/rc.localファむルは次のようになりたす。



sleep 30
/home/ubuntu/addradio.sh > /dev/null 2>&1 &
/home/ubuntu/wifi-radio/Linux/control > /dev/null 2>&1 &
/home/ubuntu/ympd --webport 80 > /dev/null 2>&1 &


はい、はい、私はUbuntuでsystemdずrc.localを䜿甚するのが悪いこずを知っおいたす、そしお他の䜕ずか、䜕ずか、䜕ずか。しかし、私はそれを䜿いたいので䜿いたす。



結果



もちろん、ラゞオは本来意図されおいたほど矎しくお倧げさではないこずがわかりたしたが、私は私の手にある鳥が空のパむよりも優れおいるず刀断したした。䞍明確な結果で喜びをさらに数幎間延長するよりもそうする方が良いです。それでも、醜いですが、ずおも嬉しいです。それで、たくさんのテキストを読むために、それがどのように芋えお、機胜するかに぀いおのビデオを芋る時が来たした。







ビデオは少し叀いですが、アンテナずむヌサネットが接続され、非垞にうたく機胜しおいたす。



どこで育ちたすか



そしお、成長する䜙地がありたす。私が長い間利甚しおきたこのプロゞェクトの掟生物の1぀は、Volumioプロゞェクトです。これは、䞖界䞭のラゞオ局やストリヌミングなどを聞くこずができる楜しいプレヌダヌアグリゲヌタヌです。誰もが元気で、私のプロゞェクトず完党にドッキングし、すべおのステヌションを画面に衚瀺したした。コントロヌルが完党に圹に立たない堎合を陀いお。音声制埡を远加するこずもできたす。Habréに関する蚘事もあった玠晎らしいRhasspyプロゞェクトがありたす。倖郚サヌバヌに接続せずに音声制埡ができたす



mpdを捚おる䟡倀がある唯䞀のものはボトルネックです。駅がない堎合、圌はそれを埅っお電話を切りたす。他のステヌションなどの事前バッファリングはありたせん。぀たり、成長のための土がありたす。そしお、このトピックはめちゃくちゃ興味深いもので、たくさんのアむデアがありたす。読んでくれおありがずう






All Articles