CHƯƠNG 1: TỔNG QUAN 1.1 Giới thiệu chung về Arduino Arduino thực sự đã được biết đến trên thị trường người dùng trên toàn thế giới trong vài năm gần đây.Số lượng người dùng cực lớn và đa dạng với trình độ rộng từ bậc phổ thông lên đến đại học đã làm cho ngay cả những người tạo ra chúng phải ngạc nhiên về mức độ phổ biến của nó. Board Intel Galileo nói riêng hay Board Arduino nói chunglà bo mạch chủ yếu dành cho đối tượng người dùng DIY (Do It Yourself) – Tức là những người muốn tự tay làm các sản phẩm sáng tạo của mình. Đội phát triển cốt lõi Arduino gồm Massimo Banzi, David Cuartielles, Tom Igoe , Gianluca Martino, David Mellis và Nicholas Zambetti. Massimo Banzi đã được phỏng vấn trên tuần san FLOSS ngày 21 tháng 3 năm 2009 tập trên mạng TWiT.tv, trong đó ông đã thảo luận về lịch sử và mục tiêu của dự án Arduino.
Ông cũng có buổi nói chuyện tại Hội nghị TEDGlobal 2012, nơi mà ông vạch ra sử dụng khác nhau của bảng mạch Arduino trên thế giới. Arduino là phần cứng nguồn mở: các thiết kế tham khảo phần cứng Arduino được phân phối theo giấy phép Creative Commons Attribution Share-Alike 2.5 và có sẵn trên trang web của Arduino. Bố trí và sản xuất tập tin cho một số phiên bản của phần cứng Arduino cũng có sẵn. Mã nguồn cho IDE có sẵn và phát hành theo giấy phép GNU General Public License, phiên bản 2.
Mặc dù thiết kế phần cứng và phần mềm là tự do sẵn có theo giấy phép copyleft, các nhà phát triển đã yêu cầu tên "Arduino" được độc quyền sản phẩm chính thức và không được sử dụng cho sản phẩm phái sinh mà không được phép. Văn bản chính sách chính thức về việc sử dụng các tên Arduino nhấn mạnh rằng dự án là mở cửa cho kết hợp công việc của người khác vào các sản phẩm chính thức. Một số sản phẩm tương thích với Arduino phát KHOA CÔNG NGHỆ - ĐẠI HỌC HÒA BÌNH 5 NGUYỄN VĂN NGỌC – 512CNT KHÓA LUẬN TỐT NGHIỆP hành thương mại đã tránh được "Arduino" tên bằng cách sử dụng tên các biến thể "-Duino ". Arduino thật ra là bo mạch xử lý được dùng để lập trình tương tác với các thiết bị phần cứng như cảm biến, động cơ, đèn và các thiết bị khác… Điểm nổi bật của Arduino là môi trường phát triển ứng dụng cực kì dễ dàng, dễ sử dụng với ngôn ngữ lập trình có thể học một cách nhanh chóng ngay cả với người ít am hiểu về điện tử và lập trình.
Arduino được khởi động vào năm 2005 như là một dự án dành cho sinh viên trại Interaction Design Institure Iverea (Viện thiết kế tương tác Ivrea) tại Ivrea, Italy. Vào thời điểm đó các sinh viên sử dụng một ‘‘BASIC Stamp’’ (con tem Cơ Bản) có giá khoảng $100, xem như giá dành cho sinh viên. Massimo Banzi, là một trong những người sáng lập, giảng dậy tại Ivrea.Một đồ án về phần cứng đã đóng góp vào một thiết kế hệ thống kết nối điện dẫn của sinh viên người Colombia tên là Hernando Barragan. Sau khi các nền tảng hệ thống điện dẫn đã được hoàn tất, các nhà nghiên cứu làm việc để làm cho hệ thống đó gọn nhẹ hơn, rẻ hơn, và có sẵn cho cộng đồng nguồn mở.
Trường này cuối cùng đã đóng cửa, do đó, các nhà nghiên cứu, trong số họ là David Cuartielles, đã thúc đẩy ý tưởng phát triển về Arduino. Cái tên Arduino đến từ một quán bar tại Ivrea, nơi một vài nhà sáng lập của dự án này thường xuyên gặp mặt. Bản thân quán bar này có được lấy tên là Arduino, Bá tước của Ivrea, và là vua của Italy từ năm 1002 đến năm 1014. Arduino là một board mạch vi xử lý, nhằm xây dựng các ứng dụng tương tác với nhau hoặc với môi trường được thuận lợi hơn.
Phần cứng bao gồm một board mạch nguồn mở được thiết kế trên nền tảng vi xử lý AVR Atmel 8-bit, hoặc ARM Ateml 32-bit. Những model hiện tại được trang bị gồm 1 cổng giao tiếp USB, 6 chân đầu vào anolog, 14 chân I/O kỹ thuật số tương thích với nhiều board mở rộng khác nhau. KHOA CÔNG NGHỆ - ĐẠI HỌC HÒA BÌNH 6 NGUYỄN VĂN NGỌC – 512CNT KHÓA LUẬN TỐT NGHIỆP Được giới thiệu vào năm 2005, những nhà thiết kế của Arduino cố gắng mang đến một phương thức dễ dàng, không tốn kém cho những người yêu thích, sinh viên và giới chuyên nghiệp để tạo ra những thiết bị có khả năng tương tác với môi trường. Giá của board dao động xung quanh €20 hoặc €27.
Thông tin thiết kế phần cứng được cung cấp công khai để những ai muốn tự làm một mạch Arduino bằng tay có thể tự mình thực hiện được. Người ta ước tính khoảng giữa năm 2011 có trên 300 ngàn mạch Arduino chính thức đã được sản xuất thương mại, và vào năm 2013 có khoảng 700 ngàn mạch chính thức đã được đưu tới tay người dùng.2 Giới thiệu về board Intel Galileo 1.1 Sơ đồ cấu trúc Intel Galileo Galileo là một bo mạch vi điều khiển dựa trên bộ xử lý ứng dụng Intel Quark SoC X1000 - một bộ xử lý thuộc dòng Pentium 32-bit system on chip ( tích hợp các hệ thống vào trong một chip xử lý duy nhất ). Galileo là bo mạch tương thích với Arduino đầu tiên dựa trên Intel Architecture. Cả phần cứng và phần mềm của Galileo đều tương thích với các Arduino Shield vốn được thiết kế cho Arduino Uno R3 với chuẩn chân cắm Arduino 1.
Galileo có thể chạy được các shield của Arduino ở cả 2 mức điện áp 3.3V và 5V mặc dù điện áp hệ thống của nó chỉ là 3. Galileo có được điều này là nhờ các bộ chuyển dổi điện áp được tích hợp ngay trên bo mạch. Theo mặc định, Galileo chạy shield ở mức 5V và có thể chuyển xuống 3.3V bằng cách thay đổi các chân cắm (jumper) trên mạch. KHOA CÔNG NGHỆ - ĐẠI HỌC HÒA BÌNH 7 NGUYỄN VĂN NGỌC – 512CNT KHÓA LUẬN TỐT NGHIỆP Hình 1.1:Sơ đồ cấu trúc của Galileo Galileo tương thích với các Arduino Uno shield và được thiết kế để làm việc với các shield ở cả 2 mức điện áp là 3.
Như trong sơ đồ cấu trúc thì Galileo gồm: • 14 chân Digital I/O, trong đó có 6 chân có thể phát xung PWM. Chúng có thể sử dụng ở cả 2 chế độ INPUT và OUTPUT. KHOA CÔNG NGHỆ - ĐẠI HỌC HÒA BÌNH 8 NGUYỄN VĂN NGỌC – 512CNT KHÓA LUẬN TỐT NGHIỆP ✓ Các chân giao tiếp có thể hoạt động ở cả 2 mức điện áp là 3. Dòng cấp tối đa là 10mA, dòng chỉnh là 25mA.
✓ Mỗi chân đều có một điện trở pull – up trong có trị số khoảng 5. Mặc định, các điện trở này bị ngắt. • 6 chân analog từ A0 đến A5 giao tiếp qua chip AD7298 ( chuyển đổi Analog to digital ). ✓ Mỗi chân analog cung cấp độ phân giải 12bit với 4096 giá trị khác nhau.
• I2C bus, TWI với 2 chân SDA và SCL nằm cạnh chân AREF. • TWI: gồm 2 chân SDA ( A4 ) và SCL ( A5 ). Hỗ trợ giao tiếp TWI thông qua thư viện Wire tương tự như trên Arduino. • SPI: chạy ở xung mặc định là 4Mhz để làm việc với các Arduino Shield, có thể lập trình lên đến mức 25Mhz.
• ICSP ( SPI ): gồm 6 chân tích hợp Serial Programming dùng để kết nối các shield. Các chân này hỗ trợ giao tiếp SPI thông qua thư viện SPI • VIN: chân cấp nguồn cho Galileo khi nó sử dụng nguồn ngoài ( trái ngược với điện áp chuẩn 5V từ chân cắm nguồn). Có thể cung cấp nguồn cho Galileo từ chân này hoặc nếu cấp nguồn từ chân cắm nguồn phía trước, bạn có thể lấy điện áp chuẩn 5V từ chân này. • Chân 5V OUTPUT: chân này cấp nguồn ra 5V từ nguồn ngoài cung cấp cho Galileo hay từ nguồn USB.
Dòng ra tối đa ở chân này cho các Shield là 800mA.3V OUPUT: cấp điện ra 3.3V được điều chế từ các mạch điều áp trên Galileo. • GND: chân nối cực âm của nguồn điện. KHOA CÔNG NGHỆ - ĐẠI HỌC HÒA BÌNH 9 NGUYỄN VĂN NGỌC – 512CNT KHÓA LUẬN TỐT NGHIỆP • IOREF: cho phép các Shield điều chỉnh hoạt động phù hợp với điện áp trên Galileo. Chân IOREF được kiểm soát bởi các jumper trên mạch để lựa chọn 2 mức điện áp làm việc của Shield là 3.
• RESET: chân/ nút nhấn RESET ✓ Kéo chân này xuống GND để reset chương trình Arduino đang chạy trên Galileo. Thường chân này được dùng để reset các Shield. • AREF: không được sử dụng trên Galileo. Trên Arduino, chân này cung cấp một điện áp tham chiếu ngoài cho các chân đọc tín hiệu analog.2 Board Intel Galileo Hình 1.2: Hình ảnh của Intel Galileo • Ethernet: Giúp mạch Intel Galileo kết nối với các modem/router để kết nối với Internet (tốc độ tối đa lên đến 10/100 Mb/s).
Mặc định chức năng của cổng này sẽ không được khởi động. KHOA CÔNG NGHỆ - ĐẠI HỌC HÒA BÌNH 10 NGUYỄN VĂN NGỌC – 512CNT KHÓA LUẬN TỐT NGHIỆP • RS – 232 port: cổng này là một trong 2 cổng UART (Serial) vật lý trên Intel Galileo. Nó có hình dáng giống hệ một jack cắm tai nghe 3.5mm trên điện thoại di động. Bắt buộc phải dùng cổng này nếu muốn truy cập sâu vào hệ thống để cài đặt những hệ điều hành Yocto.
Để kết nối với máy tính cần phải có một bộ SF Cable, DB9 Female to 3.5mm Serial ( đối với máy tính để bàn có cổng COM) và nếu là máy tính xách tay hoặc máy tính để bàn mà không có cổng COM thì cần them bộ USB 2.0 to RS-232 DB9 Serial Converter. • USB Client: Cổng này là cổng Micro USB (uUSB) vì vậy có thể lấy dây sạc điện thoại thông minh để sử dụng ( dây sạc máy Samsung). Cổng này dùng để lập trình với chương trình Arduino từ máy tính. Cổng này là cổng Serial ảo duy nhất của Intel Galileo và nó được thiết kế ra để lập trình với chương trình Arduino.
Khi cài một hệ điều hành Linux khác ( ví dụ debian) thì lúc đấy sẽ không thể sử dụng Arduino để lập trình cho Galileo được nữa, mà phải dùng các kiến thức điều khiển chân GPIO của vi xử lý Quark.0 Host: đây là cổng USB ( không phải là cổng UART còn lại) dùng cho việc nhận tín hiệu các thiết bị ngoại vi như Webcam, usb micro, usb…Intel Galileo hỗ trợ lên đến 128-bit. • Reboot Button: Nút này sẽ khởi động lại toàn bộ BOARD Intel Galileo, nghĩa là nó sẽ khởi động lại mạch Intel Galileo, tất cả các chương trình đã nạp từ trước hay đã cài đặt trên Board đều sẽ mất hết, Board quay về trạng thái ban đầu như lúc mới mua. • Pin 13 LED: Giống như LED 13 trên mạch Arduino Uno.