tìm hiểu boardb galileo intel và ngôn ngữ intel arduino ứng dụng để khai thác thông tin gps phục vụ quản lý phương tiện di động

58 1 0
Tài liệu đã được kiểm tra trùng lặp
tìm hiểu boardb galileo intel và ngôn ngữ intel arduino ứng dụng để khai thác thông tin gps phục vụ quản lý phương tiện di động

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

LỜI CẢM ƠN Được sự phân công của nhà trường nói chung hay của Khoa Công Nghệ nói riêng của Trường Đại Học Hòa Bình và được sự đồng ý của Thầy giáo hướng dẫn TS.Nguyễn Đăng Minh tôi đã th

Trang 1

KHOA CÔNG NGHỆ

KHÓA LUẬN TỐT NGHIỆP

Đề tài: Tìm hiểu Boardb Galileo Intel và ngôn ngữ Intel-arduino, ứng dụng để khai thác thông tin GPS phục vụ

quản lý phương tiện di động

Giảng viên hướng dẫn : TS.Nguyễn Đăng Minh

Hà Nội, 6/2016

Trang 2

LỜI CẢM ƠN

Được sự phân công của nhà trường nói chung hay của Khoa Công Nghệ nói riêng của Trường Đại Học Hòa Bình và được sự đồng ý của Thầy giáo hướng dẫn TS.Nguyễn Đăng Minh tôi đã thực hiện đề tài: ‘‘Tìm hiểu Boardb Galileo Intel và ngôn ngữ Intel-arduino, ứng dụng để khai thác thông tin GPS phục vụ quản lý phương tiện di động’’

Để hoàn thành được khóa luận tốt nghiệp này trước hết tôi xin cảm ơn sâu sắc đến TS.Nguyễn Đăng Minh người đã tận tình trực tiếp hướng dẫn, giảng dậy trong suốt quá trình học tập, nghiên cứu và rèn luyện tại Khoa Công Nghệ - Trường Đại Học Hòa Bình

Lời tiếp theo em xin gửi đến toàn thể các thầy cô giáo trường Đại Học Hòa Bình, những người đã dìu dắt, tận tình chỉ bảo, dậy dỗ em từ những ngày nhập học đến khi kết thúc 4 năm học ở trường

Em xin chân thành cảm ơn tất cả bạn bè, tập thể lớp 512CNT, tập thể lớp 312CNT, Bạn Nguyễn Tuấn Vũ lớp 514CNT, Bạn Phạm Trọng Đông lớp 312CNT đã giúp em hoàn thành khóa luận Em rất mong được sự góp ý của quý Thầy, Cô giáo và các bạn để khóa luận được hoàn chỉnh hơn

Em xin chân thành cảm ơn

Hà nội, ngày tháng năm Sinh viên

Nguyễn Văn Ngọc

Trang 3

1.1 Giới thiệu chung về Arduino 5

1.2 Giới thiệu về board Intel Galileo 7

1.2.1 Sơ đồ cấu trúc Intel Galileo 7

1.2.2 Board Intel Galileo 10

1.2.3 Thông số kỹ thuật Board Intel Galileo 12

1.3 Giới thiệu màn hình LCD 15

1.4 Giới thiệu ngôn ngữ Intel Arduino 17

1.4.1 Hướng dẫn Download cài đặt Intel Arduino 18

1.4.2 Ngôn ngữ Intel Arduino 20

CHƯƠNG 2: ỨNG DỤNG KHAI THÁC THÔNG TIN GPS PHỤC VỤ QUẢN LÝ PHƯƠNG TIỆN DI ĐỘNG 28

2.1.7 Những yếu tố ảnh hưởng đến tín hiệu GPS 40

2.2 Giới thiệu về chuẩn NMEA0183 41

2.2.1 Cấu tạo chuỗi NMEA 0183 42

2.2.2 Dữ liệu đưa ra 42

Trang 4

2.3 Ứng dụng của thông tin GPS để quản lý các phương tiện di động 44

2.3.1 Giới thiệu về Thiết bị giám sát hành trình xe và lái xe trên các phương tiện giao thông 45

2.3.2 Chức năng chính của thiết bị giám sát hành trình xe và lái xe trên các phương tiện giao thông 48

2.3.3 Sơ đồ mạch điện giao tiếp giữa các phần cứng của thiết bị 49

