Всі записи автора Salomoon

Тест розуму chatGPT і інших. Задача 13.448

24 січня 2025.

Задача 13.448. Два електропоїзди виїжджають зі станції з інтервалом у 12 хвилин, рухаючись із однаковою швидкістю 50 км/г. Обчислити швидкість зустрічного поїзда, якщо він зустрічає ці електропоїзди з різницею в 5 хвилин.

Розвязую я

Знайти відстань між першими поїздами. Коли 2 виїхав, перший уже проїхав 12 хвилин з швидкісю 50 км/год
12 хв = 12/60 годин = 0,2 години.

v= s/t
s = v*t
t = s / v

s = 50 * 0.2 = 10 км.
Отже перші два їдуть з інтервалом 10 км.
Коли зустрічний зустрів першого, до зустрічі з 2м йому залишається 10 км, але обидва потяга мають зустрічну швидкість.

Оскільки вони долають відстань разом, їхня швидкість сумується

v = v2 + v3 = 50 + v3
s = 10
t = 5/60 = 0.083333333333

s = vt 10 = (50+v3)0.083
10= 4.1666666666 + 0.083333333333v3
5.833333333333 = 0.08333333333333v3
v3 = 70.000000000001

Відповідь правильна. (70 км/год зустрічний)

chatGPT не зміг вирішити цю задачу. Дав відповідь 120 км/год. Він “думав”, що зустрічний проходить відстань 10 км за 5 хв. Не врахував, що потяги рухаються.

Gemini 1.5 Flash не зміг вирішити цю задачу. Дав відповідь 35.71 км/год. Він “думав”, що pecnhsxybq(зустрічний) поїзд проїзжає відстань, яку перший проїде за 5хв за 12-5=7хв. І до того ж він чомусь переводить швидкість у метри/година.

Claude 3.5 Sonnet не зміг вирішити цю задачу. Дав відповідь 120 км/год. Він “думав”, що швидкість зустрічного поїзда 50+х, а першого 50. Потім він відняв відстані, які пройшли ці потяги і розрахував швидкість на 12 хв.

DeepSeek R1 зміг вирішити цю задачу. Швидкість зустрічного поїзда — 70 км/год. Він думав, що Відносна швидкість дорівнює V + 50, а потім розрахував Час подолання 10 км з різницею 5 хв

**Claude 3.5 Sonnet видав непоганий код, для вирішення задачі методом програмної симуляії.
**Gemini 1.5 Flash видав лише каркас коду, без симуляції.

Друкуємо на екран MTC-16201X з Atmega8

Вирішив спробувати підключити екран, після того, як дізнався, що використання МК без кварцевого резонатора даж похибку внутрішньої частоти на 1-10%, що багато, а от із кварцем 0,005%.

В інтернеті не знайшов коду для Atmega8 по підключенні екранів, тому змусив chatGPT написати код.

Спочатку код не працював, тому що я для зручності пайки сплутав виходи МК і входи MTC-16201X. Ось як :

#define D4 PD3
#define D5 PD4

А chatGPT це не врахував, і використовував зсуви регістрів для передачі команд.

Я осцилографом помітив, що по проводу PD3 взагалі не йдуть сигнали. Після тестів, я змусив “розумний чат” переписати код без використання зсувів бітів у байтах – і після цього сталося диво і екран запрацював як треба.

Викладаю код тут, щоб він був в інтернеті. Може ще хтось використовує стародавні дідівські мікроконтроллери Atmega8. Код з форматуванням можна переглянути тут https://ideone.com/JKSykc

#define F_CPU 8000000UL 
#include <avr/io.h>
#include <util/delay.h>


// Макроси для роботи з LCD
#define LCD_PORT PORTD
#define LCD_DDR  DDRD
#define RS PD0
#define E  PD2
#define D4 PD3
#define D5 PD4
#define D6 PD6
#define D7 PD7


// Функції
void lcd_pulse_enable() {
    LCD_PORT |= (1 << E); // Підняти E
    _delay_us(1);
    LCD_PORT &= ~(1 << E); // Опустити E
    _delay_us(100);
}

