Mục lục:
Video: IOT123 - I2C BRICK MASTER JIG: 4 bước
2024 Tác giả: John Day | [email protected]. Sửa đổi lần cuối: 2024-01-30 13:34
Trong khi phát triển các CẢM BIẾN VÀ HÀNH ĐỘNG ASSIMILATE, tôi giữ một UNO tiện dụng để gửi các lệnh I2C adhoc tới các nguyên mẫu đang được phát triển. Một trong những lợi ích của GẠCH I2C là sơ đồ chân được tiêu chuẩn hóa. Thay vì sử dụng dây breadboard mỗi lần (xem Fritzings), một tấm chắn lo-tech chắc chắn được sử dụng.
Bước 1: Vật liệu và công cụ
- 4cm x 6cm PCB đơn nhất (1)
- Dây móc (~ 6)
- Điện trở 4K7 (2) 6
- Tiêu đề nam (12P, 8P)
- Tiêu đề Nữ (9P hoặc 3P, 3P)
- Hàn và sắt (1)
Bước 2: Lắp ráp
Nếu bạn sử dụng 2 tiêu đề nữ 3P tắt thay vì tiêu đề nữ 1 ngoài 9P, CẢM BIẾN / ACTORS ASSIMILATE sẽ phù hợp trên JIG mà không cần tháo rời chúng.
Với hệ thống dây điện, hãy cắt bỏ tối đa 10mm ở các đầu và thiếc các đầu.
- Ở dưới cùng của PCB, hãy lắp tiêu đề đực (1) (2) và hàn trên đầu.
- Ở trên cùng của PCB, hãy chèn tiêu đề cái (3) và hàn ở dưới cùng.
- Trên cùng, xuyên qua một lỗ dây màu đỏ vào RED1 và RED2.
- Ở phía dưới, dây xuyên lỗ từ RED1 sang RED3.
- Ở phía dưới, dây xuyên lỗ từ RED2 sang RED5 và hàn.
- Ở trên cùng, dây xuyên lỗ từ RED3 sang RED4 và hàn.
- Ở trên cùng, xuyên qua một lỗ dây màu đỏ vào RED6 và RED7.
- Ở phía dưới, dây xuyên lỗ từ RED6 sang RED8.
- Ở phía dưới, dây xuyên lỗ từ RED7 sang RED10 và hàn.
- Ở trên cùng, dây xuyên lỗ từ RED8 sang RED9 và hàn.
- Trên cùng, xuyên qua lỗ một dây đen thành BLACK1 và BLACK2.
- Ở phía dưới, dây xuyên lỗ từ BLACK1 thành BLACK3.
- Ở phía dưới, dây xuyên lỗ từ BLACK2 thành BLACK5 và hàn.
- Ở trên cùng, dây xuyên lỗ từ BLACK3 thành BLACK4 và hàn.
- Trên cùng, xuyên qua lỗ một dây màu xanh lam vào BLUE1 và BLUE2.
- Ở phía dưới, dây xuyên lỗ từ BLUE1 thành BLUE3.
- Ở phía dưới, dây xuyên lỗ từ BLUE2 vào BLUE5 và hàn.
- Ở trên cùng, dây xuyên lỗ từ BLUE3 thành BLUE4 và hàn.
- Trên cùng, xuyên qua lỗ một dây màu xanh lá cây vào GREEN1 và GREEN2.
- Ở phía dưới, dây xuyên lỗ từ GREEN1 thành GREEN3.
- Ở phía dưới, dây xuyên lỗ từ GREEN2 sang GREEN5 và hàn.
- Ở phía trên, dây xuyên lỗ từ GREEN3 sang GREEN4 và hàn.
- Ở trên cùng, xuyên qua lỗ một điện trở 4K7 vào SILVER3 và SILVER4.
- Ở phía dưới, dây xuyên lỗ từ SILVER3 thành GREEN5 và hàn.
- Ở phía dưới, dây xuyên lỗ từ SILVER4 thành RED10 và hàn.
- Trên cùng, xuyên qua lỗ một điện trở 4K7 vào SILVER1 và SILVER2.
- Ở phía dưới, dây xuyên lỗ từ SILVER1 vào BLUE5 và hàn.
- Ở phía dưới, dây xuyên lỗ từ SILVER2 vào RED10 và hàn.
Bước 3: Mã cho UNO
Bản phác thảo ở đây là thô sơ. Nó cho phép bạn sử dụng Đầu vào Bảng điều khiển, để làm cho UNO gửi các bản tin I2C tới I2C ATTINY85 BRICK.
Tất cả các hướng dẫn được in ra màn hình, với các tùy chọn được hỗ trợ.
Các lệnh adhoc I2C BRICK cho các nô lệ từ UNO chính
#bao gồm |
const byte _num_chars = 32; |
char _reiled_chars [_num_chars]; // một mảng để lưu trữ dữ liệu đã nhận |
boolean _has_new_data = false; |
voidsetup () { |
Serial.begin (9600); |
Serial.println (); |
Serial.println ("ASSIMILATE IOT ACTOR / SENSOR EEPROM EDITOR"); |
Serial.println ("đảm bảo chọn dòng mới trong cửa sổ giao diện điều khiển"); |
Serial.println (); |
Serial.println ("ĐỊA CHỈ 1 XÁC NHẬN METADATA N / A (CHO M2M)"); |
Serial.println ("ĐỊA CHỈ 2 ACTOR LỆNH"); |
Serial.println (); |
Serial.println ("CÁC ĐỊA CHỈ TRÊN XE BUÝT:"); |
scan_i2c_addresses (); |
Serial.println (); |
Serial.println (""); |
} |
voidscan_i2c_addresses () { |
int device_count = 0; |
for (địa chỉ byte = 8; địa chỉ <127; địa chỉ ++) |
{ |
Wire.beginTransmission (địa chỉ); |
const byte error = Wire.endTransmission (); |
nếu (lỗi == 0) |
{ |
Serial.println (địa chỉ); |
} |
} |
} |
voidloop () { |
recv_with_end_marker (); |
send_to_i2c (); |
} |
voidrecv_with_end_marker () { |
byte tĩnh ndx = 0; |
char end_marker = '\ n'; |
char rc; |
while (Serial.available ()> 0 && _has_new_data == false) { |
rc = Serial.read (); |
nếu (rc! = end_marker) { |
_receive_chars [ndx] = rc; |
ndx ++; |
if (ndx> = _num_chars) { |
ndx = _num_chars - 1; |
} |
} |
khác { |
_reiled_chars [ndx] = '\ 0'; // kết thúc chuỗi |
ndx = 0; |
_has_new_data = true; |
} |
} |
} |
voidsend_to_i2c () { |
char param_buf [16]; |
const String accept_string = String (_receive_chars); |
if (_has_new_data == true) { |
int idx1 = got_string.indexOf (''); |
Địa chỉ chuỗi = got_string.substring (0, idx1); |
int address_int = address.toInt (); |
if (address_int <8 || address_int> 127) { |
Serial.println ("ĐẦU VÀO ĐỊA CHỈ KHÔNG HỢP LỆ:"); |
Serial.println (địa chỉ); |
trở lại; |
} |
int idx2 = got_string.indexOf ('', idx1 + 1); |
Mã chuỗi; |
if (idx2 == -1) { |
code = got_string.substring (idx1 + 1); |
}khác{ |
code = got_string.substring (idx1 + 1, idx2 + 1); |
} |
int code_int = code.toInt (); |
if (code_int <0 || code_int> 5) { |
Serial.println ("ĐẦU VÀO MÃ KHÔNG HỢP LỆ:"); |
Serial.println (mã); |
trở lại; |
} |
bool has_parameter = idx2> -1; |
Tham số chuỗi; |
if (has_parameter) { |
tham số = accept_string.substring (idx2 + 1, idx2 + 17); // tối đa 16 ký tự |
if (tham số.length () <1) { |
Serial.println ("PARTAMETER MIN. LENGTH 1"); |
_has_new_data = false; |
trở lại; |
} |
}khác{ |
if (code_int> 1) { |
Serial.println ("BẮT BUỘC THAM SỐ!"); |
_has_new_data = false; |
trở lại; |
} |
} |
Serial.println (); |
Serial.print ("đầu vào orig ="); |
Serial.println (chuỗi_nhận_được); |
Serial.print ("address ="); |
Serial.println (địa chỉ); |
Serial.print ("code ="); |
Serial.println (mã); |
Serial.print ("tham số ="); |
Serial.println (tham số); |
// GỬI QUA I2C |
Wire.beginTransmission (address_int); |
Wire.write (mã_int); |
if (has_parameter) { |
tham số.trim (); |
strcpy (param_buf, tham số.c_str ()); |
Wire.write (param_buf); |
} |
Wire.endTransmission (); |
Serial.println (); |
Serial.println ("SENT VIA I2C!"); |
Serial.println (); |
Serial.println (""); |
_has_new_data = false; |
} |
} |
xem rawuno_i2c_command_input.ino được lưu trữ với ❤ bởi GitHub
Bước 4: Các bước tiếp theo
Từ các bản dựng được trình bày, có đủ các bộ phận chuyển động để bạn xây dựng MẠNG LƯỚI LẠNH GIÁC của riêng mình.
Mỗi chức năng riêng lẻ của các nút (cảm biến và tác nhân) đều có thể điều khiển được theo cách phi tập trung, không phụ thuộc vào chủ MCU để có bất kỳ kiến thức nào về các tính năng được hỗ trợ.
Bất kỳ ứng dụng nào kết nối với nhà môi giới MQTT đều có thể kiểm soát / quan sát mọi tính năng của IOT Node. Đó là M2M, ứng dụng web, IFTTT, v.v. Đơn giản hơn nhiều (hoặc phong phú hơn nếu bạn thích) giao diện cho thế giới IOT của bạn.
Đề xuất:
DRONE MASTER: 6 bước
DRONE MASTER: Đây là thiết kế 3D của một robot AI. Điều phối và điều khiển tất cả các máy bay không người lái trong các chức năng lập trình hoặc lớn hoặc thậm chí trong một trận đấu bóng đá là khá khó khăn. Chúng tôi cần những người điều khiển máy bay không người lái đào tạo hơn để làm điều đó. Nhưng robot AI này là tương lai và sẽ b
Nhấp vào Brick Switch cho Makey Makey: 4 bước (có hình ảnh)
Nhấp vào Brick Switch cho Makey Makey: Công tắc in 3D này sẽ cho phép người dùng biến Makey Makey thành " trượt ngón tay " để có " nhấp vào " trong trò chơi hoặc có thể là mũi tên phải / trái để cuộn qua các bản trình bày. Việc bổ sung các giá đỡ đầu cuối bên phải và bên trái cho
500 LED-Pixel RGB-Brick: 9 bước (có hình ảnh)
500 LED-Pixel RGB-Brick: Một thời gian trước, tôi đã xây dựng một LED-Coffetable 10x10 với một số đèn LED WS2812 này, nhưng ngay cả khi có thể chơi trò chơi cổ điển Snake bằng điện thoại thông minh được kết nối với nó, tôi muốn một thứ gì đó hơn thế nữa đặc biệt. Vì vậy, tôi quyết định đặt thêm một vài đèn led vào nó, sắp xếp
IOT123 - ATTINY85 JIG LẬP TRÌNH TRÊN BẢNG: 3 bước
IOT123 - ATTINY85 TREO LẬP TRÌNH TRÊN BẢNG: Trên các thiết kế BRICK, tôi đã đề cập đến các lỗ xuyên giáp với ATTINY85 đã không được sử dụng, để kích hoạt lập trình pin pogo trong khi DIP8 được hàn vào PCB. Đây là lập trình viên pin pogo đó. Đây thực sự chỉ là một dây dẫn bộ chuyển đổi
IOT123 - PHẦN MỀM ATTINY85 Lắp ráp JIG SERIAL: 4 bước
IOT123 - ATTINY85 SOFTWARE SERIAL JIG Assembly: Tôi đang sử dụng ATTINY85's để kết hợp cảm biến năng lượng thấp. Ban đầu, tôi nghĩ rằng không có cách nào để gỡ lỗi những con chip này bằng bảng điều khiển và đã sử dụng một số " đẹp đẽ ngoài đó " phương pháp để xem những gì đang xảy ra trong thời gian chạy. Sau đó, tôi tình cờ gặp SoftwareSeria