2.3.4 Các modun hoạt động của thiết bị 51

2.3.5 Quá trình thử nghiệm thiết bị 54

2.3.6 Chương trình vẽ lại đường đi bằng ngôn ngữ Visual Basic 55

KẾT LUẬN 56

MỘT SỐ TÀI LIỆU THAM KHẢO 57

Trang 5

LỜI MỞ ĐẦU

Ngày nay khoa học công nghệ ngày càng phát triển mạnh mẽ, sự ra đời cũng như phát triển của các vi mạch điện tử, các vi mạch điều khiển góp phần tạo lên các ứng dụng phát triển trong đời sống xã hội Các bo mạch ngày càng có chi phí thấp hơn nhưng đi ngược lại chi phí thấp đó thì bo mạch ngày càng trở lên hiện đại, tích hợp nhiều công nghệ tiến tiến, và ngày càng thu nhỏ hơn.Board Intel Galileo là một trong những sản phẩm đầu tiên của Intel đượ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 Board Intel galileo được trang bị nhiều cải tiến hơn so với board thông thường của Arduino giúp chúng ta sử lý nhiều tác vụ hơn, mạnh hơn Board Intel Galileo rất phù hợp với các dự án, ý tưởng cho các bạn trẻ đam mê sáng tạo Ngôn ngữ Intel Arduino thông dụng và có chút ít cải tiến so với ngôn ngữ Arduino, đây là một ngôn ngữ được ra đời vào năm 2005 và đến nay đã rất phổ biến trong các ngôn ngữ lập trình về vi mạch, vi điều khiển Ngôn ngữ dễ tìm hiểu, dễ sử dụng và thực thành ngay tại nhà, các thủ tục và các hàm đều có sẵn trong thư viện Intel Arduino, chương trình dễ sử dụng và thân thiện với người dùng Board Intel Galileo rất phù hợp với dự án quản lý các phương tiện di động, chỉ cần một kinh phí nhỏ chúng ta cũng có thể tạo ra một sản phẩm đem lại nhiều lợi ích trong việc quản lý, điều hành, điều tra các phương tiện giao thông Với tinh thần đam mê công nghệ, luận văn này em chủ yếu tìm hiểu về board Intel Galileo, cách lập trình trên hệ thống board, và các ứng dụng của board Intel Galileo trong các phương tiện giao thông cũng như các chương trình dẫn đường BÀi khóa luận dựa trên đề tài thi quốc gia: Thiết bị quản lý hành trình xe và lái xe trên các phương tiện giao thông Bài khóa luận này xe đi sâu về các kết nối, các mạch của board Intel Galileo với LCD, GPS

Trang 6

CHƯƠNG 1: TỔNG QUAN 1.1 Giới thiệu chung về Arduino

Arduino thực sự đã được biết đến trên thị trường người dùng trên toàn thế giới trong vài năm gần đây.Số lượng người dùng cực lớn và đa dạng với trình độ rộng từ bậc phổ thông lên đến đại học đã làm cho ngay cả những người tạo ra chúng phải ngạc nhiên về mức độ phổ biến của nó

Board Intel Galileo nói riêng hay Board Arduino nói chunglà bo mạch

chủ yếu dành cho đối tượng người dùng DIY (Do It Yourself) – Tức là những

người muốn tự tay làm các sản phẩm sáng tạo của mình

Đội phát triển cốt lõi Arduino gồm Massimo Banzi, David Cuartielles, Tom Igoe , Gianluca Martino, David Mellis và Nicholas Zambetti Massimo Banzi đã được phỏng vấn trên tuần san FLOSS ngày 21 tháng 3 năm 2009 tập trên mạng TWiT.tv, trong đó ông đã thảo luận về lịch sử và mục tiêu của dự án Arduino Ông cũng có buổi nói chuyện tại Hội nghị TEDGlobal 2012, nơi mà ông vạch ra sử dụng khác nhau của bảng mạch Arduino trên thế giới

Arduino là phần cứng nguồn mở: các thiết kế tham khảo phần cứng Arduino được phân phối theo giấy phép Creative Commons Attribution Share-Alike 2.5 và có sẵn trên trang web của Arduino Bố trí và sản xuất tập tin cho một số phiên bản của phần cứng Arduino cũng có sẵn Mã nguồn cho IDE có sẵn và phát hành theo giấy phép GNU General Public License, phiên bản 2