void lcd_send_nibble(unsigned char nibble) {
    if (nibble & 0x01) LCD_PORT |= (1 << D4); else LCD_PORT &= ~(1 << D4);
    if (nibble & 0x02) LCD_PORT |= (1 << D5); else LCD_PORT &= ~(1 << D5);
    if (nibble & 0x04) LCD_PORT |= (1 << D6); else LCD_PORT &= ~(1 << D6);
    if (nibble & 0x08) LCD_PORT |= (1 << D7); else LCD_PORT &= ~(1 << D7);
    lcd_pulse_enable();
}

void lcd_command(unsigned char cmd) {
    LCD_PORT &= ~(1 << RS); // RS = 0 (команда)
    lcd_send_nibble(cmd >> 4); // Старші 4 біти
    lcd_send_nibble(cmd & 0x0F); // Молодші 4 біти
    _delay_ms(2);
}

void lcd_data(unsigned char data) {
    LCD_PORT |= (1 << RS); // RS = 1 (дані)
    lcd_send_nibble(data >> 4); // Старші 4 біти
    lcd_send_nibble(data & 0x0F); // Молодші 4 біти
    _delay_ms(2);
}

void lcd_init() {
    LCD_DDR |= (1 << RS) | (1 << E) | (1 << D4) | (1 << D5) | (1 << D6) | (1 << D7); // Налаштування необхідних пінів як вихід
    _delay_ms(20); // Затримка після увімкнення

    lcd_command(0x02); // Перехід у 4-бітний режим
    lcd_command(0x28); // 4 біти, 2 лінії, 5x8 шрифт
    lcd_command(0x0C); // Увімкнути дисплей, без курсора
    lcd_command(0x06); // Автозсув курсора праворуч
    lcd_command(0x01); // Очистити дисплей
    _delay_ms(2);
}

void lcd_print(char *str) {
    while (*str) {
        lcd_data(*str++);
    }
}

void lcd_set_cursor(unsigned char row, unsigned char col) {
    unsigned char address = (row == 0) ? col : (0x40 + col);
    lcd_command(0x80 | address);
}


// Основна програма
int main(void) {
	_delay_ms(500);
    lcd_init(); // Ініціалізація LCD
	_delay_ms(10);
	lcd_set_cursor(0, 0); // Перехід на початок першого рядка
    lcd_print("Hello my chatGPT.");
    lcd_set_cursor(1, 0); // Перехід на початок другого рядка
    lcd_print("Row 2 Test!_>>*"); // Вивести текст на другому рядку
    while (1) {
		_delay_ms(200);
    }
}

Це написав блоггер з новим логіном Rylexmoon (раніше відомий як Salomoon).

Як знайти частоту по осцилографу?

Для того, щоб знайти частоту сигналу, потрібно виконати такі кроки:

  1. Визначити період сигналу. Період коливань — це найменший проміжок часу, за який сигнал здійснює одне повне коливання (тобто повертається в початкове положення).
  2. Визначити, скільки поділок на шкалі осцилографа займає період сигналу.
  3. Подивитися на ручку осцилографа час/поділка — тобто дізнатися, скільки часу припадає на 1 поділку.
  4. Використати формулу:

де

v – частота (Гц)

nD – кількість поділок (штуки)

tD – ціна поділки (сек)

Щоб знайти ціну поділки в секундах, треба глянути на ручку осцилографа, наприклад (ВРЕМЯ/ДЕЛ.) і поділити на значення на кнопці осциллографа, наприклад [us/ms]. us – ділити на мільйон, ms – ділити на тисячу.

Практичні приклади:

Сигнал від тестера DT-832:

Тут видно, що період займає 4 поділки. Кнопка осцилографа на мілісекундах (ділити на 1000), ручка часу на поділці 5. Розраховуємо частоту = 1/(4*5/1000) = 50 Гц. Так, як і написано в інструкції.

Сигнал від генератора на мікросхемі К155ЛА3, схема якого була надана колишнім військовослужбовцем сержантом.

