Orodha ya maudhui:

Sanduku la Idiot la Retro: Hatua 10
Sanduku la Idiot la Retro: Hatua 10

Video: Sanduku la Idiot la Retro: Hatua 10

Video: Sanduku la Idiot la Retro: Hatua 10
Video: СИРЕНОГОЛОВЫЙ В РЕАЛЬНОЙ ЖИЗНИ! СБИЛИ НА МАШИНЕ СИРЕНОГОЛОВОГО! Siren Head in real life 2024, Julai
Anonim
Sanduku la Idiot la Retro
Sanduku la Idiot la Retro

Nilipata televisheni ya zamani inayoweza kubeba Magnavox kutoka 1984 iliyokaa kwenye rafu kwenye duka langu la kuuza bidhaa. Nilijiwazia, "oh NEAT!" Baada ya kukaguliwa zaidi niliona lebo ya bei ya $ 15 juu yake, kwa hivyo niliamua kuipeleka nyumbani na kufanya kitu kibaya kutoka kwake. Nakumbuka nikitazama kurudiwa tena kama mtoto wa Classics zote nzuri katika nyeusi na nyeupe tukufu, na nilitaka kuifanya kuwa ukweli tena.

Shida ni kwamba hakuna vituo vya analogi huko nje tena, na hii haiwezi kabisa kufanya usuluhishi wowote wa ATSC, au usimbuaji wowote wa dijiti. Niligundua uwepo wa unganisho la AV upande, na nilikuwa na pi ya rasipberry chache iliyokuwa imelala karibu, kwa hivyo niliamua kuanza safari ya kubaini jinsi ninavyoweza kutiririsha njia hizi. Ninataka kuifanya ionekane mkali, pia. Sitakuwa nikiiendesha kwenye betri 9 za D-seli, kwa hivyo naweza kuficha rpi kwenye chumba cha betri na vitu vingine vingi.

Hatua ya 1: Pata Orodha nzuri ya IPTV

Pata Orodha nzuri ya IPTV
Pata Orodha nzuri ya IPTV

Orodha ya kila siku ya IPTV ina uteuzi mzuri wa vituo vya bure vya iptv vilivyoandaliwa na nchi. Chagua nchi unayopenda, na pakua faili ya m3u.

Kwa programu ambayo iko katika hii, m3u ni muundo unaohitajika. Unaweza kusoma zaidi juu ya maalum ya muundo hapa.

Hatua ya 2: Jaribio la Msimbo wa Awali

Nambari ya chatu ambayo tutaandika inachukua faili ya m3u katika orodha ya vituo.

#! / usr / bin / chatu3

kuagiza subprocess kutoka sys kuagiza argv class Station: def _init _ (self): self.channel = 0 self.name = "self.address =" channel_list = na open ('./ us-m3uplaylist-2020-08- 17-1.m3u ',' r ') kama m3u: i = 0 kwa laini katika m3u: ikiwa line.startswith (' # EXTINF '): this = Station () this.name = line.split (', ') [1] line = next (m3u) this.address = line.strip () this.channel = i channel_list.append (this) i = i + 1 process = subprocess. Fungua (['vlc', '- loop', '--intf', 'dummy', '- skrini nzima', orodha ya kituo [int (argv [1])]. anwani])

Wacha tuvunje hii.

#! / usr / bin / chatu3

Hii inamwambia bash kwamba tutatumia python3 kutafsiri faili hii.

kuagiza subprocessfrom sys kuagiza argv

Tutahitaji moduli ya mchakato wa kuzindua mfano wetu wa vlc, na tutahitaji argv kuchagua ni kituo kipi tutazindua vlc ndani.

Kituo cha darasa: def _init _ (self): self.channel = 0 self.name = "self.address ="

Hii inafafanua darasa linaloitwa Kituo. Kila kituo kitakuwa na nambari ya kituo, jina la kituo kama lilivyochukuliwa kutoka faili ya m3u, na anwani ya kituo hicho kinachotiririka kutoka.

orodha ya kituo =

Hii ni orodha ambayo itahifadhi vituo vyote vilivyochanganuliwa kutoka faili ya m3u.