Mặc dù thiết kế phần cứng và phần mềm là tự do sẵn có theo giấy phép copyleft, các nhà phát triển đã yêu cầu tên "Arduino" được độc quyền sản phẩm chính thức và không được sử dụng cho sản phẩm phái sinh mà không được phép Văn bản chính sách chính thức về việc sử dụng các tên Arduino nhấn mạnh rằng dự án là mở cửa cho kết hợp công việc của người khác vào

Trang 7

hành thương mại đã tránh được "Arduino" tên bằng cách sử dụng tên các biến thể "-Duino "

Arduino thật ra là bo mạch xử lý được dùng để lập trình tương tác với các thiết bị phần cứng như cảm biến, động cơ, đèn và các thiết bị khác… Điểm nổi bật của Arduino là môi trường phát triển ứng dụng cực kì dễ dàng, dễ sử dụng với ngôn ngữ lập trình có thể học một cách nhanh chóng ngay cả với người ít am hiểu về điện tử và lập trình

Arduino được khởi động vào năm 2005 như là một dự án dành cho sinh viên trại Interaction Design Institure Iverea (Viện thiết kế tương tác Ivrea) tại Ivrea, Italy Vào thời điểm đó các sinh viên sử dụng một ‘‘BASIC Stamp’’ (con tem Cơ Bản) có giá khoảng $100, xem như giá dành cho sinh viên Massimo Banzi, là một trong những người sáng lập, giảng dậy tại Ivrea.Một đồ án về phần cứng đã đóng góp vào một thiết kế hệ thống kết nối điện dẫn của sinh viên người Colombia tên là Hernando Barragan Sau khi các nền tảng hệ thống điện dẫn đã được hoàn tất, các nhà nghiên cứu làm việc để làm cho hệ thống đó gọn nhẹ hơn, rẻ hơn, và có sẵn cho cộng đồng nguồn mở Trường này cuối cùng đã đóng cửa, do đó, các nhà nghiên cứu, trong số họ là David Cuartielles, đã thúc đẩy ý tưởng phát triển về Arduino

Cái tên Arduino đến từ một quán bar tại Ivrea, nơi một vài nhà sáng lập của dự án này thường xuyên gặp mặt Bản thân quán bar này có được lấy tên là Arduino, Bá tước của Ivrea, và là vua của Italy từ năm 1002 đến năm 1014

Arduino là một board mạch vi xử lý, nhằm xây dựng các ứng dụng tương tác với nhau hoặc với môi trường được thuận lợi hơn Phần cứng bao gồm một board mạch nguồn mở được thiết kế trên nền tảng vi xử lý AVR Atmel 8-bit, hoặc ARM Ateml 32-bit Những model hiện tại được trang bị gồm 1 cổng giao tiếp USB, 6 chân đầu vào anolog, 14 chân I/O kỹ thuật số tương thích với nhiều board mở rộng khác nhau

Trang 8

Được giới thiệu vào năm 2005, những nhà thiết kế của Arduino cố gắng mang đến một phương thức dễ dàng, không tốn kém cho những người yêu thích, sinh viên và giới chuyên nghiệp để tạo ra những thiết bị có khả năng tương tác với môi trường Giá của board dao động xung quanh €20 hoặc €27 Thông tin thiết kế phần cứng được cung cấp công khai để những ai muốn tự làm một mạch Arduino bằng tay có thể tự mình thực hiện được Người ta ước tính khoảng giữa năm 2011 có trên 300 ngàn mạch Arduino chính thức đã được sản xuất thương mại, và vào năm 2013 có khoảng 700 ngàn mạch chính thức đã được đưu tới tay người dùng

1.2 Giới thiệu về board Intel Galileo 1.2.1 Sơ đồ cấu trúc Intel Galileo

Galileo là một bo mạch vi điều khiển dựa trên bộ xử lý ứng dụng Intel Quark SoC X1000 - một bộ xử lý thuộc dòng Pentium 32-bit system on chip ( tích hợp các hệ thống vào trong một chip xử lý duy nhất ) Galileo là bo mạch tương thích với Arduino đầu tiên dựa trên Intel Architecture Cả phần cứng và phần mềm của Galileo đều tương thích với các Arduino Shield vốn được thiết kế cho Arduino Uno R3 với chuẩn chân cắm Arduino 1.0 pinout