Тут видно, що період займає 2,2 поділки. Кнопка осцилографа на мілісекундах (ділити на 1000), ручка часу на поділці 0,5. Розраховуємо частоту = 1/(2,2*0,5/1000) = 909 Гц.

Обидва сигнали виявилися амплітудою по 2 вольти.

Більш простого способу обчислювати частоту немає. Переконався сам під час пошуку.

Піч-кам’янка

Піч-кам’янка — це тип печі, яку традиційно використовують у сауні (лазні) для нагрівання приміщення та створення пари. Вона складається з топки та відсіку з камінням, яке нагрівається до високої температури. Вода поливається на розжарене каміння, що створює пару, підвищуючи вологість і температуру в парній.
Існують два основні типи печей-кам’янок:
1. Дров’яна піч-кам’янка — використовує дрова як паливо для нагрівання каміння.

2. Електрична піч-кам’янка — працює на електроенергії, має тен для нагрівання каменів.

Такі печі забезпечують стабільне тепло і підходять для різних видів саун — як фінської сухої сауни, так і російської лазні, де зазвичай потрібно більше пари.

Ось ілюстрація печі-кам’янки, яку могли б побудувати з кирпичу у сільській місцевості в 1899 році.

Реклама: rustdeskthe best Open-Source Remote Access Software

Піч-кам'янка
Піч-кам’янка

ГБО-2 на ВАЗ 2107і без датчика масової витрати повітря

На моїй машині був поламаний датчика масової витрати повітря (скор. ДМРВ), тому я їздив раніше без нього. І на бензині і на газу метан машина якось їздила. Але коли я встановив пропан – з’явилися дуже перевищенні оберти на холостому ходу, до 2500 наприклад.

Дослідження встановило, що мозок авто дуже сильно відкривав канал для подачі повітря холостого ходу за допомогою регулятора холостого ходу (скор. РХХ). Це значення становило 70-80 кроків.

При цьому збільшувалося розрідження і газовий редуктор видавав більше газу, внаслідок чого були підвищені оберти.

Регулювання настройок редуктора призводили до єдиного результату – або 2000 обертів, або двигун заглохав.

При значенні кроків РХХ в районі 20 – були припустимі оберти двигуна – 950-1000. Тому я задумав “перехопити” управління РХХ, я хотів встановлювати його на 20 кроків при переході на газ, а на бензині мозок авто управляв ним.

Для цього були проведені значні дослідження із застосуванням мікроконтроллера ATmega8, а також комп’ютерної техніки.

Відмінності від карбюраторного двигуна.

Справа в тому, що ГБО-2 – це є газовий карбюратор. Оберти двигуна на карбюраторному двигуні виставляються двома факторми:

  1. Розрідженням у впускному колекторі (управляється положенням дросельної заслонки правою ногою)
  2. Кутом випередження запалювання, який залежить напряму від обертів двигуна.

А от інжектор управляє і розрідженням і кутом як йому заманеться. Тому були проведені певні тести, які показали, що дуже часто мозок авто управляє оборотами за допомогою кута випередження іскри.

В результаті перехоплення управління РХХ нічого б не дало, і можливо спочатку авто мало б прийнятні оберти холостого ходу, а пізніше після “самонавчання” вони б ставали перевищені. Тому даний проекто я похоронив.

Для вирішення проблеми я просто купив аналог ДМРВ для даної моделі авто і встановив його. У результаті все працює, лінк на статтю про це

Також хочу сказати, що я побоююсь недовговічності ДМРВ, враховуючи його високу ціну (так званий оригінал 3000 грн, капія-заміна 800 грн), тому задумував цей проект.

Деякі результати проведених наукових досліджень для цього проекту

Для початку перехоплення я підключився до проводів управління РХХ. Спочатку ненароком їх замкнув, на що мозок авто видав помилку (нічого не згоріло). Мозок посилає деякі сигнали для руху крокового двигуна в ту чи іншу сторону. Сигнали мають певний період в часі.

Несподіванкою виявилося те, що невідомо як мозок авто знаходить нульову крапку в кроках двигуна РХХ. Перед цим я читав на форумах в інтернеті, що при увімкненні запалювання мозок повністю закриває канал, висовуючи шток РХХ на максимум в упор – це і є нульова позиція кроків. Потім відводить шток на 20 кроків, наприклад.

