Professional Documents
Culture Documents
KHKT-Cánh tay robot cho người khuyến tật
KHKT-Cánh tay robot cho người khuyến tật
Đề tài:
- Trang 1-
MỤC LỤC
CHƯƠNG 1. GIỚI THIỆU VÀ XÁC ĐỊNH VẤN ĐỀ NGHIÊN CỨU Trang
1. Lý do chọn đề tài ................................................................................. 3
1.1. Tính cấp thiết ..................................................................................... 3
1. 2. Tính thực tiễn ................................................................................... 3
1. 3. Tính khả dụng ................................................................................... 5
2. Xác định vấn đề nghiên cứu ............................................................... 6
2.1 . Mục tiêu nghiên cứu .......................................................................... 6
2. 2. Đối tượng nghiên cứu ....................................................................... 6
2. 3. Nội dung nghiên cứu ......................................................................... 6
2. 4. Địa điểm nghiên cứu ........................................................................ 7
2. 5. Phương pháp nghiên cứu ................................................................... 7
CHƯƠNG 2. PHƯƠNG PHÁP TIẾN HÀNH VÀ KẾT QUẢ NGHIÊN CỨU
1. Quá trình nghiên cứu .......................................................................... 8
1. 1. Hình thành ý tưởng.. ......................................................................... 8
1. 2. Tìm hiểu vật liệu và thiết bị điện tử.. ................................................. 9
1. 3. Thiết kế sản phẩm ........................................................................... 10
1. 4. Lập trình và kết nối: ........................................................................ 16
1. 5. Lắp đặt sản phẩm: ........................................................................... 16
2. Kết quả nghiên cứu ........................................................................... 20
2. 1. Bảng thực nghiệm: .......................................................................... 20
2. 2. Các thông số kỹ thuật: ..................................................................... 20
2. 3. Hình ảnh sản phẩm:......................................................................... 21
3. Thảo luận: ......................................................................................... 23
4. Ứng dụng của đề tài .......................................................................... 23
5. Chi phí kinh tế đề tài ........................................................................ 24
- Trang 2-
CHƯƠNG 3. KẾT LUẬN VÀ KIẾN NGHỊ
1. Kết luận ............................................................................................. 25
2. Một số kiến nghị ................................................................................ 25
CHƯƠNG 1. GIỚI THIỆU VÀ XÁC ĐỊNH
VẤN ĐỀ NGHIÊN CỨU
1. Lý do chọn đề tài:
1.1. Tính cấp thiết của đề tài:
Theo trang trợ lý pháp luật Việt Nam[1] “ Tính đến năm 2013 trên thế giới có
khoảng 10% dân số là người khuyết tật. Theo báo cáo của Bộ Lao động Thương
binh và Xã hội, cả nước hiện có khoảng 15 triệu người khuyết tật (chiếm khoảng
17,5% dân số). Trong đó khoảng 87% người khuyết tật sống ở nông thôn gặp
nhiều khó khăn về kinh tế, cần đến sự trợ giúp, hỗ trợ của nhà nước và xã hội.
Do đó ngoài việc thực hiện bảo vệ quyền và nghĩa vụ như mọi công dân khác
thì họ cần được bảo vệ các quyền và những ưu tiên dành riêng cho họ.
Mặt khác phần lớn những người khuyết tật thường có những mặc cảm tự
ti vì gánh nặng cho người thân, gia đình, tự ái xa lánh với đời, với người xung
quanh. Do vậy chúng ta cần hành động để hỗ trợ cho người khuyết tật, trên tất
cả các phương diện từ khuyết tật vận động cho đến trí tuệ hay cảm giác, để
hướng đến việc xây dựng một dân tộc khoẻ mạnh và phát triển bền vững.
Với những người khuyết tật về cơ quan vận động thường gặp là chân và
tay. Ngày nay các chất liệu cũng như phần cơ khí của các bộ phận giả đó rất tiến
- Trang 3-
bộ, tuy nhiên giá thành lại cao, không phù hợp với phần đông thu nhập của người
Việt. Với những người bị nặng ở chân, xe lăn là phương tiện hỗ trợ hữu hiệu,
thông thường sự di chuyển của xe lăn được thực hiện bằng tay. Đối với
- Trang 4-
những người tay rất yếu họ được thiết kế những chiếc xe lăn chuyên dụng chạy
bằng điện chỉ cần điều khiển bằng nút bấm. Về cơ bản các sản phẩm phục vụ
cho người khuyết tật ở chân khá phát triển, đã được thương mại hóa một cách
rộng rãi, nhiều chủng loại, nhiều mức giá, từ tặng miễn phí cho đến những chiếc
xe lăn hiện đại giá vài chục triệu đồng, khuyết tật chân qua đó có thể thấy đã
được khắc phục.
Ưu điểm là nguyên lí đơn giản, lợi dụng sự thay đổi khoảng cách của rìa ngoài
hai ống để kéo căng dây, khi dây kéo căng thì các ngón tay nối với sợi dây sẽ
- Trang
4-
co lại. Tuy nhiên hạn chế là phụ thuộc vào việc còn hoặc mất khớp tay của người.
Như người muốn lắp lại bàn
tay thì cần khớp cổ tay còn
nguyên vẹn, hoặc muốn lắp
thêm cẳng tay thì cần khớp cùi
chỏ còn nguyên vẹn. Mặt khác
các sản phẩm đó lại có giá
thành cao, không phù hợp với
điều kiện kinh tế của đa phần
người khuyết tật.
hỗ trợ của họ chỉ có vài sản phẩm đơn giản với giá đắt đỏ, có nghĩa là ngay cả
một quốc gia phát triển như Mỹ, người dân khuyết tật của họ cũng chỉ có thể
tiếp cận các sản phẩm vô cùng hạn chế trong chuyển động, vậy đối với các quốc
gia đang phát triển như Việt Nam, tỷ lệ người được tiếp cận với các sản phẩm
hỗ trợ chuyển động tay chính là điều quá xa vời.
Vậy thì làm thế nào để có thể tạo ra một sản phẩm có thể cải thiện cho
sinh hoạt hàng ngày với giá thành phù hợp cho người khuyết tật Việt Nam?
Để giải quyết cho vấn đề này em đã hình thành ý tưởng đó là: “ Chế tạo
cánh tay robot cho người khuyết tật”.
Nguyên lý: Dùng cử động của bàn chân có gắn các bộ cảm biến để điều
khiển cánh tay thông qua bộ thu phát sóng điện từ.
- Trang 6-
ngày càng phổ biến, cùng với đó là sự ra đời của các chợ điện tử, chúng ta có
thể đặt mua chúng ngay trên Internet.
5-
Các tài liệu điện tử cũng đã được chia sẻ rộng rãi, có thể tiếp cận một cách
dễ dàng thông qua mạng.
Bên cạnh đó công nghệ máy in 3D vừa ra đời trong một vài năm gần đây
cho phép chúng ta tạo ra các sản phẩm được thiết kế trên máy tính cũng đã mon
men về đến Việt Nam ở một số thành phố lớn như Phú Yên, TP. HCM, Hà
Nội,… và có thể dễ dàng đặt in thông qua phương tiện xã hội.
- Tìm hiểu về tâm lí những người khuyết tật từ đó tìm hiểu vấn đề giải quyết -
Nghiên cứu vấn đề thực tiễn cần giải quyết, đề ra mục tiêu phương án, cách
thức tiến hành để thực hiện đề tài.
- Tìm hiểu cách thức vận hành những công việc cơ bản, những hoạt động thiết
thực của một cánh tay. Trên cơ sở đó thiết kế bản vẽ kỹ thuật phác họa các chi
tiết cánh tay robot bằng phần mềm SketchUp để áp dụng công nghệ in 3D.
- Trang
-Tìm hiểu về vai trò của bo mạch vi xử lý Arduino và cách thức tiến hành và sử
dụng, lập trình Arduino IDE để viết code cho mạch Arduino dùng để tương tác
với các thiết bị phần cứng
- Tính toán thiết kế, cách sử dụng các loại mạch cảm biến và mạch điện có sử
dụng thu và phát sóng điện từ
- Trang 8-
- Liên hệ với người khuyết tật cánh tay để tiến hành vận hành thử
- Đánh giá sản phẩm và chỉnh sửa các thông số kỹ thuật cho phù hợp - Báo cáo
kết quả nghiên cứu trước hội đồng khoa học kỹ thuật nhà trường và của Sở
Giáo dục và Đào tạo Quảng Trị để được nhận xét, đánh giá trên cơ sở đó tiếp
thu ý kiến để nhận được xuât cải tiến, nâng cấp sản phẩm
Câu lạc bộ người khuyết tật trên địa bàn huyện Hải Lăng, Hải Thượng,
huyện Triệu Phong, Thị Xã Quảng Trị thuyết phục họ để tiến hành vận hành thử.
Qua đó xin trao kiến đóng góp về khắc phục sửa lỗi và hoàn tiếp tục hoàn thiện
để hình thành nên sản phẩm đạt chất lượng tốt nhất.
- Trang 9-
mất một cánh tay và tìm hiểu về cuộc sống, những vấn đề khó khăn trở ngại mà
người đó gặp phải trong quá trình sinh hoạt hàng ngày. Chính những hính ảnh
đó đã gây cho em một suy nghĩ, trăn trở rất lớn về những người có hoàn cảnh
như thế. Từ đó em đã tìm hiểu tìm thực trạng, về cách nhìn nhận cũng như sự
quan tâm của xã hội đối với những người khuyết tật hiện nay trên địa bàn tỉnh
Quảng Trị cũng như ở nước ta hiện nay.
Nhờ gặp được bác Phạm Quý Thi, ở Hải Thọ, Hải Lăng, hiện là chủ tịch
hội người khuyết tật tỉnh Quảng Trị, đồng thời cũng là người đầu tiên chạy thử
nghiệm sản phẩm sau này của đề tài, em được biết về số người khuyết tật (khuyết
tay) ở tỉnh ta nói riêng và nước ta nói chung là rất lớn. Mà nguyên nhân trực tiếp
chủ yếu là do tai nạn giao thông, chiến tranh và tai nạn bom mình
Dựa trên tình hình thực tế về điều kiện kinh tế và trình độ của Việt Nam,
bản thân em đã trăn trở, suy nghĩ là làm sao sản phẩm mình tạo ra phải tiện vận
- Trang 10-
dụng, linh hoạt, bền có độ thẩm mỹ và đặc biệt là có thể thương mại trên thị
trường với giá thành phải chăng.
Sau khi đã xác định mục tiêu, bản thân em đã gặp trực tiếp giáo viên
hướng dẫn và là người bảo trợ đề tài cùng đề ra phương án, phác thảo thiết kế
bản vẽ kỹ thuật, tìm hiểu vật liệu, thiết bị kỹ thuật sẵn có và giá cả của nó trên
thị trường, viết code phần mềm điều khiển, tiến hành lắp đặt và vận hành thử
sao cho đạt tới sản phẩm hoàn thiện nhất.
b. Nhựa in 3D PLA[2]
Nhựa PLA là loại nhựa nổi trội về độ đàn hồi, độ bền và hơn hết, PLA có
thể sử dụng vào công nghệ in 3D, là một công nghệ khá mới mẻ tại Việt Nam
trong những năm gần đây.
PLA là vật liệu có nguồn gốc tự nhiên, không độc hại, dễ phân hủy. Trong
điều kiện nhiệt độ in thông thương, PLA không có mùi lạ. Vật liệu PLA tương
đối dòn, cơ tính thấp, nhưng sản phẩm in ra khá đẹp và đầy đủ chi tiết. Nhiệt độ
in của PLA cũng tương đối thấp, tầm dưới 190 độ C. (Trích từ Công nghệ in 3D
Plus )
Ưu điểm chung của sản phẩm làm từ công nghệ này đó là có độ chính và
tính thẩm mỹ rất cao. Tuy nhiên hạn chế khi sử dụng loại nhựa này đó là phải
đặt hàng cho các cơ sở sản xuất, do đó giá thành có đẩy lên cao đôi chút.
- Trang 11-
1. 3. Thiết kế sản phẩm
b. Dùng phần mềm SketchUp cho công nghệ in 3D b1.
Đồ họa 3D:
3D ở độ tinh tế cao.
H6. phần mềm SketchUp
b2. Ứng dụng phần mềm SketchUp để thiết kế các chi tiết cánh tay[4].
- Trang 12-
Sau khi hình thành bản vẽ trên máy tính, thân robot được in 3D với kích
thước và hình dáng giống hệt với thiết kế với độ chính xác cực cao. Cụ thể các
chi tiết được thiết kế thể hiện qua một số hình ảnh sau:
H14. Hình ảnh tổng thể về cấu tạo cánh tay robot
- Trang 13-
H10. Các khớp nối phần tay giả với phần tay còn lại
- Trang 14-
1 5
2 2
Arduino nano
3 3
4 2
Module NRF24L01
5 3
Pin Li-ion
6 2
- Trang 15-
7 2
MPU6065
- Trang 16-
b. Sơ đồ đi dây:
- Trang 17-
H14. Sơ đồ mạch nhận (Reciever)
- Trang 18-
Sử dụng 2 pin Li-ion (3.7v - 1830mAh – 6.8Wh), vì trên Arduino Nano đã tích
hợp chip nguồn LM7805 giúp dòng điện trên mạch luôn ổn định ở 5v.
5V
- Trang 19-
- Trang 20-
trục Cử chỉ nghiêng chân
nghiêng
- Trang 21-
1.6.2. Úp ngửa và co duỗi cẳng tay: Một cảm biến
nghiêng MPU6065 gắn ở lòng bàn chân, khi
nghiêng chân theo 2 trục X hoặc Z của cảm biến
- Trang 22-
để thực hiện cử chỉ úp ngửa bàn tay(theo trục Z)
hay co lên hạ xuống cẳng tay(theo trục X).
- Trang 23-
1.7. Một số hình ảnh quá trình lắp đặt:
H19: Lắp đặt bộ phận phát tín hiệu gắn trên cổ chân và trên các ngón chân
- Trang
19-
2. Kết quả nghiên cứu
2.1. Bảng vật liệu:
2 viên
Pin Li-ion Ultrafire 3,7V
Dung lượng: 6000mAh
2 viên
Pin Li-ion 3.7v dạng lép
Dung lượng: 4000mAh
Dây dù 5 sợi cơ nối các đốt tay
- Trang
3,7V Độ bền cao, chắc
Pin Li-ion 3.7v dạng lép chắn,khỏe.
- Trang
H23. Sản phẩm hoàn thiện
21-
H37: Bác Phạm Quý Thi ở Hải Thọ-Hải Lăng đang vận hành thử sản phẩm
Sản phẩm được hình thành từ một ý tưởng nhất thời, đang ở gia đoạn nghiên
cứu, mang tính gợi ý cho các nhà sản xuất tuy nhiên bước đầu ý tưởng đã phần
nào hướng tới một sản phẩm tốt hơn trong tương lai.
- Trang
Các cơ cấu, chi tiết của sản phẩm còn chưa được đảm bảo tính thẩm mỹ, và
độ chắc chắn cao do đó cần được cải thiện và nâng cấp, làm đẹp và bảo trì thường
xuyên liên tục để tiến tới một sản phẩm tốt hơn.
22-
- Trang
3. Thảo luận:
Sau một thời gian tìm tòi nghiên cứu thiết kế và lắp đặt đã chế tạo thành công
cánh tay robot dành cho người khuyết tật. Sau khi hoàn thành sản phẩm bản thân
em đã đi liên hệ với những người khuyết tật cánh tay và nhờ họ vận hành thử.
Qua quá trình sử dụng cơ bản đều nhận được sự hồi hởi, hứng khởi và được các
cộng tác viên vận hành thử. Bước đầu do chưa quen nên còn bỡ ngỡ, sau một
thời gian thì hầu như mọi người đã vận dụng linh hoạt hơn
Sản phẩm tạo ra cơ bản đáp ứng yêu cầu các thông số kỹ thuật. Tuy nhiên
để kiểm nghiệm thật đầy đủ tính tiện dụng và chính xác các thông số kỹ thuật
thì cần được kiểm chứng nhiều hơn, bên cạnh đó cần có điều kiện về các loại,
máy móc trang thiết bị đi kèm, có chuyên gia về kỹ thuật điện tử và công nghệ
thông tin và phải có thêm thời gian dài để hoàn thành, bổ sung thêm các tính
năng cho sản phẩm.
Về phần cơ học Robot chế tạo cũng đơn giản, tuy nhiên phần thiết kế đồ họa
và viết mã code cũng như điều chỉnh các thông số điện tử khá công phu đòi hỏi
người thiết kế phải am hiểu nhiều về cơ điện tử và công nghệ thông tin. Các vật
liệu hiện nay là những thiết bị khá phổ biến và dễ tìm, công đoạn khó nhất là in
3D còn phải hợp đồng với đối tác, nếu đem thương mại hóa thì giá thành sản
phẩm so với công dụng nó mang lại và giá thành của các sản phẩm khác có cùng
công năng trên thế giới cơ bản phù hợp với thu nhập của người dân Việt Nam.
Trên cơ sở dùng cử động chân để điều khiển cử động tay bằng sóng điện từ
thông qua bộ cảm biến chậm và nghiêng. Với cánh tay này người khuyết tật tay
có thể dùng cánh tay này để tự mình bưng bê các vật dụng và di chuyển đến nơi
cần thiết, có thể cầm nắm để làm các công việc cơ bản hàng ngày mà không phải
nhờ đến người khác.
- Trang 29-
5. Chi phí kinh tế đề tài
- Phần lớn vật liệu là những thiêt bị khá phổ biến chúng ta có thể mua trên các
chợ điện tử hoặc các cửa hàng
Số Thành
TT Nội dung, thiết bị Đơn vị Đơn giá
lượng tiền
1 Servo MG995 5 Cái 110.000 550.000
Tổng cộng (Hai triệu, tám trăm, tám mươi ngàn) 2.880.000
- Trang 30-
Trong điều kiện cho phép có thể nói em đã chế tạo thành công cánh tay
robot sử dụng hỗ trợ cho người khuyết tật.
Kết quả nghiên cứu hôm nay cho phép em có thêm ý tưởng, cải tiến mạnh mẽ
hơn trong tương lai với nhiều ứng dụng linh hoạt hơn, thẩm mỹ hơn và có thể
tích hợp thêm nhiều linh kiện thiết bị thông minh, hiện đại hơn để dần dần thành
một sản phẩm gần giống nhất, góp phần làm vơi đi những khó khăn trong sinh
hoạt và những mặc cảm trong đời thường cho những người khuyết tật, tạo cho
họ ngày càng hòa nhập hơn với cộng đồng, góp phần xây dựng xã hội Việt Nam
ngày càng văn minh và hiện đại.
Cần coi đây là một lượng kiến thức lồng ghép vào 1 môn học nào đó, và
được tham gia đánh giá vào kết quả môn học nhằm khích lệ động viên học sinh
tham gia nghiên cứu khoa học kỹ thuật, giảm bớt thời lượng học tập lý thuyết
trên lớp, tăng cường thực hành để học sinh có thêm nhiều kỹ năng thực hiện đề
tài tốt hơn!
[1] Trợ giúp pháp lý cho người khuyết tật - Thực trạng và giải pháp
http://trogiupphaply.gov.vn/nghien-cuu-trao-doi/tro-giup-phap-ly-cho-
nguoikhuyet-tat-thuc-trang-va-giai-phap [2] Khoa học và công nghệ:
- Trang 31-
http://blogin3d.com/vat-lieu-in-3d-kham-pha-soi-nhua-in-3d-pla-va-abs.html
[3] Arduino và các ứng dụng :
https://github.com/TKJElectronics/Example-Sketch-for-IMU-
includingKalman-filter/blob/master/IMU/MPU6050/MPU6050.ino
http://arduino.vn/bai-viet/42-arduino-uno-r3-la-gi Arduino UNO R3 là gì?
2015.html
PHỤ LỤC
Các Code cho vi mạch
1. Code mạch thu:
#include <SPI.h>
#include "RF24.h" #include<Servo.h>
const uint64_t pipe = 0xE8E8F0F0E1LL;
RF24 radio(9,10); byte a[3]; Servo s1;
Servo s2;
Servo s3; Servo s4; Servo s5; float i=0;
void setup(){ s3.attach(4);
s5.attach(7); s2.attach(3);
s1.attach(5); s4.attach(6);
Serial.begin(9600); radio.begin();
radio.setAutoAck(1);
radio.setDataRate(RF24_250KBPS);
radio.setChannel(10);
radio.openReadingPipe(1,pipe);
radio.startListening();
- Trang 32-
} void loop(){ if
(radio.available()){ while
(radio.available()){
radio.read(&a, sizeof(a));
Serial.println(a[0]);
} }
switch(a[0])
{ case 0:
s1.write(180);
s2.write(180);
s3.write(165);
s4.write(90);
s5.write(i);
break; case 1:
s1.write(180);
s2.write(180);
s3.write(0);
break; case 2:
s1.write(180);
s2.write(0);
s3.write(0);
break; case 3:
s1.write(0);
s2.write(0);
s3.write(0);
break; case 4:
s1.write(0);
s2.write(0);
s3.write(165);
break; case 5:
s1.write(0);
s2.write(180);
- Trang 33-
s3.write(165);
break; case 6:
s1.write(180);
s2.write(0);
s3.write(165);
break; case 7:
s1.write(0);
s2.write(180);
s3.write(0);
break; case 8:
s4.write(0);
break; case 9:
s4.write(180);
break;
case 10:
if(i<180){s5.writ
e(i); i=i+0.1;}
else{i=180;}
break; case 11:
if(i>0){s5.write(i
); i=i-0.1;}
else{i=0;}
break;
}
}
2. code mạch phát:[3]
#include <Wire.h>
#include <Kalman.h>
#include <SPI.h> #include "RF24.h" const
uint64_t pipe = 0xE8E8F0F0E1LL; RF24
radio(9,10); byte a[3];
#define RESTRICT_PITCH
- Trang 34-
int n1; int
n2; int
n3; int m;
- Trang 35-
(i2cRead(0x75, i2cData, 1)); if
(i2cData[0] != 0x68) {
}
delay(100);
#ifdef RESTRICT_PITCH
double roll = atan2(accY, accZ) * RAD_TO_DEG; double
pitch = atan(-accX / sqrt(accY * accY + accZ * accZ)) *
RAD_TO_DEG;
#else
double roll = atan(accY / sqrt(accX * accX + accZ * accZ)) *
RAD_TO_DEG;
double pitch = atan2(-accX, accZ) * RAD_TO_DEG;
#endif
kalmanX.setAngle(roll);
kalmanY.setAngle(pitch);
gyroXangle = roll;
gyroYangle = pitch;
compAngleX = roll;
compAngleY = pitch; timer =
micros();
- Trang 36-
14)); accX = ((i2cData[0] << 8) | i2cData[1]);
accY = ((i2cData[2] << 8) | i2cData[3]); accZ =
((i2cData[4] << 8) | i2cData[5]); tempRaw =
(i2cData[6] << 8) | i2cData[7]; gyroX =
(i2cData[8] << 8) | i2cData[9]; gyroY =
(i2cData[10] << 8) | i2cData[11]; gyroZ =
(i2cData[12] << 8) | i2cData[13]; double dt =
(double)(micros() - timer) / 1000000; timer =
micros();
#ifdef RESTRICT_PITCH
double roll = atan2(accY, accZ) * RAD_TO_DEG; double
pitch = atan(-accX / sqrt(accY * accY + accZ * accZ)) *
RAD_TO_DEG;
#else // Eq. 28 and 29
double roll = atan(accY / sqrt(accX * accX + accZ * accZ)) *
RAD_TO_DEG;
double pitch = atan2(-accX, accZ) * RAD_TO_DEG;
#endif
double gyroXrate = gyroX / 131.0;
double gyroYrate = gyroY / 131.0; #ifdef
RESTRICT_PITCH
if ((roll < -90 && kalAngleX > 90) || (roll > 90 && kalAngleX < -90)) {
kalmanX.setAngle(roll); compAngleX = roll; kalAngleX = roll;
gyroXangle = roll;
} else
kalAngleX = kalmanX.getAngle(roll, gyroXrate, dt);
- Trang 37-
kalAngleY = kalmanY.getAngle(pitch, gyroYrate, dt);
#else
if ((pitch < -90 && kalAngleY > 90) || (pitch > 90 && kalAngleY < -90))
{
kalmanY.setAngle(pitch);
compAngleY = pitch;
kalAngleY = pitch; gyroYangle
= pitch;
} else
kalAngleY = kalmanY.getAngle(pitch, gyroYrate, dt);
#if 0
#endif
//*01
if(n1==0 && n2==0 && n3==0 && compAngleX>=-15 &&
compAngleX<=17 && compAngleY<=29 && compAngleY>=-18){a[0]=0
; radio.write(&a, sizeof(a));}
- Trang 38-
if(n1==0 && n2==0 && n3==0 && compAngleX>=17 &&
compAngleY<=29 && compAngleY>=-18){a[0]=8 ; radio.write(&a,
sizeof(a));}
; radio.write(&a, sizeof(a));}
if(n1==1 && n2==0 && n3==0 && compAngleX>=17 &&
compAngleY<=29 && compAngleY>=-18){a[0]=9 ; radio.write(&a,
sizeof(a));}
- Trang 39-
if(n1==1 && n2==0 && n3==0 && compAngleX>=-15 &&
compAngleX<=17 && compAngleY<=-18){a[0]=25 ; radio.write(&a,
sizeof(a));}
; radio.write(&a, sizeof(a));}
if(n1==1 && n2==1 && n3==0 && compAngleX>=17 &&
compAngleY<=29 && compAngleY>=-18){a[0]=10 ; radio.write(&a,
sizeof(a));}
if(n1==1 && n2==1 && n3==0 && compAngleX<=-15 &&
compAngleY<=29 && compAngleY>=-18){a[0]=18 ; radio.write(&a,
sizeof(a));}
; radio.write(&a, sizeof(a));}
sizeof(a));}
- Trang 40-
if(n1==1 && n2==1 && n3==1 && compAngleX>=17 &&
compAngleY<=29 && compAngleY>=-18){a[0]=11 ; radio.write(&a,
sizeof(a));}
; radio.write(&a, sizeof(a));}
if(n1==0 && n2==1 && n3==1 && compAngleX>=17 &&
compAngleY<=29 && compAngleY>=-18){a[0]=12 ; radio.write(&a,
sizeof(a));}
if(n1==0 && n2==1 && n3==1 && compAngleX<=-15 &&
compAngleY<=29 && compAngleY<=-18){a[0]=20 ; radio.write(&a,
sizeof(a));}
sizeof(a));}
- Trang 41-
if(n1==0 && n2==0 && n3==1 && compAngleX>=-15 &&
compAngleX<=17 && compAngleY<=29 && compAngleY>=-18){a[0]=5
; radio.write(&a, sizeof(a));}
if(n1==0 && n2==0 && n3==1 && compAngleX>=17 &&
compAngleY<=29 && compAngleY>=-18){a[0]=13 ; radio.write(&a,
sizeof(a));}
; radio.write(&a, sizeof(a));}
if(n1==0 && n2==1 && n3==0 && compAngleX>=17 &&
compAngleY<=29 && compAngleY>=-18){a[0]=14 ; radio.write(&a,
sizeof(a));}
if(n1==0 && n2==1 && n3==0 && compAngleX<=-15 &&
compAngleY<=29 && compAngleY<=-18){a[0]=22 ; radio.write(&a,
sizeof(a));}
sizeof(a));}
- Trang 42-
if(n1==0 && n2==1 && n3==0 && compAngleX>=-15 &&
compAngleX<=17 && compAngleY>=29 ){a[0]=38 ; radio.write(&a,
sizeof(a));}
; radio.write(&a, sizeof(a));}
if(n1==1 && n2==0 && n3==1 && compAngleX>=17 &&
compAngleY<=29 && compAngleY>=-18){a[0]=15 ; radio.write(&a,
sizeof(a));}
sizeof(a));}
- Trang 43-
if(n1==1 && n2==0 && n3==1 && compAngleX>=-15 &&
compAngleX<=17 && compAngleY<=-18){a[0]=31 ; radio.write(&a,
sizeof(a));}
Serial.println(a[0]);
#if 0
double temperature = (double)tempRaw / 340.0 + 36.53;
#endif
}
3. Code giao tiếp I2C:
const uint8_t IMUAddress = 0x68;
const uint16_t I2C_TIMEOUT = 1000;
}
uint8_t i2cWrite(uint8_t registerAddress, uint8_t *data, uint8_t length, bool
sendStop) {
Wire.beginTransmission(IMUAddress);
- Trang 44-
Wire.write(registerAddress);
Wire.write(data, length);
}
uint8_t i2cRead(uint8_t registerAddress, uint8_t *data, uint8_t nbytes) {
uint32_t timeOutTimer;
Wire.beginTransmission(IMUAddress);
Wire.write(registerAddress); uint8_t rcode =
Wire.endTransmission(false); if (rcode) {
}
Wire.requestFrom(IMUAddress, nbytes, (uint8_t)true);
for (uint8_t i = 0; i < nbytes; i++) { if (Wire.available())
data[i] = Wire.read(); else {
timeOutTimer = micros();
while (((micros() - timeOutTimer) < I2C_TIMEOUT) &&
!Wire.available()); if
(Wire.available())
data[i] = Wire.read();
else {
Serial.println(F("i2cRead timeout"));
return 5;
- Trang 45-
}
}
return 0;
}
- Trang 46-