intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

Sáng kiến kinh nghiệm THPT: Giúp học sinh tiếp cận các bài toán thực tiễn khi dạy lập trình C++ thông qua nền tảng Arduino

Chia sẻ: _ _ | Ngày: | Loại File: PDF | Số trang:43

15
lượt xem
5
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Mục đích nghiên cứu sáng kiến "Giúp học sinh tiếp cận các bài toán thực tiễn khi dạy lập trình C++ thông qua nền tảng Arduino" nhằm giúp học sinh tiếp cận bài toán thực tiễn thông qua ngôn ngữ lập trình; Rèn luyện cho các em khả năng biết vận dụng các kiến thức đã học về lập trình để giải quyết một số bài toán thực tiễn đời sống hàng ngày thường gặp.

Chủ đề:
Lưu

Nội dung Text: Sáng kiến kinh nghiệm THPT: Giúp học sinh tiếp cận các bài toán thực tiễn khi dạy lập trình C++ thông qua nền tảng Arduino

  1. SÁNG KIẾN KINH NGHIỆM Giúp học sinh tiếp cận các bài toán thực tiễn khi dạy lập trình C++ thông qua nền tảng Arduino Lĩnh vực: Tin học 1
  2. MỤC LỤC PHẦN I. ĐẶT VẤN ĐỀ............................................................................................................................................... 5 I. Lý do chọn đề tài ................................................................................................................................................. 5 II. Mục đích nghiên cứu ......................................................................................................................................... 6 III. Đối tượng nghiên cứu....................................................................................................................................... 6 IV. Phạm vi nghiên cứu .......................................................................................................................................... 6 V. Phương pháp nghiên cứu .................................................................................................................................. 6 VI. Tính mới của đề tài........................................................................................................................................... 6 PHẦN II. NỘI DUNG NGHIÊN CỨU ..................................................................................................................... 7 I. Cơ sở lí luận ......................................................................................................................................................... 7 1. Khái niệm năng lực ........................................................................................................................................ 7 2. Năng lực đặc thù môn Tin học theo CT CDPT 2018 .................................................................................. 7 3. Năng lực “Giải quyết vấn đề với sự hỗ trợ của công nghệ thông tin và truyền thông” ......................... 10 II. Cơ sở thực tiễn ................................................................................................................................................. 10 1. Việc dạy và học lập trình ở các trường THPT hiện nay ........................................................................... 10 2. Các cuộc thi khoa học kỹ thuật ................................................................................................................... 11 3. Khảo sát đánh giá thực trạng về mức độ yêu thích học lập trình và mối quan tâm của học sinh về các ứng dụng của lập trình trong thực tiễn. ......................................................................................................... 11 III. Nền tảng Ardunio ........................................................................................................................................... 11 1. Arduino là gì? ............................................................................................................................................... 11 2. Cấu tạo của Arduino .................................................................................................................................... 12 3. Khả năng kết nối của Arduino .................................................................................................................... 12 4. Ứng dụng của nền tảng Arduino ................................................................................................................ 12 5. Arduino mang lại gì cho nền giáo dục? ...................................................................................................... 13 6. Một số IDE thông dụng ............................................................................................................................... 13 7. Tổng hợp các lệnh hữu ích để code Arduino ............................................................................................. 13 IV. Một số bài toán thực tiễn lập trình trên mạch Arduino .............................................................................. 16 1. Đèn tín hiệu giao thông ................................................................................................................................ 16 2. Nhấn nút còi kêu .......................................................................................................................................... 17 3. Đèn sáng đuổi nhau ...................................................................................................................................... 19 4. Bật/tắt đèn theo ánh sáng môi trường ........................................................................................................ 21 2
  3. 5. Chữ số trên đồng hồ điện tử (Led 7 thanh) ................................................................................................ 23 6. Xe điều khiển từ xa ...................................................................................................................................... 26 7. Xe tránh vật cản ........................................................................................................................................... 30 V. Thực nghiệm sư phạm ..................................................................................................................................... 34 1. Mục đích thực nghiệm ................................................................................................................................. 34 2. Nội dung thực nghiệm.................................................................................................................................. 34 2.1. Dạy học kết hợp ví dụ mô phỏng các bài toán thực tiễn sử dụng mạch Arduino trong các tiết học. ..... 34 2.2. Hướng dẫn học sinh tìm hiểu bài toán thực tiễn qua internet ................................................................ 35 2.3. Giới thiệu và chia sẻ cho học sinh biết đến các sản phẩm có tính ứng dụng thực tiễn cao trong các cuộc thi về nghiên cứu khoa học. ........................................................................................................................... 36 3. Tổ chức thực nghiệm ................................................................................................................................... 38 4. Kết quả đạt được .......................................................................................................................................... 38 5. Một số lưu ý an toàn khi làm việc với các linh kiện .................................................................................. 39 6. Một số bài toán thực tiễn lập trình trên mạch Arduino đã được thực hiện trong quá trình thực nghiệm. ........................................................................................................................................................................... 40 PHẦN III. KẾT LUẬN ............................................................................................................................................. 41 I. Quá trình nghiên cứu ........................................................................................................................................ 41 II. Ý nghĩa của đề tài ............................................................................................................................................ 41 III. Kiến nghị, đề xuất .......................................................................................................................................... 41 IV. Kết luận khoa học ........................................................................................................................................... 42 TÀI LIỆU THAM KHẢO......................................................................................................................................... 43 PHỤ LỤC ................................................................................................................................................................... 43 3
  4. CÁC TỪ VIẾT TẮT STT Từ viết tắt Ý nghĩa 1 KHKT Khoa học kĩ thuật 2 PPDH Phương pháp dạy học 3 HS Học sinh 4 GV Giáo viên 5 THPT Trung học phổ thông 6 GD&ĐT Giáo dục và đào tạo 7 CT Chương trình 8 GDPT Giáo dục phổ thông 4
  5. PHẦN I. ĐẶT VẤN ĐỀ I. Lý do chọn đề tài Giáo dục Việt Nam trong những năm gần đây đang tập trung đổi mới, hướng tới một nền giáo dục tiến bộ, hiện đại, bắt kịp xu hướng của các nước trong khu vực và trên thế giới. Một trong những mục tiêu lớn của giáo dục nước ta hiện nay đó là hoạt động giáo dục phải gắn liền với thực tiễn. Chính vì vậy, GDPT nước ta hiện nay đang thực hiện bước chuyển từ chương trình giáo dục tiếp cận nội dung sang tiếp cận năng lực của người học, nghĩa là từ chỗ quan tâm đến việc học sinh học được cái gì đến chỗ học sinh vận dụng được cái gì qua việc học. Để đảm bảo được điều đó, nhất định phải thực hiện thành công việc chuyển từ phương pháp dạy học theo lối “truyền thụ một chiều” sang dạy cách học, cách vận dụng kiến thức, rèn luyện kỹ năng hình thành năng lực và phẩm chất; đồng thời phải chuyển cách đánh giá kết quả giáo dục từ nặng về kiểm tra trí nhớ sang kiểm tra, đánh giá năng lực vận dụng kiến thức giải quyết vấn đề. Trong quá trình đổi mới căn bản, toàn diện giáo dục và đào tạo, công tác nghiên cứu khoa học là hoạt động không thể thiếu trong trường phổ thông. Đây là một hoạt động giúp học sinh áp dụng những kiến thức đã học vào cuộc sống, học đi đôi với hành; đồng thời là cách tiếp cận, làm quen với phương pháp, kỹ năng nghiên cứu khoa học, rèn luyện cách làm việc độc lập, làm việc nhóm và phát huy tính tích cực, chủ động, tạo hứng thú trong học tập. Từ đó, phát hiện các tài năng, là cơ sở để xây dựng và phát triển đội ngũ nhân lực chất lượng cao cho xã hội. Chương trình Tin học 11 hiện nay còn một số hạn chế: Áp dụng công thức toán học quá nhiều; Học sinh phải có kiến thức tốt về toán học thì mới giải được các bài tập trong sách giáo khoa; Học sinh chưa hiểu được lập trình để làm gì ngoài việc tính toán với các con số; Học sinh sẽ tự hỏi lập trình có ứng dụng như thế nào trong thực tế bởi đa phần các bài tập trong sách đều liên quan đến tính toán hoặc thuần túy về toán học, không gắn liền với thực tiễn… Vì thế để học sinh có thể vận dụng kiến thức của môn học vào giải quyết những vấn đề thực tiễn là rất khó nếu chỉ căn cứ vào lý thuyết thuần túy do giáo viên truyền đạt. Từ thực tiễn công tác giảng dạy, tôi nhận thấy khi dạy lập trình, môn học mà đòi hỏi phải tư duy sáng tạo nhiều thì cần phải có một phương pháp dạy học phù hợp nhằm đạt hiệu quả cao, giúp học sinh có những trải nghiệm thú vị hơn với môn học. Vì vậy việc áp dụng các phương pháp để tạo sự hứng thú, yêu thích môn học, làm cho học sinh có thể nắm được nội dung bài học ngay tại lớp, nắm bắt kiến thức một cách logic và có hệ thống,… đặc biệt giúp học sinh biết cách tiếp cận ngôn ngữ lập trình để giải quyết các bài toán ứng dụng vào thực tiễn, khơi dậy niềm đam mê nghiên cứu khoa học trong mỗi học sinh. Qua đây tôi muốn chia sẻ một kinh nghiệm nhỏ mà bản thân đã có được trong quá trình dạy học, đó là “Giúp học sinh tiếp cận các bài toán thực tiễn khi dạy lập trình C++ thông qua nền tảng Arduino”. 5
  6. II. Mục đích nghiên cứu - Giúp học sinh tiếp cận bài toán thực tiễn thông qua ngôn ngữ lập trình. - Rèn luyện cho các em khả năng biết vận dụng các kiến thức đã học về lập trình để giải quyết một số bài toán thực tiễn đời sống hàng ngày thường gặp. - Hình thành dần cho các em một thói quen biết đặt (giải quyết) những vấn đề cuộc sống dưới góc độ tin học với câu hỏi: Nguồn gốc của bài toán (hay tình huống thực tiễn, bài toán thực tiễn) xuất phát từ đâu? Vận dụng kiến thức nào để giải quyết nó? - Từng bước tạo ra niềm đam mê và xóa bỏ dần tâm lý e ngại của các em học sinh khi học lập trình. - Khơi dậy niềm đam mê nghiên cứu khoa học; kích thích sự sáng tạo của học sinh; từng bước hướng các em biết nghiên cứu và vận dụng kiến thức của các môn học vào giải quyết những vấn đề của thực tiễn đời sống. III. Đối tượng nghiên cứu Học sinh lớp 11 trường THPT Tương Dương 1 IV. Phạm vi nghiên cứu - Nghiên cứu việc dạy và học ngôn ngữ lập trình C++ trong chương trình phổ thông - Một số bài toán thực tiễn áp dụng khi dạy lập trình. V. Phương pháp nghiên cứu - Nghiên cứu lý luận: Tìm hiểu, nghiên cứu các tài liệu về các vấn đề liên quan đến đề tài sáng kiến kinh nghiệm. - Điều tra quan sát: Thực trạng về việc dạy học lập trình ở trường THPT và khả năng tiếp cận bài toán thực tiễn của học sinh trung học phổ thông. - Thực nghiệm sư phạm: Tổ chức thực nghiệm sư phạm để xem xét tính khả thi và hiệu quả của các biện pháp sư phạm đã đề xuất. VI. Tính mới của đề tài - Góp phần thực hiện thành công đổi mới CT GDPT 2018 về phát triển năng lực tin học cho học sinh, đặc biệt là năng lực “Giải quyết vấn đề với sự hỗ trợ của công nghệ thông tin và truyền thông”. - Giúp học sinh thấy được mối quan hệ tương hỗ giữa tin học với thực tiễn và ngược lại. - Góp phần đổi mới phương pháp giáo dục phát huy tính tích cực, chủ động, sáng tạo của học sinh, bồi dưỡng cho học sinh phương pháp tự học, vận dụng kĩ năng, vận dụng kiến thức,… đem lại niềm vui, hứng thú và trách nhiệm học tập cho 6
  7. học sinh. - Khơi gợi niềm đam mê nghiên cứu khoa học và giúp học sinh phát hiện khả năng của bản thân. - Giúp cho HS có những hiểu biết và hình dung ban đầu về trí tuệ nhân tạo. - Góp phần định hướng giáo dục STEM trong Tin học. - Sáng kiến có thể được sử dụng làm tài liệu tham khảo cho giáo viên Tin nhằm góp phần nâng cao hiệu quả dạy học môn Tin ở trường trung học phổ thông. PHẦN II. NỘI DUNG NGHIÊN CỨU I. Cơ sở lí luận 1. Khái niệm năng lực Năng lực là thuộc tính cá nhân được hình thành, phát triển nhờ vào các tố chất và quá trình học tập, rèn luyện, cho phép con người huy động tổng hợp các kinh nghiệm, kĩ năng và các thuộc tính cá nhân khác như hứng thú, niềm tin, ý chí,... thực hiện đạt kết quả các hoạt động trong những điều kiện cụ thể. Chương trình giáo dục phổ thông 2018 đã xác định mục tiêu hình thành và phát triển cho học sinh các năng lực cốt lõi bao gồm các năng lực chung và các năng lực đặc thù. Năng lực chung là những năng lực cơ bản, thiết yếu hoặc cốt lõi, làm nền tảng cho mọi hoạt động của con người trong cuộc sống và lao động nghề nghiệp. Năng lực đặc thù là những năng lực được hình thành và phát triển trên cơ sở các năng lực chung theo định hướng chuyên sâu, riêng biệt trong các loại hình hoạt động, công việc hoặc tình huống, môi trường đặc thù, cần thiết cho những hoạt động chuyên biệt, đáp ứng yêu cầu của một hoạt động như toán học, âm nhạc, mĩ thuật, thể thao... - Các năng lực chung được hình thành, phát triển thông qua các môn học và hoạt động giáo dục: năng lực tự chủ và tự học, năng lực giao tiếp và hợp tác, năng lực giải quyết vấn đề và sáng tạo; - Các năng lực đặc thù được hình thành, phát triển chủ yếu thông qua một số môn học và hoạt động giáo dục nhất định: năng lực ngôn ngữ, năng lực tính toán, năng lực khoa học, năng lực công nghệ, năng lực tin học, năng lực thẩm mĩ và năng lực thể chất. 2. Năng lực đặc thù môn Tin học theo CT CDPT 2018 Năng lực tin học bao gồm năm thành phần năng lực sau đây: - NLa: Sử dụng và quản lí các phương tiện công nghệ thông tin và truyền thông; - NLb: Ứng xử phù hợp trong môi trường số; - NLc: Giải quyết vấn đề với sự hỗ trợ của công nghệ thông tin và truyền thông; - NLd: Ứng dụng công nghệ thông tin và truyền thông trong học và tự học; 7
  8. - NLe: Hợp tác trong môi trường số * Chương trình môn Tin học ở cấp THPT Chương trình môn Tin học ở cấp trung học phổ thông thể hiện sự phân hoá sâu hơn về định hướng nghề nghiệp. Do vậy, chương trình có các yêu cầu cần đạt chung về năng lực tin học bắt buộc đối với mọi học sinh và có các yêu cầu bổ sung riêng tương ứng với học sinh chọn định hướng Tin học ứng dụng hoặc Khoa học máy tính. a) Yêu cầu chung Thành phần Biểu hiện năng lực NLa Phối hợp và sử dụng được đúng cách các hệ thống kĩ thuật số thông dụng; mô tả được chức năng các bộ phận chính bên trong máy tính, những thông số cơ bản của các thiết bị số; bước đầu tuỳ chỉnh được chế độ hoạt động cho máy tính; trình bày được khái quát mối quan hệ giữa phần cứng, hệ điều hành và chương trình ứng dụng; biết sử dụng một số chức năng chủ yếu trong hệ điều hành để nâng cao hiệu quả sử dụng máy tính; so sánh được mạng LAN và Internet, biết được khái niệm IoT; giới thiệu được chức năng cơ bản của một số thiết bị và giao thức mạng thông dụng, sử dụng được một số ứng dụng thiết thực trên mạng; nhận biết được vai trò quan trọng của các hệ thống tự động hoá xử lí và truyền thông tin trong xã hội tri thức. NLb Trình bày và nêu được ví dụ minh họa một số quy định về quyền thông tin và bản quyền, tránh được những vi phạm khi sử dụng thông tin, tài nguyên số; hiểu khái niệm, cơ chế phá hoại, lây lan của phần mềm độc hại và cách phòng chống; biết cách tự bảo vệ thông tin, dữ liệu và tài khoản cá nhân; hiểu được rõ ràng hơn những mặt trái của Internet, nhận diện được những hành vi lừa đảo, thông tin mang nội dung xấu và biết cách xử lí phù hợp; thể hiện tính nhân văn khi tham gia thế giới ảo; có hiểu biết tổng quan về nhu cầu nhân lực, tính chất công việc của các ngành nghề trong lĩnh vực tin học cũng như các ngành nghề khác có sử dụng ICT; sẵn sàng, tự tin, có tinh thần trách nhiệm và sáng tạo khi tham gia các hoạt động tin học. NLc Biết được các cấu trúc dữ liệu cơ bản, các thuật toán sắp xếp và tìm kiếm cơ bản, viết được chương trình, tạo được trang web đơn giản; biết khái niệm hệ cơ sở dữ liệu, biết kiến trúc hệ cơ sở dữ liệu tập trung và phân tán; sử dụng được máy tìm kiếm để khai thác thông tin một cách hiệu quả, an toàn và hợp pháp; tìm kiếm, lựa chọn được 8
  9. thông tin phù hợp và tin cậy; sử dụng được các công cụ kĩ thuật số để tổ chức, chia sẻ dữ liệu và thông tin trong quá trình phát hiện và giải quyết vấn đề; có những hiểu biết và hình dung ban đầu về trí tuệ nhân tạo và nêu được một số ứng dụng điển hình của trí tuệ nhân tạo. NLd Khai thác được các dịch vụ tra cứu và trao đổi thông tin, các nguồn học liệu mở để cập nhật kiến thức, hỗ trợ học tập và tự học; sử dụng được một số phần mềm hỗ trợ học tập, tự tin, sẵn sàng tìm hiểu những phần mềm tương tự, qua đó có ý thức và khả năng tìm kiếm tri thức mới, tìm hiểu về nghề mình quan tâm. NLe Biết cách hợp tác trong công việc; sử dụng được phần mềm để lập kế hoạch, phân chia và quản lí công việc; lựa chọn và sử dụng được những kênh phù hợp để trao đổi thông tin, thảo luận, hợp tác và mở mang tri thức; giao tiếp, hoà nhập được một cách an toàn trong môi trường số, biết tránh các tác động xấu thông qua một số biện pháp phòng tránh cơ bản. b) Yêu cầu bổ sung theo định hướng ICT và CS Thành Biểu hiện phần năng lực Định hướng ICT Định hướng CS NLa và – Kết nối được PC với các thiết bị số – Hiểu biết được nguyên thông dụng lí hoạt động của hệ thống NLc – Biết tổ chức lưu trữ, khai thác được thông tin bao gồm máy tính dữ liệu phục vụ bài toán quản lí đơn và các thiết bị số khác. giản trong thực tế. – Hiểu được các phép – Sử dụng được một số chức năng cơ toán nhị phân cơ bản và bản của phần mềm quản lí dự án. ứng dụng hệ nhị phân trong tin học. – Biết bảo vệ dữ liệu, cài đặt hay gỡ bỏ được phần mềm trên máy tính và thiết bị – Trình bày được sơ lược di động khi cần thiết. việc thiết kế mạng. 9
  10. – Sử dụng được các phần mềm thiết kế – Biết được mục tiêu và đồ hoạ, chỉnh sửa ảnh và làm phim một số thành tựu của Khoa hoạt hình để tạo ra sản phẩm số phục học dữ liệu và Học máy. vụ học tập và đáp ứng sở thích của cá – Biết được vai trò của phần nhân. mềm mô phỏng. – Sử dụng thành thạo các phần mềm tin học văn phòng, tạo được sản phẩm số có chất lượng thông qua các dự án giải quyết vấn đề thực tế. –Phân tích được dữ liệu với phần mềm bảng tính. 3. Năng lực “Giải quyết vấn đề với sự hỗ trợ của công nghệ thông tin và truyền thông” - Biết được các cấu trúc dữ liệu cơ bản, các thuật toán sắp xếp và tìm kiếm cơ bản, viết được chương trình, tạo được trang web đơn giản; - Biết khái niệm hệ cơ sở dữ liệu, biết kiến trúc hệ cơ sở dữ liệu tập trung và phân tán; sử dụng được máy tìm kiếm để khai thác thông tin một cách hiệu quả, an toàn và hợp pháp; - Tìm kiếm, lựa chọn được thông tin phù hợp và tin cậy; - Sử dụng được các công cụ kĩ thuật số để tổ chức, chia sẻ dữ liệu và thông tin trong quá trình phát hiện và giải quyết vấn đề; - Có những hiểu biết và hình dung ban đầu về trí tuệ nhân tạo và nêu được một số ứng dụng điển hình của trí tuệ nhân tạo. II. Cơ sở thực tiễn 1. Việc dạy và học lập trình ở các trường THPT hiện nay Việc dạy học lập trình ở các trường THPT phần lớn đang chú trọng giải quyết các bài toán về toán học. Học sinh chưa hiểu được lập trình để làm gì ngoài việc tính toán với các con số; Học sinh sẽ tự hỏi lập trình có ứng dụng như thế nào trong thực tế bởi đa phần các bài tập trong sách đều liên quan đến tính toán hoặc thuần túy về toán học, không gắn liền với thực tiễn,… Vì thế để học sinh có thể vận dụng kiến thức của môn học vào giải quyết những vấn đề thực tiễn là rất khó nếu chỉ căn cứ vào lý thuyết thuần túy do giáo viên truyền đạt. Khi dạy học để mô phỏng kiến thức bài học giáo viên chủ yếu dựa vào các phần mềm để test thử các câu lệnh mà chưa có ví dụ trực quan để mô phỏng. Vì thế học sinh rất khó khăn trong việc tiếp thu kiến thức và cảm thấy rất nhàm chán khi học về lập trình. 10
  11. 2. Các cuộc thi khoa học kỹ thuật Trong những năm gần đây các cuộc thi khoa học kỹ thuật, sáng tạo thanh thiếu niên nhi đồng, kiến tạo tương lai, đề án 1655,… ngày càng được lan tỏa khắp các vùng miền với sự tham gia đông đảo của các em học sinh. Cuộc thi nhằm khuyến khích học sinh trung học nghiên cứu khoa học; sáng tạo kĩ thuật, công nghệ và vận dụng kiến thức của các môn học vào giải quyết những vấn đề thực tiễn; góp phần đổi mới hình thức tổ chức dạy học gắn với phát triển văn hóa đọc; thúc đẩy giáo viên tự bồi dưỡng nâng cao năng lực chuyên môn, nghiệp vụ,... Cuộc thi là minh chứng điển hình cho việc thực hành, trải nghiệm, ứng dụng kiến thức vào giải quyết một đề tài cụ thể có tính ứng dụng thực tiễn. Điều đó khích lệ, tạo động lực cho giáo viên thay đổi để học sinh cũng thay đổi trong việc học đi đôi với hành. Tại trường THPT Tương Dương 1 số lượng học sinh biết đến và tham gia vào các cuộc thi về khoa học kĩ thuật là chưa nhiều, đặc biệt là lĩnh vực lập trình còn rất hạn chế. 3. Khảo sát đánh giá thực trạng về mức độ yêu thích học lập trình và mối quan tâm của học sinh về các ứng dụng của lập trình trong thực tiễn. Trên đây là kết quả sát thực trạng tại trường THPT Tương Dương 1. Nhìn vào kết quả khảo sát ở trên ta thấy rằng mức độ yêu thích học lập trình và mối quan tâm của học sinh về những ứng dụng của lập trình trong thực tiễn là chưa nhiều. III. Nền tảng Ardunio 1. Arduino là gì? Arduino là nền tảng tạo mẫu điện tử mã nguồn mở, được sử dụng nhằm xây dựng các ứng dụng điện tử tương tác với nhau hoặc với môi trường được thuận tiện, dễ dàng hơn. Nền tảng mẫu này giống như một máy tính thu nhỏ, giúp người dùng lập trình và thực hiện các dự án điện tử mà không cần phải đến các công cụ chuyên dụng để phục vụ việc nạp code. 11
  12. Phần mềm này tương tác với thế giới bên ngoài thông qua các cảm biến điện tử, đèn và động cơ. 2. Cấu tạo của Arduino Phần cứng Arduino là bảng mạch nguồn mở, cùng bộ vi xử lý và chân đầu vào/ đầu ra (I/ O) để liên lạc, điều khiển các đối tượng vật lý (LED, servo, nút, v.v.). Bảng mạch thường được cấp nguồn qua USB hoặc nguồn điện bên ngoài, cho phép cung cấp năng lượng cho các phần cứng, cảm biến khác. Là phần mềm nguồn mở tương tự như C++. Môi trường phát triển tích hợp Arduino (IDE – Integrated Development Environment) cho phép bạn soạn thảo, biên dịch code, nạp chương trình cho board. 3. Khả năng kết nối của Arduino - Arduino hoạt động độc lập. - Kết nối với một máy tính, cho phép truy cập dữ liệu cảm biến từ thế giới bên ngoài và cung cấp thông tin phản hồi. - Các Arduino có thể liên kết với nhau. - Mạch điều khiển Arduino có thể kết nối với các thiết bị điện tử khác. - Arduino có khả năng kết nối với các chip điều khiển. - Lập trình Arduino IDE có thể kết nối với nhiều nền tảng. Điều này đồng nghĩa với việc bạn có thể khởi động trên Windows, Macintosh OSX điều hành Linux (các hệ thống vi điều khiển khác chỉ chạy Windows). 4. Ứng dụng của nền tảng Arduino Một số ứng dụng của Arduino trong đời sống phải kể đến như: - Điều khiển các thiết bị cảm biến âm thanh, ánh sáng. - Làm máy in 3D. - Làm đàn bằng ánh sáng. - Làm lò nướng bánh biết tweet thông báo khi bánh đã chín. - Arduino có khả năng đọc các thiết bị cảm biến, điều khiển động cơ,… Chính vì thế mà mã nguồn mở này được dùng để làm bộ xử lý trung tâm của rất nhiều loại robot. - Arduino còn có thể được sử dụng để tương tác với Joystick, màn hình,… khi chơi các game như Tetrix, phá gạch, Mario,… - Dùng để chế tạo ra máy bay không người lái. - Điều khiển đèn giao thông, làm hiệu ứng đèn Led nhấp nháy trên các biển quảng cáo,… 12
  13. - Ngoài ra, Arduino còn rất nhiều ứng dụng hữu ích khác tùy thuộc vào sự sáng tạo của người sử dụng. 5. Arduino mang lại gì cho nền giáo dục? Với sự phát triển nhanh chóng của mã nguồn mở Arduino IDE, việc học đã không còn là khó khăn cho những bạn đam mê về điện tử, lập trình. Vì vậy, hiện nay Arduino đã được các trường THCS, THPT, Cao Đẳng, Đại Học đưa vào giảng dạy và làm các đề tài và hoạt động ngoại khóa của nhà trường. Là tiền đề thúc đẩy sự ham mê học hỏi và tiếp cận đến công nghệ một cách nhanh nhất. Với những ý tưởng từng lóe lên trong đầu (làm một chú Robot nhện, xe điều khiển từ xa, ngôi nhà thông minh…) và nếu muốn thực hiện nó mà chưa biết bắt đầu từ đầu, thì Arduino là một giải pháp hoàn hảo. Không cần phải là một coder chuyên nghiệp cũng có thể làm được tất, đó là điều vi diệu mà Arduino IDE mang lại. 6. Một số IDE thông dụng - Arduino IDE: Hỗ trợ ngôn ngữ C/C++. Bất kỳ đoạn code nào của C/C++ thì Arduino IDE đều có thể nhận dạng, giúp các lập trình viên thuận tiện trong việc thiết kế chương trình cho các bo mạch Arduino (Các ví dụ trong bài viết sử dụng IDE này). - Makeblock IDE và VEXcode IDE: Hỗ trợ ngôn ngữ lập trình Python và ngôn ngữ lập trình trực quan Scratch. - EasyCode IDE: Hỗ trợ ngôn ngữ lập trình trực quan Blocky. Ngôn ngữ lập trình trực quan đóng vai trò trung gian giữa người lập trình và các ngôn ngữ như C/C++. 7. Tổng hợp các lệnh hữu ích để code Arduino 7.1. Những lệnh Arduino IDE cơ bản: Ngay khi bạn mở Arduino IDE, bạn sẽ được chào đón bởi các lệnh setup() và loop(). Đây là hai ví dụ duy nhất về sketch mà bạn tìm thấy trong hầu hết tất cả các code Arduino. Setup(): Mỗi khi sketch bắt đầu, lệnh setup sẽ giúp bạn khởi tạo các biến và bắt đầu sử dụng các thư viện. Loop(): Một vòng lặp theo sau setup và thực sự là trái tim của chương trình, khiến nó phản hồi vô hạn với bất kỳ logic nào. Break: Nếu bạn muốn thoát khỏi một lệnh, bạn cần nhấn break If: Các lệnh logic khởi tạo một hành động mỗi khi một điều kiện được thỏa mãn. return: Trả về một giá trị nhất định. while: Một vòng lặp khác diễn ra liên tục trong một điều kiện nhất định. 13
  14. goto: Đúng như tên gọi của nó, lệnh này cho phép bạn đi đến một dòng nhất định trong code 7.2. Boolean và các toán tử số học Bên cạnh sketch và các lệnh kiểm soát, bạn phải biết một số Boolean và toán tử số học để chỉ huy các chương trình. Các toán hạng: Bằng (=), phép cộng (+), phép trừ (-), phép nhân (*) và phép chia (/). Các toán hạng nâng cao: Không bằng (!=), Nhỏ hơn hoặc bằng (=), phần dư (%). Các biến quan trọng: Trong một số trường hợp, bạn cần đưa ra một vài biến để xử lý những phép toán logic khác nhau. Những biến quan trọng là: HIGH|LOW: Điều này mang lại giá trị cuối cùng cao và thấp cho các hằng số. LED_BUILTIN: Đưa ra số lượng chân LED (LED pin) 7.3. Các hàm Arduino tích hợp sẵn digitalRead(): Đọc giá trị từ một pin kỹ thuật số nhất định. Ngoài ra còn có digitalWrite(). pinMode(PIN_NUMBER, INPUT/OUTPUT): Thiết lập pin tại vị trí PIN_NUMBER thành INPUT hoặc OUTPUT. pinMode(PIN_NUMBER, INPUT_PULLUP): Thiết lập pin tại vị trí PIN_NUMBER trở thành đầu vào bằng cách sử dụng điện trở kéo lên (pull-up resistor) tích hợp của bo mạch Arduino. analogRead(PIN_NUMBER): Đọc số chân analog PIN_NUMBER và trả về một số nguyên từ 0 đến 1023. analogWrite(PIN_NUMBER, VALUE): Giả lập analog output VALUE bằng cách sử dụng PWM trên PIN_NUMBER (Lưu ý: Chỉ khả dụng trên các chân 3, 5, 6, 9, 10 và 11). analogReference(DEFAULT): Sử dụng điện áp tham chiếu mặc định (5V hoặc 3.3V tùy thuộc vào điện áp bo mạch). analogReference(INTERNAL): Sử dụng điện áp tham chiếu bên trong (1.1v cho ATmega168/328p, 2.56 cho ATmega 32U4/8). analogReference(EXTERNAL): Sử dụng điện áp được áp dụng cho chân AREF làm điện áp tham chiếu (Lưu ý: chỉ 0-5V). 7.4. Các hàm toán học min(i, j): Trả về giá trị thấp nhất trong hai giá trị i và j max(i, j): Trả về giá trị cao nhất trong hai giá trị i và j 14
  15. abs(i): Trả về giá trị tuyệt đối của i sin(angle): Trả về sin của một góc tính bằng radian cos(angle): Trả về cosin của một góc tính bằng radian tan(angle): Trả về tang của một góc tính bằng radian sqrt(i): Trả về căn bậc hai của i pow(cơ số, số mũ): Tính lũy thừa bậc (số mũ) của (cơ số). constrain(i, minval, maxval): Ràng buộc giá trị i giữa minval (giá trị nhỏ nhất) và maxval (giá trị lớn nhất) map (val, fromL, fromH, toL, toH): Chuyển đổi val từ phạm vi này sang phạm vi khác random(i): Trả về một số nguyên dài ngẫu nhiên nhỏ hơn i random(i, j): Trả về một số nguyên dài ngẫu nhiên giữa i và j randomSeed(k): Sử dụng giá trị k để seed hàm random() 7.5. Giao tiếp nối tiếp (serial communication) Serial.begin(speed): Bắt đầu giao tiếp nối tiếp ở tốc độ xác định Serial.end(): Kết nối giao tiếp nối tiếp Serial.print(DATA): Xuất DATA vào cổng nối tiếp. DATA có thể là ký tự, chuỗi, số nguyên và số thực dấu phẩy động (floating point number) Serial.available(): Trả về số ký tự có sẵn để đọc trong bộ đệm nối tiếp Serial.read(): Đọc ký tự đầu tiên trong bộ đệm nối tiếp (trả về -1 nếu không có dữ liệu) Serial.write(DATA): Ghi DATA vào bộ đệm nối tiếp. DATA có thể là một ký tự, số nguyên hoặc array (mảng) Serial.flush(): Xóa bộ đệm nối tiếp sau khi giao tiếp chiều đi hoàn tất 7.6. Servo Servo myServo: Tạo biến myServo của loại Servo myServo.attach(PIN_NUMBER): myServo được liên kết với pin tại vị trí PIN_NUMBER myServo.write(angle): Ghi một góc từ 0 đến 180 cho servo gắn với myServo myServo.writeMicroseconds(uS): Ghi một giá trị tính bằng micro giây vào servo được gắn với myServo (thường từ 1000 đến 2000 với 1500 là điểm giữa) myServo.read(): Trả về một số nguyên chứa góc hiện tại của servo trong khoảng từ 0 - 180 15
  16. myServo.attached(): Trả về true nếu servo được gắn vào pin myServo.detach(): Tách myServo bằng một pin đính kèm IV. Một số bài toán thực tiễn lập trình trên mạch Arduino 1. Đèn tín hiệu giao thông 1.1. Mô hình thực tế: Đèn tín hiệu giao thông đóng vai trò quan trọng trong hệ thống giao thông đô thị. Hệ thống này thường được lắp đặt tại các ngã 3, ngã 4 hay các cung đường vị trí đường đặc biệt. Cột đèn thường sẽ có 3 màu đèn gồm: Đỏ, Vàng, Xanh. Mỗi màu chứa đựng một hiệu lệnh riêng. Hệ thống đèn giao thông sẽ thay lực lượng cảnh sát giao thông phân luồng chỉ dẫn. Người tham gia giao thông chỉ cần quan sát và tuân thủ đúng theo hiệu lệnh chỉ dẫn này. 1.2. Mô hình Tin học: Lập trình điều khiển LED tín hiệu giao thông. 1.3. Sơ đồ thuật toán: Bắt đầu Cài đặt chức năng của các chân Đèn xanh Chờ 30 giây Đèn vàng Chờ 3 giây Đèn đỏ Chờ 30 giây 1.4. Các linh kiện cần thiết và sơ đồ đấu nối: Tên linh kiện Số lượng Sơ đồ đấu nối Arduino Uno 1 16
  17. Led 3 Điện trở 3 Bo cắm 1 Dây cắm 7 Nguồn 1.5. Giải quyết vấn đề bằng lập trình: Code void setup() { pinMode(13, OUTPUT); pinMode(12, OUTPUT); pinMode(11, OUTPUT); } void loop() { digitalWrite(11, HIGH); delay(30000); //Chờ 30 giây digitalWrite(11, LOW); digitalWrite(12, HIGH); delay(3000); //Chờ 3 giây digitalWrite(12, LOW); digitalWrite(13, HIGH); delay(30000); //Chờ 30 giây digitalWrite(13, LOW); } 2. Nhấn nút còi kêu 2.1. Mô hình thực tế: Còi điện thường được sử dụng trong hệ thống báo động, chuông cửa, chuông ở trường học, các còi xe máy, ô tô,... 2.2. Mô hình Tin học: Lập trình điều khiển còi kêu bằng nút nhấn. 17
  18. 2.3. Sơ đồ thuật toán: Bắt đầu Cài đặt chức năng của các chân Đ Nút được nhấn Còi kêu S Còi dừng kêu 2.4. Các linh kiện cần thiết và sơ đồ đấu nối: Tên linh kiện Số lượng Sơ đồ đấu nối Arduino Uno 1 Nhút nhấn 1 Còi Buzzer 5VDC 1 Bo cắm 1 Dây cắm 4 Nguồn 2 pin 3,7V 2.5. Giải quyết bằng lập trình: Code int button = 11; int coi = 13; 18
  19. void setup() { pinMode(coi,OUTPUT); pinMode(button,OUTPUT); } void loop() { int buttonStatus = digitalRead(button); if (buttonStatus == HIGH) { digitalWrite(coi, HIGH); } else { digitalWrite(coi, LOW); } } 3. Đèn sáng đuổi nhau 3.1. Mô hình thực tế: Đèn nháy được sử dụng rất nhiều để trang trí vào dịp giáng sinh, lễ tết,... Đèn nháy có rất nhiều hiệu ứng: đèn sáng đuổi nhau, nháy liên hồi, đổi màu,… 3.2. Mô hình tin học: Lập trình điều khiển đèn led sáng dần tắt dần. 3.3. Sơ đồ thuật toán: Bắt đầu Cài đặt chức năng của các chân Sáng lần lượt 8 Led Tắt lần lượt 8 Led 3.4. Các linh kiện cần thiết và sơ đồ đấu nối: Tên linh kiện Số lượng Sơ đồ đấu nối Arduino Uno 1 Led 8 19
  20. Điện trở 8 Bo cắm 1 Dây cắm 10 Nguồn 2 pin 3,7V 3.5. Giải quyết bằng lập trình: Code Dùng vòng lặp for Dùng mảng 1 chiều (Sử dụng trong trường hợp kết nối liền (Sử dụng trong trường hợp kết nối mạch) không liền mạch) int BASE = 2; //led nối tới chân số 2 const char led[8]={1,3,4,5,6,7,9,10}; int NUM = 8; //số led void setup() void setup() { { for (int i=0; i
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
2=>2