na open ('./ us-m3uplaylist-2020-08-17-1.m3u', 'r') kama m3u: i = 0 kwa laini katika m3u: ikiwa line.startswith ('# EXTINF'): this = Station () this.name = line.split (',') [1] line = next (m3u) this.address = line.strip () this.channel = i channel_list.append (hii) i = i + 1

Kitanzi hiki kinafungua orodha ya kucheza ya m3u, na huingiza data. mistari ya faili ya m3u ambayo tunavutiwa nayo inaanza na #EXTINF, Hii inaonyesha kiingilio kipya kwenye faili ya orodha ya kucheza. Thamani inayofuata ya kupendeza ni jina, ambalo liko kwenye mstari sawa na #EXTINF, lakini na comma kati yao. Mstari ufuatao wa m3u fulani ni anwani ya mkondo. Kuna iterator "i" inayotumika kuhesabu ni kituo kipi ni kipi. Kitanzi hiki huzunguka kupitia faili nzima ya m3u na hujaza orodha ya kituo na vituo.

mchakato = subprocess. Fungua (['vlc', '--loop', '--intf', 'dummy', '--fullscreen', channel_list [int (argv [1])]. anwani])

maktaba ya mchakato inaruhusu chatu kupiga michakato (programu) na kurudisha PID (Kitambulisho cha Mchakato). Hii inawezesha chatu kuweza kusimamia uzinduzi na kufunga programu "kwa usahihi" bila kujaza faili ya historia, au kuruhusu nambari zaidi ya kiholela kuendeshwa na simu za "mfumo" wa kawaida. Kila kipengee cha safu inayotumika kama hoja kwa Popen ni kama ilivyochapishwa kwenye laini ya amri.

vlc - kitanzi --intf dummy - anwani kamili za skrini

Amri ya hapo juu ndio inayotakikana kuendeshwa, na chaguo la -loop kurekebisha maswala kadhaa na kusitisha mkondo wakati shehena inayofuata ya mzigo (maswala ya kushangaza ya m3u8), - dummy inaanza vlc bila kiolesura, skrini tu, - skrini kamili huzindua video katika hali ya skrini nzima (HAKUNA NJIA!), na anwani ni anwani ya mkondo. Kama unavyoona katika nambari, tunatoa anwani kutoka kwa nambari ya kituo, ambayo hutolewa wakati wa kukimbia kupitia taarifa ya argv. Hifadhi faili hii kama tv_channel.py, badilisha eneo la orodha ya kucheza kwenye faili ya chatu ili uelekeze orodha yako ya kucheza, na unaweza kuendesha nambari kama ifuatavyo:

chython tv_channel.py

Hatua ya 3: Ongeza GPIO

Ongeza GPIO
Ongeza GPIO
Ongeza GPIO
Ongeza GPIO

Mpangilio unaonyesha pini mbili za GPIO zinazotumiwa kwa vifungo, na kila moja ina kontena la kuvuta ili kuweka pini ya GPIO ikivutwa juu baada ya kitufe cha kubonyeza. Nambari iliyofafanuliwa hapo awali inaweza kusafishwa ili kufanya operesheni iwe imefumwa kidogo kwa kuongeza uwezo wa GPIO. Hii inatuwezesha kubadilisha kituo na vifungo, badala ya kibodi na taarifa za hoja, kama televisheni ya realsies.

Jambo la kwanza kukumbuka ni kwamba nina televisheni iliyoainishwa kama darasa. Kuwa televisheni, tunahitaji kuwa kwenye kituo cha sasa, kuwa na orodha ya vituo vinavyowezekana, na kuwa na uwezo wa kubadilisha vituo. Katika mfano huu, njia pekee ya kubadilisha vituo itakuwa kuhamisha orodha ya vituo, na kusogeza chini orodha ya idhaa. Mara tu kituo kikiamuliwa, itabidi tuanzishe VLC kwenye kituo tunachotaka kuona.

#! / usr / bin / chatu3