Мій же мозок Bosch M7.9.7, наче запам’ятовує позицію РХХ перед тим як я виключив запалювання. Можливо якщо зняти акумуляторну клему, то мозок би шукав “нуль”.

Чому треба шукати нуль? Наприклад я встановлював новий РХХ замість старого. Якщо у нових виставлено 20 кроків, а старий а зняв з виставленими 40 кроками – то як система запрацює справно?

Це все ще загадка для мене.

Для дослідження сигналів я використовував оптопару з сучасних блоків живлення (напр. до телефонів). Оптопара давала сигнал на мікроконтроллер, який зчитував момент зміни і записував час в мілісекундах в масив. Ось приклад результатів:

80 кроків після запуску  (скоріш всього він не шукає 0)
A = x      B = Y

mBan > fval: 1
86,
106,
114,
121,
130,
138,
145,
154,
162

ввів з 80 до 90 кроків

mBan > fval: 1
22
12699
12707
12714
12723
12731

ввів з 90 на 80

mBan > fval: 1
9878
9888
9898
9908
9918


ввів з 82 до 92

mBan > fval: 1
3120
3128
3136
3143
3152


було 82 увів 0

mBan > fval: 1
9346
9355
9366
9375
9385
9396
9406
9416
9426
9436
9447
9457
9467
9476
9487
9496
9506
9517
9527
9537
9547
9557
9567
9576
9587
9596
9606
9618
9628
9638
9648
9658
9668
9678
9688
9697
9707
9718
9728
9738
9748


Коли позиція РХХ фіксована, програма постійно видає струм на РХХ, тому я бачу 22 мілісекунди

було 82 увів 142

mBan > fval: 1
6385
6393
6401
6408
6417
6425
6432
6441
6449
6457
6465
6472
6481
6489
6496
6505
6513
6521
6530
6538
6545
6554
6562
6570
6578
6585
6594
6602
6609
6618


було 83 ввів 86

mBan > fval: 1
7302
7310

Менше 3х кроків бачу тільки один сигнал

Певні кроки тримаються постійно підключеним  струмом на обмотку, наприклад 84

92, 93 є струм на обмотку
94 95 нема
96 97 є
0 1 є
2 3  нема
4 5 є
6 7 нема



-===-=-=-=-=-=-=-===-=--=-=-=---=-

A = Y     B = X

Було десь 6, стало 83 приблизно, це просто для інтервалів
mBan > fval: 1
86
109
118
126
133
142
151
158
167
175
182
191
199
207
215
222
231
239
246
255
263
270
279
287
295
304
312
319
328
336
344
352
359
368
376
383
392
400
407
416


0 1 нема струму
2 3 є 

і так далі

82 ввів 92

mBan > fval: 1
22
8430
8437
8446
8454
8461


86  ввів 96

mBan > fval: 1
22
6329
6336
6345
6353
6361


82 увів 0

mBan > fval: 1
22
5164
5174
5184
5194
5204
5214
5223
5233
5244
5253
5264
5274
5285
5295
5305
5315
5324
5335
5344
5354
5365
5375
5385
5395
5405
5415
5424
5435
5445
5455
5466
5476
5486
5496
5506
5516
5526
5536
5545
5555
5566


90  ввів 80

mBan > fval: 1
22
5290
5301
5310
5320
5331


Ноутбуком виставляю 0 і вимикаю запалювання. потім увімкну

було 87 кроків

mBan > fval: 1
110
118
126
133
142
151
158
167
175
182
191
199
207
215
222
231
239
246
255
263
270
279
288
295
304
312
319
328
336
344
352
359
368
376
383
392
400
408
416
425
433
441
448


-===-=-=-=-=-=-=-===-=--=-=-=---=-


A = X

Ноутбуком виставляю 0 і вимикаю запалювання. потім увімкну

було 87 кроків

