2018年2月4日 星期日

用一條網路線共用安博盒子

               最近買了一台安博盒子,用了之後真的大為驚奇,第四台快不用混了,連國外頻道都看得到,但因為房間電腦只有一個螢幕,我比較習慣邊看電視邊上網,不想看兩個螢幕,所以老樣子,上次的第四台網路線移過來給安博盒子用,安博盒子後面有個av端子的3.5mm孔和HDMI,HDMI給電視用,3.5孔轉AV端子就買轉接線接原本的第四台網路線


上圖是已經裝好的樣子
上圖是安博遙控器,圈起來部分是常用的按鈕,也是這次要改的重點
因為安博盒子選台要先選APP,進去後才能選台,而且頻道很多,用兩個按鈕選台已經不夠用了,所以控制器要改造一下,原本用來傳送按鍵訊號的3條線改成紅外線發射器的兩條線,IC電路移到房間
控制器改成這樣
各按鍵遙控碼
側面圖
另外我找到一款比KMP穩定的播放軟體PotPlayer 64 bit,電腦有擷取卡想要錄影的都可以用
如上,只要選好裝置
開啟>類比電視,然後就能看電視了

這是我的電路圖和架構圖

以下是程式碼:


int I,J,k; //I和J用於判斷頻道上下鍵是否被按下,k則用於兩鍵同時按下記數用
int L,M,N,O,P;
unsigned long v = 0x0;
#include <IRremote.h>
IRsend irsend; // IRRemote限定使用數位腳位3
void setup()
{
  pinMode(4, INPUT);//按鈕輸入腳位
  pinMode(5, INPUT);//按鈕輸入腳位
  pinMode(6, INPUT);//按鈕輸入腳位 L
  pinMode(7, INPUT);//按鈕輸入腳位 M
  pinMode(8, INPUT);//按鈕輸入腳位 N
  pinMode(9, INPUT);//按鈕輸入腳位 O
  pinMode(10, INPUT);//按鈕輸入腳位  P
I=0;
J=0;
k=0;

L=0;
M=0;
N=0;
O=0;
P=0;
}

