Sử dụng hồng ngoại được ứng dụng rất nhiều trong công nghiệp và các lĩnh vực khác trong cuộc sống với những thiết bị điều khiển từ xa rất tinh vi và đạt được năng suất, kinh tế thật cao.
Trang 1MỤC LỤC
MỤC LỤC 1
DANH MỤC HÌNH ẢNH 3
DANH MỤC CÁC TỪ VIẾT TẮT 4
LỜI CẢM ƠN 5
LỜI CAM ĐOAN 6
LỜI MỞ ĐẦU 7
Chương 1: TỔNG QUAN VỀ VI ĐIỀU KHIỂN 9
1.1 Lịch sử phát triển ARDIUNO 9
1.1.1 Mạch nạp đầu tiên (2005) 9
1.1.2 Mạch Ardiuno 2006 11
1.1.3 Ardiuno 2007 12
1.1.4 Ardiuno 2008 - 2009 13
1.1.5 Ardiuno từ 2010 đến nay 14
1.1.6 Một số dòng Ardiuno khác 16
1.2 Giới thiệu về Intel Galileo Gen2 17
1.3 Giới thiệu về phần cứng Intel Galileo Gen2 18
1.4 Khối xử lý trung tâm Quark SoC X1000 21
1.4.1 SoC là gì? 21
1.5 Lập trình cho IntelGalileo Gen2 và cài đặt hệ điều hành 23
1.5.1 Lập trình 23
1.5.2 Cài đặt hệ điều hành Linux cho IntelGalileo Gen2 30
1.5.3 Ứng dụng của Board IntelGalileo Gen2 31
1.6 IC 74HC595 37
2.1 Mạch điều khiền LED matrix 8x16 42
2.1.1 Phần cứng 42
2.1.2 Giới thiệu 42
2.1.2 Lắp mạch và cách nối các chân ra intel 44
2.1.3 Chương trình code 46
2.1.4 Chú thích 48
Trang 22.1.5 Sơ đồ khối và lưu đồ thuật toán 50
2.2 Điều khiển LED đơn 51
2.2.1 Phần cứng 51
2.2.2 Chương trình code 52
2.2.3 Sơ đồ khối và lưu đồ thuật toán 55
2.3 Điều khiển phím bấm 56
2.3.1 Phần cứng 56
2.3.2 Sơ đồ khối 59
Chương 3: KẾT QUẢ THỰC NGHIỆM 60
3.1 Về phần cứng 60
3.2 Về phần mềm 61
3.3 Ưu và nhược điểm của đề tài 61
3.4 Hướng phát triển của đề tài và ứng dụng đề tài vào thực tê 62
3.4.1 Hướng phát triển 62
3.4.2 Khả năng ứng dụng vào thực tế 62
KẾT LUẬN: 63
TÀI LIỆU THAM KHẢO 64
PHỤ LỤC 65
NHẠN XÉT CỦA GIÁO VIÊN 69
Trang 3DANH MỤC HÌNH ẢNH
Hình 1.1: Ardiuno đầu tiên 9
Hình 1.2: ATMEL Programmer A96021000C 10
Hình 1.3: Mạch Arduino USB chưa gắn linh kiện 11
Hình 1.4: Mạch Arduino USB đã gắn linh kiện 11
Hình 1.5: Arduino NG 11
Hình 1.6: Arduino Diecimila 12
Hình 1.7: Arduino Duemilanove 13
Hình 1.8: Arduino UNO 14
Hình 1.9: Arduino UNO SMD 15
Hình 1.10: Arduino Leonardo 15
Hình 1.11: Arduino MEGA 16
Hình 1.12: Arduino MEGA 2560 16
Hình 1.13: Ardiuno DUE 2012 17
Hình 1.14: Kết nối ngoại vi 18
Hình 1.15: Cổng kết nối LAN 19
Hình 1.16: IC 74HC595 37
Hình 1.17: sơ đồ chân IC 74HC595 38
Hình 1.18: sơ đồ chức năng của các chân 39
Hình 2.1: sơ đồ điều khiển các chân của led matrix 8x8 42
Hình 2.2: sơ đồ nguyên lý điều khiển led matrix 8x16 45
Hình 2.3: nguyên lý và cách nối chân với intel 52
Hình 2.4: ảnh lắp mạch 57
Hình 3.1: Mạch thực khi đã hoàn thành hiện thị trên modunle 60
Trang 4DANH MỤC CÁC TỪ VIẾT TẮT
Từ viết
CSE Consumer Electronics
Show Chương trình thiết bị điện tử tiêu dùng SOC System on a chip Cả hệ thống trên một con chip
ARM Advanced RISC Machine Một loại cấu trúc vi xử lý 32 bit và 64
bit kiểu RISC
IDE Integrated Development
Environment
Phần mềm cung cấp cho các lập trình viên
SPI Serial Peripheral Interface Một chuẩn truyền thông nối tiếp tốc độ
cao
ADSL Asymmetric Digital
Subscriber Line Đường dây thuê bao số bất đối xứng
CMOS Complementary
Metal-Oxide-Semiconductor Công nghệ mách tích hợp
Trang 5LỜI CẢM ƠN
Em xin được gửi lời cảm ơn sâu sắc ban giám hiệu nhà trường, tới Thầy Th.s Nguyễn Anh Tuấn, Bộ môn thực hành, Khoa Công nghệ điện tử và truyền thông, Trường Đại học Công nghệ thông tin và Truyền thông Thái Nguyên đã trực tiếp hướng dẫn và giúp đỡ em hoàn thành tốt đề tài này
Em xin gửi lời cảm ơn đến các thầy, cô thuộc Bộ môn thực hành, Công nghệ điện
tử - Khoa Công nghệ điện tử và truyền thông - Đại học Công nghệ thông tin và truyền thông đã trang bị kiến thức và tạo điều kiện hết sức thuận lợi để em có thể hoàn thành
đề tài này một cách tốt nhất
Cuối cùng, em xin cảm ơn gia đình, bạn bè, các thầy cô đã luôn tạo điều kiện thuận lợi về cơ sở vật chất cũng như động viên tinh thần, giúp đỡ em trong quá trình nghiên cứu và thực hiện đề tài
Trang 6
LỜI CAM ĐOAN
Trong quá trình làm đồ án, em có tham khảo một số tài liệu trên mạng và các tài liệu thực tế thu được khi làm việc Em đã sử dụng kiến thức của bản thân mình, tự tìm hiểu, tiếp thu và tổng hợp kiến thức để xây dựng nên đồ án này Bản thân em cũng đã
cố gắng nghiên cứu, học tập và làm việc trong thời gian vừa qua để hoàn thành đồ án đúng thời gian quy định
Em xin cam đoan nội dung đồ án này không hề được sao chép từ đồ án hay luận văn nào khác, mọi thông tin sai lệch em xin chịu hoàn toàn trách nhiệm trước pháp luật và trường Đại học công nghệ thông tin và truyền thông
Thái Nguyên, tháng 6 năm 2016
Sinh viên
Giàng Mìn Giáo
Trang 7
LỜI MỞ ĐẦU
Ngày nay, con người cùng với những ứng dụng của khoa học kỹ thuật tiên tiến của thế giới, chúng ta đang ngày một thay đổi, văn minh và hiện đại hơn Sự phát triển của kỹ thuật điện tử đã tạo ra hàng loạt những thiết bị với các đặc điểm nổi bậc như độ chính xác cao, tốc độ nhanh, gọn nhẹ,… là những yếu tố rất cần thiết góp phần cho hoạt động của con người đạt hiệu quả ngày càng cao hơn Điện tử đang trở thành một ngành khoa học đa nhiệm vụ Điện tử đã đáp ứng được những đòi hỏi không ngừng của các ngành, lĩnh vực khác nhau cho đến nhu cầu thiết yếu của con người trong cuộc sống hằng ngày Một trong những ứng dụng quan trọng của ngành công nghệ điện tử
là kỹ thuật điều khiển từ xa bằng hồng ngoại Sử dụng hồng ngoại được ứng dụng rất nhiều trong công nghiệp và các lĩnh vực khác trong cuộc sống với những thiết bị điều khiển từ xa rất tinh vi và đạt được năng suất, kinh tế thật cao Một trong những công nghệ mới nhất về Vi Điều Khiển Intel Galileo Gen2 nên em đã quyết định “Thiết kế mạch điều khiển Led matrix 8x16, led đơn, phím bấm sử dụng bộ vi xử lý Intel Galileo 2.0.” một trong những ứng dụng căn bản của Intel Galileo Gen2 2.0
Đề tài này giúp em hiểu rõ hơn về Intel Galileo Gen2 với các ứng dụng ngoại vi của nó vô cùng đa dạng và các tính năng ưu việt của Intel Galileo Gen2 so với các Vi Điều Khiển trước đó
Mục tiêu và yêu cầu của đề tài :
- Giới thiệu về VĐK Intel Galileo Gen2, IC 74HC595, công dụng của chúng
- Tìm hiểu và nghiên cứu nguyên lý hoạt động và điều khiển ngoại vi của Intel Galileo Gen2
- Ứng dụng thiết kế mạch điều khiển Led matrix 8x16, led đơn, phím bấm
Nội dung đề tài
- Tìm hiểu Intel Galileo Gen2 và các ứng dụng điều khiển ngoại vi Led matrix 8x16, led đơn, phím bấm
- Tính toán thiết kế xây dựng mạch sử dụng Intel Galileo Gen2 điều khiển Led matrix 8x16, led đơn, phím bấm
Trang 8Quy mô và ứng dụng của đề tài:
- Ứng dụng kiến thức đã học thông qua đó ta có thể làm ra các sản phẩm có quy
mô lớn, có khả năng thương mại hóa và ứng dụng vào thực tế
- Cũng qua đề tài này ta có thể ứng dụng điều khiển từ xa, thay đổi nội dung, hiệu ứng cho các biển quang báo sử dụng ma trận led, các thiết bị gia dụng trong gia đình…
Trang 9Chương 1: TỔNG QUAN VỀ VI ĐIỀU KHIỂN 1.1 Lịch sử phát triển ARDIUNO
1.1.1 Mạch nạp đầu tiên (2005)
Khi nhìn lại lịch sử này, những mạch lập trình con vi điều khiển ATmega8 này được đặt tên là Arduino Serial Và Arduino Serial có thuật ngữ để chỉ tất cả những mạch Arduino được thế kế bởi những nhà phát triển Arduino hay là những người phát triển tự do, mà ở đó, mạch Arduino sử dụng cổng kết nối RS-232 (Serial) thay vì cổng USB (TTL) như hiện tại
Khi những mạch lập trình đầu tiên được xây dựng, Arduino vẫn chịu sự ảnh hưởng của các mạch lập trình AVR lúc bây giờ, đó là sử dụng cổng RS-232 (cổng máy
in của các dòng máy tính cũ) Điều đó cũng đúng với lịch sử lúc bấy giờ, các dòng máy tính để bàn khi được sản xuất vẫn còn cổng RS-232 này
Hình 1.1: Ardiuno đầu tiên
Trang 10Hình 1.2: ATMEL Programmer A96021000C
Những mạch Ardiuno được thương mại hóa đầu tiên (2005)
Dòng mạch này dần dần định hình thương hiệu Arduino trong cộng đồng phần cứng nguồn mở và bạn thấy đấy, một người bình thường có thể lập trình điện tử được như bạn, như tôi và những người khác nữa
Kể từ dòng mạch này, tôi sẽ so sánh với những dòng mạch trước đó với các phép sáng tạo SCAMPER để chúng ta có cái nhìn khoa học về sự sáng tạo của dòng mạch Arduino
Dòng mạch Arduino USB được phát triển qua 2 phiên bản (Arduino USB và Arduino USB v2.0) Ở mỗi phiên bản cũng không có sự khác nhau lắm, chỉ khác nhau
về địa chỉ trang web và sửa một lỗi nhỏ ở phần pinout chỗ đầu USB Phần lớn mạch Arduino USB được bán dưới dạng mạch phát triển chưa gắn linh kiện, như vậy bạn vừa phải mua mạch vừa phải có sẵn (mua thêm) linh kiện để hoàn thiện cho mình một mạch Arduino Tuy nhiên, cũng có một số chỗ người ta bán luôn mạch Arduino USB
đã được gắn sẵn linh kiện Dưới đây là một số hình ảnh về mạch Arduino USB v2.0
Trang 11Hình 1.3: Mạch Arduino USB chưa gắn linh kiện
Hình 1.4: Mạch Arduino USB đã gắn linh kiện
1.1.2 Mạch Ardiuno 2006
Hình 1.5: Arduino NG
Trang 12Ở phiên bàn này, Arduino NG của chúng ta đã thay thế USB-to-TTL cũ (FT232BM) bằng chíp FTDI FT232RL USB-to-Serial mới với yêu cầu ít phần cứng ngoài hơn Trong board này, họ đã gắn thêm con LED màu xanh tại chân số 13 Ngoài
ra, một phần doanh số bán ra với con vi điều khiển ATmega168 thay cho con ATmega8 Tuy nhiên, cả 2 con này đều hoạt động tốt trên mạch Arduino NG
1.1.3 Ardiuno 2007
Hình 1.6: Arduino Diecimila
Trong phiên bản này, Arduino đã sử dụng một mạch "dropout voltage regulator" (nôm na là khi điện án đổi thì điện áp so sánh ở Analog IN vẫn không bị nhiễu) Điều
đó, là một dự kết hợp hoàn hảo (Combine), chúng ta không cần phải sử dụng tụ 103,
104 để lọc nhiễu cho các chân Analog nữa
Hàng 3.3V, 5V, GND, Vin đã được điều chỉnh lại và thực sự nó rất ổn nên đến tận bây giờ chúng ta vẫn dùng thiết kế đó và thống nhất đến bây giờ (với các mạch phát triển khác từ bên thứ 3) Ngoài ra, về vấn đề nguồn, chúng ta đã có một cầu chì dán (có thể sửa được) Nó giúp mạch được bảo vệ trước sự nguy hiểm của sự sơ xẩy
đoản mạch Đó là một sự thích nghi (Adapt) trước những sự hỏng hóc qua cổng USB
Trong phiên bản này, vẫn sử dụng vi điều khiển ATmega168
Trang 131.1.4 Ardiuno 2008 - 2009
Hình 1.7: Arduino Duemilanove
Trong phiên bản này, mạch Arduino đã có khả tự động nhận biết mỗi khi sử dụng nguồn tử cổng USB hay nguồn ngoài (bạn không phải thay đổi jumper nữa - đó là sự
thích nghi Adapt) Ngoài ra, trong phiên bản này, còn bố trung một đường chì nhỏ
được nối tắt nhằm giúp bán có thể hủy chức năng auto-reset (tự động reset khi upload chương trình) Trong phiên bản này, ngoài những sự thay đổi trên thì không còn điều
gì đáng nói nữa, trừ việc, sự ra đời của mạch này là sự kết thúc của nhánh mạch Arduino USB
Trang 141.1.5 Ardiuno từ 2010 đến nay
Hình 1.8: Arduino UNO
Ở mạch này, ngoài việc thay đổi và cách đặt tên cho dễ xác định các chân IO, Arduino UNO còn thay con chip FTDI bằng con chip ATMega8U2 (Serial TTL Converter) Chúng ta thấy rằng nó trông đẹp hơn hẳn nhưng vẫn giữ được pinout cũ của mạch trước đó Điều đó làm cho những mạch con em, họ hàng phụ trợ cho dòng Arduino USB không bị lỗi thời và khiến Arduino dễ hòa nhập với những anh chị em của nó hơn Arduino UNO có 3 phiên bản mới, đó là: R2, R3 và SMD Trong phiên bản R3 (hiện tại), Arduino đã sử dụng con chip ATMega16U2, giúp việc nạp những chương trình lớn nhanh hơn!
Trang 15Hình 1.9: Arduino UNO SMD
Hình 1.10: Arduino Leonardo
Trang 161.1.6 Một số dòng Ardiuno khác
Hình 1.11: Arduino MEGA
Arduino MEGA có rất nhiều chân IO so với dòng Arduino UNO (54 digital IO
và 16 analog IO), đồng thời bộ nhớ flash của MEGA rất lớn, gấp 4 lần so với UNO (128kb) với vi điều khiển ATmega1280 Rõ ràng, những dự án cần điều khiển nhiều loại động cơ và xử lý nhiều luồng dữ liệu song song (3 timer), nhiều ngắt hơn (6 cổng
interrupt), có thể được phát triển dễ dàng với Arduino MEGA, chẳng hạn như: máy
in 3d, quadcopter,
Hình 1.12: Arduino MEGA 2560
Trang 17Đây là phiên bản Arduino MEGA giúp bạn có thể giao tiếp với các thiết bị Android thông qua cổng sạc (USB micro) của các thiết bị Android Ở phiên bản này, Arduino MEGA có thể giao tiếp được với điện thoại Android thông qua cổng micro usb (cổng sạc) của Android (>=4.0)
Hình 1.13: Ardiuno DUE 2012
Kết Luận:
Qua phần giới thiệu về lịch sử phát triển Ardiuno ta thấy được sự sáng tạo và phát triển không ngừng của dòng Ardiuno để đi đến phiên bản intel Glalileo 2.0 tiên tiến và hiện đại trong đề tài này
1.2 Giới thiệu về Intel Galileo Gen2
Intel Galileo là một bo mạch vi điều khiển chuyên dùng cho việc phát triển phần mềm và phần cứng tương tự như Andruino hay Raspberry Pi
Intel Galileo do Intel trưc tiếp phát triển và là sản phẩm đầu tiên được đội ngũ phát triển Arduino chứng nhận đạt chuẩn tương thích với nền tảng Arduino
Tại CES 2014, Intel đã trình diễn Intel Galileo với hệ thống điều khiển thiết bị điện tử qua kết nối không dây Và nó giống như các giải pháp nhà thông minh hay Internet of Things hiện tại Intel Galileo sẽ đóng vai trò là một bộ điều khiển trung tâm, kết nối với các thiết bị điện tử, và kết nối với điện thoại hoặc máy tính bảng có
Trang 18chạy ứng dụng đặc biệt Từ ứng dụng này, người dùng có thể ra lệnh đến các thiết bị nhờ Intel Galileo
Intel Galileo là sản phẩm đầu tiên sử dụng chip Intel Quark X1000 - SoC đầu tiên thuộc dòng "Santa Clara" của Intel được sản xuất dựa trên dây chuyền công nghệ 32nm với mức độ tiêu thụ điện rất thấp Phần lõi của của X1000 là vi xử lí 400MHz dựa trên nền tảng Intel Pentium x86 32-bit với 16KB bộ nhớ đệm L1 Ngoài ra, Intel Galileo còn có:
Khe cắm thẻ nhớ micro-SD hỗ trợ lên tới 32GB
Bộ nhớ flash 8MB dùng để chứa firmware hay bootloader
256KB - 512KB bộ nhớ lưu trữ chương trình Arduino
Khả năng chạy các hệ điều hành Linux Yocto, Linux Debian, Windows 8, Windows 10, được tuỳ biến đặc biệt
1.3 Giới thiệu về phần cứng Intel Galileo Gen2
Hình 1.14: Kết nối ngoại vi
Ethernet: Giúp mạch Intel Galileo kết nối với các modem/router để kết nối với Internet (tốc độ tối đa lên đến 10/100 Mb/s)
Trang 19 USB Client: Cổng này là cổng Micro USB (uUSB) vì vậy ta có thể lấy dây sạc điện thoại thông minh để sử dụng Cổng này dùng để lập trình với chương trình Arduino từ máy tính Cổng này là cổng serial ảo duy nhất của Intel Galileo, và nó được thiết kế ra để lập trình với chương trình Arduino Khi người sử dụng cài một hệ điều hành Linux khác (ví dụ debian) thì lúc bấy giờ lập trình viên không thể sử dụng Arduino để lập trình cho Galileo, mà phải dùng các kiến thức điều khiển các chân GPIO của vi xử lý Quark
USB 2.0 Host: Đây là cổng USB dùng cho việc nhận tín hiệu các thiết bị ngoại
vi như webcam, usb micro, usb, Ở Gen1 thì cổng này có dạng MiniA còn sang Gen đã chuyển sang chuẩn TypeA, giúp cho việc kết nối với các thiết bị ngoại vi thuận tiện hơn
Jack nguồn chuẩn 5.5: Được dùng để cấp điện áp cho board, từ 7-15VDC, Gen1 chỉ có thể cấp mức điện áp 5V
Khe cắm thẻ nhớ
Reset Button: Nút bấm có chức năng reset lại chương trình đã được nạp vào board
Reboot Button: Nút bấm có chức năng khởi động lại toàn bộ board, bao gồm cả
hệ điều hành và chương trình đã được nạp vào board Không nên nhấn nút này nếu không thực sự cần thiết vì quá trình khởi động hệ điều hành tốn không ít thời gian
PCIe (Peripheral Component Interconnect Express): Cổng này được Intel Galileo sử dụng để gắn card Wifi vào Nghĩa là với card Wifi này, lập trình viên sẽ dễ dàng cài đặt Galileo truy cập vào một Access Point (router Wifi) nào đó mà không cần
sử dụng một cục thu wifi (router Client) qua cổng LAN (Ethernet)
Hình 1.15: cổng kết nối LAN
Trang 20 Intel Galileo Gen2 được thiết kế để phù hợp với các Arduino Shiled, vì vậy Intel Galileo Gen2 có:
+ 14 chân Digital I/O, trong đó 6 chân có thể phát xung PWM Chúng có thể được sử dụng ở cả 2 chế độ INPUT và OUTPUT, sử dụng được với các hàm pinMode(), digitalWrite() và digitalRead() như trên các mạch Arduino
+ Các chân giao tiếp có thể hoạt động ở 2 mức điện áp 3.3V và 5V Dòng cấp tối đa là 10mA, dòng đỉnh là 25 mA
+ Mỗi chân đều có một điện trở pull-up trong có trị số khoảng 5.6k đến 10k ohms Mặc định, các điện trở này bị ngắt
+ 6 chân Analog từ A0 đến A5 giao tiếp qua chip AD7298 Mỗi chân Analog
có thể cung cấp độ phân giải 12bit với 4096 giá trị khác nhau
+ I2C bus, TWI với 2 chân SDA và SLC nằm cạnh chân AREF TWI: gồm 2 chân SDA (A4) và SCL (A5) Hỗ trợ giao tiếp TWI thông qua thư viện Wire tương tự như trên Arduino
+ SPI: Chạy ở xung mặc định là 4Mhz để làm việc với các Arduino shield, có thể lập trình lên đến mức 25Mhz
Dù Galileo có SPI Controler riêng nhưng nó chỉ hoạt động như là một SPI Master, không phải SPI Slave Do đó, Galileo không thể là một SPI Slave cho một SPI Master khác Galileo chỉ có thể là một thiết bị slave khi được kết nối với máy tín qua cổng USB Client
+ UART (cổng Serial): là một cổng UART với tốc độ có thể lập trình được, 2 chân giao tiếp là 0 (RX) và chân 1 (TX)
+ ICSP (SPI): Gồm 6 chân tích hợp Serial Programming dùng để kết nối với các shield Các chân này hỗ trợ giao tiếp SPI thông qua thư viện SPI
+ VIN: Chân cấp nguồn cho Galileo khi nó sử dụng nguồn ngoài (trái ngược với điện áp chuẩn 5V từ chân cắm nguồn) Bạn có thể cấp nguồn cho Galileo từ chân này, hoặc, nếu cấp nguồn từ chân cắm nguồn phía trước, bạn có thể lấy ra điện áp chuẩn 5V từ chân này
+ Chân 5V output: Chân này cấp nguồn ra 5V từ nguồn ngoài cấp cho Galileo hay từ nguồn USB Dòng ra tối đa ở chân này cho các shield là 800mA
Trang 21+ Chân 3.3V output: Cấp điện áp ra 3.3V được điều chế từ các mạch điều áp trên Galileo Dòng ra tối đa ở chân này cho các shield là 800mA
+ GND: Chân nối cực âm của nguồn điện
+ IOREF: Cho phép các shield điều chỉnh hoạt động phù hợp với điện áp hoạt động trên Galileo Chân IOREF được kiểm soát bởi các jumper trên mạch để lựa chọn
2 mức điện áp làm việc của shield là 3.3V và 5V
1.4 Khối xử lý trung tâm Quark SoC X1000
1.4.1 SoC là gì?
- SoC là chữ viết tắt cho System on a chip, hay System on Chip SoC là một mạch tích hợp (mà người ta thường gọi là IC), trong đó tất cả những thành phần quan trọng của một chiếc máy tính hay một thiết bị điện tử đều được đặt trên một con chip duy nhất
- Một SoC cơ bản thường có những thành phần sau:
+ Một vi điều khiển, vi xử lí, hay nhân xử lí tín hiệu Vài SoC thì có thể có nhiều hơn một nhân xử lí, khi đó người ta gọi nó là MPSoC, tức Multiprocessor System on Chip Ở thế giới di động ngày nay, loại được sử dụng phổ biến là vi xử lí
+ Các khối bộ nhớ, có thể là RAM, ROM, EEPROM hay bộ nhớ flash
+ Nguồn canh thời gian, chẳng hạn như mạch dao động
+ Một số giao diện như USB, FireWire, Ethernet
+ Bộ chuyển đổi tín hiệu số sang tín hiệu tương tự và ngược lại
+ Mạch quản lí năng lượng, mạch kiểm soát điện áp
+ Những SoC hiện đại còn có bộ xử lí đồ họa, chip cầu bắc, chip cầu nam, bộ kiểm soát bộ nhớ,
Giá đề xuất cho khách hàng TRAY: $9.62
Mô tả 32 bit, single core, single thread, Pentium ISA
compatable
Trang 22Số Kênh Bộ Nhớ Tối Đa 1
Băng thông bộ nhớ tối đa 1,6 GB/s Phần mở rộng địa chỉ vật lý 32-bit
Phiên bản PCI Express 2.0
Cấu hình PCI Express ‡ x1
Số cổng PCI Express tối đa 2
Phiên bản chỉnh sửa USB 2.0
Trang 23- Điểm nổi bật của bộ xử lý Quark SoC X1000 là hoạt động ở xung nhịp 400MHz, nhanh hơn 20 lần so với 20MHz của Arduino Tuy nhiên để đánh giá chất lượn của một lõi CPU ta cũng cần xem xét tới hiệu năng làm việc của nó trong một chu kỳ Theo nhà sản xuất RPi, BCM2835 chỉ có hiệu năng tương đương 1 CPU Pentium II 300MHz Trái lại, X1000 lại có hiệu năng tương đương một CPU ARM như BCM2835 nhưng với xung nhịp 1.2GHz
- Dung lượng bộ nhớ tối đa và băng thông tối đa lần lượt là 2GB và 1.6GB/s cho phép CPU xử lý gói thông tin lớn Kết hợp với bộ nhớ DDR3 với tần số làm việc 800MHz, có khả năng chuyển 8 từ dữ liệu trong một chu kỳ đồng hồ
- Các công nghệ tích hợp bên trong
+ Idle States (Trạng thái không hoạt động) (Trạng thái C) được dùng để tiết kiệm điện khi bộ xử lý không hoạt động C0 là trạng thái hoạt động, có nghĩa là CPU đang làm những công việc hữu ích C1 là trạng thái không hoạt động thứ nhất, C2 là trạng thái không hoạt động thứ 2, v.v khi có nhiều tác vụ tiết kiệm điện hơn được thực hiện cho các trạng thái C cao hơn
+ (Execute Disable Bit) Bít vô hiệu hoá thực thi là tính năng bảo mật dựa trên phần cứng có thể giảm khả năng bị nhiễm vi rút và các cuộc tấn công bằng mã độc hại cũng như ngăn chặn phần mềm có hại từ việc thi hành và phổ biến trên máy chủ hoặc mạng
1.5 Lập trình cho IntelGalileo Gen2 và cài đặt hệ điều hành
Trang 24Tiếp theo kiểm tra cổng kết nối của PC với Intel Galileo 2 Thường nó sẽ là COM3 hoặc cao hơn
Có thể kiểm tra cổng này trong mục Devices Manager> Ports (Click chuột phải vào biểu tượng Computer, chọn Manage) Nếu lỗi chưa hiện cổng thì có thể phải cài driver Serial cho máy tính
Trang 25Mở chương trình Blink trong File> Examples> 01.Basics> Blink:
Kiểm tra và upload chương trình lên Galileo 2
Trang 26Cuối cùng kiểm tra chương trình upload thành công
Và đèn Led tích hợp trên Board Galileo 2 sẽ nhấp nháy
Trang 27Chương trình Arduino có thể được chia thành ba phần chính: Strucrure,
values(variable and constants ), and functions
char()
byte()
int()
Functions Digital I/O
pinMode()
digitalWrite()
digitalRead() Analog I/O
millis()
micros()
delay()
delayMicroseconds() Math
Trang 28 variable scope
static
volatile
const Utilities
sizeof()
PROGMEM
pow()
sqrt() Trigonometry
sin()
cos()
tan() Characters
randomSeed()
random() Bits and Bytes
Trang 29 interrupts()
noInterrupts() Communication
Serial
Stream
Trang 301.5.2 Cài đặt hệ điều hành Linux cho IntelGalileo Gen2
Trong phần này, nhóm 1 xin phép được giới thiệu cách cài đặt hệ điều hành linux yocto lên Board Galileo
Bước 2 Tải file image của hệ điều hành
Link: https://software.intel.com/sites/landingpage/iotdk/board-boot-image.html (Direct link)
Dung lượng file là 232.89MB
Khi tải xong, ta sẽ được một file là iot-devkit-1.5-i586-galileo.bz2 (iot-devkit phiên bản 1.5 dành cho Intel Galileo)
Giải nén file này, ta sẽ được một file tên là iot-devkit-1.5-i586-galileo (file này không có đuôi) dung lượng 1.32GB
Bước3: Tải phần mềm hỗ trợ ghi dữ liệu
Tải Win32 Disk Imager tại http://sourceforge.net/projects/win32diskimager/ (Direct link bản Portable)
Để chạy phần mềm, giải nén file vừa tải về và chạy file Win32DiskImager.exe Bạn cũng có thể chạy ngay trong file nén bằng cách double-click vào file này
Các phần mềm khác cũng có tính năng tương đương như HDD Raw Copy, Rawrite32, hoặc lệnh dd nếu dùng Linux
Bước4: Format thẻ nhớ
Format về định dạng bất kì như NTFS, FAT32, nếu trước đó bạn có lưu dữ liệu trên thẻ
Bước5: Ghi file image đã tải về lên thẻ
Chạy Win32 Disk Imager, chọn Image File là file image 1.32GB đã giải nén ở bước 2 và chọn Device là thẻ nhớ đã chuẩn bị của mình
Trang 31Chú ý chọn Device để ghi dữ liệu chính xác Vì đây là hành động ghi đè dữ liệu mới lên thẻ nhớ nên nếu bạn ghi nhầm dữ liệu sang USB của mình, cơ may phục hồi gần như bằng 0
Bấm nút Write để bắt đầu ghi dữ liệu Với thẻ nhớ Class 10, tốc độ ghi trung bình
là 10MB/s Quá trình ghi dữ liệu sẽ kết thúc trong khoảng 5 phút
Bước 6: Chạy Linux Yocto trên board Galileo
Ta chỉ cần cắm thẻ nhớ vào board và cấp nguồn cho nó Galileo sẽ tự động khởi động hệ điều hành vừa được cài đặt trên thẻ nhớ
Tài khoản đăng nhập mặc định là root, password mặc định không được cài đặt
1.5.3 Ứng dụng của Board IntelGalileo Gen2
- Một số ứng dụng của Intel Galileo gen 2
+ Làm bộ xử lý cho máy bay điều khiển từ xa (drone)
+ Kết nối với máy tính qua cổng Enthernet hỗ trợ những dự án IoT
+ Thông báo qua email khi có thư đường bưu điện gửi tới hộp thư của bạn
+ Hệ thống chống trộm trong gia đình thông báo qua internet …
- Nhóm sẽ giới thiệu một ứng dụng đó là: kiểm soát Intel Galileo gen 2 qua AWS (Amazon Web Sevices) IoT
- Project này có thể truy cập và kiểm soát các thành phần khác nhau như Led, buzzer, nút ấn, cảm biến … Dự án có thể mở rộng để tự động hóa nhà ở…
- Nền tảng:
AWS IoT Console: Amazon Web Services đã đưa ra các hỗ trợ cho IoT, nền tảng có mã nguồn mở đảm bảo an toàn và các nền tảng khác miễn phí
Intel Galileo Gen 2
Grove Starter Kit: là bộ kit để học tập thiết kế cho Arduino và Galileo, nó chứa sẵn các thành phần như Buzzer, Cảm biến ánh sang, module Relay…
1: Thiết lập phần cứng
- Kết nối Ban galileo của bạn với internet bằng cách sử dụng Ethernet hoặc Wi-Fi Đối với thiết lập WiFi bạn sẽ phải sử dụng dòng lệnh connmanctl Một khi bạn có thể đăng nhập vào thiết bị đầu cuối Linux, nó là cần thiết để tải về vài thư viện cần thiết
- Thư viện AWS Iot: cài bằng lệnh
$ npm install aws-iot-device-sdk
Trang 32- $ sudo python setup.py install
2: Setting up AWS IoT:
Tạo tài khoản Amazon Web Services và chọn đến AWS IOT Console Click Get Started
-Đặt tên khách hàng hoặc thiết bị các trường khác để trống nhấn nút Create
Trang 33- Ẩn kết nối lên thiết bị của bạn bước này sẽ tạo ra khóa công khai khóa riêng và chứng nhận thiết bị cho bạn
Trang 34- Tải tất cả các tập tin và ấn xác nhận
3: Cấu hình Intel Galileo cho AWS
Đăng nhập vào galileo gen 2 sử dụng putty
Tạo một thư mục mới cho AWS sử dụng lệnh