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

Bộ điều khiển PID - ứng dụng phần 2 - xe dò line dùng thuật toán PID

Tiép nối bài viết về xe dò line cảm ơn Đỗ Hữu Toàn đã viết hộ mình phần 4. hôm nay mình sẽ làm cho chiếc xe dò line đi mượt và có hồn hơn 

lên
34 thành viên đã đánh giá bài viết này hữu ích.
Các bài viết cùng tác giả

CCA - Kết quả vòng 2 - Lịch trình gửi board cho vòng 3

Sau khi chỉnh sửa ý tưởng, đã có nhiều đội thi thể hiện sự quyết tâm làm dự án đến cùng của mình. BTC rất khó để lựa chọn ra những đội nào sẽ nhận được board từ Quỹ Cộng đồng Arduino Việt Nam. Vì vậy, ngoài 5 nhóm sẽ nhận được bộ starter kit, BTC quyết định sẽ có 2 bạn (đã hoàn thành dự án) tham gia tranh tài để nhận giải thưởng đặc biệt từ Cộng đồng.

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

true

true là một hằng logic. Bạn cũng có thể HIỂU true là một hằng số nguyên mang giá trị là 1. Trong các biểu thức logic, một hằng số hay giá trị của một biểu thức khác 0 được xem như là mang giá trị true

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