mBan > fval: 1
86
109
118
126
133
143
151
158
167
175
183
191
198
207
215
222
231
239
246
255
263
271
279
286
295
304
312
320
328
335
344
352
359
368
376
384
392
399
408
416
423
432
440
448
457

Для отримання графіків сигналів, я модифікував результати досліджень за допомогою не хитрих програм і згодував ці дані певним сайтам, які будують математичні графіки. Ось результати:

5-10ms 80Hz
16-36ms
27-42ms

Ось такі маємо результати. Вони не повні і не мають закінченого висновку, тому що проект було закопано в могилу. Але добре те, що вдалося зчитати імпульси за допомогою контроллера – а це можна використати для іншого важливого проекту – зчитування імпульсів від інфрачервоних пультів ДУ для їх клонування. Це важливо для мене, тому що в мене є акустична система 5.1 BBK з пультом RC-05. Ніяких органів управління, крім пульта – немає. Без цього маленького пульта вся система не працюватиме взагалі.

ДМРВ EuroEx 2104i-07i для ВАЗ 2107

Вирішив купити ДМРВ саме фірми EuroEx EX-AF2107I, тому що він не являється копією оригінала Siemens VDO 5WK97014. Цей висновок я зробив на основі фотографії датчика масової витрати повітря.

На даній сторінці я буду оновляти інформацію про роботу датчика ДМРП EuroEx, тому всі власники легендарного автомобіля ВАЗ 2107 (інжектор) зможуть зробити висновок, чи варто купляти EuroEx

