สารบัญ:
- ขั้นตอนที่ 1: วัสดุและเครื่องมือ
- ขั้นตอนที่ 2: การประกอบ
- ขั้นตอนที่ 3: รหัสสำหรับ UNO
- ขั้นตอนที่ 4: ขั้นตอนต่อไป
วีดีโอ: IOT123 - I2C BRICK MASTER JIG: 4 ขั้นตอน
2024 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2024-01-30 13:07
ขณะพัฒนาเซ็นเซอร์ตรวจจับและนักแสดง ฉันเก็บ UNO ไว้ใกล้มือเพื่อส่งคำสั่งเฉพาะกิจ I2C ไปยังต้นแบบที่กำลังพัฒนา ข้อดีอย่างหนึ่งของ I2C BRICKS คือพินเอาต์มาตรฐาน แทนที่จะใช้สายเขียงหั่นขนมในแต่ละครั้ง (ดู Fritzings) จะใช้เกราะป้องกันเทคโนโลยีที่ทนทาน
ขั้นตอนที่ 1: วัสดุและเครื่องมือ
- 4 ซม. x 6 ซม. Uninersal PCB (1)
- สายเชื่อมต่อ (~6)
- ตัวต้านทาน 4K7 (2)6
- ส่วนหัวชาย (12P, 8P)
- ส่วนหัวหญิง (9P หรือ 3P, 3P)
- บัดกรีและเหล็ก (1)
ขั้นตอนที่ 2: การประกอบ
หากคุณใช้หัวต่อตัวเมีย 2 ตัว 3P แทนหัวตัวเมีย 1 ตัวจาก 9P ตัวตรวจจับ ASSIMILATE/ACTORS จะพอดีกับ JIG โดยไม่ต้องแยกชิ้นส่วน
เมื่อเดินสายแล้ว ให้ดึงที่ปลายออกสูงสุด 10 มม. แล้วขันปลายสุดให้แน่น
- ที่ด้านล่างของ PCB ให้ใส่ส่วนหัวของตัวผู้ (1) (2) แล้วบัดกรีที่ด้านบน
- ที่ด้านบนของ PCB ใส่ส่วนหัวของตัวเมีย (3) และบัดกรีที่ด้านล่าง
- ที่ด้านบน ให้เจาะลวดสีแดงเข้าไปใน RED1 และ RED2
- ที่ด้านล่าง ลวดทะลุผ่านจาก RED1 ถึง RED3
- ที่ด้านล่าง ลวดทะลุจาก RED2 เป็น RED5 และบัดกรี
- ด้านบน ลวดทะลุจาก RED3 เป็น RED4 และบัดกรี
- ที่ด้านบน ให้สอดลวดสีแดงเข้าไปใน RED6 และ RED7
- ที่ด้านล่าง ลวดทะลุผ่านจาก RED6 ถึง RED8
- ที่ด้านล่าง ลวดทะลุจาก RED7 เป็น RED10 และบัดกรี
- ด้านบน ลวดทะลุจาก RED8 เป็น RED9 และบัดกรี
- ที่ด้านบน เจาะลวดสีดำเข้าไปใน BLACK1 และ BLACK2
- ที่ด้านล่าง ลวดทะลุผ่านจาก BLACK1 ถึง BLACK3
- ที่ด้านล่าง ลวดทะลุจาก BLACK2 ถึง BLACK5 และบัดกรี
- ด้านบน ลวดทะลุจาก BLACK3 เป็น BLACK4 และบัดกรี
- ที่ด้านบน ให้เจาะรูลวดสีน้ำเงินเข้ากับ BLUE1 และ BLUE2
- ที่ด้านล่าง ลวดผ่านรูจาก BLUE1 เป็น BLUE3
- ที่ด้านล่าง ลวดทะลุจาก BLUE2 เป็น BLUE5 และบัดกรี
- ด้านบน ลวดทะลุจาก BLUE3 เป็น BLUE4 และบัดกรี
- ที่ด้านบน ให้ลวดสีเขียวผ่านรูเข้าไปใน GREEN1 และ GREEN2
- ที่ด้านล่าง ลวดทะลุผ่านจาก GREEN1 ถึง GREEN3
- ที่ด้านล่างลวดผ่านรูจาก GREEN2 ถึง GREEN5 และบัดกรี
- ด้านบน ลวดทะลุจาก GREEN3 เป็น GREEN4 และบัดกรี
- ที่ด้านบน ตัวต้านทาน 4K7 แบบทะลุผ่านเข้าไปใน SILVER3 และ SILVER4
- ที่ด้านล่าง ลวดผ่านรูจาก SILVER3 ถึง GREEN5 และบัดกรี
- ที่ด้านล่าง ลวดทะลุจาก SILVER4 ถึง RED10 และบัดกรี
- ที่ด้านบน ตัวต้านทาน 4K7 แบบทะลุผ่านเข้าไปใน SILVER1 และ SILVER2
- ที่ด้านล่าง ลวดทะลุจาก SILVER1 เป็น BLUE5 และบัดกรี
- ที่ด้านล่าง ลวดทะลุจาก SILVER2 ถึง RED10 และบัดกรี
ขั้นตอนที่ 3: รหัสสำหรับ UNO
ร่างนี้เป็นพื้นฐาน อนุญาตให้คุณใช้ Console Input เพื่อให้ UNO ส่งข้อความ I2C ไปยัง I2C ATTINY85 BRICK
คำแนะนำทั้งหมดจะพิมพ์ไปที่หน้าจอ พร้อมตัวเลือกที่รองรับ
คำสั่งเฉพาะของ I2C BRICK สำหรับทาสจาก UNO master
#รวม |
ไบต์ const _num_chars = 32; |
ถ่าน _received_chars[_num_chars]; // อาร์เรย์เพื่อเก็บข้อมูลที่ได้รับ |
บูลีน _has_new_data = เท็จ; |
voidsetup() { |
Serial.begin(9600); |
Serial.println(); |
Serial.println("ASSIMILATE IOT ACTOR/SENSOR EEPROM EDITOR"); |
Serial.println("ตรวจสอบให้แน่ใจว่าได้เลือกบรรทัดใหม่ในหน้าต่างคอนโซล"); |
Serial.println(); |
Serial.println("ที่อยู่ 1 ยืนยันการรับเมตาดาต้าไม่มี (สำหรับ M2M)"); |
Serial.println("ที่อยู่ 2 ACTOR COMMAND"); |
Serial.println(); |
Serial.println("AdDRESSES ON BUS:"); |
scan_i2c_addresses(); |
Serial.println(); |
Serial.println(""); |
} |
voidscan_i2c_addresses(){ |
int device_count = 0; |
สำหรับ (ที่อยู่ไบต์ = 8; ที่อยู่ <127; ที่อยู่++) |
{ |
Wire.beginการส่ง(ที่อยู่); |
ข้อผิดพลาด const ไบต์ = Wire.endTransmission (); |
ถ้า (ข้อผิดพลาด == 0) |
{ |
Serial.println (ที่อยู่); |
} |
} |
} |
โมฆะลูป () { |
recv_with_end_marker(); |
send_to_i2c(); |
} |
voidrecv_with_end_marker () { |
ไบต์คงที่ ndx = 0; |
ถ่าน end_marker = '\n'; |
ถ่าน rc; |
ในขณะที่ (Serial.available () >0 && _has_new_data == false) { |
rc = Serial.read(); |
ถ้า (rc != end_marker) { |
_received_chars[ndx] = rc; |
นดx++; |
ถ้า (ndx >= _num_chars) { |
ndx = _num_chars - 1; |
} |
} |
อื่น { |
_received_chars[ndx] = '\0'; // สิ้นสุดสตริง |
ndx = 0; |
_has_new_data = จริง; |
} |
} |
} |
voidsend_to_i2c () { |
ถ่าน param_buf[16]; |
const สตริงที่ได้รับ_string = สตริง (_received_chars); |
ถ้า (_has_new_data == จริง) { |
int idx1 = ได้รับ_string.indexOf(''); |
ที่อยู่สตริง = ได้รับ_string.substring(0, idx1); |
int address_int = address.toInt(); |
ถ้า (address_int < 8 || address_int >127){ |
Serial.println ("ที่อยู่ไม่ถูกต้อง:"); |
Serial.println (ที่อยู่); |
กลับ; |
} |
int idx2 = ได้รับ_string.indexOf('', idx1+1); |
รหัสสตริง; |
ถ้า (idx2 == -1){ |
รหัส = ได้รับ_string.substring(idx1+1); |
}อื่น{ |
รหัส = ได้รับ_string.substring(idx1+1, idx2+1); |
} |
int code_int = code.toInt(); |
ถ้า (code_int < 0 || code_int >5){ |
Serial.println("รหัสไม่ถูกต้อง:"); |
Serial.println (รหัส); |
กลับ; |
} |
บูล has_parameter = idx2 > -1; |
พารามิเตอร์สตริง; |
ถ้า (has_parameter){ |
พารามิเตอร์ = ได้รับ_string.substring(idx2 + 1, idx2 + 17); // 16 ตัวอักษรสูงสุด |
ถ้า (พารามิเตอร์ ความยาว () < 1){ |
Serial.println("พารามิเตอร์ขั้นต่ำ ความยาว 1"); |
_has_new_data = เท็จ; |
กลับ; |
} |
}อื่น{ |
ถ้า (code_int >1){ |
Serial.println("ต้องมีพารามิเตอร์!"); |
_has_new_data = เท็จ; |
กลับ; |
} |
} |
Serial.println(); |
Serial.print("อินพุตต้นฉบับ = "); |
Serial.println(received_string); |
Serial.print("ที่อยู่ = "); |
Serial.println (ที่อยู่); |
Serial.print ("รหัส = "); |
Serial.println (รหัส); |
Serial.print("พารามิเตอร์ = "); |
Serial.println (พารามิเตอร์); |
// ส่งผ่าน I2C |
Wire.beginTransmission (ที่อยู่_int); |
Wire.write (code_int); |
ถ้า (has_parameter){ |
พารามิเตอร์. trim(); |
strcpy(param_buf, พารามิเตอร์.c_str()); |
Wire.write(param_buf); |
} |
Wire.endTransmission(); |
Serial.println(); |
Serial.println("ส่งผ่าน I2C!"); |
Serial.println(); |
Serial.println(""); |
_has_new_data = เท็จ; |
} |
} |
ดู rawuno_i2c_command_input.ino โฮสต์ด้วย ❤ โดย GitHub
ขั้นตอนที่ 4: ขั้นตอนต่อไป
จากบิลด์ที่นำเสนอ มีชิ้นส่วนที่เคลื่อนไหวเพียงพอสำหรับคุณในการสร้าง ASSIMILATE IOT NETWORK ของคุณเอง
แต่ละฟังก์ชันของโหนด (เซ็นเซอร์และตัวแสดง) สามารถควบคุมได้ในลักษณะการกระจายอำนาจ ไม่ได้ขึ้นอยู่กับต้นแบบ MCU ที่จะมีความรู้เกี่ยวกับคุณสมบัติที่รองรับ
แอปใดๆ ที่เชื่อมต่อกับโบรกเกอร์ MQTT สามารถควบคุม/สังเกตทุกฟีเจอร์ของโหนด IOT นั่นคือ M2M, เว็บแอปพลิเคชัน, IFTTT และอื่นๆ อินเทอร์เฟซที่ง่ายกว่ามาก (หรือสมบูรณ์ยิ่งขึ้นหากต้องการ) กับโลก IOT ของคุณ
แนะนำ:
DRONE MASTER: 6 ขั้นตอน
DRONE MASTER: นี่คือการออกแบบสามมิติของหุ่นยนต์ AI การประสานงานและควบคุมโดรนทั้งหมดในโปรแกรมหรือฟังก์ชั่นขนาดใหญ่ หรือแม้แต่ในการแข่งขันฟุตบอลนั้นค่อนข้างยาก เราต้องการผู้ควบคุมโดรนที่ได้รับการฝึกฝนมากขึ้นเพื่อทำมัน แต่หุ่นยนต์ AI ตัวนี้เป็นอนาคต และจะข
คลิก Brick Switch สำหรับ Makey Makey: 4 ขั้นตอน (พร้อมรูปภาพ)
คลิก Brick Switch สำหรับ Makey Makey: สวิตช์ที่พิมพ์ 3 มิตินี้จะอนุญาตให้ผู้ใช้เปลี่ยน Makey Makey ให้เป็น "สไลด์นิ้ว" สำหรับ "คลิก" ในเกมหรืออาจเป็นลูกศรขวา/ซ้ายเพื่อเลื่อนดูการนำเสนอ การเพิ่มการเมานต์เทอร์มินัลซ้ายและขวาสำหรับ
500 LED-Pixel RGB-Brick: 9 ขั้นตอน (พร้อมรูปภาพ)
500 LED-Pixel RGB-Brick: เมื่อก่อนฉันสร้าง 10x10 LED-Coffetable ด้วย WS2812 LED บางตัว แต่ถึงแม้จะเป็นไปได้ที่จะเล่นเกม Snake แบบเก่าด้วยสมาร์ทโฟนที่เชื่อมต่ออยู่ ฉันก็ต้องการอะไรมากกว่านี้ พิเศษ. ฉันก็เลยตัดสินใจใส่ลีดเดอร์อีกสองสามข้อ arra
IOT123 - ATTINY85 การเขียนโปรแกรม JIG ออนบอร์ด: 3 ขั้นตอน
IOT123 - ATTINY85 ONBOARD PROGRAMMING JIG: ในการออกแบบ BRICK ฉันได้กล่าวถึงรูทะลุที่อยู่ติดกับ ATTINY85 ที่ไม่ได้ใช้งาน เพื่อเปิดใช้งานโปรแกรมเมอร์พิน pogo ในขณะที่ DIP8 ถูกบัดกรีเข้ากับ PCB นี่คือโปรแกรมเมอร์พิน pogo นี่เป็นเพียงสายนำอะแดปเตอร์จาก
IOT123 - ATTINY85 SOFTWARE SERIAL JIG Assembly: 4 ขั้นตอน
IOT123 - ATTINY85 SOFTWARE SERIAL JIG Assembly: ฉันเคยใช้ ATTINY85 สำหรับการผสมเซ็นเซอร์ที่ใช้พลังงานต่ำ เดิมทีฉันคิดว่าไม่มีทางที่จะดีบักชิปเหล่านี้โดยใช้คอนโซลและใช้ "ออกไปที่นั่น" วิธีการดูสิ่งที่เกิดขึ้นรันไทม์ จากนั้นฉันก็เจอ SoftwareSeria