Galileo có thể chạy được các shield của Arduino ở cả 2 mức điện áp 3.3V và 5V mặc dù điện áp hệ thống của nó chỉ là 3.3V Galileo có được điều này là nhờ các bộ chuyển dổi điện áp được tích hợp ngay trên bo mạch Theo mặc định, Galileo chạy shield ở mức 5V và có thể chuyển xuống 3.3V bằng cách thay đổi các chân cắm (jumper) trên mạch

Trang 9

Hình 1.1:Sơ đồ cấu trúc của Galileo

Galileo tương thích với các Arduino Uno shield và được thiết kế để làm việc với các shield ở cả 2 mức điện áp là 3.3V và 5V Như trong sơ đồ cấu trúc thì Galileo gồm:

• 14 chân Digital I/O, trong đó có 6 chân có thể phát xung PWM Chúng có thể sử dụng ở cả 2 chế độ INPUT và OUTPUT

Trang 10

✓ Các chân giao tiếp có thể hoạt động ở cả 2 mức điện áp là 3.3V và 5V Dòng cấp tối đa là 10mA, dòng chỉnh là 25mA

✓ 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 ( chuyển đổi Analog to digital )

✓ Mỗi chân analog 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à SCL 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

• 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 có thể là 0 ( RX ) và 1 ( TX )

• ICSP ( SPI ): gồm 6 chân tích hợp Serial Programming dùng để kết nố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) Có thể cung 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 đ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 cung cấp cho Galileo hay từ nguồn USB Dòng ra tối đa ở chân này cho các

Trang 11

• IOREF: cho phép các Shield điều chỉnh hoạt động phù hợp với điện áp 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

• RESET: chân/ nút nhấn RESET

✓ Kéo chân này xuống GND để reset chương trình Arduino đang chạy trên Galileo Thường chân này được dùng để reset các Shield

• AREF: không được sử dụng trên Galileo Trên Arduino, chân này cung cấp một điện áp tham chiếu ngoài cho các chân đọc tín hiệu analog

1.2.2 Board Intel Galileo

Hình 1.2: Hình ảnh của Intel Galileo

• 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) Mặc định chức năng của cổng này sẽ không được khởi động

Trang 12

• RS – 232 port: cổng này là một trong 2 cổng UART (Serial) vật lý trên Intel Galileo Nó có hình dáng giống hệ một jack cắm tai nghe 3.5mm trên điện thoại di động Bắt buộc phải dùng cổng này nếu muốn truy cập sâu vào hệ thống để cài đặt những hệ điều hành Yocto Để kết nối với máy tính cần phải có một bộ SF Cable, DB9 Female to 3.5mm Serial ( đối với máy tính để bàn có cổng COM) và nếu là máy tính xách tay hoặc máy tính để bàn mà không có cổng COM thì cần them bộ USB 2.0 to RS-232 DB9 Serial Converter

• USB Client: Cổng này là cổng Micro USB (uUSB) vì vậy có thể lấy dây sạc điện thoại thông minh để sử dụng ( dây sạc máy Samsung) 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 cài một hệ điều hành Linux khác ( ví dụ debian) thì lúc đấy sẽ không thể sử dụng Arduino để lập trình cho Galileo được nữa, mà phải dùng các kiến thức điều khiển chân GPIO của vi xử lý Quark

• USB 2.0 Host: đây là cổng USB ( không phải là cổng UART còn lại) dùng cho việc nhận tín hiệu các thiết bị ngoại vi như Webcam, usb micro, usb…Intel Galileo hỗ trợ lên đến 128-bit

• Reboot Button: Nút này sẽ khởi động lại toàn bộ BOARD Intel Galileo, nghĩa là nó sẽ khởi động lại mạch Intel Galileo, tất cả các chương trình đã nạp từ trước hay đã cài đặt trên Board đều sẽ mất hết, Board quay về trạng thái ban đầu như lúc mới mua

• Pin 13 LED: Giống như LED 13 trên mạch Arduino Uno Khi lập trình Arduino trên Intel Galileo mà đụng đến chân digital 13 và pinMode nó là OUTPUT thì xuất HIGH là nó sáng, LOW là nó tắt

