
Models heart
KushlaVR/models-heart
Можливості: Керування через WIFI з телефона або ПК 5 незалежних каналів (світлодіоди/сервомотори) 1 Н-міст для підключення мотора (піковий струм до 3А) Вмонтована BMS 1S та контроллер заряду Li-Ion акумулятора з…

Можливості: Керування через WIFI з телефона або ПК 5 незалежних каналів (світлодіоди/сервомотори) 1 Н-міст для підключення мотора (піковий струм до 3А) Вмонтована BMS 1S та контроллер заряду Li-Ion акумулятора з…
Models heart rev1.1 is an open-source printed circuit board by KushlaVR, from the KushlaVR/models-heart repository on GitHub, published under the GPL-3.0 licence. It is a 4-layer board of 29.9 × 32 mm with 106 parts on 75 nets, routed with 1,097 tracks and 242 vias.
It is built around the CH340C, ESP-12E and DRV8833PWP, with the AMS1117-3.3, DW01 and TP4056 among its other parts. Its parts include 28 resistors, 15 capacitors, 9 transistors, 6 ICs and 3 diodes. It belongs with the ESP8266 boards of this library.

Плата для керування електронікою моделі (статичної або рухомої)
Можливості:
Ти можеш перерахувати будь-яку суму на спеціальний рахунок Національного Банку України для допомоги збройним силам україни у протистоянні російському окупанту.
Навіть незначна сума може врятувати чиєсь життя!
You can transfer any amount to a special account of the National Bank of Ukraine to help the armed forces of Ukraine in the fight against the Russian occupier.
Even a small amount can save someone's life!
Банк: Національний банк України
МФО 300001
Рахунок № UA843000010000000047330992708
код ЄДРПОУ 00032106
Отримувач: Національний банк України BENEFICIARY: National Bank of Ukraine
BENEFICIARY BIC: NBUA UA UX
BENEFICIARY ADDRESS: 9 Instytutska St, Kyiv, 01601, Ukraine
ACCOUNT NUMBER: 804790258
BENEFICIARY BANK NAME: JP MORGAN CHASE BANK, New York
BENEFICIARY BANK BIC: CHASUS33
ABA 0210 0002 1
BENEFICIARY BANK ADDRESS: 383 Madison Avenue, New York, NY 10017, USA
PURPOSE OF PAYMENT: for ac 47330992708 BENEFICIARY: National Bank of Ukraine
IBAN DE05504000005040040066
PURPOSE OF PAYMENT: for ac 47330992708
BENEFICIARY BANK NAME: DEUTSCHE BUNDESBANK, Frankfurt
BENEFICIARY BANK BIC: MARKDEFF
BENEFICIARY BANK ADDRESS: Wilhelm-Epstein-Strasse 14, 60431 Frankfurt Am Main, GermanyBENEFICIARY/RECIPIENT NAME: National Bank of Ukraine
ACCOUNT NUMBER: 80033041
IBAN GB52CHAS60924280033041
BENEFICIARY ADDRESS: 9 Instytutska St, Kyiv, 01601, Ukraine
BENEFICIARY BANK NAME: JP MORGAN CHASE BANK NA, London
BENEFICIARY BANK BIC: CHASGB2L
SORT CODE: 60-92-42
BENEFICIARY BANK ADDRESS: 125 London Wall, London EC2Y 5AJ, UK
PURPOSE OF PAYMENT: for ac 47330992708
https://www.youtube.com/watch?v=I-fucbyPBxc&list=PLNvbguf8aVrykSSVMaIyB5YiUsczeTyt5
Цей список відтворення містить детальний опис процесу проектування, виготовлення та створення прошивки для цього проекту з чистого листка.