kutoka wakati kuagiza kuagiza utaratibu wa kuagiza kutoka kwa sys kuagiza argv kutoka gpiozero kuagiza Kitufe cha darasa: def _init _ (self): self.channel = 0 self.name = "self.address =" self.process = "Televisheni ya darasa: def _init_ = 0 kwa mstari katika m3u: ikiwa line.startswith ('# EXTINF'): hii = Kituo () this.name = line.split (',') [1] line = next (m3u) this.address = line. strip () hii.channel = i self.channel_list.append (hii) i = i + 1 def channel_up (self): self.current_channel = self.current_channel + 1 if self.current_channel> len (self.channel_list): ubinafsi. sasa_channel = len (self.channel_list) self.start_channel () def channel_down (self): self.current_channel = self.current_channel - 1 ikiwa self.cannel ya sasa <0: self.current_channel = 0 self.start_channel () def start_channel (self): jaribu: mchakato wa kujitegemea. kuua () isipokuwa: pitisha kuchapisha ('kuanzia kituo% d'% self.current_channel) self.process = subprocess. Fungua (['vlc', '-q', '--loop', '--intf', ' dummy ',' --fullscreen ', orodha ya kibinafsi. = Kitufe (23) wakati ni Kweli: channel_UP.when_pressed = this.channel_up channel_DN.when_pressed = this.channel_down

Kupunguza msimbo huu kuna maboresho machache. sasa ilitumia moduli iitwayo gpiozero ambayo inahitajika na pi ya raspberry kufikia urahisi utendaji wa pini za GPIO

Sudo apt-get kufunga python3-gpiozero

au

Sudo pip kufunga gpiozero

Kama inavyoonekana katika nambari yangu, nimechagua GPIO 18 na GPIO 23 kwa kituo cha UP na kituo cha chini kwa mtiririko huo. Maktaba ya gpiozero ina darasa zuri la vitufe vya kazi wakati wa_press, is_pressed, when_held, nk Hii inafanya iwe rahisi sana. Nilichagua when_pressed, ambayo inahusu kazi ya kupiga tena simu wakati ishara hii inagunduliwa.

Mabadiliko makubwa ya mwisho ni ujumuishaji wa chaguo la '-q' katika mwito wa mchakato wa VLC. Hii inaendesha tu vlc bila pato lote kwa wastaafu ili kuiweka bila machafuko ili tuweze kuona taarifa za kuchapisha habari kwenye nambari.

Hatua ya 4: Jumuisha vifaa ili Kuonekana Kali

Unganisha vifaa ili uonekane mkali
Unganisha vifaa ili uonekane mkali
Unganisha vifaa ili uonekane mkali
Unganisha vifaa ili uonekane mkali
Unganisha vifaa ili uonekane mkali
Unganisha vifaa ili uonekane mkali

Sijagundua jinsi ninataka kufanikisha hii, na itakuwa suluhisho la kipekee kwa kila runinga ya mfano inayotumika. Ninahitaji kufikiria kwa bidii juu ya hili na kuchunguza karibu na runinga ili kupata chanzo kizuri cha nguvu ya pi mara tu nikisonga kompyuta ndani ya chumba kikubwa cha betri. Nimefikiria pia kutumia vifungo vya saa kwa uteuzi wa kituo, kwani tayari vimewekwa vizuri kwenye runinga, na saa haifanyi kazi hata hivyo. Nitachapisha zaidi nitakapopata suluhisho nzuri, lakini hapa ndipo mradi Wangu utatofautiana sana kutoka kwa kila mtu mwingine. Furahiya ujumuishaji wa IPTV halisi-kama-TV!

Hatua ya 5: Nguvu ya Pi

Nguvu ya Pi
Nguvu ya Pi

Kwa Runinga ya mfano nimepata, inahitaji usambazaji wa umeme wa 12V. Nilichunguza kuzunguka kwa bodi, lakini sikuona vidhibiti vyovyote vya nguvu vya 5V, kwa hivyo mahali wazi zaidi kupata usambazaji wa umeme thabiti ni kwenye bodi ya mzunguko ambapo kiunganishi cha pipa cha 12V kinaingia. Kuna shida dhahiri na hii. hatutaki kukaanga pi, kwa hivyo tutahitaji mdhibiti wa nguvu. Nimechagua MP2315 Step-Down Power Converter. Ni uchafu bei rahisi, na ni rahisi kutumia. Tutauza pembejeo ya 12VDC kutoka kwa kiunganishi cha pipa kwenye PCB hadi IN + na pini za GND za kibadilishaji, na VO + kubandika 2 kwenye Raspberry Pi, na pia GND.

