remote pc-port rs232
TRANSCRIPT
Điều khiển máy tính bằng Remote TV với GirderGirder là một chương trình điều khiển máy tính được Ron Bessems thiết kế,dùng để điều khiển máy tính bằng các thiết bị điều khiển ngoại vi,phần dưới đây là phương pháp sử dụng Remote hồng ngoại thông dụng được tác giả Igor Cesko phát triển có rất nhiều ưu điểm như dễ lắp ráp dễ kết nối và hoàn toàn miễn phí.
Thiết bị sẽ gồm 1 bộ thu hồng tín hiệu hồng ngoại thông qua cổng COM RS_232 của máy tính.
1.1 Phần cứng:
Bộ phận chính của mạch là đầu thu hồng ngoại tích hợp theo chuẩn TSOP_17xx (phần xx là tần số sóng điều biên, tùy thuộc vào tần số của Remote để chọn,thông thường chọn là 38khz).Mạch sẽ lấy nguồn nuôi từ chân CTS của cổng COM(5V+).Diode Zenner sẽ ổn áp và tụ .01uF lọc nguồn 5V này để cấp cho "mắt thu".Điện trở R1 3,3K dùng để định thiên cho ngõ vào.Mạch chỉ có 3 linh kiện nhỏ có thể cho vào Jack DB9.Đầu thu TSOP có khá nhiều loại,đây là thiết bị chuyên dụng dùng trong các thiết bị giải trí gia dụng như TV hay đầu đĩa CD,bên trong đã được tích hợp mạch khuếch đại tín hiệu hồng ngoại và giải điều tín hiệu,việc bạn cần làm là xác định chính xác vị trí chân của chúng,việc này cần có 1 đồng hồ VOM loại hiện kim.Để đồng hồ đo ở thang 100 Ohm,tiến hành đo:đặt que màu đỏ vào 1 chân bất kì và đo nó so với 2 chân còn lại.Ở đây có 3 chân vì vậy ta có 3 lần đo như vậy cho mỗi chân (tổng số phép đo là 3*2=6),cộng 2 giá trị đo ở mỗi lần đo ta so sánh lần đo nào làm kim đồng hồ nhảy ít hơn so với 2 lần đo còn lại thì đó là chân GND.Đo 2 chân còn lại chân nào khi đo bằng que đỏ làm kim đồng hồ nhảy nhiều hơn thì đó là chân Vcc,chân còn lại là chân tín hiệu ra OUT.Chú ý là cách này không thực hiện được với loại đồng hồ hiện số(Digital Metter).
Nếu như bạn không có đồng hồ VOM thì có thể xác định bằng...mắt thường,với diode Zenner ta quan sát sẽ có 1 vòng tròn màu ở lệch một bên thì đó là chân Katod,vì là diode ổn áp nên ta sẽ đấu đầu này với chân Vcc,trên thân diode phải có số 5V1.Chú ý không được mắc ngược sẽ gây chập mạch có thể làm cháy cổng COM.Tụ điện chọn loại .01uF là loại tụ không phân cực nên không cần phân biệt chân.Quan trọng là mắt thu,trên thị trường chủ yếu là loại bọc nhựa đen thấu kính hội tụ hình trụ hoặc tròn,loại hình trụ thông dụng hơn và cách bố trí chân cũng có sự khác biệt.Ở loại này chân nằm phía xa 2 chân còn lại là chân tín hiệu ra (OUT),chân ở giữa là nguồn Vcc,chân còn lại là GND giống như trên sơ đồ của Igor Cesko.Còn loại thấu kính hình tròn thì cần phải đo hoặc tra cứu hay có thể đấu thử vì loại
The Free Site | vBuddy - make friends, share photos, blogs, have fun | Cheap Web Hosting - starting at $5
http://duongelec.topcities.com/girder/girder.htm
mắt này khá bền,không sợ hư hỏng khi đấu sai.
Chế tạo:
Dùng mỏ hàn (~40W) để hàn các linh kiện vào Jack DB9 sau đó đấu 3 dây ra.
Đầu ra bạn nối vào mắt thu như hình dưới.Ở hình dưới mắt thu được gắn vào mặt nạ của khe ổ đĩa mềm còn dư ở mặt trước thùng máy.
Đây là sản phẩm sau khi hoàn tất
1.2 Phần mềm:
Việc đầu tiên là bạn lên trang chủ http://www.girder.nl/ để download phiên bản Girder mới nhất,bắt đầu từ phiên bản 3.3x tác giả đã thực hiện thương mại hóa sản phẩm nên nếu muốn dùng lâu dài bạn phải tìm số serial của chương trình,bạn muốn mua hay tìm Crack thì tùy hỷ.Sau đó bạn nên ghé qua trang http://www.cesko.host.sk/ một chút.Vì đây là trang cung cấp cho bạn các Plugin rất quan trọng,ngoài ra anh chàng Igor Cesko người Slovakia này còn hướng dẫn bạn thêm khá nhiều "món" rất "độc" và dễ thương hơn nữa là chúng hoàn toàn Free từ A đến Z.Bạn tìm đến phần Download của trang này và tìm Plugin thích hợp cho mình,bạn lưu ý là có 2 Plugin 1 cho Win98 và 1 cho Win XP(dùng cái nào thì chép nó vào thư mục Plugin,không dùng 2 plugin này cùng lúc được).Nếu bạn ngại tìm kiếm thì Download File này về máy mà sài GirderPack.Phiên bản Girder 3.29b hơi cũ nhưng chức năng chẳng thua gì phiên bản mới được tôi Download từ hồi ngài Ron Bessems còn làm từ thiện.Bên trong có đầy đủ Plugin cho WinXP.
Kết nối:
Bạn cắm thiết bị thu vào cổng COM rồi khởi động chương trình.Vào menu File chọn Setting...
Trong cửa sổ Setting chọn Tab Plugins,tìm trong bảng liệt kê Plugin của Igor sau đó bấm nút Setting
Chọn cổng COM cho thiết bị đã cắm vào rồi bấm OK.Khi nào phần Status trên cửa sổ Setting hiện dòng "Plugin is loaded in memory(sending events)" thì có nghĩa là chương trình đã nạp được Plugin.Nếu mạch điện lắp ráp đúng thì bây giờ nó sẽ nhận được tín hiệu từ Remote của bạn.Để kiểm tra bạn dùng Remote gia dụng chĩa vào mắt thu.Nếu cái đèn trạng thái hình tròn màu xanh chuyển sang màu vàng mỗi lần bấm phím trên Remote thì phần cứng của bạn đã kết nối thành công (Hình1.1)...
2.1 Sử dụng chương trình:
Nguyên tắc của Girder là nhận tín hiệu (sự kiện:event) hồng ngoại rồi giải mã sau đó sẽ được gán vào một tác động thực thi trên máy tính,muốn thực thi một hành động nào thì gán nó với một sự kiện (nút bấm trên Remote).
2.1a Sử dụng lệnh đơn:
Từ menu Edit chọn Add Command(Ctrl+A).Bấm vào nút Learn Event sau đó bấm nút trên Remote,mã (Event String) của tín hiệu sẽ được gán vào lệnh này.Tiếp theo bạn sẽ chỉ định cho nó gán lên một tác động cụ thể.Ở dãy Tab bên phải của chương trình có thiết kế sẵn những tác động để người dùng có thể lựa chọn.Ở Tab Window bạn có thể điều khiển các tác động về HĐH,các hoạt động trình diễn.Còn Tab O.S cho phép điều khiển phần cứng và các tác động sâu vào hệ thống.Giả sử bạn muốn Window làm câm (Mute) tiếng thì bạn chọn Tab O.S và chọn Mute Display từ menu sổ xuống,bấm tiếp vào nút Volume chọn Master Mute sau đó nhấn Apply.Từ bây giờ mỗi khi nhấn phím đã gán trên Remote thì âm thanh trong Windows sẽ bị tắt.Nhấn Remote một lần nữa để hủy lệnh này.Tóm lại là chức năng của nó rất phong phú,bạn nên tự khám phá thêm.
Một lưu ý đối với lệnh Mute là Girder đã thiết kế sẵn khả năng Toggle,với khả năng này lệnh Mute có thể tắt/bật theo 2 trạng thái với chỉ 1 sự kiện(Event),vấn đề về lệnh trạng thái sẽ được đề cập ở phần sau này.Ở đây để tránh sự lập lại do Girder nhận lệnh theo chuỗi liên tiếp với thời gian quá nhanh,khi đó cần đặt một khoảng thời gian xác định cho trường (field) Anti_reapeat wait time(ms) nằm ở góc trên bên phải cho sự kiện (Event).Girder sẽ chờ 1 khoảng thời gian xác định trước khi nhận lệnh kế tiếp,việc này có ý nghĩa rất quan trọng trong việc nâng cao sự chính xác của thiết bị.Đơn vị được tính bằng mili giây (ở đây thường chỉ cần dưới 500 mili giây).
2.1b Sử dụng lệnh theo nhóm:(nhóm đa)
Đây là một chức năng cực hay của Girder,với chức năng này Girder sẽ thực thi nhiều lệnh với
một sự kiện đã gán,điều này rất quan trọng đối với một số tác vụ đòi hỏi sự phức tạp.Giả sử bây giờ bạn muốn chuyển bài hát trong trình nghe nhạc WinMedia10 chẳng hạn,trước tiên bạn sẽ di chuột lên cửa sổ của WinMedia rồi tìm vị trí của phím Next rồi click chuột.Như vậy để giải quyết một chuỗi hành động đó Girder đã đưa ra phương pháp gom tất cả chuỗi hành động này vào 1 nhóm.Để sử dụng lệnh này từ menu Edit bạn chọn Add MultiGroup (Ctrl +M),một nhóm mới xuất hiện có biểu tượng là 2 cái Remote nằm song song.Tại đây bạn thêm vào các lệnh đơn cho một chuỗi hành động.Như ở hình dưới là một chuỗi lệnh để thực hiện lệnh Play của trình nghe nhạc WinMedia10.
Như đã đề cập,lệnh nhóm đa đã trải qua 6 lệnh đơn theo thứ tự từ trên xuống.Chúng ta sẽ đi giải thích từng bước một cho chuỗi lệnh này.
2.1.1 Đầu tiên là lệnh Focus có trong Tab Window có chức năng hiển thị hay hiện cửa sổ của chương trình mà lệnh này
hướng tới,chi tiết ở hình bên.Bấm vào nút Target để chỉ định chương trình.Tại cửa sổ Target Seclector,có 2 cách để chỉ định là chọn trong bảng liệt kê và kéo thả "vòng tâm" vào chương trình.Cần phải chạy trước chương trình để Girder cập nhật trong Running Tasks/Windows .Tại phần Executable
phải chính xác,phần Class Name và Name là thông tin bổ sung có thể bỏ qua.Phần này cần chính xác nhưng không quá chi tiết để Girder dễ hiểu.
Lưu ý : đối với lệnh nhóm đa có nhiều lệnh đòi hỏi sự chỉ định vào cùng 1 chương trình ta có thể sử dụng lệnh Set Group Target (Ctrl+T) từ menu Commands để chỉ định cho cả nhóm (Group).
Sau đó nhấn Ok tiếp theo đừng quên nhấn Apply để Girder ghi nhớ.
2.1.2 Lệnh Resize.Đây là lệnh chỉ định cho cửa sổ của trình WinMedia10 phải mang một kích thước đã định,ở đây là ngang 500 pixel và dọc là 400 pixel.Việc xác định kích cỡ là điều cần thiết vì khi chạy nhiều định dạng Media có thể làm kích cỡ thay đổi vì vậy cần phải thống nhất về kích cỡ khi thực thi lệnh này.Tiếp theo tất nhiên là phải chỉ định chương trình cho Girder hiểu bằng Target, phần này thực hiện như ở trên.
2.1.3 Lệnh Move Window dùng để di chuyển cửa sổ ct đến một vị trí trên màn hình, điểm xác
định là vị trí góc trái trên của cửa sổ chương trình.Gider nhận cả giá trị âm bằng việc thêm dấu trừ ở trước tham số (vd:-100).Như ở hình bên Girder sẽ đưa trình WinMedia10 vào sát mép bên trên của màn hình,việc này sẽ có lợi đối với nhiều chế độ phân giải màn hình khác nhau.Lý do sẽ được trình bày ở dưới.
2.1.4 Lệnh Move(Absolute Move Mouse) dùng để di chuyển con trỏ chuột tới một vị trí chính xác trên màn hình,đơn vị được đo bằng pixel.Tùy thuộc vào độ phân giải của màn hình đang thể hiện thường là 640*480, 800*600, 1024*768. Đây là điểm khá quan trọng vì khi thay đổi độ phân giải của màn hình có thể làm cho sai lệch vị trí,dẫn đến lệnh sẽ mất hiệu lực.Như đã đề cập ở trên để con trỏ đến được đúng vị trí nên đặt kích cỡ cửa sổ chương trình có độ lớn vừa phải,cần thống nhất về hình dạng(skin) và vị trí cửa sổ là rất quan trọng có như vậy khi thay đổi độ phân giải màn hình Girder mới hoạt động được chính xác. Mục đích của lệnh này là đưa con trỏ tới vị trí nút Play của trình WinMedia10.Trước hết là đánh dấu Mouse Pos để Girder lấy tọa độ cho con trỏ chuột,thông tin về vị trí của nút Play cần được nhập vào 2 trường (field) X/Timeout và Y.
2.1.5 Lệnh Wait: với đúng như ý nghĩa của nó,đây là lệnh chờ sau một số tác vụ được thực thi hoặc một thời gian đã định.Vì qua một vài lệnh đơn đã thực hiện trước đó sẽ cần một khoảng thời gian nhất định để các tiến trình được hoàn tất một cách đầy đủ.Có 2 cách để thực hiện điều này hoặc là nhập vào một con số tham chiếu trong trường thời gian (được
tính bằng mili giây) hoặc đánh dấu chức năng Wait for Window,Girder sẽ chờ cho khi
nào các tác vụ trước kết thúc lúc đó Girder mới tiếp tục các kệnh kế tiếp.
2.1.6 Lệnh Click: Nằm trong Tab Mouse,đây là Tab dùng để điều khiển các tác vụ về chuột,ở đây đơn giản là 1 cú Click trái chuột để kích hoạt chức năng Play của trình WinMedia10.
Và điều cuối cùng là gán 1 sự kiện (event) cho lệnh đa nhóm mà bạn vừa tạo,nhấn Learn Event và bấm 1 phím trên Remote.
Tới đây có lẽ bạn đã biết sức mạnh của lệnh nhóm đa.Tất nhiên đây không phải là cách duy nhất mà Girder có thể thực hiện nhưng nó rất hữu ích đối với các chương trình có giao diện điều khiển bằng đồ họa.Ngoài ra Girder còn cung cấp cho bạn các Tab về điều khiển bàn phím,dòng lệnh,tổ chức và quản lý...
2.1.7 Tab Keyboard và trạng thái lệnh (State Command):
Phần này chúng ta sẽ nói về Tab Keyboard cung cấp các tác vụ về bàn phím,ta sẽ xét 1 ví dụ cụ thể,ở đây sẽ là 1 tổ hợp phím dùng để chạy trình xem phim HeroSoft2001 khá thông dụng ở chế độ FullScreen.
Ta sẽ tạo 1 lệnh nhóm đa,nhưng trước hết chúng ta sẽ tìm hiểu thêm về 1 khái niệm nữa đó là trạng thái lệnh,vì sao những từ này được in đậm như vậy?Lý do đơn giản là nó quan trọng.Để dễ hiểu ta hãy nghĩ đến chức năng của nút Eject có trong các đầu CD,chỉ với 1 nút nhưng bạn có thể đóng hoặc mở khay đĩa CD,như vậy là 1 nút nhưng chứa 2 lệnh.Đối với Girder nó sẽ coi đó là 2 trạng thái của 1 sự kiện(event).Tức là bạn có thể đặt những trạng thái cho lệnh nhóm đa.Trở về với công việc,như ta đã biết lệnh FullScreen của HeroSoft là Ctrl+Home và phục hồi lại là Ctrl+End.Bây giờ ta sẽ tạo 1 nhóm đa,sau đó thêm 2 lệnh đơn cho nó(như hình trên).Lệnh 1 chọn Tab Keyboard,từ menu sổ xuống chọn HOME,đánh dấu vào Ctrl,chỉ định đến HeroSoft bằng Target sau đó chọn Apply,lệnh 2 làm tương tự nhưng chọn END.bạn gán 1 sự kiện(event) cho lệnh nhóm đa này.Tất nhiên theo mặc định tất cả các lệnh trong nhóm đa đều được thực hiện khi ta bấm nút(event) đã gán trên Remote. Nhưng chúng ta muốn chúng thực thi từng lệnh ở mỗi lần nhấn phím(theo mỗi trạng thái).Để làm được điều này,bạn cần đặt trạng thái cho lệnh nhóm đa,ở đây là 2.Từ menu Command chọn State Setting(F6).
Đặt trạng thái cho nhóm đa như hình,tiếp theo ta sẽ đặt trạng thái cho 2 lệnh đơn,lệnh thực hiện đầu tiên là Ctrl+HOME,ta đặt cho 2 trường (field) là 1(thực hiện trạng
thái 1),lệnh thứ 2 (Ctrl+END) ta đặt là 2 (thực hiện trạng thái 2).Bây giờ bạn hãy bấm nút (event) trên Remote và khảo sát kết quả.Lệnh move mouse có trong hình trên chỉ là lệnh phụ,ý nghĩa của nó đơn giản chỉ là đưa con trỏ chuột ra khỏi màn hình cho..."đỡ vướng".
Với nguyên tắc này Girder cho phép đặt nhiều trạng thái cho sự kiện (event) không chỉ ngừng lại ở con số 2 mà có thể là 3,4 hoặc nhiều hơn nữa.
Tab KeyBoard còn có thể cho phép thay thế hoàn toàn chức năng của 1 bàn phím thông thường,với trường (field)
Sentence,Girder có thể "gõ" thay keyboard của bạn.Điều này rất cần thiết và tỏ ra hiệu quả đối với các trình nghe nhìn cho phép tương tác bằng bàn phím chẳng hạn như trình Nero Showtime 7.0.Bạn có thể tham khảo trong File .GML(file của Girder) ở dưới để hiểu rõ hơn về các chức năng này.Nếu bạn có 1 chiếc Remote hồng ngoại có nhiều phím bấm thì có thể biến nó thành 1 bàn phím không dây rất hay -->ý tưởng cũng không tồi phải không?.
Đến thời điểm này thì những vấn đề chính của Girder đã được giải quyết.Nhưng chúng ta sẽ kết thúc chuyên đề này bằng một phần cuối cùng mà tôi thấy nó sẽ rất cần thiết,đó là tổ chức và quản lý nhóm(Group).
2.1.8 Tổ chức nhóm (Group):Vấn đề cuối cùng chúng ta sẽ tìm hiểu là cách thức tổ chức các nhóm của Girder.Có lẽ ngài Ron Bessems đã cảm thấy sự phức tạp và phong phú của các trình nghe nhìn hiện nay,mục đích của phần này không ngoài việc giải quyết vấn đề đó.Vì vậy Girder đã cung cấp tính năng quản lý lệnh theo nhóm để người dùng dễ nhớ và dễ thao tác trên Remote.Ai cũng có sở thích dùng 1 trình nghe nhìn nào đó vì chúng đều có những ưu khuyết riêng,WinMedia 10 thì đẹp và dễ quản lý nhưng hơi kén đĩa so với Hero nhưng "người hùng" thì lại ít chức năng so với NeroShowtime 7.0.Vì vậy để có một "trung tâm giải trí" thực sự thì người dùng buộc phải cho chúng "sống chung" với nhau.Để có thể sử dụng chung 1 số phím trên Remote cho mỗi trình nghe nhìn Girder sẽ cho tất cả các lệnh điều khiển của chương trình đó vào 1 nhóm.Giả sử bạn có 5 chương trình thì sẽ có 5 nhóm khác nhau.Nếu như các chương trình có cùng kiểu chức năng (Play, Stop, Previous, Next, Forward, Backward, Pause...) thì chúng ta có thể đặt cho chúng chung một số phím (event) trên Remote.Tất nhiên là Girder sẽ cho phép bạn chỉ "mở" 1 nhóm nào đó theo yêu cầu,ví dụ bạn đang mở trình WinMedia 10 thì Girder sẽ chỉ "mở" nhóm lệnh phục vụ cho trình WinMedia 10,như vậy cho dù bạn có mở nhiều trình lên cùng 1 lúc thì cũng không sợ lệnh bị sai.
Bây giờ chúng ta sẽ khảo sát 1 file của Girder(.GML) đã được cài đặt sẵn 1 số chương trình thông dụng.Như trong hình ta thấy chỉ có nhóm (group) WinMedia10 là được "mở".Các lệnh (event) trong các Group được phép giống nhau.Có điều lưu ý là không bao giờ được "khóa" (Disable) nhóm "gốc"(Root),ở hình dưới nhóm gốc là Otacon82 vì điều này sẽ làm Girder tê liệt hoàn toàn.
Để thực hiện việc "khóa" hay "mở" nhóm,chọn Tab Girder,từ menu xổ xuống bạn chọn Group Enable hoặc Group Disable.Như hình bên lệnh đa nhóm Set Win10 sẽ "mở" nhóm Win Media 10 và "khóa" các nhóm còn lại.Việc này thực hiện tương tự đối với các trình khác. Thay cho lời kết:
Ngoài các công dụng đã kể trên Girder còn
hỗ trợ một số tiện ích về quản lý và tổ chức cho Registry các tác vụ mang tính trình bày và cả các tác vụ điều khiển cho chính Girder kể cả việc thay đổi các Plugin,rất tiện lợi cho việc phát triển mở rộng các nhu cầu của người sử dụng.Đa công dụng,đa ngôn ngữ,nhỏ và nhẹ đây là
chương trình rất hay và xứng đáng để có một chỗ trong ổ cứng của bạn.Chúc bạn thành công!!!.
Download:
GirderPack: (phiên bản Girder 3.29b bao gồm Plugin của Igor Cesko cho WinXP,2k)
Entertaiment.GML: (file Girder dùng để điều khiển các trình nghe nhạc thông dụng bao gồm: winmedia10, HeroSoft2001, NeroShowtime7.0, RealPlayer10, QuickTime,sau khi download về bạn cần cho Girder "học" lại các sự kiện (event).Trong đó NeroShowtime là trình nghe nhìn rất mạnh có trong bộ ghi đĩa rất nổi tiếng của hãng Nero).
Mọi thắc mắc các bạn có thể liên hệ Email: [email protected]