Плата Model's Heart та Arduino чи Wemos не є взаємозамінні. Вони схожі, проте мають і відмінності. Це як комп'ютери із різною комплектацією. Для коащого розуміння ознайомтесь із порівняльоню таблицею.
| Характеристика | Arduino Nano | Wemos D1 | Model's Heart |
|---|---|---|---|
| Процесор | Atmega 328 | ESP8266 | ESP8266 |
| Ядро | 8-bit AVR RISC | Tensilica L106 32-bit RISC | Tensilica L106 32-bit RISC |
| Тип | Microcontroller | Soc | SoC |
| Оперативня пам'ять | 2K bytes | 50k bytes | 50k bytes |
| Постійна пам'ять | 32K bytes інтергрована | - | - |
| Зовнішня пам'ять | - | 16M bytes | 16M bytes |
| Частота процесора | 16MHz | 52MHz | 52Mhz |
| GPIO | 24 | 11 | 8 |
| Analog Pins | 8 | 1 | 1 |
| ADC | 1 | 1 | 1 |
| Точність ADC | 10bit | 10bit | 10bit |
| Wi-Fi | - | 2.4GHz | 2.4GHz |
| USB Power | micro USB | micro USB | Type-C |
| Живлення від Li-Ion | - | - | + |
| Li-Ion BMS | - | - | + |
| Li-Ion Charger | - | - | + |
| Power switch | - | - | + |
| H-Bridge | - | - | 3A (max) |
Базовий набір:
Додаткові інструменти, якщо ви захочете переробити прошивку під більш складні задачі:
У папці Tools є утиліта для прошивки та безпосередньо сам файл прошивки. Для більшості користувачів цього є цілком достатньо. Виконавши декілька простих кроків, ви зможете перетворити плату у радіоапаратуру для керування моделями.
Покрокова інструкція



Все - плата прошита.
З цього моменту нею можна користуватись.
Поновлення відбувається аналогічно до прошивки. Завантажуєте нову версію репозиторію. А далі все по кроках...
Зважте на те, що прошивка повністю переписує все що є в пам'яті плати. Тобто, якщо ви завантажували в неї модифікації через файловий менеджер, то завантажте їх, щоб не втратити.
Усі елементи користувацького інтерфейсу використовують абсолютну координатну сітку. Відлік координат починається у верхньому правому кутку.
Робоче поле має фіксовані пропорції 100:45
Розміри елементів інтерфейсу вказуються у відсотковому еквіваленті до ширини робочого поля.
Наприклад цей текстовий блок буде розміщений з відступом 10% з ліва, 20% з гори. Його ширина і висота відповідатимуть відповідно 30% ширини екрану та 40% ширини екрану. Зверніть увагу, що в обидвох випадках (ширина і висота блока) виміри прив'язані до % ширини екрану
{
"type":"text",
"x": "10",
"y": "20",
"w": "30",
"h": "40",
"text":"текст"
} {
"type":"text",
"x": int,
"y": int,
"w": int,
"h": int,
"text":string,
"bg":string
} {
"type":"button",
"x": int,
"y": int,
"w": int,
"h": int,
"text": string,
"cmd": string
} {
"type":"slider",
"x": int,
"y": int,
"w": int,
"h": int,
"color": string,
"cmd": string,
"autocenter": bool,
} {
"type":"image",
"x": int,
"y": int,
"w": int,
"h": int,
"cmd": string,
"src": string,
"autocenter": bool,
} {
"type":"toggle",
"x": int,
"y": int,
"w": int,
"h": int,
"text": "Off|A|B|C",
"values": "0|30|60|90",
"cmd": string,
"autocenter": bool,
}Плата обладнана редактором інтерфейсу. З допомого якого можна вносити зміни в існуючий дизайн, або створититповністю новий унікальний вигляд на ваш смак.

Для кожного елемента графічного інтерфейсу передбачено редактор властивостей.