KABLA ya hii kufanywa, hakikisha kuwezesha kibadilishaji na uhakikishe kuwa 5V sahihi inatoka kwenye pato. Nilichagua chaguo rahisi na voltage inayoweza kubadilishwa ngumu. Trimmer itarekebisha voltage, kwa hivyo niliangalia pato la voltage na multimeter wakati ninarekebisha trimmer na bisibisi.

Hatua ya 6: Kuunganisha Nguvu

Kuunganisha Nguvu
Kuunganisha Nguvu
Kuunganisha Nguvu
Kuunganisha Nguvu
Kuunganisha Nguvu
Kuunganisha Nguvu

Baada ya kuchimba televisheni, iliamuliwa kuwa mahali pazuri pa kuchukua nguvu ni kutoka hasi ya kiunganishi cha pipa na swichi ya ON / OFF ya runinga, ambayo inamaanisha kuwa tunaweza kuwasha na kuzima mito na runinga, badala ya kuwa kuweka nguvu pi kila wakati kwa kuvuta moja kwa moja kutoka kwa kiunganishi cha pipa.

Waya ziliuzwa na kulishwa kando ya PCB karibu na kesi hiyo hadi walipofika nyuma ya kitengo, ambapo walilishwa kupitia shimo lililokuwa nyuma ya chumba cha betri. Mara tu wanapolishwa kupitia, tunaweza kutayarisha mwisho wa ufungaji na kuziunganisha kwa mdhibiti wa nguvu. Niliiweka kwa 5V kuwezesha pi na pini za kichwa zilizouzwa ili tuweze kukimbia wanawake kuruka kutoka kwa mdhibiti wa nguvu moja kwa moja hadi kwenye seti ya kichwa cha GPIO ya pi. Kwa kawaida hii haishauriwi, kwani pi kwa ujumla hupata nguvu kupitia UBS, ambayo ina mdhibiti aliye kwenye mstari ili kuweka hali ya 5V, lakini kwa kuwa nguvu tayari imesimamiwa inapaswa kuwa sawa.

Kuna kelele kwenye laini za sauti kutoka kwa kufanya hivyo, kwa sababu kuna kitanzi cha ardhi kwenye mfumo. Nilijaribu nguvu nyingi na alama za ardhini kote kwa bodi nikitarajia jibu rahisi, lakini sikupata yoyote. Niliuza pia kebo ya microUSB kwa kidhibiti cha hali iliyobadilishwa ili kuona ikiwa kulazimisha nguvu kupitia wasimamizi wa ndani wa pi kungetatua suala hilo. Haikufanya hivyo. Suluhisho litakuwa katika viboreshaji vya kutengwa kwa ardhi. Hizi ziliamriwa badala ya kujengwa, kwa sababu ni za bei rahisi na zimefungwa vizuri. Unaweza kuzichukua kutoka kwa duka nyingi za sauti au idara. Hii ndio nilichagua.

Hatua ya 7: Suluhisho la Kitufe cha Muda Mrefu

Suluhisho la Kitufe cha Muda Mrefu
Suluhisho la Kitufe cha Muda Mrefu
Suluhisho la Kitufe cha Muda Mrefu
Suluhisho la Kitufe cha Muda Mrefu

Bila shaka, vifungo havitabaki kwenye ubao wa mkate, kwa hivyo kuna haja ya kuwa na suluhisho la kudumu zaidi. Nilichukua kitabu cha zamani cha zamani na nikatupa mzunguko pamoja na pini kadhaa za kichwa ili iwe rahisi kupata ishara. Hapa ndipo kila mtu atakuwa na maoni tofauti juu ya jinsi ya kushikamana au kuweka vifungo. Ninachagua kuziandika na kuziambatanisha kwenye chasisi ili ushughulikiaji ambao unabadilika juu ya skrini isiingie. Jisikie huru kuunda muundo kwa kuongeza kesi iliyochapishwa ya 3d ambayo inainua kuongezeka, tumia karanga na bolts, adhesives nzuri, unganisha vifungo asili, chochote. Mradi inafanya kazi, hakuna majibu yoyote mabaya.

