Đồ Án Thiết Kế Lịch Vạn Niên Điện Tử Hiển Thị Trên LCD.pdf
Mạnh (1)
1. MỞ ĐẦU
Ngày nay, sự phát triển mạnh mẽ của khoa học công nghệ, cuộc sống của con người đã
có những thay đổi ngày càng tốt hơn, với những trang thiết bị hiện đại phục vụ công
cuộc công nghiệp hoá, hiện đại hoá đất nước. Đặc biệt góp phần vào sự phát triểnđó thì
ngành kĩ thuật điện tử đã góp phần không nhỏ trong sự nghiệp xây dựng và phát triển
đất nước.
Những thiết bị điện, điện tử được phát triển mạnh mẽ và được ứng dụng rộng rãi trong
đời sống cũng như sản suất. Từ những thời gian đầu phát triển ngành kỹ thuật điện tử đã
cho thấy sự ưu việt của nó và cho tới ngày nay tính ưu việt đó ngày càng được khẳng
định thêm.
Những thành tựu của nó đã có thể biến được những cái tưởng chừng như không thể
thành những cái có thể, góp phần nâng cao đời sống vật chất và tinh thần cho con người.
Để góp phần làm sáng tỏ hiệu quả của những ứng dụng trong thực tế của ngành tự động
hoá, sau một thời gian học tập được quý thầy cô trong viện giảng dạy về các kiến thức
chuyên ngành, đồng thời được sự giúp đỡ nhiệt tình của các thầy cô trong khoa Tự Động
Hoá, cùng với sự nổ lực của bản thân, em đã nghiên cứu đề tài “TÊN ĐỀ TÀI “ . Dưới
sự giúp đỡ tận tình của thầy cô trong bộ môn,đặc biệt là sự giúp đỡ của thầy giáo Đặng
Văn Ngọc, em đã hoàn thành đề tài của mình.Nhưng do thời gian, kiến thức và kinh
nghiệm của em còn có hạn nên sẽ không thể tránh khỏi những sai sót. Em rất mong được
sự giúp đỡ và tham khảo ý kiến của thầy cô và các bạn nhằm đóng góp phát triển thêm
đề tài.
2. CHƯƠNG 1:CƠ SỞ LÝ THUYẾT
1.1.Giới thiệu chung
Tự động hóa là một lĩnh vực công nghệ rất quan trọng trong sự phát triểncủa mỗi
quốc gia. Khi ngành này phát triển và được ứng dụng rộng rãi thì nó sẽ góp phần cải
thiện đáng kể trong mọi lĩnh vực của đời sống. Nhưng hiện tại ở nước ta ngành này vẫn
còn rất thiếu và yếu về quy mô hình lẫn năng lực làm chủ công nghệ. Điều đó làm hạn
chế rất lớn đến sự phát triển của đất nước. Nhưng nhìn về mặt tích cực thì đó cũng là cơ
hội để ngành này khai thác nhu cầu rất lớn từ nhiều vấn đề. Và một nhu cầu cấp thiết
mà hàng ngày vẫn thường xuyên xảy ra ở nước ta đó là phòng tránh nạn trộm cắp xe gắn
máy. Việc có một thiết bị giúp chúng ta có thể điều khiển bật tắt xe máy từ xa nhằm
nâng cao khả năng bảo vệ tài sản của mình, đồng thời có thể định vị được chiếc xe mọi
lúc mọi nơi là rất cần thiết.
1.2. Mục tiêu của đề tài
- Nghiên cứu mô hình chống trộm và định vị xe máy thông qua sóng điệnthoại. - Nghiên
cứu cơ sở lý thuyết để xây dựng mô hình dựa trên các kiến thức đã học về lập trình. -
Ứng dụng các công nghệ gần gũi với cuộc sống con người để xây dựng lên hệ thống
điều khiển từ xa.
1.3. Tính tối ưu của đề tài
- Tạo tính tư duy cho sinh viên trong quá trình nghiên cứu. - Có tính linh động và mở
rộng cho sinh viên thiết kế mô hình dựa trên cơ sở thực tế. - Mô hình đơn giản nhưng
rất hữu ích.
1.4.Các chuẩn giao tiếp
Vấn đề giao tiếp giữa PC và vi điều khiển rất quan trọng trong các ứng dụng điều
khiển, đo lường... Ghép nối qua cổng nối tiếp RS232 là một trong những kỹ thuật được
sử dụng rộng rãi để ghép nối các thiết bị ngoại vi với máy tính. Nó là một chuẩn giao tiếp
nối tiếp dùng định dạng không đồng bộ, kết nối nhiều nhất là 2 thiết bị, chiều dài kết nối
lớn nhất cho phép để đảm bảo dữ liệu là 12.5 đến 25.4m, tốc độ 20kbit/s đôi khi là tốc độ
3. 115kbit/s với một số thiết bị đặc biệt. Ý nghĩa của chuẩn truyền thông nối tiếp nghĩa là
trong một thời điểm chỉ có một bit được gửi đi dọc theo đường truyền.
Có hai phiên bản RS232 được lưu hành trong thời gian tương đối dài là RS232B và
RS232C. Nhưng cho đến nay thì phiên bản RS232B cũ thì ít được dùng cònRS232C hiện
vẫn được dùng và tồn tại thường được gọi là tên ngẵn gọn là chuẩn RS232. Các máy tính
thường có 1 hoặc 2 cổng nối tiếp theo chuẩn RS232C được gọi là cổng Com. Chúng được
dùng ghép nối cho chuột, moden, thiết bị đo lường...Trên main máy tính có loại 9 chân
hoặc lại 25 chân tùy vào đời máy và main của máy tính. Việc thiết kế giao tiếp với cổng
RS232 cũng tương đối dễ dàng, đặc biệt khi chọn chế độ hoạt động là không đồng bộ và
tốc độ truyền dữ liệu thấp.
-Ưu điểm của giao diện nối tiếp RS232
+ Khả năng chống nhiễu của các cổng nối tiếp cao.
+ Thiết bị ngoại vi có thể tháo lắp ngay cả khi máy tính đang được cấp điện.
+ Các mạch điện đơn giản có thể nhận được điện áp nguồn nuôi qua công nối tiếp.
-Những đặc điểm cần lưu ý trong chuẩn RS232
+ Trong chuẩn RS232 có mức giới hạn trên và dưới (logic 0 và 1) là +-12V. Hiện nay
đang được cố định trở kháng tải trong phạm vi từ 3000 ôm - 7000 ôm.
+ Mức logic 1 có điện áp nằm trongkhoảng -3V đến-12V, mức logic 0 từ +-3V đến 12V.
+ Tốc độ truyền nhận dữ liệu cực đại là 100kbps (ngày nay có thể lớn hơn).
+ Các lối vào phải có điện dung nhỏ hơn 2500pF.
+ Trở kháng tải phải lớn hơn 3000Ώ nhưng phải nhỏ hơn 7000Ώ.
+ Độ dài của cáp nối giữa máy tính và thiết bị ngoại vi ghép nối qua cổng nối tiếp RS232
không vượt qua 15m.
+ Các giá trị tốc độ truyền dữ liệu chuẩn hay dùng: 9600, 19200, 28800, 38400,...56600,
115200 bps.
-Các mức điện áp đường truyền
RS232 sử dụng phương thức truyền thông không đối xứng, tức là sử dụng tín hiệu điện
áp chênh lệch giữa một dây dẫn và đất. Do đó ngay từ đầu tiên ra đời nó đã mang vẻ lỗi
thời của chuẩn TTL, nó vẫn sử dụng các mức điện áp tương thích TTL để mô tả các mức
logic 0 và 1. Ngoài mức điện áp tiêu chuẩn cũng cố định các giá trị trở kháng tải được
đấu vào bus của bộ phận và các trở kháng ra của bộ phát.
Mức điện áp của tiêu chuẩn RS232C (chuẩn thường dùng bây giờ) được mô tả như sau:
4. + Mức logic 0: +3V , +12V
+ Mức logic 1: -12V, -3V
Các mức điện áp trong phạm vi từ -3V đến 3V là trạng thái chuyển tuyến. Chính vì từ -
3V tới 3V là phạm vi không được định nghĩa, trong trường hợp thay đổi giá trị logic từ
thấp lên cao hoặc từ cao xuống thấp, một tín hiệu phải vượt qua quãng quá độ trong một
thời gian ngắn hợp lý. Điều này dẫn đến việc phải hạn chế về điện dung của các thiết bị
tham gia và của cả đường truyền. Tốc độ truyền dẫn tối đa phụ thuộc vào chiều dài của
dây dẫn. Đa số các hệ thống hiện nay chỉ hỗ trợ với tốc độ 19,2 kBd.
-Cổng RS232 trên PC
Hầu hết các máy tính cá nhân hiện nay đều được trang bị ít nhất là 1 cổng Com hay cổng
nối tiếp RS232. Số lượng cổng Com có thể lên tới 4 tùy từng loại main máy tính. Khi đó
các cổng Com đó được đánh dấu là Com 1, Com 2, Com 3...Trên đó có 2 loại đầu nối
được sử dụng cho cổng nối tiếp RS232 loại 9 chân (DB9) hoặc 25 chân (DB25). Tuy hai
loại đầu nối này có cùng song song nhưng hai loại đầu nối này được phân biệt bởi cổng
đực (DB9) và cổng cái (DB25).
-Quá trình truyền dữ liệu
Truyền dữ liệu qua cổng nối tiếp RS232 được thực hiện không đồng bộ. Do vậy nên tại
một thời điểm chỉ có một bit được truyền (1kí tự). Bộ truyền gửi một bit bắt đầu (bit start)
để thông báo cho bộ nhận biết một kí tự sẽ được gửi đến trong lần truyền bit tiếptheo. Bit
này luôn bắt đầu bằng mức 0. Tiếp theo đó là các bit dữ liệu (bits data) được gửi dưới
dạng mã ASCII (có thể là 5,6,7 hay 8 bit dữ liệu) Sau đó là một Parity bit ( Kiểm tra bit
chẵn, lẻ hay không) và cuối cùng là bit dừng - bit stop có thể là 1, 1,5 hay 2 bit dừng.
-Tốc độ Baud
Đây là một tham số đặc trưng của RS232. Tham số này chính là đặc trưng cho quá trình
truyền dữ liệu qua cổng nối tiếp RS232 là tốc độ truyền nhận dữ liệu hay còn gọi là tốc
độ bit. Tốc độ bit được định nghĩa là số bit truyền được trong thời gian 1 giây hay số bit
truyền được trong thời gian 1 giây. Tốc độ bit này phải được thiết lập ở bên phát và bên
nhận đềuphải có tốcđộ như nhau (Tốc độ giữa vi điềukhiển và máy tính phải chung nhau
1 tốc độ truyền bit).
Ngoài tốc độ bit cònmột tham số để mô tả tốc độ truyền là tốc độ Baud. Tốc độ Baud liên
quan đến tốc độ mà phần tử mã hóa dữ liệu được sử dụng để diễn tả bit được truyền còn
tốc độ bit thì phản ánh tốc độ thực tế mà các bit được truyền.Vì một phần tử báo hiệu sự
5. mã hóa một bit nên khi đó hai tốc độ bit và tốc độ Baud là phải đồng nhất. Một số tốc độ
Baud thường dùng: 50, 75, 110, 150, 300, 600, 1200, 2400, 4800, 9600, 19200, 28800,
38400, 56000, 115200,…Trong thiết bị họ thường dùng tốc độ là 19200. Khi sử dụng
chuẩn nối tiếp RS232 thì yêu cầu khi sử dụng chuẩn là thời gian chuyển mức logic không
vượt quá 4% thời gian truyền 1 bit. Do vậy, nếu tốc độ bit càng cao thì thời gian truyền 1
bit càng nhỏ thì thời gian chuyển mức logic càng phải nhỏ. Điều này làm giới hạn tốc
Baud và khoảng cách truyền.
-Bit chẵn lẻ hay Parity bit
Đây là bit kiểm tra lỗi trên đường truyền. Thực chất của quá trình kiểm tra lỗi khi truyền
dữ liệu là bổ xung thêm dữ liệuđược truyền để tìm ra hoặc sửa một số lỗi trong quá trình
truyền. Do đó trong chuẩn RS232 sử dụng một kỹ thuật kiểm tra chẵn lẻ. Một bit chẵn lẻ
được bổ sung vào dữ liệu được truyền để cho thấy số lượng các bit "1" được gửi trong
một khung truyền là chẵn hay lẻ.
Một Parity bit chỉ có thể tìm ra một số lẻ các lỗi chả hạn như 1, 3, 5, 7, 9...Nếu như một
bit chẵn được mắc lỗi thì Parity bit sẽ trùng giá trị với trường hợp không mắc lỗi vì thế
không phát hiện ra lỗi. Do đó trong kỹ thuật mã hóa lỗi này không được sử dụng trong
trường hợp có khả năng một vài bit bị mắc lỗi.
*Chuẩn I2C
Tổng quan
I2C là giao thức truyền thông nối tiếp đồng bộ phổ biến hiện nay, được sử dụng rộng rãi
trong việc kết nối nhiều IC với nhau, hay kết nối giữa IC và các ngoại vi với tốc độ thấp.
Giao tiếp I2C sử dụng 2 dây để kết nối là SCL (Serial Clock) và SDA (Serial Data).
Trong đó dây SCL có tác dụng để đồng bộ hóa giữa các thiết bị khi truyền dữ liệu, còn
SDA là dây dữ liệu truyền qua.
Board ESP32-IoT-Uno có 2 bộ điều khiển I2C có thể thiết lập ở chế độ chủ (master)
hoặc tớ (slave).
*Chuẩn SPI
SPI (tiếng Anh: Serial Peripheral Interface, SPI bus — Giao diện Ngoại vi Nối tiếp,
bus SPI)[1] là một chuẩn truyền thông nối tiếp đồng bộ để truyền dữ liệu ở chế độ song
công toàn phần (full-duplex), do công ty Motorola thiết kế nhằm đảm bảo sự liên hợp
giữa các vi điều khiển và thiết bị ngoại vi một cách đơn giản và giá rẻ. Đôi khi SPI còn
được gọi là giao diện bốn dây (four wire).
6. Khác với cổng nối tiếp chuẩn (standard serial port), SPI là giao diện đồng bộ, trong đó
bất cứ quá trình truyền nào cũng được đồng bộ hóa với tín hiệu xung clock, tín hiệu này
sinh ra bởi thiết bị master (thiết bị chủ động). Thiết bị ngoại vi bên phía nhận (bị động)
làm đồng bộ quá trình nhận chuỗi bit với tín hiệu xung clock. Có thể kết nối một số vi
mạch vào mỗi giao diện ngoại vi nối tiếp của vi mạch-thiết bị master. Thiết bị master
chọn thiết bị động để truyền dữ liệu bằng cách kích hoạt tín hiệu "chọn chip" (chip
select) trên vi mạch bị động. Thiết bị ngoại vi nếu không được chọn bởi bộ vi xử lý sẽ
không tham gia vào quá trình truyền theo giao diện SPI.
Trong giao diện SPI có sử dụng bốn tín hiệu số:
MOSI (Master Out Slave In) hay SI - cổng ra của bên master, cổng vào của bên bị động,
dành cho việc truyền dữ liệu từ thiết bị master đến thiết bị slave.
MISO (Master In Slave Out) hay SO — cổng vào của bên master, cổng ra của bên bị
động, dành cho việc truyền dữ liệu từ thiết bị slave đến thiết bị master.
SCLK (Serial Clock) hay SCK — tín hiệu xung clock nối tiếp, dành cho việc truyền tín
hiệu dành cho thiết bị slave.
CS hay SS (Chip Select, Slave Select): chọn vi mạch, chọn thiết bị slave.
*Chuẩn ADC
Bộ chuyển đổi ADC là gì : Vi điềukhiển có khả năng đọc các tín hiệu nhị phân: nút bấm
có được nhấn hay không? Đây là những tín hiệu kỹ thuật số. Khi một bộ vi điều khiển
được cấp nguồn từ 5 vôn, nó hiểu 0 vôn (0V) là 0 và 5 vôn (5V) là 1. Tuy nhiên, thực tế
không đơn giản như vậy. Nếu tín hiệu là 2,72V thì sao? Đó là 0 hay 1? Chúng ta thường
cần đo các tín hiệu khác nhau; chúng được gọi là tín hiệu tương tự. Cảm biến tương tự
5V có thể xuất ra 0,01V hoặc 4,99V hoặc bất kỳ giá trị nào ở giữa. May mắn thay, gần
như tất cả các bộ vi điều khiển đều có một thiết bị tích hợp cho phép chúng ta chuyển
đổi các điện áp này thành các giá trị mà chúng ta có thể sử dụng trong một chương trình
để đưa ra quyết định điều khiển.
Dưới đây là một số chủ đề và khái niệm bạn có thể muốn biết trước khi đọc hướng dẫn
này:
Điện áp, Dòng điện, Điện trở
Analog vs Digital
Bộ chuyển đổi ADC là gì ?
7. Bộ chuyển đổi tương tự sang kỹ thuật số (ADC) là một tính năng rất hữu ích giúp chuyển
đổi điện áp tương tự sang số kỹ thuật số. Bằng cách chuyển đổi từ giá trị tương tự sang
giá trị kỹ thuật số, chúng ta có thể bắt đầu sử dụng thiết bị điện tử để giao tiếp với thế
giới tương tự xung quanh chúng ta.
Không phải mọi chân trên vi điều khiển đều có khả năng thực hiện chuyển đổi từ tương
tự sang kỹ thuật số. Trên board Arduino, các chân này có chữ ‘A’ phía trước (A0 đến
A5) để cho biết các chân này có thể đọc điện áp tương tự.
ADC có thể khác nhau rất nhiều giữa các vi điều khiển. ADC trên Arduino là ADC 10
bit có nghĩa là nó có khả năng thực hiện 1.024 (2 ^ 10) mức tương tự rời rạc. Một số vi
điều khiển có ADC 8 bit (2 ^ 8 = 256 mức rời rạc) và một số có ADC 16 bit (2 ^ 16 =
65,536 mức rời rạc).
Cách thức hoạt động của ADC khá phức tạp. Nhưng một trong những kỹ thuật phổ biến
nhất sử dụng điện áp tương tự để sạc tụ điện bên trong và sau đó đo thời gian nó phóng
điện qua một điện trở bên trong. Bộ vi điều khiển giám sát số chu kỳ xung trôi qua trước
khi tụ điện được phóng điện. Số chu kỳ này là số được trả lại sau khi ADC hoàn tất.
Mối liên hệ giữa giá trị ADC với điện áp – Bộ chuyển đổi ADC là gì
8. ADC thể hiện một giá trị tỷ lệ . Điều này có nghĩa là ADC giả định 5V là 1023 và bất
kỳ thứ gì nhỏ hơn 5V sẽ có tỷ lệ giữa 5V và 1023.
Chuyển đổi tương tự sang kỹ thuật số phụ thuộc vào điện áp hệ thống. Vì chúng tôi chủ
yếu sử dụng ADC 10 bit của Arduino trên giá trị điện áp 5V, chúng tôi có thể đơn giản
hóa phương trình này một chút:
Nếu điện áp của bạn là 3,3V, bạn chỉ cần thay đổi 5V ra bằng 3,3V trong phương trình.
Nếu điện áp của bạn là 3,3V và ADC của bạn đọc đc là 512, thì điện áp đo được là bao
nhiêu? Nó xấp xỉ 1,65V.
Nếu điện áp tương tự là 2,12V thì ADC sẽ báo giá trị như thế nào?
Sắp xếp lại mọi thứ một chút và chúng tôi nhận được:
CHƯƠNG 2:PHÂN TÍCH THIẾT KẾ HỆ THỐNG
2.1.Đặc tả hệ thống
2.1.1.Chức năng hệ thống
9. -Chức năng chính của hệ thống “Xây dựng CSDL và Giao diện định vị GPS” lấy
dữ liệu từ định vị để hiển thị giá trị nên lcd và gửi giá trị về máy tính để người giám sát
có thể biết được vị trí của bạn.
-Chức năng của GPS: Thiết bị định vị gps được thiết kế và sản xuất từ những
công nghệ hiện đại. Để có thể sử dụng sản phẩm này cho xe của mình, bạn cần phải lắp
thiết bị định vị gps lên xe của mình. Sau đó sẽ giám sát qua điện thoại hoặc máy tính có
kết nối internet.
Chức năng của Arduino: Arduino tương tác thế giới xung quanh thông qua cảm
biến điện tử, động cơ và đèn
Chức năng của LCD:Hiển thị giá trị thu được nên màn hình.
2.2 Sơ đồ khối hệ thống
Hình 1. Sơ đồ khối hệ thống
-Khối Nguồn: dùng để cấp nguồn cho các khối hoạt động.
-Khối Hiển thị:Nhận giá trị từ máy tính để hiển thị giá trị nên màn hình.
-Khối Vi điều khiển: đọc giá trị từ định vị GPS ,xử lý tín hiệu và hiển thị dữ liệu ra Máy
tính.
-Khối Máy Tính: Hiển thị thông tin lên trên giao diện C# và lưu thông tin của thẻ vào
CSDL SQL Server, điều khiển tín hiệu xuống vi xử lý.
-Khối Định Vị GPS:lấy dữ liệu để gửi về vi sử lý.
2.3.Các thiết bị được sử dụng
2.3.1.Giới thiệu Arduino
Khối Hiển
Thị
Vi Điều
Khiển
Máy Tính
Nguồn
Khối
Định Vị
GPS
10. Hình 1.1. Arduino uno
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 8bit, hoặc ARM Atmel 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 analog,
14 chân I/O kỹ thuật số tương thích với nhiều board mở rộng khác nhau.
Đượ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 thông qua
các cảm biến và các cơ cấu chấp hành. Những ví dụ phổ biến cho những người yêu thích
mới bắt đầu bao gồm các robot đơn giản, điều khiển nhiệt độ và phát hiện chuyển động.
Đi cùng với nó là một môi trường phát triển tích hợp (IDE) chạy trên các máy tính cá
nhân thông thường và cho phép người dùng viết các chương trình cho Aduino bằng ngôn
ngữ C hoặc C++.
Giá của các board Arduino dao động xung quanh €20, hoặc $27hoặc 574 468VNĐ, nếu
được "làm giả" thì giá có thể giảm xuống thấp hơn $9. Các board Arduino có thể được
đặt hàng ở dạng được lắp sẵn hoặc dưới dạng các kit tự-làm-lấy. 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 (mã nguồn mở). 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 đưa tới tay người dùng.
b. Sơ đồ chân của Arduino
11. Hình 1.2. Sơ đồ các chân arduino
c. Sơ đồ nguyên lý của Arduino
Hình 1.3. sơ đồ nguyên lí mạch arduino
d. Thông số kỹ thuật
Arduino Uno được xây dựng với phân nhân là vi điềukhiển ATmega328P sử dụng thạch
anh có chu kì dao động là 16 MHz. Với vi điềukhiển này, tacó tổng cộng 14 pin (ngõ) ra
/ vào được đánh số từ 0 tới 13 (trong đó có 6 pin PWM, được đánh dấu ~ trước mã số
của pin). Song song đó, ta có thêm 6 pin nhận tín hiệu analog được đánh kí hiệu từ A0
- A5, 6 pin này cũng có thể sử dụng được như các pin ra / vào bình thường (như pin 0 -
13). Ở các pin được đề cập, pin 13 là pin đặc biệt vì nối trực tiếp với LED trạng thái trên
board.
12. Trên board còn có 1 nút reset, 1 ngõ kết nối với máy tính qua cổng USB và 1 ngõ cấp
nguồn sử dụng jack 2.1mm lấy năng lượng trực tiếp từ AC-DC adapter hay thông qua
ắc-quy nguồn.
Khi làm việc với Arduino board, một số thuật ngữ sau cần được lưu ý:
Flash Memory: bộ nhớ có thể ghi được, dữ liệu không bị mất ngay cả khi tắt điện. Về
vai trò, ta có thể hình dung bộ nhớ này như ổ cứng để chứa dữ liệu trên board. Chương
trình được viết cho Arduino sẽ được lưu ở đây. Kích thước của vùng nhớ này thông
thường dựa vào vi điều khiển được sử dụng, ví dụ như ATmega8 có 8KB flash memory.
Loại bộ nhớ này có thể chịu được khoảng 10,000 lần ghi / xoá.
RAM: tương tự như RAM của máy tính, sẽ bị mất dữ liệu khi ngắt điệnnhưng bù lại tốc
độ đọc ghi xoá rất nhanh. Kích thước nhỏ hơn Flash Memory nhiều lần.
EEPROM: một dạng bộ nhớ tương tự như Flash Memory nhưng có chu kì ghi / xoá cao
hơn - khoảng 100,000 lần và có kích thước rất nhỏ. Để đọc / ghi dữ liệu ta có thể dùng
thư viện EEPROM của Arduino.
Ngoài ra, board Arduino còncung cấp cho ta các pin khác nhau như pin cấp nguồn 3.3V,
pin cấp nguồn 5V, pin GND...
Thông số kỹ thuật của Arduino board được tóm tắt trong bảng sau:
Vi điều khiển ATmega328P
Điện áp hoạt động 5V
Điện áp vào khuyên dùng 7-12V
Điện áp vào giới hạn 6-20V
Digital I/O pin 14 (trong đó 6 pin có khả năng băm xung)
PWM Digital I/O Pins 6
Analog Input Pins 6
Cường độ dòng điện trên mỗi I/O pin 20 mA
13. Cường độ dòng điện trên mỗi 3.3V pin 50 mA
Flash Memory
32 KB (ATmega328P)
0.5 KB được sử dụng bởi bootloader
SRAM 2 KB (ATmega328P)
EEPROM 1 KB (ATmega328P)
Tốc độ 16 MHz
Chiều dài 68.6 mm
Chiều rộng 53.4 mm
Trọng lượng 25 g
e. Vị trí & chức năng các chân
Nếu không có sẵn nguồn từ cổng USB, có thể cấp nguồn cho Arduino UNO từ
một bộ chuyển đổi AC→DC hoặc pin. Các bộ chuyển đổi có thể được kết nối bằng một
plug-2.1mm trung tâm tích cực vào jack cắm điện. Trường hợp cấp nguồn quá ngưỡng
trên sẽ làm hỏng Arduino UNO.
Các chân năng lƣợng:
GND (Ground): cực âm của nguồn điện cấp cho Arduino UNO. Khi dùng các thiết bị
sử dụng những nguồn điện riêng biệt thì những chân này phải được nối với nhau.
5V: cấp điện áp 5V đầu ra. Dòng tối đa cho phép ở chân này là 500mA.
3.3V: cấp điện áp 3.3V đầu ra. Dòng tối đa ở chân này là 50mA. Vin (Voltage
Input): để cấp nguồn ngoài cho Arduino UNO, ta nối cực dương của nguồn với chân
này và cực âm với chân GND.
IOREF: điện áp hoạt động của vi điều khiển trên Arduino UNO có thể được đo ở chân
này. Và dĩ nhiên nó luôn là 5V. Mặc dù vậy không được lấy nguồn 5V từ chân này để
sử dụng bởi chức năng của nó không phải là cấp nguồn.
14. RESET: việc nhấn nút Reset trên board để reset vi điều khiển tương đương với việc
chân RESET được nối với GND qua 1 điện trở 10KΩ.
Các chân Input/Output:
Arduino UNO có 14 chân digital dùng để đọc hoặc xuất tín hiệu. Chúng chỉ có 2 mức
điện áp là 0V và 5V với dòng tối đa trên mỗi chân là 40mA.
Một số chân digital có các chức năng đặc biệt như sau:
2 chân Serial: 0 (RX) và 1 (TX): dùng để gửi (transmit – TX) và nhận (receive – RX)
dữ liệu TTL Serial. Arduino Uno có thể giao tiếp với thiết bị khác thông qua 2 chân này.
Kết nối bluetooth thường thấy nói nôm na chính là kết nối Serial không dây. Nếu không
cần giao tiếp Serial, không nên sử dụng 2 chân này nếu không cần thiết
Chân PWM (~): 3, 5, 6, 9, 10, và 11: cho phép bạn xuất ra xung PWM với độ phân
giải 8bit (giá trị từ 0 → 28 -1 tương ứng với 0V → 5V) bằng hàm analogWrite(). Nói
một cách đơn giản, có thể điềuchỉnh được điệnáp ra ở chân này từ mức 0V đến 5V thay
vì chỉ cố định ở mức 0V và 5V như những chân khác.
Chân giao tiếp SPI: 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK). Ngoài các chức năng
thông thường, 4 chân này còn dùng để truyền phát dữ liệu bằng giao thức SPI với các
thiết bị khác.
LED 13: trênArduino UNO có 1 đèn led màu cam (kí hiệu chữ L). Khi bấm nút Reset,
ta sẽ thấy đèn này nhấp nháy để báo hiệu. Nó được nối với chân số 13. Khi chân này
được người dùng sử dụng, LED sẽ sáng. Arduino UNO có 6 chân analog (A0 → A5)
cung cấp độ phân giải tín hiệu 10bit (0 → 210 -1) để đọc giá trị điện áp trong khoảng
0V → 5V. Với chân AREF trên board, ta có thể để đưa vào điện áp tham chiếu khi sử
dụng các chân analog. Tức là nếu cấp điện áp 2.5V vào chân này thì ta có thể dùng các
chân analog để đo điện áp trong khoảng từ 0V → 2.5V với độ phân giải vẫn là 10bit.
Đặc biệt, Arduino UNO có 2 chân A4 (SDA) và A5 (SCL) hỗ trợ giao tiếp I2C/TWI với
các thiết bị khác.
2.3.2.Định vị GPS
Module Định Vị GPS NEO-6M 7N APM2.5 điện áp đầu vào: 3,3-5,5V, chế độ
tiết kiệm năng lượng: 30mA, nhiệt độ lưu trữ -55°C to + 100°C, tốc độ truyền mặc định
của mô-đun là 9600
Module Định Vị GPS NEO-6M, với độ nhạy cao, tiêu thụ điện năng thấp, kích thước
nhỏ, độ nhạy theo dõi cao lớn của nó lớn to lớn vị trí của nó bao phủ, nơi mô-đun bình
15. thường GPS không định vị, chẳng hạn như ngày đô thị chật hẹp rỗng, dày đặc Môi
trường rừng rậm, NEO-6M có thể được định vị với độ chính xác cao.
Module Định Vị GPS NEO-6M kích thước nhỏ gọn, thích hợp cho xe hãng, thiết
bị cầm tay như PDA, giám sát phương tiện, video máy ứng dụng và hệ thống định vị
di động khác, các ứng dụng của GPS là nhất lựa chọn tốt của sự lựa chọn.
THÔNG SỐ KỸ THUẬT MODULE ĐỊNH VỊ GPS NEO-6M
Điện áp đầu vào: 3,3-5,5V
Điện năng tiêu thụ
Chế độ bình thường: 50mA
Chế độ tiết kiệm năng lượng: 30mA
Nhiệt độ hoạt động -40°C to + 85°C
Nhiệt độ lưu trữ -55°C to + 100°C
VCC: Điện áp đầu vào 3,3-5,5V
GND: 0V
RXD: kết nối vi điều khiển cổng nối tiếp TXD truyền
TXD: chân gửi cổng nối tiếp mô-đun – kết nối với cổng nối tiếp đơn chip nhận RXD
PPS: Pin đầu ra xung đồng hồ
Mô-đun PPSPin được kết nối đỏ LED ánh sáng
Bật ổn định: Hoạt động bình thường, nhưng không nhấp nháy vị trí : Định vị thành
công
Tốc độ truyền mặc định của mô-đun là 9600
Thông số đặc trưng
Các mô-đun đi kèm với một ăng-ten gốm, và có giao diện IPEX có thể được kết nối
với các ăng-ten hoạt động khác.
Mô-đun thêm một mạch khuếch đại tần số vô tuyến để giúp tăng tốc tìm kiếm
Mô-đun đi kèm với một pin dự phòng có thể sạc lại có thể được tắt nguồn để duy trì
dữ liệu phù du.
Mô-đun tương thích 3,3V / 5V , thuận tiện cho việc kết nối các hệ thống vi điều khiển
khác nhau.
16. 2.3.2.1. Chức năng của thiết bị định vị gps
Thiết bị định vị gps được thiết kế và sản xuất từ những công nghệ hiện đại. Để có thể
sử dụng sản phẩm này cho xe của mình, bạn cần phải lắp thiết bị định vị gps lên xe của
mình. Sau đó sẽ giám sát qua điện thoại hoặc máy tính có kết nối internet.
Do đó, nó mang lại cho người dùng sự tiện lợi với nhiều chức năng vượt trội :
– Xác định vị trí của xe theo thời gian thực, vận tốc của chiếc xe và hướng di chuyển
và các điểm dừng đỗ. Giúp bạn dễ dàng tìm được vị trí của chiếc xe dù ở bất kỳ nơi
đâu
– Cảnh báo khí xe di chuyển trái phép ra khỏi khu vực an toàn đã được thiết lập từ
trước
– Giám sát, điều hành phương tiện
– Cảnh báo khi xe di chuyển vượt quá giới hạn tốc độ cho phép
– Xem lại hành trình di chuyển của phương tiện trong vòng
2.3.2.2. Ứng dụng của thiết bị định vị gps
Có thể nói rằng sự xuất hiện của thiết bị định vị GPS được xem là một cuộc cách mạng
lớn trong việc giám sát và bảo vệ ô tô, xe máy hay thậm chí là cả người và vật
nuôi.Các thiết bị định vị gps ngày càng được ứng dụng rộng rãi trong cuộc sống cụ thể
là:
– Thiết bị định vị GPS có vai trò quan trọng trong giám sát quản lý vận tải, theo dõi vị
trí, tốc độ, hướng di chuyển…
17. – Ứng dụng vào hệ thống chống trộm cho ứng dụng thuê xe tự lái, theo dõi lộ trình của
đoàn xe.
– Giám sát mại vụ, giám sát vận tải hành khách,…
– Theo dõi định vị cho các ứng dụng giao hàng, có nhiều ứng dụng mạnh mẽ trong
quản lý xe ô tô, đặc biệt là các loại xe như: Xe tự lái, xe của doanh nghiệp cho thuê.
– Giám sát người, vật nuôi hay những đồ vật có giá trịnh lớn
2.3.3.Giới thiệu LCD
2.1.2. Màn hình LCD 16x2 xanh lá 3.3-3.5V:
a. Giới thiệuLCD
LCD (Liquid Crystal Display) được sử dụng trong rất nhiều các ứng dụng
của Vi Điều Khiển. LCD có rất nhiều ưu điểm so với các dạng hiển thị khác. 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
Hình 1.4. LCD 16x2
thông số kỹ thuật
- Điện áp hoạt động: 5V
- Hiển thị tối đa 16 ký tự trên 2 dòng
- Chức năng các chân của LCD
+ Chân 1: (Vss) Chân nối đất cho LCD, khi thiết kế mạch ta nối chân này
với GND của mạch điều khiển
+ Chân 2: VDD Là chân cấp nguồn cho LCD, khi thiết kế mạch ta nối
chân này với VCC = 5V của mạch điều khiển
+ Chân 3: VEE là chân điều chỉnh độ tương phản của LCD.
+ Chân 4: RS Là chân chọn thanh ghi (Register select). Nối chân RS với
18. logic “0” (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.
+ Chân 5: R/W là chân chọn chế độ đọc/ghi (Read/Write). Nối chân R/W
với logic “0” để LCD hoạt động ở chế độ ghi, hoặc nối với logic “1” để LCD ở
chế độ đọc.
+ Chân 6: E Là chân cho phép (Enable). Sau khi các tín hiệu được
đặt lên bus DB0-DB7, các lệnh chỉ được chấp nhận khi có 1 xung cho phép 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.
+ Chân 7 - 14: DB0 - 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 MSB là
bit DB7.
- Chế độ 4 bit: Dữ liệu được truyền trên 4 đường từ DB4 tới DB7,
bit MSB là DB7
+ Chân 15: Nguồn dương cho đèn nền
+ Chân 16: GND cho đèn nền
*Ưu nhược điểm LCD
Ưu điểm:
Hình ảnh sắc nét, trung thực
Độ sáng màn hình cao
Màn hình LCD thân thiện với môi trường cũng như sức khỏe của người dùng
Giá rẻ, được ứng dụng hầu hết trong các lĩnh vực và trở thành linh kiện của hầu
hết các thiết bị điện tử hiển thị như máy tính, TV, điện thoại…
19. Nhược điểm
Sở hữu kích thước dày vì phải đặt đến 3 lớp kính
Tiêu hao điện năng do phải sử dụng đèn nền
Vì mật độ điểm ảnh trên màn LCD rất thấp nên khi ra ngoài ánh sáng mặt trời
thì màu sắc hiển thị rất kém cũng như dễ nhìn thấy các hoạt điểm ảnh trên màn
hình.
2.4.Ứng dụng được sử dụng
2.4.1 Giới thiệu ngôn ngữ C#
C# là một ngôn ngữ lập trình ứng dụng, ngôn ngữ biên dịch, ngôn ngữ đa
năng được phát triển bởi Microsoft, là một phần khởi đầu cho kế hoạch .NET.
Microsoft phát triểnC# dựa trênC, C++ và Java. C# được miêu tả là ngôn ngữ có
được sự cân bằng giữa C++, Visual Basic, Delphi và Java…
2.4.1.2 .Các cấu thành thông dụng
1. Form
Hình 2.1.1 Giao diện Form
2. Button
Hình 2.1.2 Button
20. Button dùng để bấm kết nối, xóa, làm mới và thoát chương trình.
3. TextBox
Hình 2.1.3 TextBox
TextBox dùng để hiển thị giá trị đo được và hiển thị thời gian thực.
4. DataGridView
Hình 2.1.4 DataGridView
DataGridView dùng để hiển thị giá trị đo được từ arduino gửi về.
5. Label
Hình 2.1.5 Label
Label dùng để hiển thị tên nhớ.
6. Timer1
21.
Hình 2.1.6 Timer
Timer1 dùng để hiển thị thời gian thực.
7. SeriaPort1
Hình 2.1.7 SeriaPort
SeriaPoart1 dùng dể kết nối với thiết bị ngoài.
8. Bindingsource1
Hình 2.1.8 BindingSource
Bindingsource1 dùng kết nối CSDL SQL.
9. ComboBox
Hình 2.1.9 ComboBox
Combobox dùng để hiển thị cổng kết nối tốc độ kết nối.
2.4.1.2 Xây dựng form
22. Thiết kế Form hiển thị dữ liệu
Bước 1: Khởi động Visual Studio 2010, thiết lập New Projec và chọn lập trình
Windows Forms Application đặt tên theo định dạng như Hình 2.1.10
Name ( đặt tên cho project), Location (Đặt tên folder chứa Projec là tên lớp)
Solution name (Đặt giống với Name ở trên)
Hình 2.1.10 Giao diện lập trình Windows Forms Application
Bước 2: Tương ứng với 3 column trong CSDL, ta kéo thả các toolBox, label và
textbox rồi đặt tên tương ứng:
Hình 2.1.11 Kéo thả label và textbox
Bảng 1: Đặt tên cho các Tools Box
Toolbox Text Name
23. Label
ID
Temperature
Date Time
TextBox
getID
getTEMP
getDATETIME
Button View Data BTViewData
Bước 3: Double click vào Button View Data để sinh ra sự kiện
BTViewData_Click(object sender, EventArgs e)
Bước 4: Để hiển thị hiển thị dữ liệu có trên CSDL, ta kéo thả dataGridView
Hình 2.1.12 Kéo thả và chỉnh vị trí dataGridView
2.4.1.3 Giới thiệu hệ quản trị CSDL SQL Server
A,Giới thiệu
Cơ sở dữ liệu (database) là một tập hợp của dữ liệu được tổ chức sao cho dễ dàng
truy cập cũng như cập nhật. Một cơ sở dữ liệu được tổ chức thành các bảng, các
bảng lưu trữ thông tin theo cấu trúc của nó.
24.
Hình 2.2.1 Phần mềm SQL Server 2008
B,Các bước xây dựng CSDL
Bước 1: Khởi động SQL Server Management Studio. Nhấn vào Connect.
Hình 2.2.2 SQL Server Management Studio
Bước 2: Tạo cơ sở dữ liệu mới
Tại mục Object Explorer, clickchuột phải vào Databases chọn New Database
như Hình 2.2.3
25.
Hình 2.2.3 Tạo CSDL mới
Bước 3: Tạo New Table
Hình 2.2.4 Tạo Table và các kiểu dữ liệu
Tại mục Databases, chọn CSDL vừa tạo ở bước 2 và click chuột phải vào Tables
chọn New Table (Hình 2.2.4). Ở table mới được tạo tiến hành nhập Column
Name, Data Type (kiểu dữ liệu) và Allow Nulls (cho phép KHÔNG NHẬP DỮ
LIỆU). Sau khi đã nhập tên và kiểu dữ liệu, học viên trỏ chuột phải vào hàng dữ
liệu chính và chọn Set Primary key.
26.
a, b,
Hình 2.2.5 Thiết lập kiểu dữ liệu chính và lưu Table
Bước 4: Nhập dữ liệu
Click chuột phải vào file dbo.ValueTemp chọn Edit Top 200 Rows (hoặc Edit
All Rows) và tiến hành nhập dữ liệu.
Hình 2.2.6 Nhập dữ liệu
2.4.2. Phần mềm hỗ trợ Arduino IDE:
Chúng ta có thể hiểu arduino ide là một trình soạn thảo giúp bạn có để viết
code và nạp vào linh kiện arduino của mình.
Bản thân arduino là một một nền tảng mã nguồn mở bao gồm phần cứng
và phần mềm. Phần cứng bao gồm các board mạch được thiết kế sẵn với các
cảm biến, linh kiện (hiện nay đã có đến hơn 300000 bo mạch khác nhau được
thương mại). Còn phần mềm của arduino giúp bạn có thể sử dụng các cảm
biến, linh kiện ấy của arduino một các linh hoạt tùy thuộc vào mục đích sử
dụng.
27. Ta có thể thấy, Arduino IDE có vai trò quan trọng để nạp các chương trình
code vào trong linh kiện arduino. Hiểu đơn giản thì phần mềm này như phần
dây dẫn điện để đưa điện năng đến với động cơ quạt từ đó quạt mới hoạt động
được.
Arduino ide được viết bằng ngôn ngữ lập trình Java là ứng dụng đa nền
tảng (cross-platform). Ngôn ngữ code cho các chương trình của arduino là
bằng C hoặc C++. Bản thân arduino ide đã được tích hợp một thư viện phầm
mềm thường gọi là "wiring", từ các chương trìn "wiring" gốc sẽ giúp bạn thực
hiện thao tác code dễ dàng hơn. Một chương trình chạy trong arduino được
gọi là một sketch, chương trình được định dạng dưới dạng .ino .
Cài đặt phần mềm Arduino IDE:
Bước 1: Download trực tiếp phần mềm Arduino IDE hoặc Truy cập vào
trang http://arduino.cc/en/Main/Software và tải về chương trình Arduino IDE
mới nhất, phù hợp với hệ điều hành của máy mình bao gồm Windown, Mac OS
hay Linux. Với Windown có hai bản Cài đặt (.exe) và bản Zip (chỉ cần giải nén
và chạy). Tuy nhiên các bạn nên tải bản cài đặt (.exe) để trình cài đặt tự động
cài đặt cả driver cho các board mạch arduino. Phần khoanh đỏ:
Bước 2: Chọn JUST DOWNLOAD (free download)
28.
Bước 3: Cài đặt driver để nhận board Arduino
Mặc định khi cài đặt Arduino IDE phần mềm sẽ cài luôn các driver để máy
tính có thể nhận được các board mạch Arduino. Tuy nhiên một số trường hợp
máy tính không nhận được board mạch Arduino, khi đó các bạn làm như sau:
Cắm lại cáp USB nối giữa máy tính và Board Arduino, khi đó hiện ra bảng
thông báo.
Bây giờ bạn click vào Start Menu chọn Control Panel kế đến chúng ta
chọn System and Security, click System và sau đó chọn Device Manager.
29.
Chúng ta sẽ thấy cảnh báo màu vàng thiếu driver trên Arduino. Click chuột
phải trên Arduino Uno icon sau đó chọn “Update Driver Software”.
Chọn “Browse my computer for driver software”
Chọn đường dẫn tới folder “driver” nơi mà phần mềm Arduino được lưu
trữ.
30.
2..5.Sơ đồ nguyên lý hệ thống
+Sơ đồ nguyên lý Arduino với Lcd:Chức năng để hiển thị kinh độ vĩ độ nên màn
hình lcd.
+Sơ đồ nguyên lý Arduino với GPS:Chứng năng để thu thập giá trị kinh độ vĩ đỗ để
gửi nên máy tính
31. +Sơ đồ nguyên lý của cả hệ thống:
2.7.Sơ đồ mạch in
2.8.Lưu đồ thuật toán
2.8.Lưu đồ thuật toán
+Thuật toán phần cứng
Bắt Đầu
Kết nối serialport
Hiển thị nên LCD
Lấy giá trị từ
GPS
32. +Thuật toán hệ thống
Bắt Đầu
Kết nối phần cứng
Nhận GT từ phần cứng
Hiển thị nên tesxbok
Kếp Thúc
Hiển thị nên
datagridviw
Lưu giá trị về sql