Tải bản đầy đủ - 0 (trang)
CHƯƠNG I : TỔNG QUAN VỀ ARDUINO

CHƯƠNG I : TỔNG QUAN VỀ ARDUINO

Tải bản đầy đủ - 0trang

các nhà nghiên cứu, một trong số đó là David Cuarlielles, đã phổ biến ý tưởng

này.

Giá hiện tại của board mạch này dao động xung quanh $30 và được làm

giả đến mức chỉ còn $9. Một mạch bắt chước đơn giản Arduino Mini Pro có lẽ

được xuất phát từ Trung Quốc có giá rẻ hơn $4, đã trả phí bưu điện.

1.2. Phần cứng.

Một mạch Arduino bao gồm một vi điều khiển AVR với nhiều linh kiệ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ó, cho phé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ới board

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ếp chồ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à Atmega 328, Atmega168, Atmega8, Atmega1280.

Một vài các bộ vi xử lý khác cũng được sử dụng bởi các mạch Aquino

tương thích. Hầu hết các mạch gồm một bộ điều chỉnh tuyến tính 5V và một

thạch anh dao động 16 MHz (hoặc bộ cộng hưởng ceramic trong một vài biến

thể), mặc dù một vài thiết kế như LilyPad chạy tại 8 MHz và bỏ qua bộ điều

chỉnh điện áp onboard do hạn chế về kích cỡ thiết bị. Một vi điều khiển

Arduino cũng có thể được lập trình sẵn với một boot loader cho phép đơn

giản là upload chương trình vào bộ nhớ flash on-chip, so với các thiết bị khác

thường phải cần một bộ nạp bên ngoài. Điều này giúp cho việc sử dụng

Arduino được trực tiếp hơn bằng cách cho phép sử dụng 1 máy tính gốc như

là một bộ nạp chương trì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ức thự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

4



mạch chuyển đổi giữa RS232 sang TTL. Các board Arduino hiện tại được lập

trình thơng qua cổng USB, thực hiện thông qua chip chuyển đổi USB-toserial 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ối USB-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ì Arduino IDE, 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ụng cho những mạch ngoài. Diecimila, Duemilanove, và bây giờ là Uno đưa

ra 14 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/O số.

Những chân này được thiết kế nằm phía trên mặt board, thơng qua các header

cái 0.10-inch (2.5 mm). Nhiều shield ứng dụng plug-in cũng được thương mại

hóa. Các board Arduino Nano, và Arduino-compatible Bare Bones Board và

Boarduino có thể cung cấp các chân header đực ở mặt trên của board dùng để

cắm vào các breadboard.

Có nhiều biến thể như Arduino-compatible và Arduino-derived. Một

vài trong số đó có chức năng tương đương với Arduino và có thể sử dụng để

thay thế qua lại. Nhiều mở rộng cho Arduino được thực thiện bằng cách thêm

vào các driver đầu ra, thường sử dụng trong các trường học để đơn giản hóa

các cấu trúc của các ‘con rệp’ và các robot nhỏ. Những board khác thường

tương đương về điện nhưng có thay đổi về hình dạng-đơi khi còn duy trì độ

tương thích với các shield, đơi khi khơng. Vài biến thể sử dụng bộ vi xử lý

hồn tồn khác biệt, với các mức độ tương thích khác nhau.

1.3. Khả năng của bo mạch Arduino

Bo mạch Arduino sử dụng dòng chíp 8_bit megaAVR của Atmel với

hai chip phổ bến nhất là Atmega328 và Atmega 2560. Các dòng sử lý này cho

phép lập trình các ứng dụng điều khiển phức tạp do được trang bị cấu hình

mạnh với các loại bộ nhớ ROM, Ram, và plash, các ngõ vào ra digital I/O

5



trong đó có nhiều ngõ có khả năng xuất tín hiệu PWM, các ngõ đọc tín hiệu

analog và các chuẩn giao tiếp đa dạng như UART, SPI, TWI (I2C).











Xung nhịp : 16MHz

EEPROM : 1KB (Atmega 328) và 4KB (Atmega2560)

SRAM : 2KB (Atmega328) và 8KB (Atmega2560)

FLASH : 32KB (Atmega328) và 256KB (Atmega2560)



1.4. Lịch sử phát triển của các dòng Arduino

1.4.1. Dòng Arduino USB