Hizi zitawekwa kwa nje ya kesi hiyo, na Pi ya Raspberry itaingizwa ndani ya chumba chenye chumba kikubwa cha betri, kwa hivyo itahitajika kuwa na shimo dogo lililotobolewa ili kuruhusu nyaya kupenyeza chumba cha betri.

Hatua ya 8: Angalia Mwisho wa Fit

Mwisho wa Kuangalia Fit
Mwisho wa Kuangalia Fit

Vifaa vyote vinahitaji kutoshewa mara ya mwisho ili kuona haswa mahali ambapo mashimo yote yanahitaji kutengenezwa kwa chasisi, na ni mashimo gani ya ukubwa, n.k yanahitaji kutengenezwa. Kwa kuongeza inapaswa kuzingatiwa mahali pa kuweka vifaa kwa urahisi mzuri wa unganisho na ufikiaji. Hadithi ndefu, hakikisha kila kitu kinatoshea mahali unafikiri inafanya kabla ya kuharibu mradi wako na inakubidi utolee mwanya.

Hatua ya 9: Ujumuishaji wa Mwisho

Ujumuishaji wa Mwisho
Ujumuishaji wa Mwisho
Ujumuishaji wa Mwisho
Ujumuishaji wa Mwisho
Ujumuishaji wa Mwisho
Ujumuishaji wa Mwisho

Sasa vifaa vyote ni mahali inahitajika kuwa, na yote inafaa tu kama mdudu kama mdudu kwenye rug. Wacha tukate vitu! Niligundua mahali kwenye chumba cha betri ambapo ningeweza kupitisha nyaya za AV nje kwa kutumia kiingilio kidogo kwenye plastiki. Niliituliza kwa grinder ya benchi. Ilifanya kazi fupi sana. Nilitumia dremel kusaga plastiki zaidi ili kuifanya iwe mzuri kwa nyaya.

Sehemu ya mwisho ni kiteuzi cha kituo. Nilichimba shimo dogo kwenye chumba cha betri na kupitisha nyaya za kichwa kutoka kwake moja kwa moja. Vifungo viliunganishwa juu, na nikaambatanisha bodi ya protoksi kwenye chasisi ya plastiki na nusu mbili za velcro iliyotangulia. Ninaona kwamba kulikuwa na njia bora zaidi za 1200 za kufanya hivyo, lakini hii ilifanya kazi, na nilikuwa na kila kitu nilichohitaji mkononi.

Hatua ya 10: Furahiya IPTV yako ya Zabibu

Furahiya IPTV yako ya zabibu
Furahiya IPTV yako ya zabibu
Furahiya IPTV yako ya zabibu
Furahiya IPTV yako ya zabibu
Furahiya IPTV yako ya zabibu
Furahiya IPTV yako ya zabibu

Hiyo ni juu ya kuijumlisha. Pata vipindi na ufurahie kutazama. Usikae karibu sana, ingawa. Utaoza ubongo wako!

Kuna nafasi nyingi ya kuboresha mradi huu, kwa hivyo chukua kwa mwelekeo wowote unayotaka, lakini ilikuwa raha kufikia hapa. Kama mimi, ninaendesha hii kutoka kwa cronjob wakati wa kuwasha tena, kwa hivyo stdout haichukui ujumbe kutoka kwa hati ya chatu. Ningependa kurekebisha hii ili nijue nina kituo gani. Nyongeza nyingine nzuri ni dongle isiyo na waya ya kibodi kwenye Pi. Hii itakuruhusu ubadilishe mtandao wa wifi ikiwa unatoka nyumbani kwako na runinga. Bila kujali. ulikuwa mradi wa kufurahisha, na siwezi kusubiri kuanza kwenye ijayo.

Ilipendekeza: