Lập trình cánh tay robot Arduino

TRƯỜNG ĐẠI HỌC VINHKHOA ĐIỆN TỬ VIỄN THÔNGĐỐ ÁN TỐT NGHIỆPĐỀ TÀI:NGHIÊN CỨU, THIẾT KẾ VÀ ĐIỀU KHIỂN CÁNHTAY ROBOT BẰNG ARDUINONgười hướng dẫn:ThS. Hồ Sỹ PhươngSinh viên thực hiện :Đặng Xuân MạnhLớp:50K2 - ĐTVTMã số sinh viên:0951085123NGHỆ AN - 2016DANH MỤC HÌNH VẼ2.2.4. Cấu tạo chung của động cơ DC.........................................................382.2.5. Nguyên lý làm việc của động cơ điện 1 chiều...................................42MỤC LỤCCHƯƠNG2.2.4. Cấu tạo chung của động cơ DC.........................................................382.2.5. Nguyên lý làm việc của động cơ điện 1 chiều...................................42LỜI NÓI ĐẦUNgày nay, khoa học kỹ thuật đang có sự phát triển như vũ bão .Nhiều thành tựu khoa học kỹ thuật đã và đang được ứng dụng vào thực tiễnvà đem lại lại nhiều lợi ích to lớn , tạo bước ngoặt sự phát triển của xã hội .Từ khi ra đời cho đến nay Robot đóng một vai trò quan trọng trong sự pháttriển cho nền sản xuất của xã hội .Trong ứng dụng công nghiệp, tứ những tay máy điều khiển từ xa chongành hóa phóng xạ ban đầu . Ngày nay robot đã được sử dụng rộng khắptrong các lĩnh vực gia công, lắp ráp của nhiều ngành sản xuất như nănglượng, ô tô, máy bay, linh kiện điện tử,…Trong nền sản xuất hiện đại chúng ta không thể phủ nhận vai tròquan trọng của robot công nghiệp trong các hệ thống sản xuất tự động .Robot công nghiệp giúp nâng cao năng suất và chất lượng sản phẩm, giảiphóng con người khỏi những công việc nguy hiểm hay những công việcnhàm chán lặp đi lặp lại trong quá trình sản xuất. Trong hệ thống sản xuấttự động, một robot công nghiệp có thể thực hiện các công việc như: Vậnchuyển sản phẩm, sơn, quét, lau chùi,…Trong lĩnh vực giáo dục robot đang được nghiên cứu và đẩy mạnhphát triển ở nhiều đại học lớn trên khắp thế giới, ở Việt Nam hầu hết cáctrường về kỹ thuật cũng đều được trang bị môn học robot công nghiệp tuynhiên việc học và nghiên cứu của sinh viên còn nhiều hạn chế do thiếu kỹnăng thực hành, vận dụng lý thuyết vào thực tiễn nên lĩnh vực robot ở ViệtNam còn phát triển chậm . Trong nước hiện có rất ít công ty tổ chức pháttriển về lĩnh vực này . Vì lý do đó robot rất cần được nghiên cứu và pháttriển hơn nữa để góp phần vào sự phát triển không ngừng của đất nướctrong thời đại mới , sẽ góp một phần quan trọng để đạt được mục tiêu đưaViệt am thành một nước công nghiệp vào năm 2020.Trong phạm vi của đồ án này , được sự hướng dẫn tận tình của cácthầy cô khoa ĐTVT-ĐH Vinh . Em chọn đề tài “ Điều khiển cánh tay robot5 bậc tự do bằng Arduino”TÓM TẮT ĐỒ ÁNThực hiện điều khiển cánh tay máy sử dụng bo mạch Arduino Uno R3thông qua phần mềm Labview . Thiết kế thi công cánh tay máy .Tập trung vào việc điều khiển cánh tay máy bằng labview , lập trình codeđể phục vụ cho việc điều khiển trên máy vi tính . Cánh tay máy điều khiểnbằng bo mạch Arduino Uno R3 sử dụng động cơ Servo .ABSTRACTArms control implementation use board arduino R3 through softwareLabview . Design and construction of robot armFocused on a robotic arm controlled by labview , program Code to servethecomputerized control. Robot Arms control by electronic board Arduinouno R3 by engine servoLỜI CẢM ƠNVới sự hướng giúp đỡ từ các thầy cô trong Khoa Điện Tử ViễnThông, em đã hoàn thành xong đồ án tốt nghiệp của mình. Đặc biệt là sựnhiệt tình và quan tâm của giảng viên trực tiếp hướng dẫn đề tài, Th.S HồSỹ Phương, Bộ môn KT Điện Tử, Khoa Điện Tử Viễn Thông, Trường ĐạiHọc Vinh. Em xin chân thành gửi lời cảm ơn đến thầy và thầy cô trongkhoa.Cuối cùng, tôi xin kính chúc quý thầy, cô sức khỏe và thành côngnhiều hơn nữa trong sự nghiệp giáo dục cao quý.Nghệ An, ngàythángSinh viênnăm 2016CHƯƠNG 1: TỔNG QUAN VỀ CÁNH TAY ROBOT1.1. Tổng quan về robot.1.1.1. Lịch sử phát triển robot.Khái niệm Robot ra đời đầu tiên vào ngày 09/10/1922 tại NewYork,khi nhà soạn kịch người Tiệp Kh Karen Kapek đã tưởng tượng ra một cổmáy hoạt động một cách tự động, nó là niềm mơ ước của con người lúc đó.Từ đó ý tưởng thiết kế, chế tạo Robot đã luôn thôi thúc conngười. Đến năm 1948, tại phòng thí nghiệm quốc gia Argonne, Goertzđã chế tạo thành công tay máy đôi (master-slave manipulator). Đến năm1954, Goertz đã chế tạo tay máy đôi sử dụng động cơ servo và có thểnhận biết được lực tác động lên khâu cuối.Năm 1956 hãng Generall Mills đã chế tạo tay máy hoạt động trongviệc thám hiểm dại dương.Năm 1968 R.S. Mosher, của General Electric đã chế tạo một cỗmáy biết đi bằng 4 chân. Hệ thống vận hành bởi động cơ đốt trong và mỗichân vận hành bởi một hệ thống servo thủy lực.Năm 1969, đại học Stanford đã thiết kế được Robot tự hành nhờnhận dạng hình ảnh.Hình 1.1. Robot ShakeyNăm 1970 con người đã chế tạo được Robot tự hành Lunokohod,thám hiểm bề mặt của mặt trăng.1Trong giai đoạn này, ở nhiều nước khác cũng tiến hành công tácnghiên cứu tương tự, tạo ra các Robot điều khiển bằng máy tính có lắp đặtcác loại cảm biến và thiết bị giao tiếp người và máy.Hình 1.2. Robot hàn điểmTheo sự tiến bộ của khoa học kỹ thuật, các Robot ngày càng đượcchế tạo nhỏ gọn hơn, thực được nhiều chức năng hơn, thông minh hơn.Một lĩnh vực được nhiều nước quan tâm là các Robot tự hành, các chuyểnđộng của chúng ngày càng đa dạng, bắt chước các chuyển động của chânngười hay các loài động vật như : bò sát, động vật 4 chân, … Và các loạixe Robot (robocar) nhanh chóng được ứng dụng rộng rãi trong các hệthống sản xuất tự động linh hoạt (FMS).Từ đó trở đi con người liên tục nghiên cứu phát triển Robot để ứngdụng trong quát trình tự động hoá sản xuất để tăng hiệu quả kinh doanh.Ngoài ra Robot còn được sử dụng thay cho con người trong các công việcở môi trường độc hại, khắc nghiệt, …Chuyên ngành khoa học về robot “robotics” đã trở thành mộtlĩnh vực rộng trong khoa học, bao gồm các vấn đề cấu trúc cơ cấu độnghọc, động lực học, quĩ đạo chuyển động, chất lượng điều khiển… Tuỳthuộc vào mục đích và phương thức tiếp cận, chúng ta có thể tìm hiểu lĩnhvực này ở nhiều khía cạnh khác nhau.2Hiện nay có thể phân biệt các loại robot ở hai mảng chính : Các loạirobot công nghiệp (cánh tay máy) và robot di động (mobile robot). Mỗi loạicó các ứng dụng cũng nhue đặc tính khác nhau. Ngoài ra, robot côngnghiệp còn được phân chia dựa vào cấu tạo động học : Robot nối tiếp(series robot) và robot song song (parallel robot).Hình 1.3. Robot song song 6 bậc tự do Merlet.Chính công nghệ tiên tiến ở tất cả các lĩnh vực : cơ khí, vi mạch,điềukhiển, công nghệ thông tin … đã tạo ra nền tảng cũng như những tháchthức lớn đối với khoa học nghiên cứu robot. Chính vì vậy, con người đã vàđang tiếp tục phát triển và nâng cao mức độ hoàn thiện trong lĩnh vực đầyhấp dẫn này.3Hình 1.4. Nguyên bản của Robot Hexapod TU Munich.1.1.2. Các ứng dụng của Robot.1.2.1. Các ưu điểm khi sử dụng Robot.Các loại Robot tham gia vào qui trình sản xuất cũng như trong đờisống sinh hoạt của con người, nhằm nâng cao năng suất lao động của dâychuyền công nghệ, giảm giá thành sản phẩm, năng cao chất lượng cũngnhư khả năng cạnh tranh của sản phẩm tạo ra.Robot có thể thay thế con người làm việc ổn định bằng các thao tácđơn giản và hợp lý, đồng thời có khả năng thay đổi công việc để thích nghivới sự thay đổi của qui trình công nghệ.Sự thay thế hợp lý của robot còn góp phần giảm giá thành sản phẩm,tiết kiệm nhân công ở những nước mà nguồn nhân công là rất ít hoặc chiphí cao như : Nhật Bản, các nước Tây Âu, Hoa Kỳ…Tất nhiên nguồn năng lượng từ robot là rất lớn, chính vì vậy nếucó nhu cầu tăng năng suất thì cần có sự hỗ trợ của chúng mới thay thếđược sức lao động của con người. Chúng có thể làm những công việc đơngiản nhưng dễ nhầm lẫn, nhàm chán.Bên cạnh đó, một ưu điểm nổi bậc của robot là môi trường làmviệc. Chúng có thể thay con người làm việc ở những môi trường độc hại,ẩm ướt, bụi bặm hay nguy hiểm. Ở những nơi như các nhà máy hoáchất, các nhà máy phóng xạ, trong lòng đại dương, hay các hành tinh khác… thì việc ứng dụng robot để cải thiện điều kiện làm việc là rất hữu dụng.1.2.2. Mộ số lĩnh vực ứng dụng.a. Ứng dụng trong các lĩnh vực sản xuất cơ khí.Trong lĩnh vực cơ khí, robot được ứng dụng khá phổ biến nhờ khảnăng hạot động chính xác và tính linh hoạt cao.Các robot hàn là một ứng dụng quan trọng trong các nhà máy sảnxuất ô tô, các nhà máy sản xuất vỏ bọc cơ khí…4Hình 1.5. Robot hàn trong công nghệ sản xuất cơ khí.Ngoài ra người ta còn sử dụng robot cho các công nghệ đúc, có môitrường nhiệt độ cao, bụi bặm và các thao tác luôn đòi hỏi độ tin cậy cao.Đặc biệt trong các hệ thống sản xuất linh hoạt (FMS), Robot đóng vaitrò rất quan trọng trong việc vân chuyển và kết nối các công đoạn sảnxuất với nhau.Hình 1.6. Ứng dụng Robot trong các hệ thống sản xuất linh hoạt.b. Ứng dụng trong lĩnh vực gia công lắp ráp.Các thao tác này thường được tự động hóa bằng các robot được gia côngchính xác và mức độ tin cậy cao.5Hình 1.7. Robot được sử dụng trong công đoạn cấp liệu vàlắp ráp.c. Ứng dụng trong các hệ thống y học, quân sự, khảo sát địa chất.Ngày nay, việc sử dụng các tiện ích từ Robot đến các lĩnh vựcquân sự, y tế, …rất được quan tâm. Nhờ khả năng hoạt động ổn định vàchính xác, Robot đặc biệt là tay máy được dùng trong kĩ thuật dò tìm, bệphóng, và trong các ca phẫu thuật y khoa với độ tin cậy cao.Hình 1.8. Robot thám hiểm địa hình.Ngoài ra, tuỳ thuộc vào các ứng dụng cụ thể khác mà Robot đượcthiết kế để phục vụ cho các mục đích khác nhau, tận dụng được các ưuđiểm lớn của chúng đồng thời thể hiện khả năng công nghệ trong quá trìnhlàm việc.61.3. Các khái niệm về Robot – Robot công nghiệp.Lĩnh vực nghiên cứu về Robot hiện nay rất đa dạng và phong phú.Trong tài liệu này, chúng tôi chỉ trình bày các kiến thức chủ yếutrên các loại Robot công nghiệp, tức các cánh tay máy. Các bài toán cânbằng lực, các phương trình động học và động lực học là những nền tảngcơ bản để các bạn học viên có thể tiếp cận với chuyên nghành kĩ thuậtRobot.1.3.1. Định nghĩa về robot công nghiệp ( Industrial Robot ).Tuỳ thuộc mỗi quốc gia, tổ chức và mục đích sử dụng, chúng ta cónhiều định nghĩa về robot công nghiệp. Vì vậy trong nhiều tài liệu khácnhau, định nghĩa về robot công nghiệp cũng khác nhau. Theo từ điểnWebster định nghĩa robot là máy tự động thực hiện một số chức năng củacon người. Theo ISO ( International Standards Organization ) thì : Robotcông nghiệp là tay máy đa mục tiêu, có một số bậc tự do, dễ dàng lậptrình và điều khiển trợ động, dùng để tháo lắp phôi, dụng cụ hoặc các vậtdụng khác. Do chương trình thao tác có thể thay đổi nên thực hiện nhiềunhiệm vụ đa dạng. Tuy nhiên Robot công nghiệp được định nghĩa nhưvậy chưa hoàn toàn thoả đáng.Hình 1.9. Biểu diễn không gian của cánh tay máy.71.3.2 Cánh tay máy Robot ( Robot Arm)Là bộ phận cơ khí gồm các khâu liên kết với nhau bởi các khớpnối, các bộ truyền động như: Bộ truyền bánh răng, bộ truyền đai, bộtruyền trục vít- bánh ví, vít me- đai ốc…Hình 1.10. Cánh tay Robot.1. Nguồn Động Lực:Các thiết bị tạo chuyển động cho Robot, có thể là các thiết bị khínén, thuỷ lực, điện.Đối với các chuyển động cần độ chính xác cao, yêu cầu gọn nhẹngười ta có thể dùng các loại nguồn truyền động là các motor bước, cácmotor servo.Hình 1.11. Cấu tạo của motor một loại motor bước.82. Bộ điều khiển ( Controller ):Là thành phần quan trọng quyết định khả năng hoạt động và độchính xác của Robot. Bộ phận này thông thường được tích hợp dưới dạngcác board mạch điều khiển, có thể có các loại sau:• IC diều khiển trung tâm (CPU) kết hợp với các card điều khiểnphân theomodul.• Các thiết bị điều khiển Robot sử dụng PLC( Programable LogicController).• Sử dụng các bộ điều khiển PMAC ( Programable Multi-AxiesController )• Các bộ điều khiển thiết kế theo các dạng điều khiển hiện đại như :Bộ điều khiển mờ, bộ điều khiển theo mạng neuron…3. Cảm biến ( Sensor ):Là thiết bị chuyển các đại lượng vật lý thành các tín hiệu điệncung cấp cho hệ thống nhằm nâng cao khả năng linh hoạt và độ chính xáctrong điều khiển. Như vậy Robot chính là một hệ thống điều khiển kín vớivòng hồi tiếp (Feedback ) được thực hiện từ tín hiêu thu về từ cảmbiến.Các loại cảm biến thường gặp như:• Cảm biến quang• Cảm biến vị trí và dịch chuyển.• Cảm biến đo góc.• Cảm biến vận tốc.• Cảm biến gia tốc và rung.• Cảm biến lực và biến dạng.9Các cảm biến trên có thể cho tín hiệu tương tự Analogue hoặc tínhiệu số ( Digital ), ngoài ra còn sử dụng các bộ mã hoá vị trí, mã hoá gócdịch chuyển Encoder, Resolver…4. Các chương trình:Các chương trình luôn tương thích với các bộ điều khiển. Chính vìvậy các loại ngôn ngữ để viết chương trình điều khiển cho Robot cũng khađa dạng, có thể là ngôn ngữ viết cho vi xử lý (ngôn ngữ máy ), ngôn ngữviết cho PLC (thuộc các hãng khác nhau ), hay các ngôn ngữ trên máy tínhnhư: Pascal, C, C++, Visual, Basic, Matlab, …1.3.3. Bậc tự do của Robot công nghiệp.a. Khái niệm:Bậc tự do là số khả năng chuyển động của một cơ cấu để dịchchuyển được một vật thể nào đó trong không gian. Cơ cấu chấp hành củarobot phải đạt được một số bậc tự do nhất định. Nói chung, cơ hệ của mộtrobot là một cơ cấu hở ( là cơ cấu có một khâu nối giá ).Chuyển động của các khâu trong robot thường là một trong haikhâu chuyển động cơ bản là tịnh tiến hay chuyển động quay.b. Xác định số bậc tự do của robot (DOF- Defree Of Freedom).Số bậc tự do của robot được xác định:W= 6n - ∑i.PiW: Số bậc tự do của robot.n: Số khâu động.Pi: Số khớp loại i.Trong đó, khớp loại i là khớp khống chế i bậc tự do.10Hình 1.12. Robot PUMA 6 bậc tự do.Ví dụ: Xác định số bậc tự do của robot sau:Hình 1.13. Bậc tự do của robotXác định được số khớp loại 5 là 5 (4 khớp quay và một khớp tịnhtiến ), do đó n=5 và P5 =5 nên số bậc tự do của robot này: W= 6.5 – 5.5 = 5bậc.Lưu ý:• Hầu hết robot sử dụng khớp loại 5 ( khống chế 5 bậc tự do, chuyểnđộng quay hoạc tịnh tiến ). Vì vậy số bậc tự do của nó cũng chính là sốkhâu động, robot có bậc tự do càng cao thì càng linh hoạt.• Thông thường 3 bậc tự do đầu dùng để định vị, các bậc tự do sau đểđịnh hướng.1.3.4. Hệ toạ độ trong robot.Mỗi robot thường bao gồm nhiều khâu liên kết với nhau ( links )thông qua các khớp ( joints ) tạo thành một xích động học xuất phát từ mộtkhâu cơ bản đứng yên. Hệ toạ độ gắn với khâu cơ bản gọi là hệ toạ độ cơbản ( hay hệ toạ độ chuẩn ).11Các hệ toạ độ trung gian khác gắn với các khâu động gọi là hệ toạđộ suy rộng.Tại từng thời điểm hoạt động các toạ độ suy rộng xác định cấu hìnhcủa robot bằng các chuyển dịch dài hoặc các chuyển dịch góc của các khớptịnh tiến hoặc khớp quay. Các toạ độ suy rộng còn lại là các biếnkhớp.Tất cả các hệ toạ độ dùng trong robot phải tuân theo qui tắc bàntay phải : Dùng bàn tay phải co hai ngón út và áp út, ngón cái trỏ theophương diện trục z, ngón trỏ theo phương diện trục x, ngón giữa hướngtrục y.Hình 1.14. Hệ toạ độ của robot có n khâu.Các góc quay θ1, θ3, θ4, θ5 và độ dịch chuyển dài d2 là các toạ độsuy rộng ( các biến khớp ).Để khảo sát động học robot ta phải gắn trên mỗi khâu của robot mộthệ toạ độ. Nguyên tắc chung để gắn hệ toạ độ sẽ được trình bày trongchương III trong khi xét đến phương trình động học của robot và bộ thôngsố Denavit- Hartenberg.Ví dụ: Xác định toạ độ cho robot SCARA (Robot có 4 bậc tự do ).12.Hình 1.15. Xác định toạ độ cho các khâu của Robot Scara.1.4. Phân loại Robot.1.4.1 Robot Công nghiệp1. Robot nối tiếp (series robot).Thực chất loại Robot này chính là các loại tay máy, các khâu và khớpnối của chúng được thiết kết liên tiếp nhau để hình thành nên các quĩ đạochuyển động nhất định. Đối với loại robot này, chúng ta có nhiều cáchphân loại khác nhau :a. Phân loại theo kiểu kết cấu.• Robot kiểu toạ độ Đềcác.Tay máy có 3 chuyển động tịnh tiến theo 3 phương của hệ tọađộ Đềcác trong không gian.Thường ứng dụng loại robot này trong việc vận chuyển phôi liệu,lắp ráp, hàn trong mặt phẳng…Hình 1.16. Robot kiểu toạ độ Đề các• Robot kiểu toạ độ trụ. Vùng làm việc của robot này có dạng hình trụrỗng13Robot Versatran (hãng AFM, Hoa Kỳ) là một robot thuộc loạinày.Hình 1.17. Robot kiểu toạ độ trụ.• Robot kiểu toạ độ cầu.Vùng làm việc của robot có dạng hình cầu.Có hai loại cấu hình chính thuộc kiểu robot này : 3 khớp quay(RRR) 2 khớp quay, 1 khớp tịnh tiến ở khâu cuối (RRT)Hình 1.18. Robot kiểu toạ độ cầu.• Robot kiểu Scara.Robotcócấutrúc theo kiểu Scada ra đời từ năm 1979, tạitrường đại học Yamanashi (Nhật Bản).Robot laọi này thường được ứng dụng trong các lĩnh vực lắp ráp, vớicấu hình của 3 khâu đầu tiên là : RRT14Hình 1.19. Robot kiểu Scara.b. Phân loại theo nguồn truyền động.• Hệ truyền động điện.• Hệ truyền động thuỷ lực.• Hệ truyền động khí nén.c. Phân loại theo các ứng dụng.Hình 1.20. Phân loại các loại robot chuyên dùng.152. Robot song song (Parallel Robot).Các loại Robot thuộc nhóm này có các khâu chuyển động song songtươngđối với nhau. Thông thường chúng gồm 1 đế cố định và 1 đế di động.Hình 1.21. Một sản phẩm robot song songTuỳ thuộc vào số lượng các nhánh của robot song song mà ta có thểphân loại chúng với nhau. Một loại robot song song có 6 nhánh được sửdụng rất phổ biến là Hexapod.3. Robot di động (Mobile Robot).Đây là hệ Robot có nhiều tính năng thông minh và linh hoạttrong quá trình ứng dụng nhờ khả năng di chuyển được theo lập trình.Hình 1.22. Mobile robot ứng dụng trong các lĩnh vực khác nhau.16Hệ thống mobile robot là lĩnh vực thật sự hấp dẫn đối với các nhànghiên cứu cũng như những người quan tâm, không chỉ nhờ những ưu điểmnổi bậc của nó mà còn ở tính đa dạng trong ứng dụng.Phân tích động học và động lực học mobile robot là những bài toáncó mức độ phức tạp khác nhau, nó tuỳ thuộc vào kết cấu của robot cũngnhư yêu cầu về độ chính xác, tính thông minh trong xử lý tình huống…Chúng ta xem xét một vài chuyển động mà con người mong muốnthiết kế các loại mobile robot.+ Chuyển động theo dạng trườn :+ Chuyển động “slide” của các loài động vật bò sát.+ Chuyển động đi bộ của con người.Ngày nay con người đã hiện thực hoá được các ý tưởng này, mặcdù mức độ chính xác, độ tin cậy của mỗi loại, mỗi hãng sản xuất… là khácnhau.171.5. Tổng quan về board mạch Arduino uno R3.a.Tổng quan về board mạch Arduino R3Arduino là một board mạch vi xử lý, nhằm xây dựng các ứng dụngtươ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 baogồm một board mạch nguồn mở được thiết kế trên nền tảng vi xử lý AVRAtmel 8bit, hoặc ARM Atmel 32-bit. Những Model hiện tại được trang bịgồm 1 cổng giao tiếp USB, 6 chân đầu vào analog, 14 chân I/O kỹ thuật sốtương thích với nhiều board mở rộng khác nhau.Được giới thiệu vào năm 2005, Những nhà thiết kế của Arduino cốgắng mang đến một phương thức dễ dàng, không tốn kém cho những ngườiyêu thích, sinh viên và giới chuyên nghiệp để tạo ra những nhiết bị có khảnăng tương tác với môi trường thông qua các cảm biến và các cơ cấu chấphành. Những ví dụ phổ biến cho những người yêu thích mới bắt đầu baogồm các robot đơn giản, điều khiển nhiệt độ và phát hiện chuyển động. Đicùng với nó là một môi trường phát triển tích hợp (IDE) chạy trên các máytính cá nhân thông thường và cho phép người dùng viết các chương trìnhcho Aduino bằng ngôn ngữ C hoặc C++.Một mạch Arduino bao gồm một vi điều khiển AVR với nhiều linhkiện bổ sung giúp dễ dàng lập trình và có thể mở rộng với các mạch khác.Một khía cạnh quan trọng của Arduino là các kết nối tiêu chuẩn của nó, chophép người dùng kết nối với CPU của board với các module thêm vào cóthể dễ dàng chuyển đổi, được gọi là shield. Vài shield truyền thông vớiboard Arduino trực tiếp thông qua các chân khách nhau, nhưng nhiều shieldđược định địa chỉ thông qua serial bus I²C-nhiều shield có thể được xếpchồng và sử dụng dưới dạng song song. Arduino chính thức thường sửdụng các dòng chip megaAVR, đặc biệt là ATmega8, ATmega168,ATmega328, ATmega1280, và ATmega2560. Một vài các bộ vi xử lý kháccũng được sử dụng bởi các mạch Aquino tương thích. Hầu hết các mạchgồm một bộ điều chỉnh tuyến tính 5V và một thạch anh dao động 16 MHz18(hoặc bộ cộng hưởng ceramic trong một vài biến thể), mặc dù một vài thiếtkế như LilyPad chạy tại 8 MHz và bỏ qua bộ điều chỉnh điện áp onboard dohạn chế về kích cỡ thiết bị. Một vi điều khiển Arduino cũng có thể được lậptrình sẵn với một boot loader cho phép đơn giản là upload chương trình vàobộ nhớ flash on-chip, so với các thiết bị khác thường phải cần một bộ nạpbên ngoài. Điều này giúp cho việc sử dụng Arduino được trực tiếp hơnbằng cách cho phép sử dụng 1 máy tính gốc như là một bộ nạp chươngtrình.Theo nguyên tắc, khi sử dụng ngăn xếp phần mềm Arduino, tất cảcác board được lập trình thông qua một kết nối RS-232, nhưng cách thứcthực hiện lại tùy thuộc vào đời phần cứng. Các board Serial Arduino cóchứa một mạch chuyển đổi giữa RS232 sang TTL. Các board Arduino hiệntại được lập trình thông qua cổng USB, thực hiện thông qua chip chuyểnđổi USB-to-serial như là FTDI FT232. Vài biến thể, như Arduino Mini vàBoarduino không chính thức, sử dụng một board adapter hoặc cáp nốiUSB-to-serial có thể tháo rời được, Bluetooth hoặc các phương thức khác.(Khi sử dụng một công cụ lập trình vi điều khiển truyền thống thay vìArduinoIDE, công cụ lập trình AVR ISP tiêu chuẩn sẽ được sử dụng.)Board Arduino sẽ đưa ra hầu hết các chân I/O của vi điều khiển để sử dụngcho những mạch ngoài. Diecimila, Duemilanove, và bây giờ là Uno đưa ra14 chân I/O kỹ thuật số, 6 trong số đó có thể tạo xung PWM (điều chế độrộng xung) và 6 chân input analog, có thể được sử dụng như là 6 chân I/Osố. Những chân này được thiết kế nằm phía trên mặt board, thông qua cácheader cái 0.10-inch (2.5 mm). Nhiều shield ứng dụng plug-in cũng đượcthương mại hóa. Các board Arduino Nano, và Arduino-compatible BareBones Board và Boarduino có thể cung cấp các chân header đực ở mặt trêncủa board dùng để cắm vào các breadboard.Có nhiều biến thể như Arduino-compatible và Arduino-derived. Mộtvài trong số đó có chức năng tương đương với Arduino và có thể sử dụng19