Đề tài này sẽ ứng dụng KIT thực hành Discovery STM32F746NGHx với lõi là vi điều khiển ARM Cortex-M7 để lập trình điều khiển đầu in nhiệt Fujitsu FTP – 628MCL103 và màn hình cảm
Trang 1KHOA ĐIỆN – ĐIỆN TỬ
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH
Tp Hồ Chí Minh – 01/2018
Trang 2KHOA ĐIỆN – ĐIỆN TỬ
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH
GVHD: ThS Phan Vân Hoàn
SVTH: Cao Nhữ Ân 16341002 Lưu Quốc Tuấn 16341026
Tp Hồ Chí Minh – 01/2018
Trang 3Họ tên sinh viên: Cao Nhữ Ân MSSV: 16341002
Lưu Quốc Tuấn MSSV: 16341026 Chuyên ngành: CNKT Điện Tử Truyền Thông Mã ngành: 41
Hệ đào tạo: Đại học chính quy Mã hệ: 3
I TÊN ĐỀ TÀI: THIẾT KẾ VÀ THI CÔNG MÁY IN NHIỆT CẦM TAY
II NHIỆM VỤ
1 Các số liệu ban đầu:
Nhóm tiến hành việc khảo sát các loại vi điều khiển, lựa chọn màn hình cảm ứng, đầu in nhiệt và giấy in
Tiến hành tìm hiểu và thu thập các số liệu từ các trang mạng và sách về lập trình vi điều khiển ARM Tham khảo các máy in nhiệt để xây dựng lên mô hình điều khiển
Tìm hiểu các bộ cắt giấy để lựa chọn và tham khảo cách thức hoạt động phù hợp cho mô hình
2 Nội dung thực hiện:
NỘI DUNG 1: Nghiên cứu tài liệu về đầu in nhiệt Fujitsu-FTP-628MCL10
NỘI DUNG 2: Dựa trên các dữ liệu thu thập được, tiến hành lựa chọn giải pháp thiết kế và thi công mô hình phần mạch điều khiển
NỘI DUNG 3: Thiết kế hệ thống điều khiển dao cắt giấy in
NỘI DUNG 4: Thiết kế lưu đồ giải thuật và viết chương trình điều khiển cho
Vi điều khiển, thiết kế giao diện màn hình chính soạn thảo văn bản
NỘI DUNG 5: Thử nghiệm và điều chỉnh phần cứng cũng như chương trình để mô hình được tối ưu Đánh giá các thông số của mô hình so với thông số thực tế
NỘI DUNG 6: Viết báo cáo thực hiện
Trang 4IV NGÀY HOÀN THÀNH NHIỆM VỤ: 15/01/2018
V HỌ VÀ TÊN CÁN BỘ HƯỚNG DẪN: ThS Phan Vân Hoàn
Trang 5Tên đề tài: THIẾT KẾ VÀ THI CÔNG MÁY IN NHIỆT CẦM TAY
Trang 6Nhóm xin cam đoan đề tài này là do nhóm tự thực hiện dựa vào một số tài liệu và
đề tài trước đó Các số liệu trong đề tài này được nhóm thu thập từ các tài liệu hướng dẫn và tham khảo một số đề tài liên quan từ đó nhóm đã nghiên cứu và phát triển để thực hiện đề tài này Không sao chép từ tài liệu hay công trình đã có trước đó
TP Hồ Chí Minh, ngày 15 tháng 01 năm 2018
Sinh viên thực hiện 1 Sinh viên thực hiện 2
CAO NHỮ ÂN LƯU QUỐC TUẤN
Trang 7
vi
Sau quá trình học tập ở trường cùng với những kiến thức được các Thầy Cô giảng dạy, những kinh nghiệm được học hỏi, trong quá trình thực hiện đồ án nhóm đã được các Thầy Cô tạo điều kiện tốt nhất để thực hiện đồ án này Nhóm xin gửi lời cảm
ơn tới tất cả các Thầy, Cô trong Trường Đại Học Sư Phạm Kỹ Thuật TPHCM nói chung, đặc biệt các giảng viên Khoa Điện - Điện Tử nói riêng đã giảng dạy và cung cấp cho Nhóm có những kiến thức quý báu, tạo tiền đề quan trong cho Nhóm có thể thực hiện được đồ án này
Nhóm xin gửi lời cảm ơn chân thành và sâu sắc tới Thầy Phan Vân Hoàn đã trực tiếp hướng dẫn tận tình cho nhóm trong suốt quá trình làm đồ án, cảm ơn Thầy đã giành thời gian quý báu để hướng dẫn cho nhóm, hỗ trợ các thiết bị cũng như đưa ra hướng đi giải quyết đúng cho nhóm mỗi khi gặp khó khăn
Bên cạnh đó nhóm xin cảm ơn tập thể lớp 163410A đã cùng đồng hành với nhóm trong suốt quá trình học tập và thực hiện đồ án Các bạn đã cùng nhau giúp đỡ, chia sẻ kinh nghiệm và tạo thêm động lực để nhóm có thể hoàn thành được đồ án này
Nhóm cũng xin chân thành cảm ơn bố mẹ, người thân và bạn bè Những người đã giúp đỡ về mặt tinh thần cũng như vật chất rất nhiều để có thể hoàn thành tốt đồ án này Xin chân thành cảm ơn mọi người
Trong quá trình nghiên cứu và thực hiện đồ án, vì thời gian và trình độ có giới hạn nên không tránh khỏi những thiếu sót Vì vậy, nhóm hy vọng sẽ nhận được những
ý kiến đóng góp quý báu từ Thầy Cô, bạn bè và những người quan tâm để đề tài được hoàn thiện hơn
Xin chân thành cảm ơn
Sinh viên thực hiện 1 Sinh viên thực hiện 2
CAO NHỮ ÂN LƯU QUỐC TUẤN
Trang 8Trang bìa i
Nhiệm vụ đồ án ii
Lịch trình iv
Cam đoan v
Lời cảm ơn vi
Mục lục vii
Liệt kê hình vẽ x
Liệt kê bảng vẽ xii
Tóm tắt xiii
Chương 1 TỔNG QUAN 1
1.1 ĐẶT VẤN ĐỀ 1
1.2 MỤC TIÊU 2
1.3 NỘI DUNG NGHIÊN CỨU 2
1.4 GIỚI HẠN 3
1.5 BỐ CỤC 3
Chương 2 CƠ SỞ LÝ THUYẾT 5
2.1 QUY TRÌNH IN NHIỆT 5
2.1.1 Giới thiệu về in nhiệt 5
2.1.2 Mô tả kỹ thuật in nhiệt trực tiếp 5
2.1.3 Tìm hiểu thông số của một số loại giấy in nhiệt trên thị trường 6
2.2 GIỚI THIỆU PHẦN CỨNG 6
2.2.1 Cảm biến giấy 7
2.2.2 Động cơ bước 8
2.2.3 Giới thiệu về vi điều khiển ARM 9
a Tổng quan về ARM 9
b Tổng quát về ARM Cortex - M7 STM32F746NGHx 12
2.2.4 Giới thiệu về đầu in nhiệt Fujitsu FTP – 628MCL103 15
a Tổng quan về đầu in nhiệt 15
b Tổng quan về đầu in nhiệt Fujitsu 16
c Thông số kỹ thuật đầu in nhiệt 16
Trang 9viii
a Tổng quan về thời gian thực 19
b Tổ chức bộ nhớ IC DS1307: 20
2.3 GIỚI THIỆU PHẦN MỀM 22
2.3.1 Giới thiệu thư viện đồ họa StellarisWare Grlib 22
a Tổng quan về StellarisWare Grlib 22
b Cấu trúc dạng cây Widget của Grlib 22
c Các bước vẽ cây Widget của Grlib 24
d Các bước thực thi cây Widget của Grlib 25
2.3.2 Giới thiệu về chuẩn giao tiếp SPI 26
a Định nghĩa 26
b Cách giao tiếp giữa đầu in với vi điều khiển 29
c Cách đầu in xuất dữ liệu ra các cụm in 30
2.3.3 Giới thiệu về chuẩn giao tiếp I2C 30
a Định nghĩa 30
b Cách giao tiếp giữa Module DS1307 với vi điều khiển 32
Chương 3 TÍNH TOÁN VÀ THIẾT KẾ 34
3.1 GIỚI THIỆU 34
3.2 TÍNH TOÁN VÀ THIẾT KẾ HỆ THỐNG 34
3.2.1 Thiết kế sơ đồ khối hệ thống 34
3.2.2 Tính toán và thiết kế mạch 35
a Thiết kế khối xử lý trung tâm 35
b Thiết kế khối cảm biến 35
c Thiết kế khối điều khiển 37
d Thiết kế khối cơ cấu chấp hành 40
e Thiết kế khối nguồn 41
Chương 4 THI CÔNG HỆ THỐNG 44
4.1 GIỚI THIỆU 44
4.2 THI CÔNG HỆ THỐNG 44
4.2.1 Thi công bo mạch 44
4.2.2 Lắp ráp và kiểm tra 47
4.3 ĐÓNG GÓI VÀ THI CÔNG MÔ HÌNH 48
4.3.1 Đóng gói bộ điều khiển 48
Trang 104.4 LẬP TRÌNH HỆ THỐNG 50
4.4.1 Lưu đồ giải thuật 50
4.4.2 Phần mềm lập trình cho Vi điều khiển ARM 51
4.4.3 Phần mềm tạo Project cho ARM STM32CubeMX 52
4.5 LẬP TRÌNH MÔ PHỎNG 55
4.5.1 Lưu đồ chương trình máy in 55
4.5.2 Lưu đồ chương trình đồng hồ 58
4.5.3 Lưu đồ chương trình khóa màn hình 59
4.6 VIẾT TÀI LIỆU HƯỚNG DẪN SỬ DỤNG, THAO TÁC 60
4.6.1 Viết tài liệu hướng dẫn sử dụng 60
4.6.2 Quy trình thao tác 61
Chương 5 KẾT QUẢ_NHẬN XÉT_ĐÁNH GIÁ 65
5.1 KẾT QUẢ MÔ HÌNH PHẦN CỨNG 65
5.2 KẾT QUẢ GIAO DIỆN SOẠN THẢO VĂN BẢN 66
5.3 ĐÁNH GIÁ VÀ NHẬN XÉT KẾT QUẢ 70
Chương 6 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 71
6.1 KẾT LUẬN 71
6.2 HƯỚNG PHÁT TRIỂN 71
TÀI LIỆU THAM KHẢO 73
PHỤ LỤC 74
Trang 11x
Hình Trang
Hình 2.1: Hình ảnh minh họa quá trình hoạt động của cảm biến 7
Hình 2.2: Giản đồ xung kích cho động cơ bước 9
Hình 2.3: Phân khúc chip Cortex của ARM trong thị trường nhúng 10
Hình 2.4: Kiến trúc của vi xử lý ARM Cortex-M7 12
Hình 2.5: KIT Discovery STM32F7 14
Hình 2.6: Đầu in nhiệt Fujitsu-FPT-628MCL103 15
Hình 2.7: Cấu trúc đầu in nhiệt 16
Hình 2.8: Sơ đồ chân và hình ảnh của DS13B07 19
Hình 2.9: Sơ đồ kết nối DS13B07 20
Hình 2.10: Tổ chức bộ nhớ và thanh ghi của DS1307 20
Hình 2.11: Cấu trúc cây widget 23
Hình 2.12: Ví dụ về cấu trúc cây widget 24
Hình 2.13: Các bước vẽ cấu trúc cây widget 25
Hình 2.14: Các bước thực thi cấu trúc cây widget 26
Hình 2.15: Giao tiếp SPI giữa Master và Slave 27
Hình 2.16: Truyền dữ liệu SPI 28
Hình 2.17: Truyền dữ liệu giữa đầu in và vi điều khiển 29
Hình 2.18: Xuất dữ liệu ra đầu in 30
Hình 2.19: Truyền dữ liệu I2C 31
Hình 2.20: Quá trình thiết bị chủ ghi dữ liệu vào thiết bị tớ 32
Hình 2.21: Quá trình thiết bị chủ đọc dữ liệu từ thiết bị tớ 33
Hình 3.1: Sơ đồ khối của hệ thống 34
Hình 3.2: Biểu đồ cường độ sáng và điện áp 36
Hình 3.3: Sơ đồ kết nối cảm biến với Op-Amp 36
Hình 3.4: Sơ đồ nguyên lý mạch điều khiển 39
Hình 3.5: Mạch giảm áp dùng LM2576ADJ 41
Hình 3.6: Cấu tạo IC555 41
Hình 3.7: Sơ đồ nguyên lý mạch sạc Pin 42
Hình 4.1: Mạch in lớp trên 44
Hình 4.2: Mạch in lớp dưới 45
Hình 4.3: PCB 3D lớp trên 45
Hình 4.4: PCB 3D lớp dưới 46
Hình 4.5: Hình ảnh khối nguồn và điều khiển 48
Hình 4.6: Mô hình máy in nhiệt cầm tay nhìn từ phía trên. 48
Hình 4.7: Tầng dưới của mô hình 49
Hình 4.8: Mô hình hệ thống hoàn chỉnh 49
Hình 4.9: Lưu đồ điều khiển chương trình chính 50
Hình 4.10: Giao diện trình biên dịch Keil uVision5 51
Hình 4.11: Giao diện STM32CubeMX 53
Trang 12Hình 4.13: Lưu đồ điều khiển chương trình con máy in 55
Hình 4.14: Lưu đồ chương trình con nhập dữ liệu 56
Hình 4.15: Lưu đồ chương trình con điều khiển in 57
Hình 4.16: Lưu đồ chương trình con điều khiển đồng hồ 58
Hình 4.17: Lưu đồ chương trình khóa màn hình 59
Hình 4.18 Giao diện màn hình chính 61
Hình 4.19 :Giao diện SETTING 62
Hình 4.20: Giao diện PRINTER 62
Hình 4.21: Nhập văn bản thông thường 63
Hình 4.22:Nhập bảng bằng các chọn từng ô từ màn hình 63
Hình 4.23: Hệ thống bắt đầu in dữ liệu 64
Hình 4.24: Bộ phận cắt giấy cắt rời giấy in khỏi cuộn giấy 64
Hình 5.1: Hình ảnh thực tế mô hình 65
Hình 5.2: Khối thiết bị điều khiển 66
Hình 5.3: Giao diện chính 66
Hình 5.4: Giao diện SETTING 67
Hình 5.5: Giao diện PRINTER 67
Hình 5.6: Quá trình thao tác chọn logo 68
Hình 5.7: Quá trình thao tác soạn thảo văn bản 68
Hình 5.8: Kết quả sau khi in 69
Hình 5.9: Kết quả in thử nghiệm trong quá trình thiết kế 69
Trang 13
xii
Bảng Trang
Bảng 2.1: Thông số cảm biến quang trong đầu in nhiệt 8
Bảng 2.2: Thông số động cơ bước trong đầu in nhiệt 9
Bảng 2.3: Thông số kỹ thuật đầu in nhiệt 16
Bảng 2.4: Sơ đồ chân kết nối vi điều khiển 18
Bảng 3.1: Các địa chỉ kết nối 37
Bảng 4.1: Danh sách các linh kiện 46
Trang 14Sau một thời gian tìm hiểu và nghiên cứu về kỹ thuật in nhiệt trực tiếp, cùng với việc nắm bắt xu thế in ấn hóa đơn trực tiếp mà không cần có sự hỗ trợ của máy vi tính trong việc soạn thảo đang được ưa chuộng hiện nay thì nhóm thực hiện đề tài đã nghiên cứu được làm thế nào để điều khiển được các thông số cần in sao cho phù hợp nhất với văn bản và các loại hóa đơn bán hàng Từ các kiến thức được học ở trường và kinh nghiệm từ thực tiễn cộng với sự giúp đỡ của giáo viên hướng dẫn và các thầy cô bạn bè thì nhóm đã thực hiện được đề tài này
Đề tài được thực hiện thông qua các giai đoạn rõ ràng, từ việc thu thập các thông
số thực tế của các loại hóa đơn dựa vào đó để thiết kế mô hình cơ khí phù hợp để có thể điều khiển các thông số của hệ thống một cách chính xác nhất
Sau khi đã xây dựng mô hình cơ khí, trên cở sở các thông số kỹ thuật của các loại văn bản nhóm đã thiết kế được mô hình để điều khiển các thông số theo yêu cầu Với phương pháp điều khiển đầu in nhiệt và soạn thảo văn bản trực tiếp trên màn hình cảm ứng để tạo ra các loại hóa đơn, các văn bản cần in phù hợp với nhu cầu của người tiêu dùng
Mô hình đã điều khiển được các thông số một cách tương đối chính xác, cũng như giám sát được các thông số này thông qua màn hình hiển thị
Trang 15Chương 1 TỔNG QUAN
1.1 ĐẶT VẤN ĐỀ
Công nghệ in nhiệt là không sử dụng mực in để in ấn, mà sử dụng giấy in nhiệt
để in Trong giấy này có chất nhạy nhiệt, chỉ cần có nhiệt độ tác động lên nó sẽ chuyển thành màu đen Vì thế, khi đầu in nhiệt của máy in nóng lên tác động vào giấy in nhiệt
nó sẽ hiển thị những thông tin cần in
Ưu điểm của công nghệ in nhiệt
1 Tiết kiệm chi phí:
Những máy in hóa đơn này sử dụng giấy in nhiệt Khi có tác dụng của nhiệt từ đầu in của máy in hóa đơn nhiệt sẽ hiển thị những thông tin cần in, mà không cần phải
sử dụng mực in Vì trong thành phần của giấy in nhiệt có cấu tạo hóa chất, mà hóa chất này khi gặp nhiệt độ cao sẽ chuyển thành màu đen Vì vậy bạn không cần thiết phải sử dụng mực in
Điều này giúp bạn tiết kiệm một khoản chi phí khi mua và giảm bớt trục trặc do mực in gây ra, như những máy in thông thường ở văn phòng
2 Tốc độ in nhanh chóng
Tốc độ in nhanh chóng là ưu điểm nổi bật của máy in hóa đơn in nhiệt
Vì lẽ đó, máy in hóa đơn nhiệt hay được sử dụng cho các cửa hàng, siêu thị Chúng có thể in liền với công suất lớn, do vậy phục vụ được nhu cầu thanh toán của nhiều người, tạo sự hài lòng cho khách đến mua hàng
Hãy đầu tư cho cửa hàng của bạn một máy in hóa đơn nhiệt vì nó có tốc độ in lớn giúp bạn tiết kiệm được thời gian và chi phí
3 Không gây tiếng ồn
Đối với máy in thông thường trong quá trình in ấn sẽ tạo ra tiếng ồn Nhưng với máy in hóa đơn nhiệt thì tiếng ồn sẽ được giảm đi đáng kể, không gây sự khó chịu cho người khác
4 Tiết kiệm diện tích
Đa số máy in hóa đơn nhiệt có thiết kế rất nhỏ gọn, thích hợp với môi trường bán lẻ, hệ thống siêu thị, nhà hàng Bên cạnh đó, tính tiện ích này còn làm tăng sự
Trang 16chuyên nghiệp trong hoạt động kinh doanh và tạo được sự thiện cảm từ phía khách hàng
Với máy in hóa đơn in nhiệt, cửa hàng và siêu thị của bạn sẽ được tăng thêm sự chuyên nghiệp và tạo được sự thiện cảm nhiều hơn từ phía khách hàng
Tuy máy in nhiệt có nhiều ưu điểm như đã nêu ở trên nhưng nhóm nhận thấy rằng mỗi một máy in nhiệt đều cần phải có một máy tính để nhập dữ liệu hàng hóa và truy xuất thông tin khách hàng
Với mong muốn giải quyết vấn đề trên Nhóm thực hiện đề tài quyết định áp
dụng những kiến thức đã học và chọn hướng nghiên cứu: “THIẾT KẾ VÀ THI
CÔNG MÁY IN NHIỆT CẦM TAY”, khi mà nhân viên bán hàng chỉ cần nhập dữ
liệu hàng hóa và thông tin khách hàng là có thể in trực tiếp mà không cần đến sự giúp đỡ của máy tính
Đề tài này sẽ ứng dụng KIT thực hành Discovery STM32F746NGHx với lõi là
vi điều khiển ARM Cortex-M7 để lập trình điều khiển đầu in nhiệt Fujitsu FTP – 628MCL103 và màn hình cảm ứng trong việc soạn thảo văn bản cần thiết để in Những dữ liệu soạn thảo được hiển thị trực tiếp trên màn hình giúp người sử dụng dễ dàng quan sát và kiểm soát được thông tin cần in ấn
1.2 MỤC TIÊU
- Tìm hiểu đầu in nhiệt Fujitsu-FTP-628MCL10
- Tìm hiểu các ngoại vi KIT thực hành Discovery STM32F746NGHx
- Xây dựng mô hình máy in cầm tay
- Xây dựng chương trình để điều khiển mô hình
1.3 NỘI DUNG NGHIÊN CỨU
NỘI DUNG 1:Nghiên cứu tài liệu về đầu in nhiệt 628MCL10
Fujitsu-FTP- NỘI DUNG 2: Dựa trên các dữ liệu thu thập được, tiến hành lựa chọn giải
pháp thiết kế và thi công mô hình phần mạch điều khiển
NỘI DUNG 3: Thiết kế hệ thống điều khiển dao cắt giấy in
Trang 17 NỘI DUNG 4: Thiết kế lưu đồ giải thuật và viết chương trình điều khiển
cho Vi điều khiển, thiết kế giao diện màn hình chính soạn thảo văn bản
NỘI DUNG 5: Thử nghiệm và điều chỉnh phần cứng cũng như chương
trình để mô hình được tối ưu Đánh giá các thông số của mô hình so với thực tế
NỘI DUNG 6: Viết báo cáo thực hiện
1.4 GIỚI HẠN
Kích thước của mô hình máy in nhiệt cầm tay: 190x90x70 mm
Sử dụng đầu in nhiệt Fujitsu-FTP-628MCL103
Sử dụng vi điều khiển ARM STM32F746NGHx
Sử dụng màn hình LCD TFT 4.3 INCH để soạn thảo và hiển thị nội dung in
Điều khiển cơ cấu dao cắt giấy in sau khi in hoàn tất
1.5 BỐ CỤC
Chương 1: Tổng Quan
Chương này trình bày tổng quan về đề tài, xu hướng của công nghệ in nhiệt, các
ưu điểm của việc in nhiệt, hướng nghiên cứu của nhóm thực hiện đề tài
Chương 2: Cơ Sở Lý Thuyết
Chương này trình bày cơ sở lý thuyết về quy trình in nhiệt và phương pháp in nhiệt trực tiếp
Trình bày cơ sở lý thuyết về các thiết bị sử dụng trong mô hình như: Vi điểu khiển
arm, đầu in nhiệt, thư viện thiết kế đồ họa …
Chương 3: Tính Toán và Thiết Kế
Xây dựng mô hình phần cứng để giao tiếp giữa vi điều khiển, đầu in nhiệt và màn hình hiển thị thông tin dữ liệu cần in ấn
Thiết kế sơ đồ nguyên lý để điều khiển và sạc pin cho toàn mô hình hoạt động
Chương 4: Thi Công Hệ Thống
Trong chương này chúng ta thực hiện thi công các board mạch, các phần điều khiển và mạch động lực cũng như phần cứng mô hình hệ thống đề tài
Trang 18Sau đó lắp ráp thành một hệ thống mô hình hoàn chỉnh để từ đó xây dựng nên lưu
đồ giải thuật để viết chương trình điều khiển cho hệ thống
Sau khi có được mô hình và chương trình điều khiển cho hệ thống thì sẽ thực hiện các bước để mô hình được hoạt động tốt Sau đó là các bước để hướng dẫn các thao tác cho việc hoạt động mô hình hoàn thiện hơn
Chương 5: Kết Quả, Nhận Xét và Đánh Giá
Nêu rõ được trong quá trình đồ án đã thu được những kết quả, tìm hiểu và thu thập được nhiều kiến thức cũng như tích luỹ thêm kinh nghiệm để có thể bước ra môi trường học tập để thích nghi với môi trường làm việc của doanh nghiệp Tiến hành nhận xét kết quả trong quá trình thực hiện đồ án giữa những gì thực hiện thực tế so với kết quả trong lý thuyết
Chương 6: Kết Luận và Hướng Phát Triển
Kết luận về những gì đạt được trong quá trình thực hiện đồ án Đưa ra thêm những hướng phát triển khả thi cho đề tài để có thể ứng dụng tốt trong thực tế
Trang 19Chương 2 CƠ SỞ LÝ THUYẾT
2.1 QUY TRÌNH IN NHIỆT
2.1.1 Giới thiệu về in nhiệt
Phân loại in nhiệt (Thermal print):
- In nhiệt trực tiếp: Ở phương pháp này giấy in và đầu in tiếp xúc trực tiếp Không sử dụng bằng mực giống như các máy in hóa đơn sử dụng đầu in kim Công nghệ in kim với tốc độ in chậm hơn rất nhiều so với việc in nhiệt trực tiếp Chúng đã dần trở nên lỗi thời Trong giấy này có chất nhạy nhiệt, chỉ cần có nhiệt độ tác động lên nó sẽ chuyển thành màu đen Vì thế, khi đầu in nhiệt của máy in nóng lên tác động vào giấy in nhiệt nó sẽ hiển thị những thông tin cần in In nhiệt không cần sử dụng mực in, do đó chi phí giảm mang lại hiệu quả kinh tế cao Đầu in nhiệt rất bền và có thể in liên tục trong một thời gian dài
- In chuyển nhiệt: Một trong những phương pháp in ấn hiện đại đang được sử dụng phổ biến rộng rãi trên thị trường In chuyển nhiệt sử dụng nhiệt độ cao, và loại mực in đặc biệt (còn gọi là mực in chuyển nhiệt) để in hình ảnh lên giấy in nhiệt rồi sau đó ép nhiệt lên các vật liệu cần in Phương pháp này đặc biệt phù hợp để in lên các sản phẩm áo thun có họa tiết phức tạp, nhiều màu sắc Bên cạnh đó kỹ thuật in chuyển nhiệt cũng được ứng dụng khá phổ biến trong các ngành in ấn quảng cáo, tạo mẫu trong các công ty may mặc, các công ty in quà tặng In hình ảnh, logo lên ly sứ, dĩa sứ, in áo thun, in lên pha lê, in lên thủy tinh, in lên gạch men, gỗ, …
2.1.2 Mô tả kỹ thuật in nhiệt trực tiếp
Đầu in nhiệt có tác dụng tác động vào giấy in nhiệt để in ra những thông tin cần
in Mỗi một đầu in nhiệt có một trục lăn Nó được làm bằng cao su có chức năng lăn giấy và ép để cho giấy tác dụng với đầu in nhiệt của máy in nhiệt Khi giấy in nhiệt đến giữa trục lăn và các đầu in Đầu in nhiệt lúc này sẽ tạo ra một lượng nhiệt nhất định tác dụng lên bề mặt của giấy in
Trang 20Ưu điểm kỹ thuật in nhiệt trực tiếp:
In tốc độ cao
Chính xác
Bảo mật
Gọn nhẹ
Không cần mực để in
Không tích lũy chất độc trong cơ thể do tiếp xúc trực tiếp với mực
in công nghiệp, không gây ô nhiễm môi trường
2.1.3 Tìm hiểu thông số của một số loại giấy in nhiệt trên thị trường
Dựa vào khổ giấy in nhiệt thì người ta phân làm 3 loại chính là giấy in nhiệt khổ K80, giấy in nhiệt khổ K57 và giấy in nhiệt khổ K75 Tiếp theo từ khổ giấy in nhiệt này lại phân loại tiếp theo theo đường kính cuộn giấy Do nhóm sử dụng giấy loại K57 nên chỉ tìm hiểu về loại giấy này
Các loại giấy in nhiệt K57 theo đường kính cuộn:
- Giấy in nhiệt K57 đường kính 45mm Giá: 5.500 đ/cuộn 1 thùng 100 cuộn: 550.000 đ/thùng Loại này thông dụng nhất trên thị trường được sử dụng nhiều cho cửa hàng, siêu thị, quán ăn
- Giấy in nhiệt K57 đường kính 38mm Giá: 5.000 đ/cuộn 1 thùng 140 cuộn: 700.000 đ/thùng Chuyên dùng cho các máy quẹt thẻ
- Giấy in nhiệt K57 đường kính 30mm Giá: 4.000 đ/cuộn 1 thùng: 250 cuộn Giá: 1.000.000 đ/thùng Chuyên dùng cho máy pos mini
- Giấy in nhiệt K57 đường kính 80mm Giá: 18.000 đ/cuộn 1 thùng 50 cuộn Chuyên dùng làm giấy in nhật ký ATM K57 dùng cho máy Diebold - Loại xuyên tường
2.2 GIỚI THIỆU PHẦN CỨNG
Trong đề tài này sẽ thực hiện thi công mô hình máy in nhiệt cầm tay Trước tiên nhóm sẽ xây dựng sơ đồ nguyên lý kết nối giữa đầu in nhiệt với KIT Discovery, mạch nguyên lý gồm có: khối sạc pin, khối điều khiển động cơ cuộn giấy vào đầu in nhiệt, khối cảm biến giấy, khối cắt giấy, khối ổn áp nguồn, khối đèn báo
Trang 21Về phần điều khiển sẽ sử dụng KIT Discovery lập trình để thực hiện việc điều khiển mô hình, cùng với các thiết bị như IC cầu H L293D điều khiển động cơ bước, cảm biến giấy, động cơ servo cắt giấy, truyền dữ liệu cho đầu in nhiệt, màn hình hiển thị thông tin cần in ấn
Thiết bị đầu vào: Nút nhấn, màn cảm ứng
Thiết bị đầu ra: Đầu in nhiệt, dao cắt giấy, màn hình hiển thị
Thiết bị điều khiển trung tâm: KIT Discovery STM32F746NGHx lõi
in có sẵn trên giấy
Nguyên lý hoạt động của cảm biến quang dựa vào truyền ánh sáng từ bộ phát tới vật thể Vật này sẽ phản xạ lại một phần ánh sáng (phản xạ khuếch tán) ngược trở lại
bộ thu của cảm biến, kích hoạt tín hiệu ra
Lượng ánh sáng nhận về sẽ được chuyển tỉ lệ thành tín hiệu điện áp (hoặc dòng điện) và sau đó được khuếch đại
Cảm biến xuất tín hiệu ra báo có vật nếu mức điện áp lớn hơn mức ngưỡng
Hình 2.1: Hình ảnh minh họa quá trình hoạt động của cảm biến
Trang 22Bảng 2.1: Thông số cảm biến quang trong đầu in nhiệt
2.2.2 Động cơ bước
Động cơ bước được chia làm hai loại: nam châm vĩnh cửu và biến từ trở (cũng có loại động cơ hỗn hợp nhưng nó không khác gì với loại nam châm vĩnh cửu)
Động cơ nam châm vĩnh cửu dường như có các nấc khi bạn dùng tay xoay nhẹ rotor của chúng, trong khi động cơ biến từ trở thì dường như xoay tự do
Với một bộ điều khiển, hầu hết các loại động cơ nam châm vĩnh cửu và hỗn hợp đều có thể chạy ở chế độ nửa bước, và một vài bộ điều khiển có thể điều khiển các phân bước nhỏ hơn hay còn gọi là vi bước
Đối với cả động cơ nam châm vĩnh cửu hoặc động cơ biến từ trở, nếu chỉ một mấu của động cơ được kích, rotor (ở không tải) sẽ nhảy đến một góc cố định và sau đó giữ nguyên ở góc đó cho đến khi moment xoắn vượt qua giá trị moment xoắn giữ ( hold torque) của động cơ
Điện áp giữa cực
Điện áp giữa cực
Trang 23Bảng 2.2: Thông số động cơ bước trong đầu in nhiệt
Cực Lưỡng cực(bi-polar)
Trở kháng cuộn
Điện áp DC 4,2~8,5V Điều khiển động cơ bằng cách cấp xung kích cho từng cặp cực như mô tả ở hình bên dưới:
Hình 2.2: Giản đồ xung kích cho động cơ bước
2.2.3 Giới thiệu về vi điều khiển ARM
a Tổng quan về ARM
Cấu trúc ARM (viết tắt từ tên gốc là Acorn RISC Machine) là một loại cấu trúc
vi xử lý 32 bit kiểu RISC (thuộc kiến trúc Hardvard, có tập lệnh rút gọn) được sử dụng rộng rãi trong các thiết kế nhúng Do có đặc điểm tiết kiệm năng lượng, các bộ CPU
Trang 24ARM chiếm ưu thế trong các sản phẩm điện tử di động, mà với các sản phẩm này việc tiêu tán công suất thấp là một mục tiêu thiết kế quan trọng hàng đầu
Việc thiết kế ARM được bắt đầu từ năm 1983 trong một dự án phát triển của công ty máy tính Acorn Nhóm thiết kế hoàn thành việc phát triển mẫu gọi là ARM1 vào năm 1985, và vào năm sau, nhóm hoàn thành sản phẩm “thực’’ gọi là ARM2 với thiết kế đơn giản chỉ gồm 30.000 transistor ARM2 có tuyến dữ liệu 32 bit, không gian địa chỉ 26 bit tức cho phép quản lý đến 64 Mbyte địa chỉ và 16 thanh ghi 32 bit Thế hệ sau, ARM3, được tạo ra với 4KB cache và có chức năng được cải thiện tốt hơn nữa Trải qua nhiều thế hệ nhưng lõi ARM gần như không thay đổi kích thước ARM2
có 30.000 transistors trong khi ARM6 chỉ tăng lên đến 35.000 Ý tưởng của nhà sản xuất lõi ARM là sao cho người sử dụng có thể ghép lõi ARM với một số bộ phận tùy chọn nào đó để tạo ra một CPU hoàn chỉnh, một loại CPU mà có thể tạo ra trên những nhà máy sản xuất bán dẫn cũ và vẫn tiếp tục tạo ra được sản phẩm với nhiều tính năng mà giá thành vẫn thấp
ARM lõi Cortex là lõi nhúng kế thừa các ưu điểm từ các thế hệ lõi ARM11 về trước đó Để phù hợp với nhu cầu sử dụng, ARM Cortex được chia làm 3 dòng:
Cortex-A: Bộ xử lý dành cho hệ điều hành và các ứng dụng phức tạp Hỗ trợ tập lệnh ARM, thumb, và thumb-2
Cortex-R: Bộ xử lý dành cho hệ thống đòi hỏi khắc khe về đáp ứng thời gian thực Hỗ trợ tập lệnh ARM, thumb, và thumb-2
Cortex-M: Bộ xử lý dành cho dòng vi điều khiển, được thiết kế để tối ưu
về giá thành Hỗ trợ tập lệnh Thumb-2 (Dòng ARM STM32 có lõi Cortex-M)
Trang 25Tập đoàn ST Microelectronic đã cho ra mắt dòng STM32, vi điều khiển đầu tiên dựa trên nền lõi ARM Cortex-M3 thế hệ mới do hãng ARM thiết kế, lõi ARM Cortex-M3 là sự cải tiến của lõi ARMv7-M 32bit truyền thống, từng mang lại sự thành công vang dội cho công ty ARM Dòng STM32 thiết lập các tiêu chuẩn mới về hiệu suất, chi phí, cũng như khả năng đáp ứng các ứng dụng tiêu thụ năng lượng thấp và tính điều khiển thời gian thực khắt khe
Chip ARM Cortex-M4 tích hợp lõi xử lý trung tâm, gọi là CM3Core, với các thiết bị ngoại vi hệ thống tiên tiến để tạo ra các khả năng kiểm soát ngắt, bảo vệ bộ nhớ, gỡ lỗi và theo vết hệ thống Các thiết bị ngoại vi có thể được cấu hình một cách thích hợp, cho phép bộ vi xử lý Cortex-M4 đáp ứng được rất nhiều ứng dụng và yêu cầu khắc khe của hệ thống Lõi của bộ vi xử lý được thiết kế đặc biệt để đáp ứng yêu cầu bộ nhớ tối thiểu, năng lượng tiêu thụ thấp và thiết kế nhỏ gọn
Chip ARM Cortex-M7 là một vi điều khiển 32-bit cao cấp nhất trong series Cortex-M của ARM cho đến hiện nay Theo ARM, Cortex-M7 có DSP (Digital Signal Processing: Xử lý tín hiệu số) cao gấp đôi so với Cortex-M4 do đó có thể xử lý cùng lúc 2 tập lệnh, giúp cho M7 có thể hoạt động ở mức xung nhịp cao hơn. Đây là dòng chip MCU 32-bit giúp tăng tốc thông dịch dữ liệu từ các cảm biến thành thông tin số
Nó tăng gấp đôi hiệu năng tính toán và DSP trong khi giảm thiểu mức tiêu thụ điện năng nhờ vào công nghệ sản xuất 28nm Chip M7 hỗ trợ các thiết bị nhúng điều khiển giọng nói hoặc giao diện rich OS và còn được sử dụng trong các smartphone hoặc trên
xe hơi để điều khiển các chức năng màn hình chạm và âm thanh phức tạp hơn
Về cơ bản thì chip Cortex-M không được gọi là vi xử lý mà nó chỉ đóng vai trò là một chip vi điều khiển (microcontroller) do cấu trúc thiếu đi một bộ phận khá quan trọng là MMU (Memory Management Unit - Đơn vị quản lý bộ nhớ) Nhiệm vụ chính của MMU là đứng giữa CPU và bộ nhớ để xử lý quá trình đọc ghi của memory và thông dịch giữa địa chỉ ảo và địa chỉ vật lý Đó là lý do tại sao các hệ điều hành như Linux (Android), Windows, MAC OS, và iOS đều phải cần đến MMU
Phân tích sâu vào chi tiết thì ta thấy Cortex-M7 được tích hợp một ống dẫn siêu
vô hướng 6 trạng thái với các FPU single/double-precision (Một khối chịu trách nhiệm thực thi các chỉ lệnh toán học phức tạp) và tập lệnh 32-bit ARMv7, Dual 16-bit MAC,
Trang 26bộ nhớ đệm dữ liệu và các tập lệnh, hỗ trợ SIMD 8/16-bit, và TCM (Tightly coupled memory) có chức năng làm giảm độ trễ của bộ nhớ và chức năng tiên đoán nhánh TCM thực chất đóng vai trò như một MMU vốn chỉ xuất hiện trên dòng A và R series của ARM Khi sử dụng, hiệu năng của TCM có thể tương tự như bộ nhớ đệm, nhưng không hoàn toàn, vì nội dung của TCM sẽ do các nhà phát triển điều khiển trực tiếp Cortex-M7 hỗ trợ lên đến 16 MB TCM
Hình 2.4: Kiến trúc của vi xử lý ARM Cortex-M7
b Tổng quát về ARM Cortex - M7 STM32F746NGHx
Dòng STM32 tiêu thụ năng lượng cực thấp trong khi đó hiệu suất cực cao và việc lập trình cũng rất dễ dàng Với sự đồ sộ về ngoại vi (GPIO, I2C, SPI, ADC, USB, Ethernet, CAN ), ST cung cấp cho chúng ta các thư viện trực tiếp cho mỗi dòng ARM (gọi là CMSIS - Cortex Microcontroller Software Interface Standard), nhiệm vụ của chúng ta không thể dễ dàng hơn: khai báo và sử dụng mà thôi
KIT Discovery STM32F7 cho phép người dùng phát triển mở rộng các ứng dụng
về âm thanh, đồ họa, cảm biến và các tính năng kết nối tốc độ cao với các ngoại vi
Trang 27 USB functions: virtual COM port, mass storage, debug port
4.3-inch 480x272 color LCD-TFT with capacitive touch screen
Camera connector
SAI audio codec
Audio line in and line out jack
Stereo speaker outputs
Two ST MEMS microphones
SPDIF RCA input connector
Two pushbuttons (user and reset)
128-Mbit Quad-SPI Flash memory
128-Mbit SDRAM (64 Mbits accessible)
Connector for microSD card
RF-EEPROM daughterboard connector
USB OTG HS with Micro-AB connectors
USB OTG FS with Micro-AB connectors
Ethernet connector compliant with IEEE-802.3-2002
Five power supply options:
o ST LINK/V2-1
o USB FS connector
o USB HS connector
o VIN from Arduino connector
o External 5 V from connector
Power supply output for external applications: 3.3 V or 5 V
Arduino Uno V3 connectors
Trang 28Hình 2.5: KIT Discovery STM32F7
Trang 292.2.4 Giới thiệu về đầu in nhiệt Fujitsu FTP – 628MCL103
a Tổng quan về đầu in nhiệt
Trong công nghệ in nhiệt, bộ phận quan trọng nhất của một máy in nhiệt đó chính là đầu in nhiệt Đầu in là một khối cố định gồm nhiều điểm nóng, còn giấy hoặc các vật liệu in thì di chuyển đi qua đầu in và trục lăn làm bằng cao su nằm trực tiếp bên dưới đầu in và phục vụ hai mục đích
Đầu tiên là sử dụng áp lực tạo ra giữa các con lăn và đầu in để kéo nhẵn bên dưới khi làm nóng của đầu in Thứ hai là sử dụng áp lực để kéo phẳng các vật liệu in đảm bảo cho bề mặt tiếp xúc của vật liệu in với đầu in tốt hơn Đầu in nhiệt có tác dụng tác động vào giấy in nhiệt để in ra những thông tin cần in Thành phần quan trọng tiếp theo là bảng điều khiển kiểm soát cơ chế in ấn của máy in hóa đơn, sử dụng giấy in hóa đơn ở các siêu thị
Quá trình in ấn là một mô hình khá phức tạp Khi giấy in nhiệt đến giữa trục lăn và các đầu máy in, các yếu tố nhiệt của máy in nhận được dòng điện, hiệu lệnh sinh nhiệt từ vi điều khiển Nhiệt sinh ra kích hoạt màu nhạy nhiệt trên bề mặt giấy in nhiệt hiển thị những thông tin cần in Có hai loại in nhiệt của máy in nhiệt đó là in nhiệt trực tiếp và in chuyển nhiệt
Máy in nhiệt trực tiếp là phổ biến nhất bởi vì tốc độ in cao và mức độ hiệu quả cao, không cần sử dụng mực in nên hiệu quả giảm chi phí, bền và có thể in liên tục trong một thời gian dài
Hình 2.6: Đầu in nhiệt Fujitsu-FPT-628MCL103
Trang 30b Tổng quan về đầu in nhiệt Fujitsu
Đầu in này được thiết kế nhỏ và gọn nhẹ, đầu in nhiệt được cấu tạo với 8 điểm đốt trên 1mm
Để thực hiện dễ dàng việc thay giấy, phần con trục lăn có thể tách ra từ thân máy
in chính với một thao tác
Hình 2.7: Cấu trúc đầu in nhiệt
c Thông số kỹ thuật đầu in nhiệt
Bảng 2.3: Thông số kỹ thuật đầu in nhiệt
Phương pháp in Phương pháp in nhiệt trực tiếp
Độ phân giải điểm 0,125 mm ( 8 điểm/mm)
Trang 31Tốc độ in 60 mm/s
Phương pháp cấp giấy Dùng ma sát (1 dòng/4 xung)
Độ chính xác cấp giấy ± 5% với tốc độ cấp giấy cố định ở lực kéo
Mức logic
Điện áp: DC 2.7 ~ 5.25V Dòng: 0.1A Max
Nguồn điều khiển động cơ
Điện áp: DC 4.2V ~ 8.5V Dòng: 1,0 A Max
Môi trường hoạt động + 5 ℃ ~ 40 ℃, 20 ~ 85% RH Không được đọng
sương
Môi trường bảo quản -20 ℃ ~ 60 ℃, 5 ~ 95% RH Không được đọng
sương và không bao gồm giấy in
Độ bền đầu in nhiệt
- 1 trăm triệu xung (dưới điều kiện in tiêu chuẩn)
- 50km chiều dài giấy được in
Độ bền con trục lăn 5000 lần (tháo và lắp vào được tính là 1 lần)
Độ bền cảm biến giấy 1,2 x 104giờ (khi được cấp dòng)
Trang 32d Sơ đồ chân kết nối vi điều khiển
Bảng 2.4: Sơ đồ chân kết nối vi điều khiển
1 PHK Cực thu cảm biến giấy
3 PHE Cực phát cảm biến giấy
27 MT/A Tín hiệu kích động cơ
28 MT/A̅ Tín hiệu kích động cơ
29 MT/B Tín hiệu kích động cơ
Trang 332.2.5 Giới thiệu về module thời gian thực DS1307
a Tổng quan về thời gian thực
Module thời gian thực: có chức năng đếm thời gian và được duy trì bởi nguồn pin CMOS 3v3 cấp vào chân VVBAT nên vẫn hoạt động dù có mất điện cấp nguồn vào chân VCC Khối này được xây dựng dựa trên IC thời gian thực
Trên thị trường có rất nhiều loại IC thời gian thực như: DS1302, DS1307, BQ32000, … Nhóm quyết định chọn IC thời gian thực được sử dụng phổ biến trên thị trường đó là IC DS1307 Với ưu điểm giá thành thấp, lập trình giao tiếp đơn giản thông qua chuẩn I2C
IC DS13B07 là IC thời gian thực có chức năng cung cấp các giá trị thời gian thực chính xác, sơ đồ chân của DS13B07 như hình 2.8
Hình 2.8:Sơ đồ chân và hình ảnh của DS13B07
Chức năng các chân của IC DS13B07:
Hai chân X1, X2 dùng để kết nối với thạch anh 32768 Hz để tạo dao động
Chân VVBAT nối với nguồn dương pin 3.3V để IC vẫn hoạt động đếm dao động ngay cả khi mất điện
Chân GND là chân nối 0V (mass)
Chân VCC nối với nguồn 5V hoặc 3.3V tùy theo từng loại chip
SQW/OUT là ngõ ra tạo xung vuông (Square Wave / Output Driver)
Hai chân SCL, SDA là 2 đường tín hiệu giao tiếp theo chuẩn I2C
Trang 34Hình 2.9:Sơ đồ kết nối DS13B07
b Tổ chức bộ nhớ IC DS1307:
Tổ chức bộ nhớ bên trong của DS13B07 như hình 2.10:
Hình 2.10:Tổ chức bộ nhớ và thanh ghi của DS1307.
Hình 2.10 thể hiện rõ tổ chức của thanh ghi theo từng bit
Bảng 2.5: Bảng trạng thái và chức năng của thanh ghi thời gian
Trang 35muốn đồng hồ hoạt động thì bit này phải bằng
Ô nhớ lưu giờ (HOURS) 0x02
Lưu hàng chục giờ và hàng đơn vị giờ ở 2 chế
độ 12 giờ và 24 giờ được lựa chọn bởi bit thứ
Lưu tháng trong năm có giá trị từ 1-12
Ô nhớ lưu năm (YEARS) 0x06 Lưu giá trị năm từ 00-99
Trang 362.3 GIỚI THIỆU PHẦN MỀM
2.3.1 Giới thiệu thư viện đồ họa StellarisWare Grlib
a Tổng quan về StellarisWare Grlib
Trong chương này sẽ đề cập đến Grlib (Thư viện đồ họa) trong gói phần mềm StellarisWare cung cấp khả năng phát triển giao diện người dùng phức tạp (GUI) trên các cấp độ widget với API cấp cao (Giao diện lập trình ứng dụng) Lớp Widget của Grlib được xây dựng trên các hàm cơ bản (để vẽ các đường thẳng, hình chữ nhật, hình tròn, v.v…) và các trình điều khiển hiển thị (ví dụ như trình điều khiển LCD) cho phép người dùng dễ dàng xây dựng giao diện người dùng với các điều khiển được xác định trước như các nút nhấn, thanh trượt, hộp kiểm tra, v.v…
Grlib hỗ trợ các loại tiện ích sau:
Canvas: bề mặt vẽ đơn giản không cung cấp phương tiện tương tác với người dùng (có thể được tô màu, phác hoạ với màu sắc, có hình ảnh / thử nghiệm vẽ trong vùng vải và cho phép ứng dụng vẽ vào khung)
Checkbox: phần tử đồ hoạ có thể được chọn hoặc không được chọn
Container: cung cấp các phương tiện để nhóm các widget với nhau trong hệ thống thứ bậc widget
Image button: cung cấp một nút được chèn hình, tạo ra một hành động khi được nhấn vào
Listbox: cho phép người dùng chọn một trong số các thuộc tính trong danh sách được giữ bởi widget
Push Button: cung cấp một nút nhấn, tạo ra một hành động khi được thực hiện
Radio Button: cung cấp một phần tử đồ họa có thể được nhóm với các nút radio khác để tạo thành một phương tiện để chọn một trong nhiều mục
Slider: cho phép người dùng kéo một điểm đánh dấu theo chiều ngang hoặc chiều dọc để chọn một giá trị từ trong phạm vi đã được khởi tạo trước đó
b Cấu trúc dạng cây Widget của Grlib
Các widget trong Grlib được tổ chức theo một cấu trúc giống như cây để cho phép Widget Manager vẽ các vật dụng và xử lý thông tin đưa vào của người dùng vào
Trang 37các vật dụng một cách chính xác Mỗi widget có ba chỉ dẫn cơ bản kết nối chúng với các vật dụng khác trong cấu trúc cây:
Con trỏ cha (pParent): con trỏ tới widget ở mức trên
Con trỏ cùng cấp (pNext): con trỏ tới widget ở cùng một cấp độ
Con trỏ con (pChild): con trỏ tới widget ở mức dưới
Hình dưới đây cho thấy một ví dụ về cấu trúc cây widget:
Hình 2.11: Cấu trúc cây widget
Như có thể nhìn thấy ở trên, các vật dụng được neo lại bởi một WIDGET_ROOT toàn cục Các widget khác do người dùng xác định có thể được đính kèm với WIDGET_ROOT trong cấu trúc giống như dạng cây trong suốt thời gian khởi tạo (được định dạng cứng trong các định nghĩa cấu trúc lớp Widget) hoặc thêm vào bằng cách sử dụng WidgetAddr (tWidget * pParent, tWidget * pWidget)
Xác định hệ thống phân cấp cấu trúc cây đúng là quan trọng đối với từng ứng dụng để đảm bảo quá trình vẽ lại chính xác và xử lý yêu cầu của người dùng Xem ví
Trang 38dụ sau với hai container, một chứa hai radio button, và một cái khác có chứa một nút nhấn:
Hình 2.12: Ví dụ về cấu trúc cây widget
c Các bước vẽ cây Widget của Grlib
Cây Widget được vẽ bắt đầu từ WIDGET_ROOT xuống dưới (cha mẹ được vẽ trước các con - do đó cha mẹ có thể được coi là nằm dưới con cái của chúng trên màn hình) Quá trình vẽ sẽ được Widget Manager thực hiện bằng cách gọi WidgetPaint (WIDGET_ROOT):
Trang 39Hình 2.13: Các bước vẽ cấu trúc cây widget
d Các bước thực thi cây Widget của Grlib
Trái ngược với cách Widget Manager vẽ các vật dụng xuống trong cấu trúc cây widget, cách thực thi được chuyển lên trên trong cấu trúc cây (con cái được thực thi trước cha mẹ) Thông báo thực thi của người dùng được chuyển đến các vật dụng trong cấu trúc cây như sau:
Thông báo (WIDGET_MSG_PTR_DOWN, WIDGET_MSG_PTR_MOVE hoặc WIDGET_MSG_PTR_UP):
Khi nhận được một thông báo con trỏ (WIDGET_MSG_PTR_DOWN),
Widget Manager sẽ chuyển nó đến tất cả các vật dụng, con đầu tiên
Mỗi widget kiểm tra xem con trỏ có nằm trong khu vực của nó hay không, nếu
có, trả lại tin nhắn "true" đến yêu cầu thông báo
Trang 40 Tất cả thông báo di chuyển con trỏ (WIDGET_MSG_PTR_MOVE) được gửi tới Widget cho đến khi nhận được con trỏ(WIDGET_MSG_PTR_UP) hoặc xóa Widget con
Đối với ví dụ với hai container ở trên, việc xử lý thực thi yêu cầu người dùng sẽ được thực hiện bởi Widget Manager như sau:
Hình 2.14: Các bước thực thi cấu trúc cây widget
2.3.2 Giới thiệu về chuẩn giao tiếp SPI
a Định nghĩa
SPI (Serial Peripheral Bus) là một chuẩn truyền thông nối tiếp tốc độ cao do hãng Motorola đề xuất Đây là kiểu truyền thông Master-Slave, trong đó có 1 chip Master điều phối quá trình tuyền thông và các chip Slaves được điều khiển bởi Master vì thế truyền thông chỉ xảy ra giữa Master và Slave SPI là một cách truyền song công (full duplex) nghĩa là tại cùng một thời điểm quá trình truyền và nhận có thể xảy ra đồng thời SPI đôi khi được gọi là chuẩn truyền thông “4 dây” vì có 4 đường giao tiếp trong chuẩn này đó là SCK (Serial Clock), MISO (Master Input Slave Output), MOSI (Master Ouput Slave Input) và SS (Slave Select) Hình 2.15 thể hiện kết nối SPI giữa một chip Master và 3 chip Slave thông qua 4 đường