• Arduino Reset Button: Nút này giống như nút reset trên mạch Arduino

Trang 13

Arduino mà thôi chứ không reset cả mạch Reset Button để reset lại chương trình, nút này không ảnh hưởng đến thẻ nhớ đã gắn trên board • Power Indicator: Đèn LED này sẽ sáng khi bạn gắn nguồn và mạch

đang khởi động Đèn này sẽ tắt khi Galileo đã được tắt

• SD Activity Indicator: Đèn LED này sẽ sáng khi mạch Intel Galileo có truy cập đến thẻ nhớ Viết chương trình và sử dụng tệp trên RAM sẽ làm cho thẻ nhớ bền hơn và Server Load của mạch sẽ thấp

• Micro SD Card: Đây là nơi gắn thẻ nhớ điện thoại Nó sẽ được cài sẵn một hệ điều hành trên này và mạch Intel Galileo sẽ boot hệ điều hành ấy lên khi khởi động Mạch Intel Galileo hỗ trợ thẻ nhớ có dung lượng lên đến 32GB Tốc độ đọc/ghi sẽ cực kì nhanh

• 5V Power In: Đây là cổng nguồn của Galileo, khi sử dụng chỉ việc gắn cổng nguồn của bộ sạc( có sẵn trong hộp của bo mạch Intel Galileo)

1.2.3 Thông số kỹ thuật Board Intel Galileo

Kiểu hình thức của bo mạch Arduino

Chương trình kéo dài tuổi thọ (XLP) No Có sẵn Tùy chọn nhúng No

Trang 14

Thuật in thạch bản 32 nm

Điện áp đầu vào DC được Hỗ trợ 7-15

Giá đề xuất cho khách hàng $60.90 Thời hạn bảo hành 1 yrs