Датчик витрати повітря був встановлений 21.01.2022. Після встановлення бажано виконати “Сброс ЭБУ с инициализацией”. Машина почала нормально їздити. Витрата повітря склала 9 -11 кг/г на холостому ходу і прогрітому двигуну (на старому не дуже справному датчику Siemens VDO дана витрата була 17-21 kg/h

Висновок

Датчик робочий. EuroEx EX-AF2107I працює нормально на ВАЗ 2107 (інжектор) без перепрошивки.

Відгук про даний датчик я залишив на сторінці покупки https://detali.zp.ua/ua/catalog/22206-dmrv_2104i_07i_EuroEx/#comments

Чи працює датчик до цього часу:

  • 01-02-2022 працює нормально
  • 16-05-2022 працює в нормі
  • 01-01-2023 датчик працює нормально
  • 27-08-2023 працює в нормі, проїхав більше 10.000 км. Був у автоелектрика, сказав датчик в нормі, треба почистити вхідний колектор (сапун підключено туди як із заводу).
  • 09-08-2024 датчик працює
  • 05-01-2025 працює в нормі

З настанням війни в незалежній, вільній і самостійній Україні, даний датчик нажаль сильно подорожчав, зараз 27 серпня 2023 року глянув – 1211 грн.

Електронні схеми в інтернеті

Вам мабуть не цікаво, чому я зацікавився розробкою схем із самих низів – з дискретних елементів як от транзистори, резистори. А я всеодно напишу чому!

В молодості я пару раз хотів зібрати деякі схеми, наприклад підсилювач мікрофону, металошукач і інше. Але після збірки схема не працює. Відлагодити її не є можливим, тому що невідомо за яким принципом працює схема, як її розраховували і т.д.

Взагалі я вважаю схеми в інтернеті в великій більшості є неправильними. І ось цьому доказ. Знаходимо сайт через пошук Гугл “Три схемы УНЧ для новичков”, заходимо на сайт https://cxem.net/sound/amps/amp169.php

Там бачимо якісь схеми, все так гарно і легко, багато хто купився і зібрав ці схеми. Тепер читаємо відгуки!

Я вважаю, що якщо схема викладена в інтернеті, має бути такий підпис:

Я, Іванов Іван Іванович, інженер-конструктор на заводі Промислового Обладнання міста Іванов, розробив цю схему в 2005 році, зібрав її на платі, перевірив роботу при температурі 7 градусів в холодильнику і влітку в закритій машині при температурі +38 градусів, а також при кімнатній температурі. Все працює. Додаю відео з Youtube, де знімаю, що все працює.

ось такій схемі можна довіряти

На практиці ми заходимо на якийсь сайт схем, де намальовані певні принципові електронні схеми – невідомо, хто їх розробив, хто перевірив. Може це студент на парі грався і складав транзистор до резистора і виставив в інтернет.

То як, ви ще вірите схемам в інтернеті і збираєте їх навмання ? Я – ні.

Как отремонтировать спидометр ВАЗ 2107

Як відремонтувати спідометр ВАЗ 2107

Ця стаття розповість як відремонтувати сам спідометр. Якщо у вас проблеми з тросиком і т.д., то ця стаття не для вас. Практично було визначено, що новий спідометр працює приблизно 30000 – 35 тисяч кілометрів. Після цього стрілка швидкості тільки тиліпається, з часом взагалі перестає “вставати”.

В результаті розбору такого спідометра, було визначено, що причиною поломки є зміщення залізної пластини відносно магніта, а також забруднення всередині.

Магніт у формі ромба закритий зверху залізною пластиною, обидва вони насаджені по центру на вісь. Чомусь через 30 тисяч кілометрів пластина і магніт провертаються, зміщуючи магнітні поля, магнітну індукцію, і вихреві струми в алюмінієвій мисці, яка провертає стрілку.

Для ремонту я закріплюю магніт з металевою пластиною звичайним супер-клеєм. Також я все вимиваю ватною паличкою з рідиною для зняття жіночого лаку.

Щоб виставити правильну швидкість, я виставляю стрілку в довільне, трохи натягнуте пружиною положення, після чого встановлюю це в панель приладів. Їду за містом по рівній дорозі, тримаючи постійну швидкість (~70 км/год) по GPS в смартфоні і порівнюю ці дані з показниками спідометра. Записую швидкості і визначаю на скільки треба скоригувати показники.

Потім я знову знімаю спідометр, зажимаю стрілку двома прижимами, зажимаю алюмінієву миску 4 клаптиками канцелярської гумки, знімаю прижими і стрілку, виставляю правильно стрілку і закріплюю її. Виймаю гумки і все готово.

Як відкалібрувати стрілку спідометра на ВАЗ 2107

Калібрування може знадобитися після заміни редуктора заднього моста на новий з іншим передаточним числом. Різниця в реальній швидкості може бути 10 км/год. Для калібрування я знімаю спідометр, зажимаю стрілку двома прижимами, зажимаю алюмінієву миску 4 клаптиками канцелярської гумки, знімаю прижими і стрілку, виставляю правильно стрілку і закріплюю її. Виймаю гумки і все готово.

Нижче наведено фотографії, які пояснюють всю суть справи, про яку йшла мова в даній статті.

Вид спідометра знизу

Перед зняттям і розбиранням треба помітити як стоїть алюмінієва миска відносно корпуса. Маркером.

Видно провернуту металеву пластину відносно ромба
Поломка – металевий пил, забрундення. В цьому випадку металева накладка магніта не провернулась, а відламалась
Закріплення стрілки для того, щоб виставити правильні показання приладу

Зменшення коефіціенту підсилення. Зворотній негативний зв’язок

Дана стаття є експериментом для доповнення статті Коефіціент підсилення. Gain. На транзисторі. В тій статті було висунуте припущення про можливість зменшення коефіцієнту підсилення (Gain) у підсилювачі зі спільним емітером біполярного транзистора, а в даній статті те припущення перевірене і підтверджене. Для зменшення Gain викоритовується Negative feedback, який складається з резистора і конденсатора. На схемі вони позначені як Rnf i Cnf

Ось схема експерименту:

RnfCnfUin (V)Uout (V)Gain
00.1u0.030.4515
00.5u0.030.031
01u0.030.155
2.2k 1u 0.03 0.062
7.7k 1u 0.03 0.26.6
12.5k 1u 0.03 0.310
28k 1u 0.03 0.5618.6
2.2k 1u 122

Таким чином ми бачимо, що ставлячи конденсатор в 1 мікрофарад і підбираючи резистор в кілоомах можна добитися необхідного зменшеного підсилення.

Як розрахувати параметри цих двох деталей невідомо, але дуже просто можна підібрати, в разі необхідності.