Vậy tương lai sẽ đi về đâu cho những thiết bì cồng kềnh này, hay chỉ có những Developer IT mới dùng máy PC còn lại đa số người dùng cá nhân với mục đích giải trí, học tập Một phát hiện t
Trang 1Qua những ngày tháng nỗ lực phấn đấu, qua những đêm không ngủ cuối cùng với sự giúp đỡ tận tình của các thầy cô và bạn bè chúng em đã hoàn tất đề tài này đúng thời hạn Một đề tài tuy không mới nhưng đây cũng là một trong những hướng nghiên cứu khá hấp dẫn Lời đâu tiên, chúng em xin bày
tỏ lòng biết ơn sâu sắc đến Tiến sĩ: Nguyễn Minh Sơn người đã tận tình truyền đạt những kiến thức trong quá trình học tập và trực tiếp hướng dẫn đề tài này, chỉ bảo những kinh nghiệm quý báu để chúng em hoàn thành tốt đề tài.
Chúng em xin bày tỏ lòng biết ơn trân trọng nhất tới các thầy cô trong khoa Kỹ thuật Máy tính và tất cả các thầy cô trường Đại học CNTT đã nhiệt tình truyền đạt cho chúng em những kiến thức trong những năm học vừa qua Chân thành cảm ơn các bạn sinh viên K2C2 và lớp KTMT02 đã giúp đỡ trong những năm học vừa qua, là những người luôn bên cạnh chia sẻ và giúp đỡ những kiến thức trong quá trình học tập cũng như những khó khăn trong cuộc sống.
Em xin gửi lời chúc sức khỏe đến tất cả các thầy cô để mãi là những người thầy, người cô hướng dẫn, giúp đỡ, nuôi ước mơ cho biết bao thế hệ sinh viên ngày một trưởng thành hơn, vững vàng hơn trong quá trình học tập
và rèn luyện trong trường cũng như trong cuộc sống sau này.
Sinh viên thực hiện
Phạm Hoài Phước
Trang 2MỤC LỤC
Trang 3Chương I
GIỚI THIỆU TỔNG
QUAN VỀ ĐỀ TÀI
Trang 41. GIỚI THIỆU ĐỀ TÀI:
Công nghệ mỗi ngày một biến đổi không ngừng, tốc độ phát triển phải gọi là đến mức không thể theo kịp nếu chúng ta không ngừng học hỏi và trau dồi những kiến thức cần thiết Nếu như trước đây máy tính PC hầu như là không có đối thủ thì hiện nay thị trường này dần đang bị lấn sân bởi máy tính bảng, smart phone Vậy tương lai sẽ đi về đâu cho những thiết bì cồng kềnh này, hay chỉ có những Developer
IT mới dùng máy PC còn lại đa số người dùng cá nhân với mục đích giải trí, học tập
Một phát hiện thú vị khác là rất ít người được hỏi thích chia sẻ chiếc máy tính bảng của họ với các thành viên khác trong cùng một gia đình 43% số người tham gia khảo sát nói rằng họ rất ít hoặc không chia sẻ chiếc máy tính bảng của họ với thành viên khác trong gia đình Với các thiết bị khác, 27% người được hỏi cho biết họ không còn trung thành với thiết bị đọc sách điện tử E-reader của mình nữa, trong khi 25% người dùng ít sử dụng game console Thay vào đó, họ chơi game trên máy tính bảng Chỉ có TV kết nối Internet và điện thoại thông minh là những thiết bị có vẻ như không bị tác động bởi máy tính bảng
Cùng với sự lấn sân của thị trường máy tính bảng thì sự ra đời của HTML5 mở
ra một hướng đi mới trong lĩnh vực thiết kế và sử dụng website trên nền tảng các smart phone, máy tính bảng với tốc độ được cải thiện hơn rất nhiều Với HTML5 các website thiết kế có thể chạy trên mọi trình duyệt và mọi thiết bị từ PC tới các loại điện thoại di động khác nhau HTML5 hứa hẹn sẽ là ngôn ngữ để định dạng mọi website trong tương lai Khi xem một đoạn video trên web được thiết kế với HTML5 người dùng có thể xem một cách “rất tự nhiên” như họ đang đọc một cuốn sách, họ có thể tương tác trực tiếp với các video đó, họ không cần thiết phải cài đặt thêm bất kỳ tính năng hỗ trợ nào ( flash chẳng hạn)
Vậy đâu là chìa khóa cho những ứng dụng đó trong đề tài này?
Từ những sự thay đổi trên chúng ta thấy rằng với 1 smart phone, máy tính bảng cộng với công nghệ 3G hiện nay sẽ được giới thiệu ở phần sau chúng ta có thể truy cập Web mọi lúc mọi nơi mà không bị giới hạn về không gian và thời gian Chúng ta
có thể tải những đoạn Video với chất lượng khá tốt mà không còn lo lắng nữa Tất cả
sẽ nằm trong tầm tay với những “touch screen” Trong đề tài này với sự ra đời của
Trang 5từ xa qua Internet với các thiết bị như smart phone, máy tính bảng dựa trên các ứng dụng trên trình duyệt Web với Internet 3G không giới hạn về không gian và thời gian Với những thiết bị trên chúng ta có thể điều khiển các thiết bị gia đình, văn phòng một cách dễ dàng không sợ bất kỳ một ngăn cách nào bởi vì hiện nay mạng 3G đã phủ sóng gần như hầu hết mọi nơi Các ứng dụng CameraIP quan sát từ xa, các thiết
bị an ninh, giám sát sẽ dựa trên nền tảng này mà không bị hạn chế về hệ điều hành vì trình duyệt Web có thể chạy trên mọi nền tảng
Trong giới hạn của đề tài này, em đã xây dựng một Web Server để điều khiển một Robot từ xa thông qua mạng lan với bộ thu và phát Wifi Theo nguyên tắc thiết lập Home Server ta vẫn có thể cài đặt trên Internet để truy cập với một ánh xạ về DNS Server IP tĩnh hay một Domain đã được đăng ký trước đó Hơn thế nữa, với ý tưởng xây dựng một Robot có thế điều khiển thông qua mạng Internet 3G là một ý tưởng hoàn toàn mới mẻ và quá táo bạo Bởi thực sự hiện nay, tốc độ đường truyền của mạng này vẫn chưa thực sự tương xứng với những gì mà nhiều người mong đợi
Hơn thế nữa, trong đề tài này em còn có một hướng đi khác là dùng Robot vào những mục đích thám hiểm, thăm dò những vùng mà con người có thể bị nguy hiểm khi đặt chân đến như những khu vực chứa nhiều thuốc nổ, bom…Trong hướng đi này chúng ta sẽ dùng một bộ Router Wifi có công suất phát khá lớn khoảng 500m-1000m
và dùng làm kết nối mạng Lan giữa hai thiết bị là Robot và PC hay bất kỳ một thiết bị thông minh nào như đã đề cập ở trên Quá trình còn lại chỉ là truyền và nhận dữ liệu giữa chúng và đảm bảo các kết nối bền vững
Mặc dù quá trình hiện thực đề tài còn nhiều hạn chế chỉ mang tính nghiên cứu
vì chưa đảm bảo được các thiết kế Robot theo yêu cầu về địa hình Tuy nhiên, với mỗi sinh viên ngành kỹ thuật như Điện tử, Kỹ thuật Máy tính thì thiết kế những Robot tuy khá đơn giản là một trong những niềm đam mê lớn, là áp dụng tổng hợp những kiến thức về cơ khí, điện tử, lập trình các giải thuật điều khiển tự động Đề tài Wifi-Robot
là sự tổng hợp những kiến thức nền tảng về mạng máy tính, lập trình Web, lập trình điều khiển các low level như GPIO, lập trình điều khiển Input/Output các boarb mạch điều khiển động cơ, những điều không thể thiếu trong tổng quan lập trình một hệ thống nhúng hoàn chỉnh Với tất cả các ứng dụng khi đưa đến người dùng là ở những mức dễ sử dụng nhất như trình duyệt Web nhưng các tầng bên dưới sẽ là nhửng nhiệm
vụ điều khiển khác nhau như các GPIO, PWM Wifi-Robot sẽ trở thành Robot hoặc có thể tiến xa hơn nữa là một trong những điều hoàn toàn có thể thực hiện được
Trang 6Internet-1. Phần cứng:
Hình 1.2.0: Mô hình phần cứng điều khiển Robot
• PC Laptop đóng vai trò phát Wifi cũng như là thiết bị truy cập và điều khiển Robot PC Laptop truy cập vào board thông qua trình duyệt,hoặc telnet
• Board Tiny6410 là board mạch trung tâm cho việc kết nối với máy tính qua Wifi và gửi tín hiệu sang board ARV thông qua GPIO
• Board AVR nhận tín hiệu Input từ board Tiny6410 và điều khiển chuyển động của động cơ với phương pháp PWM thông qua mạch cầu H
• Robot thiết kế và di chuyển theo sự điều khiển từ máy tính Quá trình sẽ gửi tín hiệu điều khiển từ PC Laptop đến board Tiny6410 rồi đến board AVR Board Tiny6410 sẽ gửi các tín hiệu hình ảnh, kết quả truy xuất GPIO về PC Laptop dưới dạng html
2. Mô hình tương tác:
Trang 7Hình 1.2.1: Mô hình phần tương tác điều khiển Robot
• User sẽ truy cập vào trình duyệt Web và gửi tín hiệu về Board Server thông qua việc nhấn một phím trên bàn phím giả sử như phím
Trang 8Hình 1.2.2: Tương tác giữa GPIO và commmand.html
• Board AVR sẽ nhận tín hiệu từ GPIO PORTE và sẽ xử lý theo yêu cầu Thông qua bất kỳ một thiết bị smart phone truy cập chung mạng Wifi ta có thể dễ dàng điều khiển board và nhiều ứng khác nữa
1. Iandrobot:
a. Mô hình:
Microprocessor nhận tín hiệu điều khiển từ Router Wifi qua cổng RS232 và điều khiển sự di chuyển của Robot Hình ảnh được truyền về qua một
Trang 9CameraIP Robot còn sử dụng cảm biến gia tốc điều khiển hướng di chuyển, tọa độ vị trí Phần cứng và phần mềm của Wifi-Robot này như sau:
b. Phần cứng:
• Robot trong đồ án này sử dụng RC car của New Bright
Hình 1.3.0: Xe Jeep dùng đồ chơi Iandrobot
• Board điều khiển động cơ: Sử dụng 8 Transistors-2 mạch cầu H cho việc điều khiển các chuyển động trái phải của Robot
Hình 1.3.1: Mạch cầu H điều khiền động cơ Iandrobot
• Router: Linksys WRT54G với Broadcom 125 MHz processor, 16
MB memory and 4 MB flash, được tích hợp shell Linux
Trang 10• Port nối tiếp: Linksys WRT54G router hỗ trợ truyền dữ qua port nối tiếp với chuẩn RS232 Project sử dụng chip MAX232 convert RS-
232 to TTL logic
Hình 1.3.3: Mạch testboard RS232 Iandrobot
• Board điều khiển trung tâm: Microcontroller: sử dụng ATmega328 processor, 14 digital I/O pins, a 16 MHz crystal oscillator dùng để nhận tín hiệu logic từ RS232 và điều khiển động cơ thông qua mạch cầu H
Hình 1.3.4: Board mạch trung tâm Iandrobot
• Network Camera: sử dụng Panasonic BL-C1A network Camera này dùng để truyền nhận hình ảnh thông qua TCP/UDP và hiển thị trên trình duyệt của Web Brower
Trang 11Hình 1.3.5: CameraIP Panasonic BL-C1A Iandrobot
Hình 1.3.6: Phần mềm điều khiển truyền nhận dữ liệu Iandrobot
• Chương trình điều khiển động cơ viết trên AVR dùng phương pháp PWM
d. Hình ảnh Wifi-Robot:
Trang 12Hình 1.3.7: hoàn chỉnh kết cấu Iandrobot
2. WowWee Rovio:
a. Giới thiệu:
WowWee Rovio - robot thông minh với hai tính năng chính là vừa làm một thiết bị bắt sóng Wifi vừa là một chiếc Webcam Robot này có hình dáng giống một chiếc xe trang bị ba bánh có thể di chuyển được Ngoài một ăngten có chức năng bắt sóng Wifi, nó còn được trang bị một camera màn hình màu làm nhiệm vụ thu hình ảnh của bạn như một Webcam, có thể nâng lên hoặc hạ xuống một cách dễ dàng Wi-Fi cho phép webcam robot / dẫn chiếu sáng / 1 x loa / 1 x xây dựng trong micro, Kiểm soát từ các thiết
bị truy cập Web Brower
- Dễ dàng điều khiển từ xa Rovio 24 / 7 từ bất cứ nơi nào trên thế giới với một kết nối internet Sử dụng bất kỳ thiết bị web-enabled: PC hoặc Mac, điện thoại di động, điện thoại thông minh, PDA hay thậm chí video game console của bạn
- Rovio phát hiện các thiết lập máy tính của bạn và hướng dẫn bạn qua tiến
Trang 13-Đầu của nó gắn trên máy ảnh di chuyển và phạm vi rộng tầm nhìn cho phép bạn xem và nghe thấy chính xác những gì nhìn thấy và nghe Rovio, trên màn hình của bạn.
- Đặt waypoints để Rovio có thể điều hướng tự xung quanh nhà, mà không cần phải kiểm soát mỗi bước mình!
- Tại một nút bấm, gửi Rovio trở lại dock sạc bằng cách sử dụng khả năng của mình tự docking - ngay cả khi bạn không ở nhà!
- Hướng dẫn Rovio qua địa điểm sáng lờ mờ với sự hỗ trợ của nó, tích hợp đèn pha LED
- Pin sạc NiMH bao gồm pin
- 1 x sạc dock với built-in TrueTrack Beacon
Trang 14b. Phần cứng:
Về phần cứng cũng tương tự như iandrobot chỉ khác là dùng PIC để làm làm bộ xử lý cho việc điều khiển động cơ
• Router: WRT54GL
• CameraIP: Panasonic BL-C1A
Hình 1.3.9:Mạch giao tiếp RS232 JBProjects.net Robot
c. Phần mềm:
Tương tự như iandrobot sử dụng kỹ thuật lập trình socket để truyền nhận
dữ liệu
d. Hình ảnh:
Hình 1.3.10:Kết cấu hoàn chỉnh JBProjects.net Robot
1. Phần cứng:
a. Board Tiny6410:
Trang 15Đây là kit phát triển bởi FriendlyARM sử dụng chip Samsung hỗ trợ hệ điều hành nhúng Linux Kernel 2.38 và các Driver IO ngoại vi Chi tiết hơn
về Kit sẽ trình bày ở phần sau
b. Robot:
Thiết kế Robot cho việc Demo đề tài này dựa trên một số thiết kế, cách gia công khung nhôm, mạch điện tử, giải thuật lập trình của các Robot tham gia các cuộc thi Robocon ở Việt Nam Các linh kiện hầu hết được chọn lựa ở mức trung bình và chỉ đáp ứng yêu cầu demo đơn giản Chi tiết hơn về thiết
kế sẽ trình bày ở phần sau
c. PC:
Sử dụng Laptop Dell Vostro1014 với USB Wifi Tenda làm Router Wifi PC dùng để test kết nối Server-Client cũng như việc biên dịch và mô phỏng source code PC cài đặt 3 hệ điều hành WinXP, Fedora, Win7, và các hệ điều hành khác trên máy ảo Vmware
d. USB Wifi:
Sử dụng USB Wifi TendaW311U hỗ trợ chuẩn N cho việc thu phát sóng với băng thông 150Mb, khoảng cách hơn 100m theo đường thẳng USB này khá rẻ tiền (dưới 200K) nhưng nhược điểm là công suất thu phát không lớn
và chỉ dừng lại ở mức test chương trình Nếu muốn chương trình chạy ổn định hơn có thể dùng các Router công suất thu phát lớn hơn với những khoảng cách xa hơn như 500m-1Km
2. Phần mềm:
a. Proteus - mô phỏng mạch điện tử:
Proteus VSM (Virtual Simulation Microprocessor) là chương trình tạo và chạy các mạch điện ,các mạch có vi xử lý và mô phỏng quá trình làm việc của mạch nguyên lý, giúp cho chúng ta hình dung trực quan hơn vào thực tế
của các linh kiện điện tử Phiên bản mới nhất là Proteus Design Suite 7.1
với nhiều tính năng vượt trội
Một số điểm đặc trưng của Proteus như sau:
• Dễ dàng tạo ra một sơ đồ nguyên lý đơn giản từ các mạch điện đơn giản, đến các mạch có bộ lập trình vi xử lý
• Dễ dàng chỉnh sửa các đặc tính của linh kiện trên sơ đồ nguyên lý: chỉnh sửa số bước của động cơ bước, chỉnh sửa nguồn nuôi cho mạch ,thay đổi tần số hoạt động cơ bản của vi xử lý…
• Chạy mô phỏng và phân tích các tính chất của mạch điện cơ bản
Trang 16tích từ đơn giản như : đồng hồ đo Vôn, Ampe, đến các máy đo dao động ,máy tạo sóng dao động …
• Ngoài ra Proteus còn cung cấp cho người sử dụng các công cụ mạnh
mà các phần mềm khác hầu như không có Chẳng hạn thư viện LED với các loại màu sắc khácnhau kể cả led 7 đoạn Nhưng phần hiển thị mạnh nhất mà Proteus cung cấp là LCD, nó có thể mô phỏng cho rất nhiều LCD từ đơn giản đến phức tạp
• Một điểm mạnh khác của Proteus là cung cấp cho người sử dụng công cụ biên dịch cho các họ vi xử lý như MSC51, AVR ,HC11 … Qua đó tạo ra các tập tin HEX dùng để nạp cho vi xử lý và tập tin DSI dùng để xem và chạy kiểm tra từng bước trong chương trình mô phỏng
Trong đề tài này em dùng Proteus để mô phỏng Input/Output của mạch điều khiển động cơ AVR, sơ đồ như sau:
Hình 1.4.0: Mạch mô phỏng Robot bằng Proteus
b. AVR Studio - lập trình AVR:
AvrStudio: là trình biên dịch ASM chính thức cung cấp bởi Atmel, đây là trình biên dịch hoàn toàn miễn phí và tất nhiên là tốt nhất cho lập trình AVR bằng ASM Về bản chất AVRStudio không hỗ trợ lập trình ngôn ngữ C vì
Trang 17công cụ WinAVR Vì thế, nếu muốn sử dụng AVRStudio để lập trình C cho AVR bạn phải cài đặt trình dịch và thư viện avr-gcc từ GNU hoặc đơn giản
là cài đặt WinAVR cùng AVRStudio Khi cài AVR Studio phải cài WinAVR trước
Phiên bản mới nhất là AVR Studio 5 với hỗ trợ giao diện lập trình như Visual Studio, hỗ trợ bộ Visual Assistant giúp cho việc lập trình linh hoạt hơn với các tracking Atmel® AVR Studio® 5 là công cụ tích hợp dành cho phát triển (IDE) các ứng dụng nhúng trên chip Atmel AVR® AVR Studio
5 IDE hỗ trợ giao diện khá thân thiện, hỗ trợ biên dịch, debug C/C++ assembler code
Hình 1.4.1: Giao diện AVR Studio 5
Download 2 gói này trên trang chủ:
http://www.atmel.com/microsite/avr_studio_5
http://www.atmel.com/microsite/avr_studio_5
Một số nét đặc trưng của hai gói phần mềm này:
Hỗ trợ môi trường lập trình cho chip 8– và 32–bit AVR Studio 5 hỗ trợ cho tất cả các dòng AVR
Trang 18Hình 1.4.2: Chip AVR được hỗ trợ trong AVR Studio 5
Tích hợp C Compiler không cần cài WinAVR làm toolchain biên dịch source code
Hình 1.4.3: C Compiler được hỗ trợ trong AVR Studio 5
Dễ dàng quản lý source code với Visual Assistant, đây là cải tiến rất mới
hỗ trợ cho người lập trình
Hình 1.4.4: Visual assistant hỗ trợ trong AVR Studio 5
Hỗ trợ Build, Debug, các chuẩn giao tiếp như JTAGICE3, RS232
Dễ dàng nâng cấp và quản lý project với Solution Explorer
Hình 1.4.5: Solution trong AVR Studio 5
c. C# Web - thiết kế giao diện Web Server:
Đây là phiên bản mới nhất của Microsoft hỗ trợ lập trình C# ứng dụng, Web Design Trong đề tài này em sử dụng bộ Visual Web để thiết kế giao diện cho Web Server Việc thiết kế chủ yếu là các thẻ html, javascript file, cách
sử dụng ajax control
Trang 19Với C# Web ta có thể dễ dàng thiết kế Web Form, các thẻ một cách gần như
tự động với các hỗ trợ từ Toolbox, các script có thể viết trực tiếp trong file html, htm Các file dạng này có thể chạy trên mọi trình duyệt và các OS khác nhau mà không phụ thuộc vào Server Để xem kết quả trên trình duyệt
ta có thể View ngay trên các trình duyệt như IE, Firefox, Chrome…
Hình 1.4.6: Giao diện Visual Studio 2010
d. Arm-linux-gcc – biên dịch source code:
Arm-linux-gcc là một Toolchain dùng để biên dịch Source Code trên máy tính thành file binary và có thể thực thi dưới board Cách biên dịch source code bằng tool này cũng như biên dịch các source code trên nền Linux bằng các toolchain như Gcc, G++…
Arm-linux-gcc có thể chạy trên bất kỳ một hệ điều hành Linux nào như Fedora, Ubuntu…Tool này không chỉ dùng để biên dịch những file source code đơn giản mà còn hỗ trợ trong việc biên dịch Makefile với hàng loạt
Trang 20Hình 1.4.7: Kiểm tra arm-linux-gcc
e. Thiết kế board mạch với ExpressPCB:
ExpressPCB là một công cụ hoàn toàn miễn phí giúp cho việc thiết kế các mạch in một cách khá nhanh với những mạch đơn giản Không phức tạp như Orcard hay Proteus, ExpressPCB có thể mất vài phút để thiết kế xong một board mạch như mạch nguồn, mạch MCU Tuy không có phần mô phỏng nhưng thiết kế bằng ExpressPCB rất dễ chỉnh sửa Trong đề tài này
em dùng ExpressPCB để thiết kế toàn bộ mạch điều khiển Robot với AVR
Trang 21Hình 1.4.8: Giao diện PCB Express
Với chủ yếu trong thiết kế là các via Pad và các Trace, Wire nên ExpressPCB rất
tiện lợi chỉ với việc nhấp chuột và thay đổi kích thước.
Trang 22a. 802.11
Năm 1997, Viện kỹ sư điện và điện tử (IEEE- Institute of Electrical and Electronics Engineers) đưa ra chuẩn mạng nội bộ không dây (WLAN) đầu tiên – được gọi là 802.11 theo tên của nhóm giám sát sự phát triển của chuẩn này Lúc này, 802.11 sử dụng tần số 2,4GHz và dùng kỹ thuật trải phổ trực tiếp (Direct-Sequence Spread Spectrum-DSSS) nhưng chỉ hỗ trợ băng thông tối đa là 2Mbps – tốc độ khá chậm cho hầu hết các ứng dụng
Vì lý do đó, các sản phẩm chuẩn không dây này không còn được sản xuất nữa
b. 802.11b
Từ tháng 6 năm 1999, IEEE bắt đầu mở rộng chuẩn 802.11 ban đầu và tạo
ra các đặc tả kỹ thuật cho 802.11b Chuẩn 802.11b hỗ trợ tốc độ lên đến 11Mbps, ngang với tốc độ Ethernet thời bấy giờ Đây là chuẩn WLAN đầu tiên được chấp nhận trên thị trường, sử dụng tần số 2,4 GHz Chuẩn 802.11b sử dụng kỹ thuật điều chế khóa mã bù (Complementary Code Keying - CCK) và dùng kỹ thuật trải phổ trực tiếp giống như chuẩn 802.11 nguyên bản Với lợi thế về tần số (băng tần nghiệp dư ISM 2,4GHz), các hãng sản xuất sử dụng tần số này để giảm chi phí sản xuất
Nhưng khi đấy, tình trạng "lộn xộn" lại xảy ra, 802.11b có thể bị nhiễu do
lò vi sóng, điện thoại “mẹ bồng con” và các dụng cụ khác cùng sử dụng tần
số 2,4GHz Tuy nhiên, bằng cách lắp đặt 802.11b ở khoảng cách hợp lý sẽ
dễ dàng tránh được nhiễu Ưu điểm của 802.11b là giá thấp, tầm phủ sóng tốt và không dễ bị che khuất Nhược điểm của 802.11b là tốc độ thấp; có thể bị nhiễu bởi các thiết bị gia dụng
c. 802.11a
Song hành với 802.11b, IEEE tiếp tục đưa ra chuẩn mở rộng thứ hai cũng dựa vào 802.11 đầu tiên - 802.11a Chuẩn 802.11a sử dụng tần số 5GHz, tốc độ 54Mbps tránh được can nhiễu từ các thiết bị dân dụng Đồng thời, chuẩn 802.11a cũng sử dụng kỹ thuật trải phổ khác với chuẩn 802.11b - kỹ thuật trải phổ theo phương pháp đa phân chia tần số trực giao (Orthogonal Frequency Division Multiplexing-OFDM) Đây được coi là kỹ thuật trội hơn so với trải phổ trực tiếp (DSSS) Do chi phí cao hơn, 802.11a thường chỉ được sử dụng trong các mạng doanh nghiệp, ngược lại, 802.11b thích hợp hơn cho nhu cầu gia đình Tuy nhiên, do tần số cao hơn tần số của chuẩn 802.11b nên tín hiện của 802.11a gặp nhiều khó khăn hơn khi xuyên tường và các vật cản khác
Do 802.11a và 802.11b sử dụng tần số khác nhau, hai công nghệ này không tương thích với nhau Một vài hãng sản xuất bắt đầu cho ra đời sản phẩm
Trang 23"lai" 802.11a/b, nhưng các sản phẩm này chỉ đơn thuần là cung cấp 2 chuẩn sóng Wi-Fi cùng lúc (máy trạm dùng chuẩn nào thì kết nối theo chuẩn đó)
Ưu điểm của 802.11a là tốc độ nhanh; tránh xuyên nhiễu bởi các thiết bị khác Nhược điểm của 802.11a là giá thành cao; tầm phủ sóng ngắn hơn và
Tháng 7/2003, IEEE phê chuẩn 802.11g Chuẩn này cũng sử dụng phương thức điều chế OFDM tương tự 802.11a nhưng lại dùng tần số 2,4GHz giống với chuẩn 802.11b Điều thú vị là chuẩn này vẫn đạt tốc độ 54Mbps và có khả năng tương thích ngược với chuẩn 802.11b đang phổ biến
Ưu điểm của 802.11g là tốc độ nhanh, tầm phủ sóng tốt và không dễ bị che khuất Nhược điểm của 802.11g là giá cao hơn 802.11b; có thể bị nhiễu bởi các thiết bị gia dụng
e. 802.11n
Chuẩn Wi-Fi mới nhất trong danh mục Wi-Fi là 802.11n 802.11n được thiết kế để cải thiện tính năng của 802.11g về tổng băng thông được hỗ trợ bằng cách tận dụng nhiều tín hiệu không dây và anten (gọi là công nghệ MIMO-multiple-input and multiple-output) Khi chuẩn này hoàn thành, 802.11n sẽ hỗ trợ tốc độ lên đến 100Mbps 802.11n cũng cho tầm phủ sóng tốt hơn các chuẩn Wi-Fi trước đó nhờ tăng cường độ tín hiệu Các thiết bị 802.11n sẽ tương thích ngược với 802.11g
Ưu điểm của 802.11n là tốc độ nhanh nhất, vùng phủ sóng tốt nhất; trở kháng lớn hơn để chống nhiễu từ các tác động của môi trường Nhược điểm của 802.11n là chưa được phê chuẩn cuối cùng; giá cao hơn 802.11g; sử dụng nhiều luồng tín hiệu có thể gây nhiễu với các thiết bị 802.11b/g kế cận
2. Công nghệ 3G:
3G là thuật ngữ dùng để chỉ các hệ thống thông tin di động thế hệ thứ 3 (Third
Trang 24thử nghiệm đầu tiên đựơc sử dụng vào những năm 1930-1940 trong các sở cảnh sát Hoa Kỳ nhưng các hệ thống điện thoại di động thương mại thực sự chỉ ra đời vào khoảng cuối những năm 1970 đầu những năm 1980 Các hệ thống điện thoại thế hệ đầu sử dụng công nghệ tương tự và người ta gọi các hệ thống điện thoại kể trên là các hệ thống 1G
Khi số lượng các thuê bao trong mạng tăng lên, người ta thấy cần phải có biện pháp nâng cao dung lượng của mạng, chất lượng các cuộc đàm thoại cũng như cung cấp thêm một số dịch vụ bổ sung cho mạng Để giải quyết vấn đề này người
ta đã nghĩ đến việc số hoá các hệ thống điện thoại di động, và điều này dẫn tới sự
ra đời của các hệ thống điện thoại di động thế hệ 2
Ở châu Âu, vào năm 1982 tổ chức các nhà cung cấp dịch vụ viễn thông châu Âu (CEPT – Conférence Européene de Postes et Telécommunications) đã thống nhất thành lập một nhóm nghiên cứu đặc biệt gọi là Groupe Spéciale Mobile (GSM) có nhiệm vụ xây dựng bộ các chỉ tiêu kỹ thuật cho mạng điện thoại di động toàn châu Âu hoạt động ở dải tần 900 MHz Nhóm nghiên cứu đã xem xét nhiều giải pháp khác nhau và cuối cùng đi đến thống nhất sử dụng kỹ thuật đa truy nhập phân chia theo mã băng hẹp (Narrow Band TDMA) Năm 1988 phiên bản dự thảo đầu tiên của GSM đã được hoàn thành và hệ thống GSM đầu tiên được triển khai vào khoảng năm 1991 Kể từ khi ra đời, các hệ thống thông tin di động GSM đã phát triển với một tốc độ hết sức nhanh chóng, có mặt ở 140 quốc gia và có số thuê bao lên tới gần 1 tỷ Lúc này thuật ngữ GSM có một ý nghĩa mới đó là hệ thống thông tin di động toàn cầu (Global System Mobile)
Cũng trong thời gian kể trên, ở Mỹ các hệ thống điện thoại tương tự thế hệ thứ nhất AMPS được phát triển thành các hệ thống điện thoại di động số thế hệ 2 tuân thủ tiêu chuẩn của hiệp hội viễn thông Mỹ IS-136 Khi công nghệ CDMA (Code Division Multiple Access – IS-95) ra đời, các nhà cung cấp dịch vụ điện thoại di động ở Mỹ cung cấp dịch vụ mode song song, cho phép thuê bao có thể truy cập vào cả hai mạng IS-136 và IS-95
Do có nhận thức rõ về tầm quan trọng của các hệ thống thông tin di động mà ở châu Âu, ngay khi quá trình tiêu chuẩn hoá GSM chưa kết thúc người ta đã tiến hành dự án nghiên cứu RACE 1043 với mục đích chính là xác định các dịch vụ và công nghệ cho hệ thống thông tin di động thế hệ thứ 3 cho năm 2000 Hệ thống 3G của châu Âu được gọi là UMTS Những người thực hiện dự án mong muốn rằng hệ thống UMTS trong tương lai sẽ được phát triển từ các hệ thống GSM hiện tại Ngoài ra người ta còn có một mong muốn rất lớn là hệ thống UMTS sẽ có khả năng kết hợp nhiều mạng khác nhau như PMR, MSS, WLAN… thành một mạng thống nhất có khả năng hỗ trợ các dịch vụ số liệu tốc độ cao và quan trọng hơn
Trang 25Song song với châu Âu, Liên minh Viễn thông Quốc tế (ITU – International Telecommunications Union) cũng đã thành lập một nhóm nghiên cứu để nghiên cứu về các hệ thống thông tin di động thế hệ 3, nhóm nghiên cứu TG8/1 Nhóm nghiên cứu đặt tên cho hệ thống thông tin di động thế hệ thứ 3 của mình là Hệ thống Thông tin Di động Mặt đất Tương lai (FPLMTS – Future Public Land Mobile Telecommunications System) Sau này, nhóm nghiên cứu đổi tên hệ thống thông tin di động của mình thành Hệ thống Thông tin Di động Toàn cầu cho năm
2000 (IMT-2000 – International Mobile Telecommunications for the year 2000) Đương nhiên là các nhà phát triển UMTS (châu Âu) mong muốn ITU chấp nhận
hệ thống chấp nhận toàn bộ những đề xuất của mình và sử dụng hệ thống UMTS làm cơ sở cho hệ thống IMT-2000 Tuy nhiên vấn đề không phải đơn giản như vậy, đã có tới 16 đề xuất cho hệ thống thông tin di động IMT-2000 (bao gồm 10
đề xuất cho các hệ thống mặt đất và 6 đề xuất cho các hệ thống vệ tinh) Dựa trên đặc điểm của các đề xuất, ITU đã phân các đề xuất thành 5 nhóm chính:
- IMT DS (trải phổ dãy trực tiếp) Người ta thường gọi các hệ thống này là UTRA FDD và WCDMA Trong đó UTRA là từ viết tắt của UMTS Terrestrial Radio Access
- IMT MC (nhiều sóng mang) Đây là phiên bản 3G của hệ thống IS-95 (hiện nay gọi là cdmaOne)
- IMT TC (mã thời gian) Về thực chất đây là UTRA TDD, nghĩa là hệ thống UTRA sử dụng phương pháp song công phân chia theo thời gian
- IMT SC (một sóng mang) Các hệ thống thuộc nhóm này được phát triển từ các
hệ thống GSM hiện có lên GSM 2+ (được gọi là EDGE)
- IMT FT (thời gian tần số) Đây là hệ thống các thiết bị kéo dài thuê bao số ở châu Âu
Trang 26Ví dụ: Để kiểm tra nickname đã tồn tại trong cơ sở dữ liệu hay chưa thì khi thành viên vừa nhập xong nick name, thông tin trên form lập tức javascript nắm thông tin rồi thực hiện gọi một hàm bằng PHP bên phía server để kiểm tra thông tin sau đó trả kết quả html về cho javascript xuất ra cho người dùng biết tính hợp lệ của nickname, lúc đó người dùng có thể thay đổi ngay chớ không cần đợi submit rồi kiểm tra và nhập lại như dùng PHP truyền thống.
JQuery chính là một thư viện kiểu mới của Javascript giúp đơn giản hóa cách viết Javascript và tăng tốc độ xử lý các sự kiện trên trang web JQuery thêm tương tác Ajax vào trong trang web của bạn JQuery được thiết kế để thay đổi cách viết Javascript Đây là một bộ thư viện hỗ trợ các object cho việc lập trình web.
b. Phương thức POST-GET:
Các form dữ liệu là nơi người dùng có thể nhập dữ liệu vào và gửi về phía Server Một form chứa một hoặc nhiều điều khiển và người sử dụng có thể nhập các giá trị vào Sau khi nhập xong dữ liệu người sử dụng sẽ ra lệnh gửi form đi, form chứa các dữ liệu này sẽ được gửi tới địa chỉ được chỉ định trong form để xử lý Kết quả trả về cho người dùng phụ thuộcvào trình xử lý trên server Để định nghĩa một form ta sử dụng đoạn mã Phương thức: Cách thức gửi form đi, có thể sử dụng GET hoặc POST Trong đề tài này em xây dựng một Web Server sùng để nhận các phương thức gửi từ Client thông qua bàn phím với các mã Key Code
• POST:
Khi định nghĩa form dạng POST các dữ liệu sẽ được gửi thẳng đến trình xử lý theo phương thức POST, không qua URL do đó lượng dữ liệu được gửi đi là không hạn chế, các dữ liệu được gửi đi có thể là các frame Người ta thường dùng phương thức POST để truyền các dữ liệu lớn
Để lấy dữ liệu từ form được gửi đến theo phương thức POST người ta dùng tập hợpFORM của đối tượng Request.Cú pháp:
Request.Form("<tên điều khiển>") Code ví dụ:
<html>
<body>
<FORM ACTION="get.html" METHOD=POST>
<P>Please Fill the Registration Form</p><br>
Enter Your Name<input type="text" name="username"><br>
Enter Your Credit Card Number<input type="text" name="credit Number"><br>
<input type="submit" value="send">
</FORM>
Trang 27Khi định nghĩa form dạng GET thì các dữ liệu mà form gửi đến trình xử lý sẽ được gửi đi theo phương thức GET Nghĩa là các dữ liệu này sẽ được đưa thêm vào phần sau của chuỗi URL trên trình duyệt.Với cách làm này có đôi phần tiện dụng vì ta có thể nhập giá trị các biến trực tiếp lên URL của trình xử lý Tuy nhiên có một nhược điểm là dung lượng kí tự có thể nhập lên URL là khá nhỏ (dưới 2000 kí tự) Do đó người ta chỉ dùng cách này khi lượng thông tin cần truyền là đơn giản, dung lượng ít
Để lấy dữ liệu từ form dạng GET người ta dùng tập hợp QueryString của đối tượng Request.Cú pháp:
Request.QueryString("<tên điều khiển>")
Code ví dụ:
<html>
<body>
<FORM ACTION="get.html" METHOD=GET>
<P>Please Fill the Registration Form</p><br>
Enter Your Name<input type="text" name="username"><br>
Enter Your Credit Card Number<input type="text" name="credit Number"><br>
<input type="submit" value="send">
</FORM>
</body>
</html>
c. Cách GET QueryString từ phương thức Ajax:
Thông thường phương thức GET sử dụng thông qua URL nhưng khi sử dụng AJAX JQUERY chúng ta không làm như thế mà có thể gửi và nhận sữ liệu trực tiếp như sau:
$.get(
"command.cgi", { cmd : 0 }, function(data) { $("#show").html(data) }
)
Trang 28Client chỉ cần gửi một Request bằng phương thức trên có thể bằng cách click button, click phím…Server sẽ trả kết quả ngay về mà trang hiện hành vẫn giữ nguyên không thay đổi URL.
Chương II
PHÂN TÍCH VÀ
THIẾT KẾ
Trang 29II.1 THIẾT KẾ VÀ LẬP TRÌNH ĐIỀU KHIỂN ROBOT
II.1.1 Phần cơ khí:
Thiết kế tổng quan:
Trang 30Hình 2.1.0: Quy trình thiết kế Robot
a. Gia công khung nhôm:
Vì trong đề tài Robot không cần tải nặng nên khung nhôm được gia công khá đơn giản và đảm bảo việc lắp đặt board mạch, acquy, bánh xe xho cân đối Khung được tán bằng các đinh rive nên đảm bảo chắc chắn và gọn nhẹ
b. Lắp động cơ điện một chiều DC
Trang 31Động cơ điện một chiều là động cơ điện hoạt động với dòng điện một chiều Động cơ điện một chiều ứng dụng rộng rãi trong các ứng dụng dân dụng cũng như công nghiệp Thông thường động cơ điện một chiều chỉ chạy ở một tốc độ duy nhất khi nối với nguồn điện, tuy nhiên vẫn có thể điều khiển tốc độ và chiều quay của động cơ với sự hỗ trợ của các mạch điện tử cùng phương pháp PWM Đề tài chọn động cơ với công suất 10W đảm bảo việc tải cho Robot với khối lượng khoảng 5kg Động cơ được lắp trực tiếp vào khung sau Robot.
Hình 2.1.1: Động cơ DC Robot
c. Lắp 2 bánh xe tải trọng dùng cho hai bánh sau:
Loại bánh xe này có thể dùng làm bánh chủ động cho robot Khối lượng 220g ,tải trọng 50kg Đường kính ngoài 100mm Bề rộng 35mm Trục bánh có thể lắp trực tiếp với các loại động cơ giảm tốc có đường kính trục từ 4 đến 24mm Ngoài ra có thể gắn bạc đạn (ổ bi) để làm bánh xe thụ động Bánh
xe được đúc bằng nhôm có độ bền cao,vỏ được bọc silicon mềm và có nhiều rãnh nên có độ bám cao Bánh được lắp vào trục động cơ đảm di chuyển linh hoạt
Hình 2.1.2: Bánh tải trọng Robot
d. Lắp Encoder:
Encoder này dùng nhiều trong các thiết bị tự động Có thể dùng để đo quãng đường đi của robot tự động Độ bền cơ học cao Khối lượng 30g Nguồn 5VDC ,hai pha A,B Đường kính trục 6mm Đường kính vỏ ngoài 45mm Dùng Encoder có thể xác định chính xác tọa độ di chuyển cho Robot Encoder được lắp gắn với chuyển động của 2 bánh sau
Trang 32Hình 2.1.3: Encoder Robot
e. Lắp 2 bánh xe đa hướng Omi trước:
Bánh xe đa hướng Omi: Sườn bánh làm bằng nhựa PA, 8 bánh vệ tinh được gia công CNC từ loại nhôm cứng 6061 siêu bền hoặc Polime giúp bánh chạy
êm và giảm hao mòn đáng kể trong quá trình sử dụng Bánh có thể di chuyển theo bất kỳ một hướng nào
Hình 2.1.4: Bánh Omi trước Robot
f. Lắp Acquy:
Acquy 12V, 1,5 Ah Loại acquy khô rất thích hợp cho robot khối lượng chỉ có 600g, robot chạy loại acquy này có khối lượng nhẹ nên di chuyển linh hoạt Điện áp 12V và dòng là 1.5AH ( tức là có khả năng duy trì dòng 1.5 A trong vòng 1 giờ)
Hình 2.1.5: Acquy Robot
g. Kiểm tra cân bằng:
Sau khi lắp đặt thành công phải kiểm tra xem Robot đã thật sự cân bằng chưa để đảm bảo di chuyển không bị lệch trọng lượng
Trang 33h. Hình vẽ thiết kế tổng quát:
Hình 2.1.6: Kết cấu hoàn chỉnh Robot
II.1.2 Phần mạch điện tử:
Tổng quan mạch điện tử
Trang 34Hình 2.1.7: Mạch tổng quát điều khiển động cơ DC
a. Khối nguồn:
Thông thường nó cung cấp cho các vi điều khiển và các IC với nguồn là 5V Trong Board mạch này nguồn ổn định 5V từ nguồn Acquy bên ngoài 12V thông qua IC ổn áp 7805
Với những mạch điện không đòi hỏi độ ổn định của điện áp quá cao, sử dụng IC ổn áp thường được người thiết kế sử dụng vì mạch điện khá đơn giản Các loại ổn áp thường được sử dụng là IC 78xx, với xx là điện áp cần ổn áp Ví
dụ 7805 ổn áp 5V, 7812 ổn áp 12V Việc sử dụng các loại IC ổn áp 78xx tương
tự nhau, dưới đây là minh họa cho IC ổn áp 7805
Sơ đồ ở trên IC 7805 có 3 chân:
Chân số 1 là chân IN Chân số 2 là chân GND Chân số 3 là chân OUT
Ngõ ra OUT luôn ổn định ở 5V dù điện áp từ nguồn vung cấp thay đổi Mạch này dùng để bảo vệ những mạch điện chỉ hoạt động ở điện áp 5V (các loại IC thường hoạt động ở điện áp này) Nếu nguồn điện có sự cố đột ngột: điên áp tăng cao thì mạch điện vẫn hoạt động ổn định nhờ có IC 7805 vẫn giữ được điện áp ở ngõ ra OUT 5V không đổi
Mạch trên lấy nguồn một chiều từ một acquy điện áp từ 12V để đưa vào ngõ IN Khi kết nối mạch điện, do nhiều nguyên nhân, người dùng dễ nhầm lẫn cực tính của nguồn cung cấp khi đấu nối vào mạch, trong trường hợp này rất dễ ảnh hưởng đến các linh kiện trên board mạch Vì lí do đó một diode cầu được lắp thêm vào mạch, diode cầu đảm bảo cực tính của nguồn cấp cho mạch theo một chiều duy nhất, và người dùng cũng không cần quan tâm đến cực tính của nguồn khi nối vào ngõ IN nữa
Chú ý: Điện áp đặt trước IC78xx phải lớn hơn điện áp cần ổn áp từ 1.5V đến 2V
Hình 2.1.8: Mạch ốn áp 5V
Tụ điên đóng vai trò ổn định và chống nhiễu cho nguồn
Trang 35c. Khối vi xử lý trung tâm:
Khối xử lý trung tâm dùng MCU AVR có nhiệm vụ nhận tín hiệu Input từ Port,
từ tín hiệu ngắt ngoài và từ đó sẽ xác định các yêu cầu cần đáp ứng thông qua việc điều xung PWM để điều khiển động cơ Robot
i. Giới thiệu MCU AVR Atmel:
AVR do hãng Atmel chế tạo ra, là họ VĐK 8bit theo công nghệ mới với những tính năng rất mạnh được tích hợp trong trong chip AVR ổn định hơn rất nhiều so với dòng VĐK 8051 Một số tính năng mới của họ AVR:
−Tốc độ xử lý cao, tiêu thụ điện năng thấp
−Kiến trúc 131 tập lệnh thưc thi hầu hết trong mỗi chu kỳ xung clock
−32x8 thanh ghi đa dụng
−Đạt tốc độ tối đa 16MIPS ở 16Mhz xung clock
−Dung lượng bộ nhớ: 16Kb Flash, 512 EEPROM, 1kb Internal SRAm
−Khả năng ghi và xóa có thể đạt đến 10000 lần, lưu trữ trong thời gian dài trên 20 năm/85oC-100 năm 25oC
−Giao tiếp chuẩn JTAG hỗ trợ debug, Lock, Fuse bit
−2 bộ Timer 16 bit, 1 bộ timer 16 bit
−4 kênh PWM
−8 kênh ADC 10 bit
−32 port xuất nhập
−Hỗ trợ gioa tiếp I2C, USART, SPI
−Hoạt động tốt ở hiệu điện thế 4.5-5.5
Chọn AVR cho đề tài vì lập trình dễ dàng, chi phí tương đối và độ bền khá cao,đảm bảo tính ổn định
ii. Một số module chính cho việc điều khiển Robot:
Input-Output: Vi điều khiểnATmega16 có 32 đường vào ra chia làm bốn Port: PORTA-PORTB-PORTC-PORTD mỗi Port 8bit có thể tương tác điều khiển từng bit một Các cổng ra có điện trở nội kéo lên nên khi dùng chức năng input ta không cần dùng điện trở kéo lên ở bên ngoài Các Port được điều khiển bởi các bô thanh ghi sau: thanh ghi dữ liệu cổng PORT, thanh ghi dữ liệu điều khiển cổng DDR và cuối cùng là địa chỉ chân vào của cổng PIN
− Cấu trúc chân của AVR có thể phân biệt rõ chức năng (vào ra) trạng thái (0 1) từ đó ta có 4 kiểu vào ra cho một chân của avr Khác với
89 là chỉ có 2 trạng thái duy nhất (0 1) Đặc biệt nguồn từ chân của AVR đủ khoẻ để điều khiển Led trực tiếp (mA) còn 89 chỉ là vài uA
Trang 36Hình 2.1.9: IO AVR Logic
− Bảng trạng thái truy xuất I/O:
Hình 2.1.10: Các trạng thái truy xuất IO AVR
- Read I/O:
o Đưa dữ liệu ra thanh ghi điều khiển DDRxn để đặt cho PORTx (hoặc bit n trong port) đó là đầu vào (xóa thanh ghi DDRx hoặc bit)
o Kích hoạt điện trở pull-up bằng cách set thanh ghi PORTx ( bit)
o Cuối cùng đọc dữ liệu từ địa chỉ PINxn (trong đó x: là cổng và
n là bit)
- Write I/O:
o Đưa dữ liệu ra thanh ghi điều khiển DDRxn để đặt cho PORTx (hoặc bit n trong port) đó là đầu ra (xóa thanh ghi DDRx hoặc bit)
o Xuất giá trị ra Port
Trang 37- Code ví dụ:
#include <avr/io.h>
#include <avr/interrupt.h>
#include <util/delay.h>
int main(void){
DDRB=0xFF; //PORTB la output PORT PORTB=0x00;
DDRD=0x00; //PORTD la input PORT PORTB=0xFF;
while (1){ //vòng lặp vô tận //do nothing
} return 0;
}
Timer-Counter: Bộ định thời (timer/counter0) là một module định thời/đếm 8 bit/16 bit, Atmega 16 có 4 bộ định thời là Timer 0-Timer 2 8 bit và Timer 1 16 bit dùng để định thời gian và đếm sự kiện với các đặc điểm sau:
Trang 38Hình 2.1.11: Lưu đồ xung Phase Corect PWM AVR
- Chế độ này hoạt động dựa trên hai sườn lên xuống.Bộ đếm sẽ đếm liên tục từ giá trị BOTTOM đến giá trị MAX và sau đó từ giá trị MAX đến giá trị BOTTOM Trong chế độ so sánh không đảo chân so sánh (OCx) sẽ bị xóa khi giá trị TCNTx bằng giá trị OCRx trong quá trình đếm lên và sẽ được set bằng 1 khi giá trị so sánh xuất hiện trong quá trình đếm xuống Chế độ so sánh đảo thì các giá trị là ngược lại
- Với hoạt động hai sườn xung này thì chế độ này không tạo ra được tần
số nhỏ như chế độ một sườn xung Nhưng do tính cân đối của hai sườn xung thì nó tốt hơn cho điều khiển động cơ Chế độ phase correct PWM hoạt động cố định là 8 bit Trong chế độ này bộ đếm sẽ tăng cho đến khi đạt giá trị MAX ,khi đó nó sẽ đổi chiều đếm
- Các bước sử dụng Timer:
o Step 1: Set pin Timer là output bằng cách set giá trị trong thanh ghi DDRn.X
o Step 2: chọn chế độ Timer bằng cách set thanh ghi TCCRX
o Step 3: chọn xung clock bằng cách set thanh ghi TCCRX
o Step 4: chọn giá trị của thanh ghi OCRX-TCNTX
o Step 5: bắt đầu Timer
Trang 39o Code Ví dụ:
#include <avr/io.h>
#include <avr/interrupt.h>
#include <until/delay.h>
int main(void){
DDRB=0xFF; //PORTB la output PORT PORTB=0x00;
TCCR0=(1<<CS01);//CS02=0, CS01=1, CS00=0:
chon Prescaler = 8 TCNT0=131; //gan gia tri khoi tao cho T/C0 TIMSK=(1<<TOIE0);//cho phep ngat khi co tran o T/C0 sei(); //set bit I cho phep ngat toan cuc
while (1){ //vòng lặp vô tận //do nothing
} return 0;
}
Interrupt:
- Ngắt là một cơ chế cho phép thiết bị ngoại vi báo cho CPU biết về tình trạng sẵn sàng cho đổi dữ liệu của mình.Ví dụ: Khi bộ truyền nhận UART nhận được một byte nó sẽ báo cho CPU biết thông qua cờ RXC,hoặc khi nó đã truyền được một byte thì cờ TX được thiết lập…
- Khi có tín hiệu báo ngắt CPU sẽ tạm dừng công việc đạng thực hiện lại và lưu vị trí đang thực hiên chương trình (con trỏ PC) vào ngăn xếp sau đó trỏ tới vector phuc vụ ngắt và thức hiện chương trình phục vụ ngắt đó cho tới khi gặp lệnh RETI (return from interrup) thì CPU lại lấy PC từ ngăn xếp ra và tiếp tục thực hiện chương trình mà trước khi
có ngắt nó đang thực hiện Trong trường hợp mà có nhiều ngắt yêu cầu cùng một lúc thì CPU sẽ lưu các cờ báo ngắt đó lại và thực hiện lần lượt các ngắt theo mức ưu tiên
- Atmega16 có 3 ngắt ngoài INT0(PORTD.2) INT1(PORTD.3) và INT2(PORTB.2) Khi xảy ra một trong các sự kiện đối với các chân này :
Trang 40Sau đó 1 cờ ngắt sẽ dựng lên 1 và báo cho biết có ngắt , nhảy đến chương trình con thực hiện ngắt
- Về phần kiến trúc, các thanh ghi Iterrupt có thể tham khảo trong Datasheet của AVR Thiết lập ngắt ngoài như sau:
o Step 1: chọn chế độ ngắt trong than ghi MCUCR
o Step 2: cho phép ngắt toàn cục trên thanh ghi GICR
o Step 3: cho phép ngắt trong thanh ghi trạng thái SREG
GICR |=(1<<INT1)|(1<<INT0); //cho phép 2 ngắt hoạt động
sei(); //set bit I cho phép ngắt toàn cục
DDRC=0xFF; //PORTC là Output while (1){ //vòng lặp vô tận PORTC++; //quét PORTC _delay_loop_2(60000);
} return 0;
}//Trình phục vụ ngắt của INT0ISR(INT0_vect){
val++; //nếu có ngắt INT0 xảy ra, tăng val thêm 1
if (val>9) val=0; //giới hạn không vượt quá 9 PORTB=val;
}
d. Khối input điều khiển dùng Opto cách ly quang:
Opto hay còn gọi là cách ly quang là linh kiện tích hợp có cấu tạo gồm 1 led và
1 photo diot hay 1 photo transitor Được sử dụng đẻ các ly giữa các khối chênh lệch nhau về điện hay công suất nhu khối có công suất nhỏ với khối điện áp lớn hay đơn giản chỉ là chống nhiễu giữa hai khối điều khiển trong mạch Tín