Lập trình ATtiny13 với Codebender

Giới thiệu

Trong bài viết Code Arduino trên MÂY, bạn có muốn thử hay không?, chúng ta đã biết cách lập trình Arduino trên mây rồi, phải không nào? Nhưng qua quá trình tìm hiểu thì mình thấy Codebender chưa hỗ trợ dòng ATtiny13, trong khi đó nó lại hỗ trợ những dòng ATtiny45, 85 và 2313. Vậy, câu hỏi đặt ra là: có cách nào để lập trình ATtiny13 qua Codebender hay không? Và câu trả lời là: Có, chúng ta có thể.

Để nắm được toàn bộ nội dung bài này, bạn cần

Tìm bản chất vấn đề và giải quyết nó

Để lập trình được cho ATtiny13, nếu bạn lập trình trên Arduino IDE, bạn phải tải về file hardware dành riêng cho ATiny13 và các dòng ATtiny45, 44, 84, 85. Vậy tại sao Codebender lại không hỗ trợ cho bạn bé ATtiny13 nhỉ? Thiết nghĩ, chắc chắn không phải họ không biết cách để lập trình qua ATtiny13, mà họ muốn bạn khám phá hơn về những gì họ có thể làm được.

Chúng ta đã biết rằng, để lập trình được ATtiny13 trên Arduino UNO, chúng ta phải upload sketch Arduino ISP vào bé Arduino rồi chỉnh Tools > Programmer > Arduino as ISP và Tools > Board > ATtiny13...

Vậy nếu có thể mô tả lại quá trình trên Codebender thì hiển nhiên ta sẽ lập trình được cho ATtiny13. Nhưng nghịch một nổi, các việc khác đều làm được, nhưng lại chẳng có tên board ATtiny13 để ta chọn từ đó tải sketch lên ATtiny13. Tóm lại, vấn đề mà chúng ta cần giải quyết chính là làm thế nào để đồng bộ hóa thư mục hardware của mình lên Codebender.

Quay lại thời kì mới lập trình ATtiny13, chúng ta chỉ việc copy nội dung trong file nén hardware và dán vào thư mục hardware bên trong bộ chạy Arduino IDE mà thôi. Vậy hãy thử làm điều đó trên CodeBender xem.

Thử tìm cách upload file nén hardware lên Codebender

Khi truy cập vào Codebender, khi kéo trang lên xuống, có một cái thanh công cụ bên góc trái giữa màn hình đập vào mắt mình với một vài icon khá khó hiểu, và mình tìm cách rê chuột lên chúng để xem thử có tooltip nào hay không?

Từng chức năng bên thanh menu trái:

  • Home - Trang Dashboard quản lý chung về những dự án của bạn
  • Examples & Libraries - Các ví dụ mẫu, các thư viện của Arduino từ nhà phát triển Arduino và từ cộng đồng.
  • Supported Board - Danh sách các mẫu board hỗ trợ
  • Getting Started - Chỉ bạn cách bắt đầu với Codebender
  • Burn Bootloader - Ghi bootloader chưa bao giờ đơn giản hơn với Codebender heart
  • Serial Monitor - Bật Serial Monitor để tương tác với Serial trong sketch trên mạch Arduino của bạn.

Qua đó, cái mục Supported Board đã lấy được "cảm tình" của mình, vào xem thử trong đó có gì nào

Upload lên thử xem sao

Vậy là chúng ta có thể thêm đến tận 2 board cá nhân miễn phí, nào upload thử file hardware ATtiny13 lên thôi.

Uỵch, như vậy ta chỉ có thể upload được file nào có đuôi là .txt thôi. Vậy thì hơi kì nhé, kiểm tra trong file hardware chỉ có 2 file có đuôi .txt thôi, mà file readme.txt thì chắc không phải rồi, thôi thì thử upload file boards.txt xem sao.

À, trong file boards.txt có đến 13 board được định dạng à, hình như giữa mỗi định dạng lại có một dòng trắng, như vậy nếu ta bỏ đi các board ATtiny44, 45, 84, 85 trong file boards.txt sẽ được một file boards.txt chỉ còn chứa thông tin về vđk ATtiny13, từ đó có thể upload code được rồi.

Thử lại với file board.txt chỉ còn nội dung sau đây thử xem:

attiny13.name=ATtiny13 (internal 9.6 MHz clock)
attiny13.bootloader.low_fuses=0x7a
attiny13.bootloader.high_fuses=0xff
attiny13.upload.maximum_size=1024
attiny13.build.mcu=attiny13
attiny13.build.f_cpu=9600000L
attiny13.build.core=arduino:arduino
attiny13.build.variant=tiny8

Cool, chúng ta đã thêm được file board.txt để có thể lập trình ATtiny13 (trên lý thuyết) được rồi.

Thử upload một đoạn code có thể chạy được trên ATtiny13

Để chơ chắc chắn, mình đã thử upload code trong bài Dùng ATTiny13 để shiftOut ra IC 595 điều khiển nhiều LED bằng Arduino IDE trước khi thử upload bằng Codebender, và sau đó upload lại code trong bài Bài 2: Attiny13 - Trợ thủ đắc lực của Arduino - Lập trình nó? để vô hiệu hóa code shiftout.

Đầu tiên, chúng ta sẽ upload example Arduino ISP.

Tiếp đến là Clone & Edit đoạn code phía dưới sau đó chỉnh lại thông tin như hình sau:

Và, đèn LED đã nhấp nháy theo hiệu ứng. Yeah! heart

Kết luận

Codebender không chỉ giúp chúng ta code cùng nhau, chia sẻ nhanh hơn với những sketch trên mạch Arduino UNO, mà còn giúp chúng ta code trên nhiều loại board / vđk khác nhau nữa.

Thật không uổng phí thời gian cho những gì chúng ta bỏ ra! Hãy chinh phục nó cùng tôi bạn nhé.

lên
6 thành viên đã đánh giá bài viết này hữu ích.
Các dự án được truyền cảm hứng

Select any filter and click on Apply to see results

Các bài viết cùng tác giả

Arduino Nano - Nhỏ, tiện lợi, mang trên mình tinh hoa của Arduino Uno

Điều đầu tiên tớ muốn chia sẻ với các bạn khi tiếp xúc với Arduino Nano, đó là sự tiện dụng, đơn giản, có thể lập trình trực tiếp bằng máy tính (như Arduino Uno R3) và đặc biệt hơn cả đó là kích thước của nó. Kích thước của Arduino Nano cực kì nhỏ chỉ tương đương đồng 2 nghìn gấp lại 2 lần thôi, rất thích hợp cho các newbie, vì giá rẻ hơn Arduino Uno nhưng dùng được tất cả các thư việt của mạch này. Hôm nay, tớ viết bài này nhằm mục đích giới thiệu về mạch Arduino Nano và các thông số kĩ thuật, cùng với đó là những gợi ý ứng dụng khi bắt đầu với mạch này.

lên
18 thành viên đã đánh giá bài viết này hữu ích.

analogReference()

Hàm analogReference() có nhiệm vụ đặt lại mức (điện áp) tối đa khi đọc tín hiệu analogRead. Ứng dụng như sau, giả sử bạn đọc một tín hiệu dạng analog có hiệu điện thế từ 0-1,1V. Nhưng mà nếu dùng mức điện áp tối đa mặc định của hệ thống (5V) thì khoảng giá trị sẽ ngắn hơn => độ chính xác kém hơn => hàm này ra đời để giải quyết việc đó!

lên
15 thành viên đã đánh giá bài viết này hữu ích.