Khối này có chức năng hoàn toàn giống như một bộ điều khiển từ xa trong bán kính 10m.Tín hiệu điều khiển được truyền từ bộ phát (hay bộ điều khiển từ xa) đến bộ thu trong môi trường không khí. Để bộ thu có thể phân biệt được giữa tín hiệu IR của bộ điều khiển với với các nguồn phát IR khác, tín hiệu của bộ phát được điều chế trên sóng mang có tần số từ 32.5kHz - 56kHz. Trong ứng dụng này, tần số 40kHz được sử dụng.
Hai thành phần chính là bộ phát và bộ thu. 4.7.1 Nguyên lý hoạt động:
Mỗi tín hiệu IR được phát ra từ bộ điều khiển từ xa từ bộ điều khiển từ xa có rất nhiều đặc trưng khác nhau. Những đặc trung này phụ thuộc vào nhà sản xuất. Nhìn chung đều có những đặc trung sau :
• Bước sóng của tín hiệu IR.
• Tần số sóng mang.
• Phương thức mã hoá.
• Nội dung của mã.
• ThờI gian của xung.
Chuẩn RC5 là 1 trong những chuẩn giao tiếp IR tiêu biểu. Đây là chuẩn được hãng Philips phát triển. Trong chuẩn này khi mỗI phím bấm trên điều khiển từ xa được ấn nó sẽ phát ra một khung dữ liệu gồm 14 bit, mỗi bit có độ dài 1.728ms. Toàn bộ chuỗi bit được phát lại sau mỗi 130ms nếu phím được giữ. Các bit được được mã hoá theo kiểu manchester, tức là mỗi bit bao gồm 2 nửa: nửa trái và nửa phải, 2 nửa này có mức logic ngược nhau.
Hình 27:Dạng Xung mã hoá Manchester. Cấu trúc 1 khung dữ liệu khi nhận như sau:
Hình 28:Khung dữ liệu RC5 khi nhận.
4.7.2 Bộ Phát :
Hình 29:Cấu trúc 1 bộ phát hồng ngoại
Trong sơ đồ trên, các khối Bộ tạo dữ liệu, bộ phát tín hiệu, bộ tạo sóng mang thường nằm trong một IC Encoder như M145027 (SGS-THOMSON), PT2262, TRC1300 (Texas Instruments)…
• Hoạt động và chức năng của mỗi khối:
Led IR phát Bàn phím Bộ phát tín hiệu Sóng mang A Dữ liệu
o Bàn phím: thể hiện các phím chức năng. Khi một phím được ấn sẽ làm Wake-Up IC Encoder (thoát khỏi chế độ Power-Down) để thực hiện nhiệm vụ.
o Mỗi phím được ấn tương ứng với một dữ liệu được truyền đi. Trước khi dữ liệu được truyền, chúng được thêm các bit đầu, cuối, kiểm lỗi, hoặc các bit bảo mật…Dữ liệu mới tạo ra được truyền từng bit đồng thời chúng được điều chế trên sóng mang có tần số đặc trưng cho bộ phát.
Hình 30:Sơ đồ bộ phát
Tuy nhiên xây dựng một mạch phát riêng là không cần thiết, ta có thể sử dụng 1 chiếc điều khiển từ xa của TV có sẵn.
4.7.3 Phần thu:
Phần thu sử dụng cảm biến GP1U52X. Đây là cảm biến có sẵn bộ lọc thông dải, bộ giải điều chế, bộ khuếch đại cho lối ra là dạng số.
Hình 31:Sơ đồ cấu tạo bên trong của GP1U52X Đặc tính kỹ thuật:
• Điện áp hoạt động 5V
• Dòng tiêu thụ 5mA
• Tần số trung tâm của bộ lọc 40kHz
• Độ rộng dải thông 4kHz
Hình 32:Hình ảnh cảm biến GP1U52X
Khung dữ liệu nhận được từ cảm biến có sự tương đồng với khung dữ liệu chuẩn RS232. Vì vậy ta sử dụng khốI UART của vi điều khiển để đọc dữ liệu từ cảm biến. Tốc độ UART phải được đặt đúng bằng tốc độ truyền của remote control. Sau khi tham khảo nhiều loại remote control cũng như thử nghiệm. Tốc độ UART được đặt là 300Kbps.
Ngoài việc điều khiển từ xa, robot còn bố trí 3 phím bấm:
• Start/Stop (khởi động hoặc ngừng hoạt động robot)
• Timer (đặt thời gian chạy)
• Mode (đặt chế độ chạy).
Để tiết kiệm các công vào ra ( I/O port ) của vi điều khiển, ta dùng phương pháp đọc phím bấm bằng ADC.
Hình 33:Sơ đồ ghép nối phím bấm với Vi điều khiến
Ở đây ta sử dụng mạng điện trở hợp thành một dãy các bộ chia thế. Các bộ chia thế này tao ra các mức điện áp khác nhau cho mỗi phím được nhấn. Lối ra được đưa vào ADC 10-bit của vi điều khiển để đo các mức điện áp này và quyết định xem phím nào được nhấn.
Bảng 10:Giá trị ADC khi đọc phím bấm
Trên thực tế, trong phần mềm xử lí, để quyết định xem phím nào được ấn, không phải ta so sánh giá trị ADC với một số nào đó mà xem giá trị ADC này có nằm
Phím Điện áp ra (V) Giá trị ADC Start/Stop 1.56 320 Timer 2 410 Mode 2.5 512
trong dải nào đó không. Chằng hạn, nếu phím Mode được ấn thì giá trị ADC phải nằm trong dải từ 502 tới 522 (tức là lân cận của 512, với mức sai số là 10).
Phương pháp đọc phím bấm này có ưu điểm tiết kiệm tài nguyên của Vi điều khiển, tuy nhiên nhược điểm của phương pháp này là không chính xác, do xung nhiếu sinh ra khi ấn phím.
4.9 Hiển thị LED 7 đoạn và Loa:
4.9.1 Hiển thị LED 7 đoạn :
LED 7 đoạn sẽ hiển thị thời gian đặt cho robot hoạt động, chế độ hoạt động.
Khối này sử dụng 4 chân của vi điều khiển qua bộ giải mã BCD-TO-SEVEN- SEGMENT 74LS47 để điều khiển 2 led 7 đoạn và các led đơn. Các thông tin về thời gian, chế độ chạy, trạng thái của pin sẽ được thể hiện trên các led này.
Mỗi led 7 đoạn và nhóm led đơn được refresh với chu kì 5ms bởi phần mềm qua các tín hiệu điều khiển T1, T2, T3 để hiện thị các giá trị khác nhau trên các led.
Hình 34:Sơ đồ hiển thị LED 7 đoạn
4.9.2 Loa :
Loa báo hiệu khi phím được ấn, báo lỗi, báo hết pin. Loa phát âm La tần số 440Hz, tín hiệu điều khiển loađược cung cấp từ vi điều khiến
Hình 35:Sơ đồ ghép nối loa
4.10 Mạch điều khiển động cơ :
Robot sử dụng 2 động cơ DC chổi than, vì vậy ta sử dụng mạch cầu H để điều khiển motor
Sau đây là sơ đồ nguyên lý và nguyên tắc hoạt động của mạch cầu H
Hình 36:Sơ đồ nguyên lý và nguyên tắc hoạt động của mạch cầu H. Ta thấy mạch cầu H điều khiển động cơ bằng 4 khoá S1 S2 S3 S4. Khi S1 và S4 đóng, S2 S3 mở động cơ quay theo chiều kim đồng hồ, còn khi S2 và S3, còn khi Khi S2 và S3 đóng, S1 S3 mở động cơ quay theo chiều ngược chiều kim đồng hồ.S1 và S3 đóng, S2 và S4 mở hoặc S1 và S3 mở, S2 và S4 đóng Motor ở trạng thái phạnh. Các trường hợp S1 S2 cùng đóng hoặc S3 và S4 cùng đóng không được xảy ra, vì khi đó xảy ra hiện tượng đoản mạch dẫn đến mạch bị cháy.
S1 S2 S3 S4 Motor Mở Mở Đóng Đóng Đoản mạch Đóng Đóng Mở Mở Đoản mạch Đóng Mở Đóng Mở Phanh Mở Đóng Mở Đóng Phanh Đóng Mở Mở Đóng Tiến Mở Đóng Đóng Mở Lùi Đóng Đóng Đóng Đóng Ngắn mạch Mở Mở Mở Mở Thả nổi Bảng 11:Trạng thái motor
Trên thực tế trong các mạch cầu H ta có thể thay các khoá S1 S2 S3 S4 bằng rơle hay các loại transistor, tuy nhiên các transistor này phải có công suất tiêu tán nhỏ, chịu được dòng lớn. Hiện nay có rất nhiều loại transistor trường MOSFET có công suất tiêu tán nhỏ tuy nhiên lại chịu được dòng lớn, rất thích hợp cho việc thiết kế mạch cầu H.
Hình 37:Mạch cầu H được thiết kế với transistor trường MOSFET
4.10.2 Điều khiển motor với IC L298:
Để điều khiển motor phát động cho Robot ta hoàn toàn có thể thiết kế 1 mạch cầu H như trên, tuy nhiên cặp motor phát động của
robot có công suất nhỏ thêm nữa hình dáng robot nhỏ nên việc sử dụng mạch cầu H là không cần thiết. Thay vào đó ta sử dụng IC L298 Đây là IC có chứa 2 mạch cầu H hoàn toàn độc lập và có thể ghép song song với nhau, mỗi cầu có khả năng cung cấp dòng 2A – đáp ứng được yêu cầu cho mỗi motor có dòng tiêu thụ tối đa là 1.5A.
Hình 38:Sơ đồ chân IC L298
Chức năng Chân số Tên Chức năng
Nguồn
Chân 4 Vs Điện áp Vmotor cho motor Chân 9 Vss Điện áp 5V cho khối logic Chân 8 GND Chân nối đất
Lối vào Chân 5, 7 Input 1, Input 2 Lối vào TTL của cầu A Chân 10, 12 Input 3, Input 4 Lối vào TTL của cầu B Lối ra
Chân 2, 3 Output 1, Output
2 Lối ra của cầu A Chân 13, 14 Output 3, Output
4 Lối ra của cầu B
Cảm nhận Chân 1, 15 IsA, IsB Dùng để điều khiển dòng tải Bảng 12:Mô tả IC L298
Hai cầu A và B được mắc hoàn toàn tương tự nhau. Các tín hiệu điều khiển từ PIC được nối thông qua các trở hạn dòng tới lối vào In1, 2, 3, 4 của L298 (do dòng tối đa ứng với điện áp vào ở mức cao là 100µA). Lối ra được mắc thêm các diode xung lên nguồn Vmotor và đất để triệt tiêu các xung phản hồi từ motor. Gần các chân nguồn Vs và Vss cần mắc thêm các tụ gốm 100nF để tránh dao động làm ảnh hưởng tới PIC.
Hình 39:Sơ đồ ghép nối với vi điều khiển
4.10.3 Điều khiển Motor chổi quét:
Chổi quét sử dụng một động cơ có dòng tiêu thụ tối đa là 2A. Do chổi quét chỉ xoay theo một chiều nên mạch điều khiển không cần cầu H mà chỉ sử dụng một MOSFET-N là IRF540 làm nhiệm vụ đóng mở thông thường.
Mô tả IRF540
Hình 40:mô tả IRF540
Như vậy, IRF540 có thể tải được dòng khá lớn 33A – đủ để đáp ứng cho motor, điện trở giữa cực nguồn (S) và cức máng (D) khi mở rất nhỏ 44mΩ nên sụt áp trên hai cực DS cũng nhỏ (cỡ 1V). Thêm vào đó, trong IRF540 đã có sẵn một diode Schottky để bảo vệ dòng ngược từ S sang D mà có thể làm hỏng cấu trúc của MOSFET. Lối vào Mo_sing Chức năng motor L Dừng H Xoay L: Low H: High
Hình 41:sơ đồ mạch điều khiển motor quét
Nguồn cung cấp Vmotor được lấy từ lối ra của mạch Switching LM2576. Sơ đồ điều khiển này sử dụng thêm một tầng phụ (dùng C1815) để kích mở IRF540. Điều này có thể không cần thiết nhưng sẽ rất an toàn nếu có sự cố làm hỏng MOSFET cũng không làm ảnh hưởng đến vi điều khiển. Hai cực của motor được nối thông qua jack JP3.
Khi tín hiệu điều khiển Mo_sing từ vi điều khiển ở mức thấp (Low) thì C1815 sẽ cấm, cực G của Q1 nối đất qua điện trở R42, do vậy Q1 cũng cấm và làm motor ở trạng thái dừng. Ngược lại, khi Mo_sing ở mức cao (High), Q2 dẫn, điện áp cực E của Q2 sẽ ở mức cao do R42 có giá trị trở rất lớn và làm Q1 mở, kết quả là có dòng chạy qua motor.
Nhược điểm của mạch: vì IRF540 mở hoàn toàn ở 10V nên với mạch được thiết kế như trên IRF540 mở ở 5V vì vậy trong quá trình hoạt động transistor rất nóng, mặc dù có tản nhiệt nhưng cũng không thể hoạt động được lâu.
4.11 Thiết kế PCB:
4.11.1 Phần mềm thiết kế mạch in PCB DXP Altium Designer:
Cũng giống như Orcad, Protel, Proteus, Altium Designer là một phần mềm tiện công cụ để thiết kế các loại bo mạch điện tử. Altium Designer được phát hành đầu năm 2007 với những tính năng mạnh mẽ, vượt trội so với Orcad và Protel.
Theo các chuyên gia của Altium, thông thường, việc phát triển các sản phẩm điện tử, gồm thiết kế bo mạch, thiết kế FPGA (vi mạch tích hợp, có thể lập trình để thực hiện các chức năng khác nhau và có thể tái lập trình) và phát triển phần mềm nhúng… là các quá trình riêng rẽ, độc lập được tiến hành trong những môi trường riêng biệt.
Altium Designer là một hệ thống phát triển điện tử thống nhất đầu tiên trên thế giới cho phép các kỹ sư thiết kế sản phẩm điện tử từ những khái niệm ban đầu cho đến khi hoàn thành mạch in cuối cùng trong một môi trường đơn nhất.
Altium Designer cung cấp một ứng dụng kết hợp tất cả công nghệ và chức năng cần thiết cho việc phát triển sản phẩm điện tử hoàn chỉnh, như thiết kế hệ thống ở mức bo mạch và FPGA, phát triển phần mềm nhúng cho FPGA và các bộ xử lý rời rạc, bố trí mạch in (PCB)… Altium Designer thống nhất toàn bộ các quá trình lại và cho phép bạn quản lý được mọi mặt quá trình phát triển hệ thống trong môi trường tích hợp duy nhất.
Khả năng đó kết hợp với khả năng quản lý dữ liệu thiết kế hiện đại cho phép người sử dụng Altium Designer tạo ra nhiều hơn những sản phẩm điện tử thông minh, với chi phí sản phẩm thấp hơn và thời gian phát triển ngắn hơn.
Altium Designer quản lý dữ liệu theo các project. Đầu tiên ta phải khởi tạo project, sau đó tạo file schematic để tạo ra môi trường vẽ mạch nguyên lý. Altium hỗ trợ hầu hết thư viện footprint cho các linh kiện điện tử, như PIC16F877A, Led7 đoạn, các loại điện trở và tụ điện, IC người thiết kế không phải tự tạo thư viện footprint vì vậy việc thiết kế mạch được thực hiện khá nhanh và thuận lợi.
Sau khi hoàn thành việc thiết kế mạch nguyên lý ( schematic ) ta chuyển thành PCB. Đầu tiên ta sắp linh kiện vào vị trí nhất định trên bản mạch, khối số được sắp gần nhau, khôi tương tự được sắp ra 1 phần, điều này giúp giảm nhiễu trên mạch. Altium Designer hỗ trợ tính năng đi dây tự động ( auto ruote ). Sau khi đi dây tự động ta chỉnh lại các phần đi dây tự động chưa hợp lý.
4.11.3 Kết quả và nhận xét:
Mạch điện tử cơ bản đã đáp ứng được yêu cầu của bài toán. Nhận xét:
• Tuy nhiên vì tất cả các khối được đặt trên cùng 1 bo mạch nên việc sửa chữa và nâng cấp là rất khó khăn.
• Khối điều khiển motor phát điộng tuy đã đáp ứng được việc thực hiện các tác vụ của robot, tuy nhiên do sử dụng IC tích hợp, nên khi yêu cầu thay động cơ có công suất cao hơn vào thì không đáp ứng được.
• Phần điều khiển motor quét chưa tốt. Khi vận hành 1 thời gian dài transistor có hiện tượng nóng.
• Sensor cảm nhận độ cao hoạt động còn hạn chế, ví dụ như không nhận dạng được nhiều loại mặt sàn.
•
Chương 5: Phần mềm điều khiển Robot.
5.1 Lập trình cho hệ thống thời gian thực:
Khái niệm về điều khiển thời gian thực:
RTOS( real time operation system ) một hệ điều hành đa nhiệm dành cho các ứng dụng thời gian thực. Như trong các ứng dụng hệ thống nhúng, robotics, điều khiển tự động.
Một hệ thống real-time được hiểu là một hệ thống làm việc với các sự kiện tức thời (real-time). Tuy nhiên, không phải mọi hệ thống đều có thể thực hiện được những quyết định tức thời hay đáp trả lại sự kiện một cách tức thời như chúng ta mong muốn. Khi xây dựng các ứng dụng phần mềm chúng ta luôn mong muốn thời gian trễ để đưa ra một lệnh hay một quyết định là nhỏ nhất, hay khi xây dựng các ứng dụng phần cứng chúng ta lại muốn thời gian đưa ra một tín hiệu đáp trả một sự kiện là phải gần như tức thời, các hệ thống đáp ứng sự kiện bao giờ cũng có một thời gian trễ nhất định. Khái niệm "hệ thống thời gian thực" ở đây được hiểu ngầm như là một hệ thống đáp ứng sự kiện với một thời gian trễ chấp nhận được.
Như vậy, một hệ thời gian thực là một hệ thống mà sự hoạt động tin cậy của nó không chỉ phụ thuộc vào sự chính xác của kết quả, mà còn phụ thuộc vào thời điểm đưa ra kết quả, hệ thống có lỗi khi yêu cầu về thời gian không được thoả mãn.
Hình 42:ví dụ về đáp ứng của hệ thống thời gian thực Một hệ thống thời gian thực có các đặc điểm tiêu biểu sau:
• Tính bị động: Hệ thống phải phản ứng với các sự kiện xuất hiện vào các thời điểm thường không biết trước. Ví dụ, sự vượt ngưỡng của một giá trị đo, sự thay đổi trạng thái của một thiết bị quá trình phải dẫn đến các phản ứng trong bộ điều khiển.
• Tính nhanh nhạy: Hệ thống phải xử lý thông tin một cách nhanh chóng để có thể đưa ra kết quả phản ứng một cách kịp thời. Tuy tính nhanh nhạy là một đặc điểm tiêu biểu, nhưng một hệ thống có tính năng thời gian thực