1.4.1.1. Mạch lập trình đầu tiên (2005)

Khi những mạch lập trình đầu tiên được xây dựng, Arduino vẫn chịu sự

ảnh hưởng của các mạch lập trình AVR lúc bây giờ, đó là sử dụng cổng RS232 (cổng máy in của các dòng máy tính cũ). Điều đó cũng đúng với lịch sử

lúc bấy giờ, các dòng máy tính để bàn khi được sản xuất vẫn còn cổng RS232 này.



Hình 1. 1. Arduino 2005

Vì lý do sử dụng cổng RS-232, nên việc xây dựng một môi trường giao

tiếp giữa máy tính và mạch Arduino vơ cùng đơn giản (bạn nên nhớ rằng giao

thức RS-232 thời gian này vô cùng phổ biến). Ngoài ra, các linh kiện trên chỉ

để phục vụ cho việc duy nhất là lập trình con Atmega8 qua máy tính. Điều

đặc biệt của Arduino trong thời gian này, đó là sự đơn giản hơn những mạch

lập trình AVR khác có trên thị trường lúc bấy giờ như: ATMEL Programmer,

6



mikroElektronika,... bán có thể google thêm về từ khóa “avr programmer

2005”.



Hình 1. 2. ATMEL Programmer A96021000C

Arduino ra đời và làm một thứ cực kỳ phức tạp (rất nhiều linh kiện,

bóng đèn LED, cổng kết nối,...) trở thành một mạch nhỏ gọn trong lòng bàn

tay với các kết nối phổ biến và sự tiện lợi trong việc điều khiển thiết bị điện.

Lúc này, mạch Arduino sơ khai đã phân chia các hàng chân digital và analog

như bây giờ. Ngoài ra, các chi tiết khác là theo chuẩn thiết kế mạch lúc bấy

giờ, như: ISP, jack cắm 2.1mm (jack cắm nguồn ngồi), RS-232 connector,...

Qua đó, sự đơn giản về hình thức, cách thức lập trình tương tự như

những mạch AVR khác (lúc này vẫn chưa hoàn thiện bộ thư viện Wiring, và

chúng ta lúc đó vẫn chưa lập trình Arduino như cách thơng thường được, vì

vậy nó vẫn chưa có tên thương mại là “Arduino”) đã làm nên sự thích thú

trong thời kỳ này, khiến tên tuổi của mạch lập trình này trở nên rất nóng trong

giới điện tử. Bạn thấy đấy, Arduino ra đời và làm cho những thứ khó nhằn

như lập trình vi điều khiển trở nên dễ dàng và thân thiện với người lập trình

hơn.



7



Có thể nhận ra một điều rõ rằng, mạch Arduino không thể lập trình cho

những con AVR có kích thước to hơn con Atmega328. Nhưng thực tế cho

thấy rằng, một con Atmega8 chỉ với 8KB flash là quá “rộng” cho những dự án

Do It Yourself. Bạn cần nhận định rằng, lúc này chúng ta vẫn lập trình thuần

như AVR hiện nay, vì chưa hồn thiện bộ thư viện Wiring, nên việc lập trình

khơng tốn nhiều bộ nhớ và những bạn sinh viên không cần cứ phải tháo ra lắp

vơ con IC của mình từ mạch lập trình sang dự án cá nhân.

Qua thời gian, dòng mạch Arduino Serial đã được thiết kế đơn giản

hơn, và chỉ cần dùng 1 mặt để mọi nhà phát triển có thể tự làm một cái cho

bản thân mình bằng cách rửa mạch PCB. Và nổi bật trong số đó là dòng mạch

có tên Severino (aka S3V3). Dòng sản phẩm này có tên là Arduino SignleSided Serial.



Hình 1. 3. Severino (aka S3V3)

1.4.1.2. Mạch Arduino đầu tiên với thương hiệu Arduino : Arduino USB

(2005).

Dòng mạch Arduino USB được phát triển qua 2 phiên bản (Arduino

USB và Arduino USB v2.0). Ở mỗi phiên bản cũng khơng có sự khác nhau

lắm, chỉ khác nhau về địa chỉ trang web và sửa một lỗi nhỏ ở phần pinout chỗ

đầu USB. Phần lớn mạch Arduino USB được bán dưới dạng mạch phát triển

chưa gắn linh kiện, như vậy bạn vừa phải mua mạch vừa phải có sẵn (mua

thêm) linh kiện để hồn thiện cho mình một mạch Arduino. Tuy nhiên, cũng

8



có một số chỗ người ta bán luôn mạch Arduino USB đã được gắn sẵn linh

kiện. Dưới đây là một số hình ảnh về mạch Arduino USB v2.0.



Hình 1. 4. Mạch Arduino USB chưa gắn linh kiện



Hình 1. 5. Mạch Arduino USB đã gắn linh kiện

Arduino đã thay thế (Substitute) cổng Serial (xuất hiện ở Arduino

Serial) bằng cổng USB Type B (cổng máy in để bàn thời bấy giờ). Điều đó

đồng nghĩa, phải có sự thích nghi (Adapt) là con IC chuyển giao thức từ TTL

sang Serial nhỏ nhỏ nằm gần cổng USB. Vì sao phải làm như vậy, bởi vì, thời

gian này, máy điện xách tay đang dần dần phổ biến trên toàn thế giới, khiến

chúng phải càng ngày càng nhẹ, cảng nhỏ, càng đẹp hơn. Như vậy, phải loại

bỏ cổng Serial (COM1) ra khỏi mainboard, điều đó khiến cho những nhà phát

9



triển phần cứng cảm thấy cần có sự thay đổi với board Arduino Serial. Và từ

đó, ta đã có mạch Arduino với cổng USB đầu tiên!

Ở board mạch Arduino USB này, đã thấy có sự xuất hiện của cổng USB

Type B, như vậy, nguồn điện nuôi Arduino không phải lúc nào cũng là 12V

(thường thường là 12V), vì khi gắn cổng USB TypeB ta lại có thể 5V, như vậy

nếu đi qua con LM7805 thì sẽ khơng đủ điện ni cho con Atmega328. Điều

đó khiến những nhà phát triển phần cứng Arduino phải thích nghi với việc

thay đổi header ext or usb mỗi khi thay đổi từ lúc nạp chương trình sang dùng

nguồn ngồi.



Hình 1. 6. Cổng USB type B

Như vậy, mạch Arduino USB vẫn khơng có nhiều sự thay đổi so với

mạch Arduino Serial, ta có thể xem nó như là một phiên bản Arduino không

sử dụng cổng RS-232 mà dùng cổng USB. Tiện cho người lập trình rất nhiều

trong thời kỳ này đấy.

1.4.1.3. Arduino Extreme (2006)

Ở phiên bản này, chúng ta đã có thêm đèn RX, TX ở 2 chân TX và RX

của Arduino. Các linh kiện trên Arduino phần lớn được thay thế bằng linh

kiện dán và điều đó có nghĩa là Arduino cần phải được bán với đầy đủ các

10



linh kiện đã được hạn đầy đủ. Ngoài ra, các chân header male đã được thay

thế với chân header female.



Hình 1. 7. Arduino Extreme version 1

Cũng trong năm đó, trang arduino.cc cũng chính thức được ra đời, và

các dây nối giữa các phần trong mạch cũng được làm “âm” đất.

Ở đây, Arduino Extreme đã thích nghi (Adapt) với thị hiếu người sử

dụng đó là nét đẹp của mạch Arduino, nên đã cho thay thế phần lớn điện trở,

tụ điện trở thành những linh kiện dán, đẹp hơn, gọn hơn và hoạt động ổn định

hơn nữa. Việc tích hợp bóng đèn LED vốn dùng để chiếu sáng và đặt (Put)

vào mạch Arduino để giúp người dùng biết máy tính đã kết nối được với

mạch Arduino và q trình nạp chương trình có hoạt động được hay khơng.

Nếu đã trải nghiệm với việc lập trình Arduino, bạn sẽ thấy có nhiều lúc chúng

ta đã gắn Arduino vào máy tính nhưng nó vẫn khơng lập trình được,... và việc

có bóng đèn TX, RX làm cho mọi thứ trở nên dễ dàng hơn.

Với việc thay đổi male header bằng female header đã giúp cho việc gắn

dây nối giữa Arduino và breadboard trở nên dễ dàng hơn, bạn có thể sử dụng

dây breadboard đực hoặc dùng một sợi dây đồng một lõi cứng nối giữa

Arduino và breadboard.



