藍牙控制小燈泡亮度的實驗

這裡實現用 Windows x86 平板電腦控制小燈泡亮度。

硬件方面在我們最初實驗設備【參考1】的基礎上增加一個藍牙模塊(這裡建議使用藍牙的朋友選用 HC06系列的,和HC05的不同,這個系列只有Slave的功能,但是個人感覺HC06更容易搜索連接上,我用HC05的時候每次都需要重新搜索配對設備,但是HC06上不用),用來和Windows平板進行通訊。

藍牙控制小燈泡亮度的實驗

代碼方面,Arduino使用的程序非常簡單,將串口收到的char當作PWM值直接輸出。程序使用了2個串口,一個是通常的USB,同PC進行通訊,主要是為了方便Debug;真正工作的是另外一個進行藍牙通訊的串口。

<code>int  n=255;
void setup()
{
Serial.begin(9600);
Serial1.begin(9600);
pinMode(6,OUTPUT); //該端口需要選擇有#號標識的數字口
}

void loop()
{
char c;
while (Serial.available() > 0)
{
c=Serial.read();
analogWrite(6,c);
Serial.println(c);
}
while (Serial1.available() > 0)
{
c=Serial1.read();
analogWrite(6,c);
Serial.println(c);
}
}/<code>


上位機使用的是Delphi 2010,使用控件很簡單即可完成編程。

<code>unit Unit2;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, iComponent, iVCLComponent, iCustomComponent, iPositionComponent,
iScaleComponent, iKnob, iSevenSegmentDisplay, iSevenSegmentBinary,
iSevenSegmentInteger, StdCtrls, CPortCtl, CPort, Buttons;

type
TForm2 = class(TForm)
iKnob1: TiKnob;
iSevenSegmentInteger1: TiSevenSegmentInteger;
ComPort1: TComPort;
Button1: TButton;
Button2: TButton;
procedure iKnob1PositionChange(Sender: TObject);
procedure FormActivate(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form2: TForm2;

implementation

{$R *.dfm}

procedure TForm2.Button1Click(Sender: TObject);
begin
ComPort1.ShowSetupDialog;
end;

procedure TForm2.Button2Click(Sender: TObject);
begin
if ComPort1.Connected then
begin
ComPort1.Close;
Button2.Caption:='Connect';
end
else
begin
ComPort1.Open;
ComPort1.WriteStr(chr(0));
Button2.Caption:='Disconnect';
end
end;

procedure TForm2.FormActivate(Sender: TObject);

begin
iKnob1.Width:=Form2.Width;
end;

procedure TForm2.iKnob1PositionChange(Sender: TObject);
var
c:byte;
begin
c:=trunc(iKnob1.Position);
iSevenSegmentInteger1.Value:=c;
if Comport1.Connected then
begin
ComPort1.Write(&c,1);
end;
end;

end.
/<code>


界面


藍牙控制小燈泡亮度的實驗

工作視頻



最後說點其他的:除了Apple和各式各樣的 Anrdoid平板電腦,x86的Windows平板也在崛起。

相比之下,使用Windows平板編程有如下優點:1. 編程簡單。工具方面Delphi VB VC 都是非常成熟的工具,能在普通PC上運行的程序,即可順利移植到Windows平板上(甚至可以說‘移植’這個詞不合適,因為不用任何改動直接放上去即可);2. 發佈簡單。從時效性上來說,不需要發佈到什麼市場,也不需要什麼審核,各種方法讓對方拿到即可運行;3. 周邊設備多多,比如:各種搖桿方向盤,價格也比Apple專用的低很多;4. 程序運行非常穩定,除非程序有錯誤,否則根本不會出現那種莫名其妙的“閃退”;

此外,從我的實踐的角度來說,Windows 平板目前還有如下的缺點:1. Windows本質上是給有鼠標的機器運行的,而不是觸摸類的設備。這兩者在精度上差別很大,傳統的Window的各種控件,默認的調用者也都是鼠標,如果直接用觸摸操作起來很困難,也容易誤操作。因此,我用普通臺式機做平板程序的感受是:你一定要把你的用戶當成視力有困難的人,能調大的菜單或者按鈕一定要做到最大…….2. 目前比較缺少Windows x86平板方面的中文資料,在使用板載的各種傳感器時,缺少資料

參考:1. http://www.lab-z.com/mos%E6%8E%A7%E5%88%B6%E5%B0%8F%E7%81%AF%E6%B3%A1%E7%9A%84%E5%AE%9E%E9%AA%8C/ MOS控制小燈泡的實驗


分享到:


相關文章: