Cách sử dụng Arduino IDE lập trình mạch Intel Edison và mini breakout

Mô tả dự án: 

Với phương pháp lập trình Intel Edison bằng Arduino IDE, đây có thể xem là phương pháp lập trình dễ nhất hiện này khi lập trình với Intel Edison. Tuy nhiên, cách này chỉ phù hợp với Intel Edison + Arduino breakout. Vậy với combo Intel Edison + mini breakout, cách tiếp cận của chúng ta là gì? Bài viết này sẽ giúp bạn giải đáp thắc mắc trên và đi sâu hoàn thiện các dự án vớ Intel Edison?

Khi làm việc với Intel Edison + Mini breakout cần lưu ý gì?

Lưu ý

  • Mức điện thế giao tiếp I/O là 1.8. 
    • Rất rất nguy hiểm với newbie.
    • Rất rất tiết kiệm điện.
    • Rất phù hợp với các dự án wearable.
    • Chỉ cần cấp điện thế lớn hơn 2V ra vào trong thời gian đủ lâu có thể gây hỏng hóc Intel Edison và tệ nhất có thể dẫn đến cháy luôn.
  • Có 40 chân GPIO nhé!
    • Tuy nhiên, bạn dùng Arduino IDE nó không cho bạn chơi được nhiều thế đâu, chỉ có 14+6 = 20 pin GPIO bạn dùng được ở Arduino IDE thôi. Vì vậy nếu có điều kiện, bạn hãy học nodejs để lập trình Intel Edison nhé. Xem các bài viết trước của mình.
    • Trong 40 chân GPIO có 2 chân giao tiếp IO được ở mức 3.3V nhưng bạn đừng quan tâm chi, hãy luôn giao tiếp ở 1.8, an toàn là bạn, tai nạn là thù!

Các bạn cần cẩn thận cực kì nhé.

Pinout của Intel Edison mini breakout

Arduino Breakout của Intel Edison

Các bạn để ý ở cột Shield pin, trong đó từ IO0 => IO13 là các chân digital từ 0 => 13, bạn dùng tương tự Arduino Uno. Các IO14 => 19 là các chân Analog. Từ đó, bạn tra ở cột Pin tương ứng để biết được chân GPIO kết nối tới chân IO nào trên arduino breakout!

LED Blink với Arduino breakout ở chân 13

Bạn nối LED 13 vào chân nghĩa là chân GPIO 40 (chỉ lấy chân đầu tiên), sau đó nạp code sau!

/*
  Blink - Nhấp nháy
  Đoạn code làm nhấp nháy một đèn LED cho trước
 */
 
// chân digital 13 cần được kết nối với đèn LED
// và chân digital 13 này sẽ được đặt tên là 'led'. Biến 'led' này có kiểu dữ liệu là int và có giá trị là 13
int led = 13;

// Hàm setup chạy một lần duy nhất khi khởi động chương trình
void setup() {                
  // đặt 'led' là OUTPUT
  pinMode(led, OUTPUT);    
}

// Hàm loop chạy mãi mãi sau khi kết thúc hàm setup()
void loop() {
  digitalWrite(led, HIGH);   // bật đèn led sáng
  delay(1000);               // dừng chương trình trong 1 giây => thây đèn sáng được 1 giây
  digitalWrite(led, LOW);    // tắt đèn led
  delay(1000);               // dừng chương trình trong 1 giây => thấy đèn tối được 1 giây
}

Ta đa, led không sáng đúng không nào heart. Nếu LED sáng thì nó là màu đỏ hoặc vàng, còn led xanh (2 màu xanh) và trắng sẽ không sáng. Vì sao? Vì điện thế hoạt động của LED đỏ và vàng là từ 1.8V - 2.3V hay 1.8V - 2.4V, còn 3 led kia lên đến 2.7V - 3.5V. Vì vậy, nếu led không sáng thì xem video của mình ở dưới để tự hài lòng nhé.

Vậy với 1.8V, làm sao điều khiển thiết bị

Đây là một việc rất khó, bởi vì 1.8 V là điện thế không thông dụng trong cộng đồng Việt Nam, vậy làm sao để điều khiển thiết bị? Bạn phải dùng transistor làm công tắc nhằm nâng áp lên 3.3V hoặc tương đương. Để làm việc đó, xin bạn hãy tham khảo bài viết rất hay được viết cách đây 2 năm của anh NTP_PRO. Bạn chỉ việc thay động cơ DC bằng con LED là ok.

 

Đọc tín hiệu thiết bị thì sao?

Với các cảm biến như BMP180 thì điện áp chỉ có 1.8V nên không có vấn đề gì, còn các cảm biến có điện áp trả về lớn hơn 2V thì bạn làm cầu phân áp đi sao cho điện thế ở mức 0.7 - 2V là ok. Để tìm tài liệu về cầu phân áp, bạn xem tại đây.

Kết luận

Chúc các bạn thành công, hay thì rate node cho mình nhé :)

Youtube: 
Thành quả của mình
lên
12 thành viên đã đánh giá bài viết này hữu ích.
Chuyên mục: 
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ả

Vấn đề của số chấm động và số nguyên trong ngôn ngữ lập trình C++ trên board mạch Arduino

Có bao giờ bạn tự hỏi: "Dự án của mình làm tốt thế này, chạy ngon lành rành rành thế này, chắc không có bugs đâu?". Thực sự, nếu dự án của bạn không có phần xử lý số thực chấm động trong đó thì mình nghĩ phần code của bạn sẽ hoạt động ngon lành theo thời gian. Nhưng mà có số thực thì từ từ, chúng ta cần xét lại code. Trước đây, có một số bạn nhắn tin riêng hỏi mình về code với điểm chung là "code mình chạy ngon lành lúc đầu, sau đó bị lỗi, không rõ nguyên nhân". Loại trừ các phần code logic sai ra, thì hầu hết đều là do lỗi khi xử lý số chấm động mà không quan tâm đến nền tảng lập trình bên dưới! Mà cũng đúng, chúng ta rất dễ bị đánh lừa bởi chính đoạn code chúng ta viết. Vì nó có báo lỗi biên dịch đâu mà, kaka. Qua bài viết này, mình muốn phân tích và cùng các bạn rút kinh nghiệm về số chấm động float, cách hạn chế lỗi sai với số chấm động.

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