Сценарій визначає, як плата реагуватиме на команди користувача. У сценарію є лише одна властивість - "elements" (містить перелік команд)
{
"elements" : [ {"cmd": string, ..}, {..}, ..]
}Команди активуються у результаті взаємодії користувач з UI. Поки команда активна - її дії обробляються, інакше - ігноруються.
Структура команди:
{
"cmd": string,
"type": "toggle/click/none",
"actions":
[
{
"type":
"cmd": string,
},
{
"type": "motor",
"speed": string (source of speed value for full H bridge). When set - a+b ignored
"a": string (source of A half bridge values),
"b": string (source of B half bridge values),
"weight": int (in grams)
},
{
"type": "blink",
"points": [
{"pin": "1", "offset":"0", "value":"0"},
{"pin": "1", "offset":"500", "value":"255"},
{"pin": "1", "offset":"1000", "value":"0"}
]
}Дія перемикає виходи у заданій часовій точці.
Точка:
{
"type": "blink",
"points": [
{"pin": "1", "offset":"0", "value":"0"},
{"pin": "1", "offset":"500", "value":"255"},
{"pin": "1", "offset":"1000", "value":"0"}
]
}Дія використовується для керування мотором.
{
"type":"motor",
"speed":"motor_x",
"weight": "80000"
}ui.json
{
"bg": "url('img/bg.jpg')",
"elements": [
{
"type": "toggle",
"x": 31,
"y": 40.5,
"w": 42,
"h": 4,
"text": "Max|Mid|Min|Off|Min|Mid|Max",
"cmd": "motor_x",
"values": "100|60|30|0|-30|-60|-100"
},
{
"type": "slider",
"x": 57.5,
"y": 17.5,
"w": 26.5,
"h": 6,
"cmd": "motor",
"autocenter": "y"
},
{
"type": "button",scripts.json
{
"elements": [
{
"cmd": "beacon",
"type": "toggle",
"actions": [
{
"type": "blink",
"points": [
{
"pin": "1",
"offset": "0",
"value": "0"
},
{
"pin": "1",
"offset": "0",
"value": "0"
},
{
"pin": "1",
"offset": "100",
"value": "20"
},Плата достатньо мініатюрна і необхідно постаратись її так прилаштувати, щоб не довелось її розрізати. Проте, якщо є необхідність "запакувати" по максимуму, то плату можна розрізати на 3 окремі частини. Після розрізання, їх можна об'єднати провідниками, або використовувати плату без них. Кожна із 3-ох частин є завершеним блоком.

Плата зарядки - може використовуватись як зарядний пристрій Li-Ion акумуляторів.

Плату програматора можна використовувати як окремий USB<->TTL перетворювач.





При підключенні світлодіода до шини живлення необхідно обмежити струм з допомогою резистора. Типовий струм для світлодіодів - 2мА
Опір обмежувального резистора можна розрахувати за законом Ома
Закон Ома
I = U/R
Де:
I - струм, що протікає через коло в Амперах
U - напруга на кінцях кола у Вольтах
R - опір кола у Омах
Знаходимо R
R = U/I
U = 4.2V
I = 2mA = 0.002A
R = 4.2V / 0.002A
R = 2100 Ом => 2.1KOм
Взаємодія web інтерфейсу та плати відбувається по WIF з допомогою HTTP запитів.
Плата Model's Heart дозволяє одночасне керування з кількох клієнтів. Для того, щоб надіслані команди відпрацьовувались платою - необхідна авторизація (GET api/EventSourceName). У відповідь ми отримаємо endpoint з допомогою якого можна підписатись на HTTP Events (GET /api/events), щоб отримувати інформацію від плати. Також, щоразу як користувач змінив стан поля відбувається пересилка цього стану у плату (POST api/post)
Метод повертає Endpoint (адресу джерела Events) по якому транслюється інформація з плати на web-UI. Одним із параметрів є ID клієнта
Встановлюється як EventSource для сторінки Web інтерфейсу Детальніше тут -> https://developer.mozilla.org/en-US/docs/Web/API/EventSource
Надсилаємо інформацію про поле на плату
{
client:"random string id of client"
format:[field1, field2, field, ... fieldN],
values:['v1', 'v2', 'v3', .. 'vN']
}| Qty | Value | Footprint | References |
|---|---|---|---|
| 11 | 10k | Resistor_SMD:R_0603_1608Metric | R4, R7, R8, R15, R16, R17, R18, R19, R22, R24, R28 |
| 9 | GND | TestPoint:TestPoint_Pad_D1.0mm | TP7, TP8, TP18, TP19, TP20, TP21, TP22, TP42, TP43 |
| 7 | 0.1uF | Capacitor_SMD:C_0603_1608Metric | C3, C7, C8, C9, C11, C12, C15 |
| 7 | 10uF | Capacitor_SMD:C_1206_3216Metric | C1, C2, C4, C5, C6, C10, C13 |
| 6 | 100k | Resistor_SMD:R_0603_1608Metric | R11, R12, R13, R14, R21, R25 |
| 5 | PWR | TestPoint:TestPoint_Pad_D1.0mm | TP23, TP24, TP25, TP26, TP27 |
| 4 | +5V0 | TestPoint:TestPoint_Pad_D1.0mm | TP9, TP10, TP28, TP29 |
| 4 | AO3401A | Package_TO_SOT_SMD:SOT-23 | Q1, Q4, Q5, Q8 |
| 3 | 1k | Resistor_SMD:R_0603_1608Metric | R1, R2, R10 |
| 2 | 220k | Resistor_SMD:R_0603_1608Metric | R20, R23 |
| 2 | 470 | Resistor_SMD:R_0603_1608Metric | R5, R6 |
| 2 | 5k1 | Resistor_SMD:R_0603_1608Metric | R26, R27 |
| 2 | BAT + | TestPoint:TestPoint_Pad_D1.0mm | TP3, TP6 |
| 2 | BAT - | TestPoint:TestPoint_Pad_D1.0mm | TP4, TP5 |
| 2 | BC857BS | Package_TO_SOT_SMD:SOT-363_SC-70-6 | Q6, Q7 |
| 2 | BTN | TestPoint:TestPoint_Pad_D1.0mm | TP11, TP12 |
| 2 | D+ | TestPoint:TestPoint_Pad_D1.0mm | TP40, TP41 |
| 2 | D- | TestPoint:TestPoint_Pad_D1.0mm | TP38, TP39 |
| 2 | IO 0 | TestPoint:TestPoint_Pad_D1.0mm | TP36, TP37 |
| 2 | LED | LED_SMD:LED_0603_1608Metric | D1, D2 |
| 2 | RST | TestPoint:TestPoint_Pad_D1.0mm | TP34, TP35 |
| 2 | RX | TestPoint:TestPoint_Pad_D1.0mm | TP30, TP32 |
| 2 | TX | TestPoint:TestPoint_Pad_D1.0mm | TP31, TP33 |
| 2 | UMH3N | Package_TO_SOT_SMD:SOT-363_SC-70-6 | Q3, Q9 |
| 1 | 100 | Resistor_SMD:R_0603_1608Metric | R3 |
| 1 | 2.2uF | Capacitor_SMD:C_0805_2012Metric | C14 |
| 1 | AMS1117-3.3 | Package_TO_SOT_SMD:SOT-89-3 | U4 |
| 1 | BAS16TW | Package_TO_SOT_SMD:SOT-363_SC-70-6 | D3 |
| 1 | CH340C | Package_SO:SOIC-16_3.9x9.9mm_P1.27mm | U3 |
| 1 | DRV8833PWP | Package_SO:HTSSOP-16-1EP_4.4x5mm_P0.65mm_EP3.4x5mm_Mask2.46x2.31mm_ThermalVias | U6 |
| 1 | DW01 | Package_TO_SOT_SMD:SOT-23-6 | U2 |
| 1 | ESP-12E | RF_Module:ESP-12E | U5 |
| 1 | FS8205 | Package_TO_SOT_SMD:SOT-23-6 | Q2 |
| 1 | MOT A | TestPoint:TestPoint_Pad_D1.0mm | TP1 |
| 1 | MOT B | TestPoint:TestPoint_Pad_D1.0mm | TP2 |
| 1 | NTC | Resistor_SMD:R_0603_1608Metric | R9 |
| 1 | OUT 1 | TestPoint:TestPoint_Pad_D1.0mm | TP17 |
| 1 | OUT 2 | TestPoint:TestPoint_Pad_D1.0mm | TP16 |
| 1 | OUT 3 | TestPoint:TestPoint_Pad_D1.0mm | TP15 |
| 1 | OUT 4 | TestPoint:TestPoint_Pad_D1.0mm | TP14 |
| 1 | OUT 5 | TestPoint:TestPoint_Pad_D1.0mm | TP13 |
| 1 | SW_Push | Button_Switch_SMD:SW_SPST_EVQP7C | SW1 |
| 1 | TP4056 | Package_SO:SOIC-8-1EP_3.9x4.9mm_P1.27mm_EP2.29x3mm | U1 |
| 1 | USB_C_Plug | Connector_USB:USB_C_Receptacle_GCT_USB4105-xx-A_16P_TopMnt_Horizontal | P1 |

KushlaVR/models-heart
Можливості: Керування через WIFI з телефона або ПК 5 незалежних каналів (світлодіоди/сервомотори) 1 Н-міст для підключення мотора (піковий струм до 3А) Вмонтована BMS 1S та контроллер заряду Li-Ion акумулятора з…


brev-dev/another_esp8266_sensor_board
PCB layout and instructions for a multi-purpose esp8266 sensor device, with optional LORA connectivity.

Dharanitrainee/16bit-ALU
This project implements a 16-bit Arithmetic Logic Unit (ALU) using TTL (74 series) digital integrated circuits. The control unit is built using an ESP32 microcontroller, enhancing functionality with a user-friendly…




It measures 29.9 × 32 mm and has 4 copper layers, 1.6 mm thick.
106 parts, built around the CH340C, ESP-12E, DRV8833PWP and AMS1117-3.3. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.
From the KushlaVR/models-heart repository on GitHub, at the commit this page was made from: the board is PCB/models-heart-rev1.1.kicad_pcb and its schematic PCB/models-heart.kicad_sch. PCBKit opens the board in the browser, with nothing to install.
Its repository publishes it under the GPL-3.0 licence: you may reuse it on that licence's terms (keep the author's notice, and for a copyleft licence share your changes alike).