Dung lượng bộ nhớ tối Đa (tùy vào

Số Kênh Bộ Nhớ Tối Đa 1

Băng thông bộ nhớ tối đa 2,5 GB/s Phần mở rộng địa chỉ vật lý 32-bit

Hỗ trợ bộ nhớ ECC ‡ No

Trang 15

Hỗ trợ PCI PCI Express Phiên bản PCI Express 2.0

Cấu hình PCI Express ‡ x1 Số cổng PCI Express tối đa 1

Khe thẻ mini PCIe (toàn bộ chiều dài) 1

Phiên bản chỉnh sửa USB 2.0

Trang 16

1.3 Giới thiệu màn hình LCD

Ngày nay, thiết bị hiển thị LCD (Liquid Crystal Display) được sử dụng trong rất nhiều các ứng dụng của VĐK Text LCD là các loại màn hình tinh thể lỏng nhỏ dùng để hiển thị kí tự đa dạng, trực quan (chữ, số và kí tự đồ họa), dễ dàng đưa vào mạch ứng dụng theo nhiều giao thức giao tiếp khác nhau Không giống các loại LCD lớn, Text LCD được chia sẵn thành từng ô và ứng với mỗi ô chỉ có thể hiển thị Nó có khả năng hiển thị kí tự đa dạng, trực quan (chữ, số và kí tự đồ họa), dễ dàng đưa vào mạch ứng dụng theo nhiều giao thức giao tiếp khác nhau Cũng vì lý do chỉ hiện thị được ký tự ASCII nên loại LCD này được gọi là Text LCD (để phân biệt với Graphic LCD có thể hiển thị hình ảnh) Mỗi ô của Text LCD bao gồm các “chấm” tinh thể lỏng, việc kết hợp “ẩn” và “hiện” các chấm này sẽ tạo thành một ký tự cần hiển thị Trong các Text LCD, các mẫu ký tự được định nghĩa sẵn Kích thước của Text LCD được định nghĩa bằng số ký tự có thể hiển thị trên 1 dòng và tổng số dòng mà LCD có, LCD 16x2 tốn rất ít tài nguyên hệ thống và giá thành rẽ … Ví dụ LCD 16x2 là loại có 2 dòng và mỗi dòng có thể hiển thị tối đa 16 ký tự Một số kích thước Text LCD thông thường gồm 16x1, 16x2, 16x4, 20x2, 20x4…

Trang 17

Hình 1.3: Màn hình LCD 16x2

STT (Chân)

Ký hiệu Mô tả

GND của mạch điều khiển

VCC=5V của mạch điều khiển

(GND) hoặc logic “1” (VCC) để chọn thanh ghi

+ Logic “0”: Bus DB0-DB7 sẽ nối với thanh ghi lệnh IR của LCD (ở chế độ “ghi” - write) hoặc nối với bộ đếm địa chỉ của LCD (ở chế độ “đọc” - read)

+ Logic “1”: Bus DB0-DB7 sẽ nối với thanh ghi dữ liệu DR bên trong LCD

“0” để LCD hoạt động ở chế độ ghi, hoặc nối với logic “1” để LCD ở chế độ đọc

DB0-DB7, các lệnh chỉ được chấp nhận khi có 1 xung cho phép

Trang 18

STT (Chân)

Ký hiệu Mô tả của chân E

+ Ở chế độ ghi: Dữ liệu ở bus sẽ được LCD chuyển vào(chấp nhận) thanh ghi bên trong nó khi phát hiện một xung (high-to-low transition) của tín hiệu chân E

+ Ở chế độ đọc: Dữ liệu sẽ được LCD xuất ra DB0-DB7 khi phát hiện cạnh lên (low-to-high transition) ở chân E và được LCD giữ ở bus đến khi nào chân E xuống mức thấp

DB7

Tám đường của bus dữ liệu dùng để trao đổi thông tin với MPU Có 2 chế độ sử dụng 8 đường bus này :

+ Chế độ 8 bit: Dữ liệu được truyền trên cả 8 đường, với bit

1.4 Giới thiệu ngôn ngữ Intel Arduino

Intel Galileo là một mạch linux tương tự như Arduino Chúng ta có hai cách để lập trình với Galileo, một là dùng phần mềm Arduino Galileo-ized IDE để lập trình thông qua ngôn ngữ Arduino, hai là dùng ngôn ngữ lập trình khác như (PHP, Python, LUA, BASH, C, C++, JS … những ngôn ngữ này đã phải cài trình biên dịch) để lập trình cho phần linux trong mạch Galileo Đề tài khóa luận này sẽ đề cập phương pháp lập trình theo cách thứ nhất là dùng phần mềm Arduino Galileo IDE để lập trình

Ngôn ngữ Intel Arduino kế thừa từ ngôn ngữ Arduino và có một số cải

Trang 19

ta cần phải download phần mềm Intel Arduino để lập trình Mạch Intel Galileo là một máy tính được xây dựng trên cấu trúc x86, vì vậy nó khác hoàn toàn với cấu trúc của mạch Arduino khác, nó cần một chương trình Arduino riêng để lập trình Nếu chỉ download Arduino IDE thì chúng ta sẽ gặp rất nhiều khó khăn trong việc lập trình, tìm board tương thích trong phần mềm Arduino IDE hay upload chương trình lên board Intel Gelileo vì đơn thuần phần mềm Arduino chỉ hỗ trợ các board thuộc Arduino như board Arduino Uno, board Arduino Mega, Arduino Lilypad, Arduino Nano…

Intel Arduino được trang bị một thư viện các hàm để cho một số những thành viên mới học về lập trình Arduino cũng có thể lập trình được sau ít ngày Intel Arduino cho phép lựa chọn phiên bản phù hợp với các hệ điều hành và cấu trúc máy tính của bạn Có các phiên bản dành cho các hệ điều hành như Linux, MacOS và Windown, các cấu trúc x86 ( 32bit ) và x64 (64bit )

1.4.1 Hướng dẫn Download cài đặt Intel Arduino

Intel Arduino có một số phiên bản hiện tại, bản mới nhất hiện nay đang là Intel Arduino 1.6.0 Có thể download trực tiếp từ link Intel:

http://www.intel.com/content/www/us/en/support/boards-and-kits/intel-galileo-boards/000005614.html

Đây là phiên bản Arduino được được Intel phát triển để lập trình trên mạch Intel Galileo Bản Arduino này hơi nặng so với các phiên bản Arduino khác vì đã được chỉnh sửa cho việc lập trình trên board Intel Galileo

• Trên Windown

Sau khi down load thành công chương trình, giờ chúng ta sẽ giải nén phần mềm ( 7-Zip hoặc WinRar …) vào thưc mục gốc của các ổ đĩa (ví dụ C:\ hay E:\,…) thường thì các bạn lên để ở các ổ khác ngoài ổ C để khi có vấn đề sự cố với chính máy tính của bạn thì các chương trình đã lập trình hay các ví dụ đã làm của chúng ta vẫn khôi phục lại được

Trang 20

Hình 1.4: Thư mục Intel Arduino trong Windown

Sau đó các bạn kích đúp vào biểu tượng Arduino.exe chạy phần mềm Intel Arduino để lập trình

• Trên MacOS

Bạn chỉ cần giải nén file ban đầu vào thư mục Applications, và kích

đúp vào biểu tưởng Arduino.app để lập trình

Hình 1.5: Intel Arduino trong Applications MacOS

Trang 21

Đối với Linux, bạn cần một chương trình để giải nén file tar.gz, có thể dùng

wget hoặc chương trình download fiel tương tự để tải chương trình cài đặt về

Giả sử ta được file tên là arduino-1.5.3-linux32.tar.gz Lúc này bạn sẽ chạy lệnh tar –zxvf arduino-1.5.3.tar.gz để giải nén Có một điều cần lưu ý là bạn

phải xóa chương trình modem manager nếu không upload được lên mạch

Xóa nó bằng cách dùng lệnh sudo apt-get remove modemmanager Khi đã giải nén xong tất cả, lúc này các bạn chỉ việc mở file arduino trong thư mục vừa giải nén và chạy Từ command line chúng ta có thể gõ /arduino

1.4.2 Ngôn ngữ Intel Arduino

Intel arduino là ngôn ngữ lập trình khá đơn giản và thông dụng với người sử dụng Môi trường lập trình đơn giản dễ sử dụng, ngôn ngữ lập trình dễ hiểu dễ sử dụng dựa trên nền tảng C/C++ đây được xem như là hai ngôn ngữ chính khi mới bắt đầu của người lập trình

Trang 22

Hình 1.6:Chương trình Intel Arduino

Để lập trình được trên Board Intel Galileo nói riêng hay các board Arduino nói chung trước hết chúng ta cần phải lựa chọn các Board mà mình

cần phải lập trình để chạy trên đó Mở chương trình lên các bạn vào Tool lựa chọn đến phần Board sau đó lựa chọn board mình lập trình trên đó

Trang 23

Hình 1.7: Lựa chọn board phù hợp trong Intel Arduino

Bên cạnh đó ngôn ngữ chương trình Intel Arduino còn có một số các ví dụ dành cho những người mới lập trình để tìm hiểu cũng như các bước lập trình một chương trình cụ thể, chúng ta có thể tham khảo dự trên phần

Examples.

Trang 24

Hình 1.8: Ví dụ chương trình Blink trong Intel Arduino

Phân tích ví dụ trên thì ta thấy chương trình trên có hai method quan

trọng nhất đó là setup( ) và loop( )

• Setup( ): làm nhiệm vụ khởi tạo mode cho các ngoại vi của

arduino Hàm này sẽ được chạy một lần khi bo mạch Intel

Trang 25

arduino reset Ở chương trình này setup( ) chi làm nhiệm vụ là

đặt chân số 13 của Intel Galileo sang mode output

• Loop( ): là chương trình chính của Intel Arduino Đoạn code

trong loop( ) sẽ được Arduino Galileo chạy vô hạn, trong chương

trình trên có hàm digitalWrite( ) để đặt các chân 13 ở mức điện áp cao (HIGH) hay thấp (LOW) Hàm tiếp theo là delay( ), nhận

đối số là số nguyên, thể hiện số mili giây ta muốn chương trình tạm dừng

Sau viết một chương trình xong, phần mềm Intel Arduino cho phép chúng ta có thể tìm lỗi sai hay những câu lệnh còn thiếu trước khi chúng ta upload vào board để chạy chương trình hay là trình biên dịch, thường thì bước này cũng quan trọng không kém gì bước lập trình, nó sẽ tìm kiếm những lỗi sai, sau đó hiển thị những câu lệnh sai, những dòng lệnh thiếu hay thừa, những lỗi khi chúng ta lập trình ở bẳng bên dưới Intel Arduino Chúng ta có

thể kiểm tra bằng cách vào Sketch sau đó vào Verify/Compile

Trang 26

Hình 1.9: Biên dịch chương trình trong Intel Galileo thành công

Chương trình sẽ chạy và sẽ thông báo khi hoàn tất, chương trình thành công không lỗi sai nào sẽ thông báo như trên hình, nếu xảy ra lỗi thì chúng ta lên xem lại các câu lệnh, xem lại board mà chúng ta đã lựa chọn hay cổng COM đã đúng chưa… Nếu chương trình vẫn báo lỗi thì chúng ta không thể upload lên Board Galileo được

Trang 27

Hình 1.10: Chương trình trong Intel Arduino bị lỗi

Khi chương trình đã thông qua trình biên dịch xong, chúng ta có thể tiến hành upload lên board Galileo, để upload thì cần có dây sạc điện thoại thông minh có cổng USB ( dây Samsung) cắm vào cổng USB Client trên board Intel Galileo Khi board đã nhận được tín hiệu sẽ có đèn thông báo bên cạnh cổng USB Client.Lên kiểm tra kỹ lại một lần nữa về cổng COM và

Trang 28

Board đã đúng chưa, thường thì hai lỗi này rất hay mắc phải khi mới sử dụng chương trình Nếu không có lỗi gì xảy ra chúng ta tiến hành upload chương trình lên board và board sẽ hoạt động đúng chương trình ta đã viết

Bên cạch đó chúng ta có thể tham khảo các hàm thủ tục trên Cộng đồng Arduino Việt Nam.Một diễn đàn khá nổi tiếng của Việt Nam

Hình 1.11: Các hàm thủ tục trong Intel Galileo

Trang 29

CHƯƠNG 2: ỨNG DỤNG KHAI THÁC THÔNG TIN GPS PHỤC VỤ QUẢN LÝ PHƯƠNG TIỆN DI ĐỘNG

2.1 Tổng quan về GPS

2.1.1 Giới thiệu chung về GPS

Tên gọi GPS(Global Positioning System) dùng để chỉ hệ thống định vị toàn cầu do Bộ quốc phòng Mỹ thiết kế và điều hành gọi tắt là NAVSTAR GPS (Navigation Signal Timing and Ranging Global Positioning System) Là một hệ thống các vệ tinh có khả năng xác định vị trí trên toàn cầu với độ chính xác khá cao Ban đầu GPS được xây dựng để phục vụ cho các mục đích về quân sự tuy nhiên sau này cho phép sử dụng cả trong lĩnh vực dân sự Hiện nay hệ thống GPS này được phục vụ trong cả hai lĩnh vực quân sự và dân sự.Vệ tinh đầu tiên của GPS được phóng vào tháng 12 năm 2005

Hệ thống định vị toàn cầu của Mỹ là hệ thống dẫn đường dựa trên một mạng lưới 24 quả vệ tinh được Bộ Quốc phòng Hoa kỳđặt trên quỹ đạo không gian (tính đến năm 1994), và đã được bổ sung thành 28 vệ tinh (vào năm 2000) để đảm bảo phủ sóng liên tục trên toàn thế giới Các vệ tinh được săp xếp sao cho 4 vệ tinh sẽ nằm cùng nhau trên 1 trong 6 mặt phẳng quỹ đạo ( nghiêng 55 độ so với mặt phẳng xích đạo) xung quanh trái đất với bán kính 26.560 km Với cách xếp này sẽ có 4 đến 10 vệ tinh sẽ được nhìn thấy tại bất kỳ điểm nào trên trái đất với góc ngẩng là 100 nhưng thực tế là chỉ cần 4 vệ tinh là đã có thể cung cấp đầy đủ vị trí thông tin về địa lý.Các vệ tinh GPS bay vòng quanh trái đất hai lần trong một ngày theo quỹ đạo rất chính xác và phát tín hiệu có thông tin xuống trái đất

2.1.2 Phân loại:

Các hệ thống dẫn đường truyền thống hoạt động dựa trên các trạm phát tín hiệu vô tuyến điện Được biết đến nhiều nhất là các hệ thống sau: LORAN - (Long Range Navigation) hoạt động ở giải tần 90-100 kHz chủ yếu dùng cho hằng hải, hay TACAN - (TACtical Air Navigation) – dùng cho quân đội

Ngày đăng: 05/05/2024, 11:24

Tài liệu cùng người dùng

Tài liệu liên quan