Мазмуну:
- 1 -кадам: материалдар жана инструменттер
- 2 -кадам: Ассамблея
- 3 -кадам: БУУнун коду
- 4 -кадам: Кийинки кадамдар
Video: IOT123 - I2C BRICK MASTER JIG: 4 кадам
2024 Автор: John Day | [email protected]. Акыркы өзгөртүү: 2024-01-30 10:42
СЕНСОРЛОРДУ ЖАНА АКТОРЛОРДУ ЧАКЫРУУДА, мен иштеп жаткан прототиптерге adhoc I2C буйруктарын жөнөтүү үчүн UNOну колдо кармап турам. I2C BRICKSтин артыкчылыктарынын бири - бул стандартталган пинуттар. Ар бир жолу нан зымдарын колдонуунун ордуна (Fritzingsти караңыз), бышык ло-технологиялык калкан колдонулат.
1 -кадам: материалдар жана инструменттер
- 4cm x 6cm Uninersal PCB (1)
- Байланыш зымы (~ 6)
- 4K7 каршылыгы (2) 6
- Эркек баш (12P, 8P)
- Аялзат аталышы (9P же 3P, 3P)
- Лайнер жана Темир (1)
2 -кадам: Ассамблея
Эгерде сиз 1 өчүрүүчү 9P аялдын башынын ордуна 2 өчүрүүчү 3P аял башын колдонсоңуз, ASSIMILATE SENSOR/ACTORS JIGге аларды ажыратпастан туура келет.
Өткөргүчтөрдүн учтарынан 10 ммге чейин сыйрып алып, эң учтарын калайлаңыз.
- ПХБнын ылдый жагында эркек башын (1) (2) жана үстүнө ширетүүнү салыңыз.
- ПХБнын үстү жагына, аялдын башын (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ге чейин тешик аркылуу өткөрүлгөн зым жана ширетүүчү.
- Үстүндө, SILVER3 жана SILVER4 ичине тешик аркылуу 4K7 каршылыгы.
- Төмөндө, SILVER3төн GREEN5ге тешик аркылуу өткөрүлгөн зым жана ширетүүчү.
- Ылдыйда, SILVER4тен RED10га тешилген зым жана ширетүүчү.
- Үстүнкү жагында, SILVER1 жана SILVER2ге 4K7 каршылыгы аркылуу тешилет.
- Төмөндө, SILVER1ден BLUE5ге тешик аркылуу өткөрүлгөн зым жана ширетүү.
- Төмөндө, SILVER2ден RED10га тешик аркылуу өткөрүлгөн зым жана ширетүү.
3 -кадам: БУУнун коду
Бул жерде эскиз жөнөкөй. Бул БУУнун I2C ATTINY85 BRICKке I2C билдирүүлөрдү жөнөтүүсүн камсыз кылуу үчүн Консоль Киргизүүсүн колдонууга мүмкүнчүлүк берет.
Бардык көрсөтмөлөр колдоого алынган параметрлер менен экранда басылып чыгат.
UNO кожоюнунун кулдары үчүн I2C BRICK adhoc буйруктары
#кошуу |
const байт _num_chars = 32; |
char _received_chars [_num_chars]; // алынган маалыматтарды сактоо үчүн массив |
логикалык _has_new_data = жалган; |
voidsetup () { |
Serial.begin (9600); |
Serial.println (); |
Serial.println ("IOT ACTOR/SENSOR EEPROM EDITOR СОНУН"); |
Serial.println ("консоль терезесинде жаңы сызыктын тандалышын камсыз кылуу"); |
Serial.println (); |
Serial.println ("ADRESS 1 METADATA RECEIPT N/A (M2M ҮЧҮН) ЫРАСТАНДЫ"); |
Serial.println ("АДРЕС 2 АКТОР КОМАНДАСЫ"); |
Serial.println (); |
Serial.println ("АВТОБУСТАГЫ АДРЕСТЕР:"); |
scan_i2c_addresses (); |
Serial.println (); |
Serial.println (""); |
} |
voidscan_i2c_addresses () { |
int device_count = 0; |
үчүн (байт дареги = 8; дарек <127; дарек ++) |
{ |
Wire.beginTrmission (дарек); |
const байт катасы = Wire.endTransmission (); |
эгер (ката == 0) |
{ |
Serial.println (дареги); |
} |
} |
} |
voidloop () { |
recv_with_end_marker (); |
send_to_i2c (); |
} |
voidrecv_with_end_marker () { |
статикалык байт ndx = 0; |
char end_marker = '\ n'; |
char rc; |
while (Serial.available ()> 0 && _has_new_data == false) { |
rc = Serial.read (); |
if (rc! = end_marker) { |
_received_chars [ndx] = rc; |
ndx ++; |
эгер (ndx> = _num_chars) { |
ndx = _num_chars - 1; |
} |
} |
башка { |
_received_chars [ndx] = '\ 0'; // сапты токтотуу |
ndx = 0; |
_has_new_data = чындык; |
} |
} |
} |
voidsend_to_i2c () { |
char param_buf [16]; |
const String алынды_сап = Стринг (_received_chars); |
эгер (_has_new_data == true) { |
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) { |
код = алынды_стринг.substring (idx1+1); |
} башка { |
код = алынды_стринг.substring (idx1+1, idx2+1); |
} |
int code_int = code.toInt (); |
if (code_int <0 || code_int> 5) { |
Serial.println ("ЖАРАКСЫЗ КОД КИРИШИ:"); |
Serial.println (код); |
кайтуу; |
} |
bool has_parameter = idx2> -1; |
String parameter; |
if (has_parameter) { |
параметр = алынды_сап.substring (idx2 + 1, idx2 + 17); // максимум 16 тамга |
if (parameter.length () <1) { |
Serial.println ("PARTAMETER MIN. LENGTH 1"); |
_has_new_data = жалган; |
кайтуу; |
} |
} башка { |
эгер (code_int> 1) { |
Serial.println ("ПАРАМЕТР КЕРЕК!"); |
_has_new_data = жалган; |
кайтуу; |
} |
} |
Serial.println (); |
Serial.print ("input orig ="); |
Serial.println (алынган_сап); |
Serial.print ("дарек ="); |
Serial.println (дареги); |
Serial.print ("код ="); |
Serial.println (код); |
Serial.print ("parameter ="); |
Serial.println (параметр); |
// I2C аркылуу жөнөтүү |
Wire.beginTransmission (address_int); |
Wire.write (code_int); |
if (has_parameter) { |
parameter.trim (); |
strcpy (param_buf, parameter.c_str ()); |
Wire.write (param_buf); |
} |
Wire.endTransmission (); |
Serial.println (); |
Serial.println ("I2C МЕНЕН ЖӨНӨТҮЛДҮ!"); |
Serial.println (); |
Serial.println (""); |
_has_new_data = жалган; |
} |
} |
GitHub тарабынан ❤ уюштурулган rawuno_i2c_command_input.ino караңыз
4 -кадам: Кийинки кадамдар
Көрсөтүлгөн конструкциялардан, сиз өзүңүздүн IOT NETWORK ASSIMILATE IOT NETWORKту курууга жетиштүү кыймылдуу бөлүктөрү бар.
Түйүндөрдүн ар бир жеке функциялары (сенсорлор жана актерлор) борборлоштурулган тартипте башкарылат, MCU чебери колдоого алынган өзгөчөлүктөр жөнүндө эч кандай маалыматка ээ эмес.
MQTT брокерине туташкан ар кандай колдонмо IOT түйүнүнүн ар бир өзгөчөлүгүн көзөмөлдөй алат/байкай алат. Бул M2M, веб -тиркемелер, IFTTT ж.б. IOT дүйнөңүзгө бир топ жөнөкөй (же кааласаңыз бай) интерфейстер.
Сунушталууда:
DRONE MASTER: 6 кадам
DRONE MASTER: Бул AI роботунун 3D дизайны. Программада же чоң функцияларда же ал тургай футбол матчында бардык дрондорду координациялоо жана көзөмөлдөө абдан кыйын. Биз бул үчүн дагы машыктырылган пилотсуз операторлорго муктажбыз. Бирок бул AI роботу футуристтик жана болот
SMD Testing Jig: 3 кадам
SMD Testing Jig: SMDлер сиз көнгөнүңүздөн кийин эң сонун, бирок кичинекей өлчөмү аларды тестирлөөнү кыйындатат. Бекер компоненттер, эй! Бирок кийин аларды сорттоо жана табуу көйгөйү бар
Жарык интенсивдүүлүгүн пландоо Arduino жана Python Arduino Master китепканасын колдонуу: 5 кадам
Arduino жана Pythonдун Arduino Master китепканасын колдонуу менен жарыктын интенсивдүүлүгүн плотировкалоо: Arduino үнөмдүү, бирок абдан эффективдүү жана функционалдуу инструмент болгондуктан, аны Embedded Cде программалоо долбоорлорду түйшүктүү кылат! Pythonдун Arduino_Master модулу муну жөнөкөйлөтөт жана бизге эсептөөлөрдү жүргүзүүгө, таштандылардын баалуулугун алып салууга
Gardenduino Aka Garden Master: 4 кадам
Gardenduino Aka Garden Master: биздин газондорду тазалоо, өсүмдүктөрдү сугаруу кызыксыз эмеспи? эмне эмес! Ооба, так багбанчылык менин чайым эмес. Ошентип, менин багыма кам көрүү үчүн автоматтык системаны жасоону чечтим! баштайлы
IOT123 - ATTINY85 ONBOARD PROGRAMMING JIG: 3 кадам
IOT123 - ATTINY85 ONBOARD PROGRAMMING JIG: КИРПИЧ конструкцияларында, мен ATTINY85 жанындагы тешиктер колдонулбай калганын, DIP8 ПКБга ширетилип жатканда пого пин программистти иштетүү үчүн колдонулбай калганын айттым. Бул ошол пого пин программисти. Бул чынында жөн эле адаптер