最近電視的遙控器壞了,
想到可不可以用手機遙控電視?
手機已經有語音撥號功能,
那用手機作語音遙控電視可不可行呢?
電視內建紅外線接收器了,
手機大部份也有紅外線傳輸功能,
二者可以結合嗎?
坐在沙發上,喊著 "台視" 自動轉到台視去
喊著 "大聲點" 自動變大聲
喊"關機" 自動關機!
很棒的智慧生活,對不對?
希望大家給點意見
本社群由Nantou.py使用者社群以及國立虎尾科技大學電機資訊學院負責維護,它是一群熱愛智慧生活科技以及Python的專業教師所組成,大家一同快樂地研究有關數位生活中人工智慧、大數據、物聯網、雲端服務、APPS、福祉科技、感知網路服務、車載網路服務、及網際網路等資通訊技術,並運用這些資通訊以及Python技術來提升我們的日常生活品質,建立更好的生活環境。
2010年9月29日 星期三
2010年9月27日 星期一
第一個Keil C程式
1. 選擇Project專案上的New選項,建立led專案,按下儲存鈕。
2. 選擇Atmel公司的AT89C51晶片,按下確定鈕。
3.選擇建立新檔案,另存led.c。
4.輸入基本程式骨架。
5.在Source Group1上按下右鍵,選擇Add Files to Group 'Source Group1'選項。
6.選擇led.c,按下Add鍵,再按下Close鍵。
7.輸入程式
8.選擇Debug選單中Start/Stop Debug Session選項,進行除錯。
9.選擇Peripherals選單中,I/O-Ports選項再選Port1來觀察Port1的狀態。
10.按下全速執行鈕執行程式。
此時您會發現LED會從第1顆點亮到第8顆後就消失了,請社員想想看要如何修改程式。
2. 選擇Atmel公司的AT89C51晶片,按下確定鈕。
3.選擇建立新檔案,另存led.c。
4.輸入基本程式骨架。
5.在Source Group1上按下右鍵,選擇Add Files to Group 'Source Group1'選項。
6.選擇led.c,按下Add鍵,再按下Close鍵。
7.輸入程式
8.選擇Debug選單中Start/Stop Debug Session選項,進行除錯。
9.選擇Peripherals選單中,I/O-Ports選項再選Port1來觀察Port1的狀態。
10.按下全速執行鈕執行程式。
此時您會發現LED會從第1顆點亮到第8顆後就消失了,請社員想想看要如何修改程式。
利用IPC及AIDL來打造車身電子通訊網路應用程式的框架(PUSH MODEL)
讀取經緯度的小範例
在Using Google Maps in Android文章中提到如何在Android手機中設計Google Map的功能。
如果把GPS經緯度資訊放到該文章提到的coordinates變數中。
那要如何讀取GPS的資訊?我們利用長高科技DMA6410XP及GPS設備,利用其UART的範例讀取GPS的訊號(如第三個圖所示)。
我們利用Hello來解析GPS的格式,其程式如下:
如果把GPS經緯度資訊放到該文章提到的coordinates變數中。
String coordinates[] = {"1.352566007", "103.78921587"};
那要如何讀取GPS的資訊?我們利用長高科技DMA6410XP及GPS設備,利用其UART的範例讀取GPS的訊號(如第三個圖所示)。
我們利用Hello來解析GPS的格式,其程式如下:
package com.example;
import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;
public class Hello extends Activity {
String str = "$GPGGA,000339.026,8960.0000,N,00000.0000,E,0,0,,137.0,M,13.0,M,,*4E";
TextView tv;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
tv=(TextView) findViewById(R.id.text01);
tv.setText("經度: "+getLatitude(str)+"緯度: "+getLongitude(str));
}
private String getLatitude(String str2) {
// TODO Auto-generated method stub
boolean f=false;
int status = 0;
int ptr = 0;
String str1="$GPGGA,";
String result="";
if(str2.length()<50) return result;
for(int i=0; i<str2.length( );i++)
{
if(f){
switch(status){
case 0:
case 1:
case 2:
if(str2.charAt(i)==',') status++;
break;
case 3:
if(str2.charAt(i)==',') status++;
else
result+=str2.charAt(i);
break;
case 4:
return result;
}
}
else
{
if (ptr==7)
f=true;
else {if(str1.charAt(ptr)==str2.charAt(i)) ptr++;
else ptr=0;
}
}
}
return null;
}
private String getLongitude(String str2) {
// TODO Auto-generated method stub
boolean f=false;
int status = 0;
int ptr = 0;
String str1="$GPGGA,";
String result="";
if(str2.length()<50) return result;
for(int i=0; i<str2.length();i++)
{
if(f){
switch(status){
case 0:
if(str2.charAt(i)==',') status++;
break;
case 1:
if(str2.charAt(i)==',') status++;
else
result+=str2.charAt(i);
break;
case 2:
return result;
}
}
else
{
if (ptr==7)
f=true;
else {if(str1.charAt(ptr)==str2.charAt(i)) ptr++;
else ptr=0;
}
}
}
return null;
}
}
2010年9月25日 星期六
利用IPC及AIDL來打造車身電子通訊網路應用程式的框架(POLL MODEL)
2010年9月23日 星期四
TI TMS32F2800x eCAN description
在這裡跟大家分享一下, TI 28系列的CAN架構與初始化方式在下圖中有它的架構圖, 它還是必須要透過CAN transceiver 來介接CAN bus 與MCU, 在這裡會簡單的描述我們如何來簡單了設定暫存器.
而它設定暫存器的方式如下列程式碼所示
ECanShadow.CANTIOC.all = ECanRegs.CANTIOC.all;
ECanShadow.CANTIOC.bit.TXFUNC = 1;
ECanShadow.CANTIOC.all = ECanShadow.CANTIOC.all;
當我們設定完暫存器後, 要確認我們所設定的暫存器是否正確, 我們以do... while迴圈來實現, 如下面程式碼所示
do
{
ECanShadow.CANTA.all = ECanRegs.CANTA.all;
} while( ECanShadow.CANTA.bit.TA11 == 0);
2010年9月19日 星期日
2010年9月17日 星期五
訂閱:
文章 (Atom)