11



Hình 1. 8. Arduino Extreme version 2

1.4.1.4. Arduino NG (Nuova Generazione) (2006)

Ở phiên bàn này, Arduino NG của chúng ta đã thay thế USB-to-TTL cũ

(FT232BM) bằng chíp FTDI FT232RL USB-to-Serial mới với yêu cầu ít phần

cứng ngoài hơn. Trong board này, họ đã gắn thêm con LED màu xanh tại chân

số 13 . Ngoài ra, một phần doanh số bán ra với con vi điều khiển Atmega168

thay cho con Atmega8. Tuy nhiên, cả 2 con này đều hoạt động tốt trên mạch

Arduino NG

Trong mạch Arduino NG, sự sáng tạo đáng kể đó là sự thay thế con chíp

FT232BM bằng con FTDI FT232RL USB-to-Serial, điều đó làm cho thiết kế

giao diện phần cứng của Arduino trong thật sự rất tuyệt vời, cứ như Facebook

của thế giới điện tử vậy. Ngoài ra, với việc đặt (Put) một bé đèn LED lại chân

số 13, không những giúp ta debug được truyền dữ liệu SPI mà còn có “một

cơng cụ” kiểm thử mạch (vì khi được xuất bán, Arduino NG đã được upload

chương trình Blink). Ta chỉ cần gắn điện vào cổng USB hoặc nguồn ngồi là

có thể kiểm thử được mạch NG. Ngồi ra, nó còn có một sự thích nghi

(Adapt) mở đường. Vì các dự án càng ngày càng to, người đam mê DIY với

Arduino ngày càng nhiều, và để thích nghi với điều kiện đó, Atmega168 đã

thay thế cho Atmega8.

12



Cũng trong năm này thì bản Arduino NG Rev. C cũng ra đời nhưng lại chưa

hàn sẵn con LED 13, bản này được bán với vi điều khiển Atmega168. Thực

ra, Arduino bản bán này nhằm mục đích trong tương lai họ sẽ sử dụng vi điều

khiển Atmega168 thay vì Atmega8 là vi điều khiển chính. Bản này có thể xem

là phiên bản đệm tương tự Arduino USB v2.



Hình 1. 9. Arduino NG



Hình 1. 10. Arduino NG Rev. C

13



1.4.1.5. Arduino Diecimila (2007)



Hình 1. 11. Arduino Diecimila

Điều thay đổi chính trong phiên bản này đó là việc đưa vào chức năng

“tự động reset” bằng máy tính khi upload chương trình, nghĩa là lúc bấy giờ

chúng ta đã có thể lập trình Arduino như thời điểm hiện tại. Như vậy, đã có sự

thích nghi (Adapt) vì lắng nghe ý kiến người dùng. Vì có nhiều phản hồi cho

rằng gắn chồng board lên mạch Arduino, và khơng có cách nào nhấn nút reset

ở những board Arduino cũ (ở những board được gắn chồng lên), như vậy với

việc cải tiến nút reset cũng đã khiến những nhà lập trình thiết kế lại (tiếp tục

thích nghi Adapt) các chân nguồn, và chân digital pin, chung cấp cho họ

nhiều khả năng tùy biến hơn. Ví dụ: thêm chân AREF, VIN, RESET,...

Trong phiên bản này, Arduino đã sử dụng một mạch “dropout voltage

regulator” (nôm na là khi điện án đổi thì điện áp so sánh ở Analog IN vẫn

khơng bị nhiễu). Điều đó, là một dự kết hợp hồn hảo (Combine), chúng ta

khơng cần phải sử dụng tụ 103, 104 để lọc nhiễu cho các chân Analog nữa.

Hàng 3.3V, 5V, GND, Vin đã được điều chỉnh lại và thực sự nó rất ổn

nên đến tận bây giờ chúng ta vẫn dùng thiết kế đó và thống nhất đến bây giờ

(với các mạch phát triển khác từ bên thứ 3). Ngoài ra, về vấn đề nguồn, chúng

ta đã có một cầu chì dán (có thể sửa được). Nó giúp mạch được bảo vệ trước

14



Tài liệu bạn tìm kiếm đã sẵn sàng tải về

CHƯƠNG I : TỔNG QUAN VỀ ARDUINO

Tải bản đầy đủ ngay(0 tr)

×