void loop()
{
 if(digitalRead(4)==LOW)  //按鈕按下時
  {
  I=1;
  }
 if(digitalRead(4)==HIGH && I==1)  //按鈕放開時
  {
  I=0;
   v = 0x80BF01FE;
  irsend.sendNEC(v,32); //轉台上(發送紅外線訊號)第四台保留程式碼
  delay(500);
  v =0x2FFB24D;
  irsend.sendNEC(v,32);//(發送紅外線訊號)安博盒子碼電源
  
  }


   if(digitalRead(5)==LOW)  //按鈕按下時
  {
  J=1;
  }
 if(digitalRead(5)==HIGH && J==1)  //按鈕放開時
  {
  J=0;
  v =0x80BF817E;
  irsend.sendNEC(v,32);//轉台下(發送紅外線訊號)第四台保留程式碼
  delay(500);
  v =0x2FF42BD;
  irsend.sendNEC(v,32);//(發送紅外線訊號)安博盒子碼返回

  
  }

  if(I==1&& J==1) //當兩鍵同時按下時
  {
   k=k+1;
   I=0;
   J=0;
     v =0x2FF807F;
    irsend.sendNEC(v,32);//(發送紅外線訊號)安博盒子碼1
    delay(500);
     v =0x2FF10EF;
    irsend.sendNEC(v,32);//(發送紅外線訊號)安博盒子碼8
    delay(500);
     switch(k) {
     case 1: //轉到10台(當兩鍵同時按下第一次時)第四台保留程式碼
     v =0x80BFE11E;
     irsend.sendNEC(v,32);//0(發送紅外線訊號)第四台保留程式碼
     delay(200);
     v =0x80BF49B6;
     irsend.sendNEC(v,32);//1(發送紅外線訊號)第四台保留程式碼
     delay(200);
     v =0x80BFE11E;
     irsend.sendNEC(v,32);//0(發送紅外線訊號)第四台保留程式碼
     break;
     case 2: //轉到50台(當兩鍵同時按下第二次時)第四台保留程式碼
      v =0x80BFE11E;
     irsend.sendNEC(v,32);//0(發送紅外線訊號)第四台保留程式碼
     delay(200);  
      v =0x80BFF10E;
     irsend.sendNEC(v,32);//5(發送紅外線訊號)第四台保留程式碼
     delay(200);
     v =0x80BFE11E;
     irsend.sendNEC(v,32);//0(發送紅外線訊號)第四台保留程式碼
     break;
     case 3://轉到200台(當兩鍵同時按下第三次時)第四台保留程式碼
     v =0x80BFC936;
     irsend.sendNEC(v,32);//2(發送紅外線訊號)第四台保留程式碼
     delay(200);
     v =0x80BFE11E;
     irsend.sendNEC(v,32);//0(發送紅外線訊號)第四台保留程式碼
     delay(200);
     v =0x80BFE11E;
     irsend.sendNEC(v,32);//0(發送紅外線訊號)第四台保留程式碼
     break;
     case 4://轉到250台(當兩鍵同時按下第四次時)第四台保留程式碼
     v =0x80BFC936;
     irsend.sendNEC(v,32);//2(發送紅外線訊號)第四台保留程式碼
     delay(200);
     v =0x80BFF10E;
     irsend.sendNEC(v,32);//5(發送紅外線訊號)第四台保留程式碼
     delay(200);
     v =0x80BFE11E;
     irsend.sendNEC(v,32);//0(發送紅外線訊號)第四台保留程式碼
     k=0; //兩鍵同時按下記數歸零
     break;
     default:
     k=0;
  }

  delay(1000);
  }

   if(digitalRead(6)==LOW)  //按鈕按下時
  {
  L=1;
  }
 if(digitalRead(6)==HIGH && L==1)  //按鈕放開時
  {
  L=0;
  v =0x2FFD02F;
  irsend.sendNEC(v,32);//(發送紅外線訊號)安博盒子碼上
  }
  
   if(digitalRead(7)==LOW)  //按鈕按下時
  {
  M=1;
  }
 if(digitalRead(7)==HIGH && M==1)  //按鈕放開時
  {
  M=0;
  v =0x2FF08F7;
  irsend.sendNEC(v,32);//(發送紅外線訊號)安博盒子碼左
  }
  
  if(digitalRead(8)==LOW)  //按鈕按下時
  {
  N=1;
  }
 if(digitalRead(8)==HIGH && N==1)  //按鈕放開時
  {
  N=0;
  v =0x2FFB04F;
  irsend.sendNEC(v,32);//(發送紅外線訊號)安博盒子碼確認
  }

    
  if(digitalRead(9)==LOW)  //按鈕按下時
  {
  O=1;
  }
 if(digitalRead(9)==HIGH && O==1)  //按鈕放開時
  {
  O=0;
  v =0x2FF8877;
  irsend.sendNEC(v,32);//(發送紅外線訊號)安博盒子碼右
  }

    
  if(digitalRead(10)==LOW)  //按鈕按下時
  {
  P=1;
  }
 if(digitalRead(10)==HIGH && P==1)  //按鈕放開時
  {
  P=0;
  v =0x2FF708F;
  irsend.sendNEC(v,32);//(發送紅外線訊號)安博盒子碼下
  }

  
}
要錄影只要這樣選就可以錄影
連印度的頻道都有喔
這些頻道才是重點,頻道數完勝第四台,雖然有時會lag


以上控制器測試影片












3 則留言:

Unknown 提到...

安博盒子竟然能擴充,您好強~
我也想學您的做法,但是光是程式碼完全看不懂了

匿名 提到...

請問這種做法是否能 客廳 房間電腦同時收看不同節目?
應該是只能同時收看同一台對嗎

江金洲 提到...

對,只能同時看一台,但可以共用,不用買兩台,訊號接電腦可以錄影和轉檔

自製簡易新風系統

                   最近空氣品質很糟糕 , 家裡的空氣清淨機開全速壓制 , 只能壓到室內 30~40ug/m3 , 而且要關窗才有效 , 長時間關窗會有二氧化碳的問題 , 後來看網路的文章看多了 , 發現有種東西叫 全熱交換器 , 在裡面...