Сьогодні якраз була задачка куди можна припхати RTOS. Значить дано: датчик, шось він ловить і має дьорнути якусь іншу залізяку.
Найпростіший і найтупіший спосіб це зробити — забити на RTOS, і постійно перевіряти датчик на наявність показників, тобто:
while (1)
{
if (data_ready())
{
// read data do stuff
}
}
Аднааака, ходити туди сюди по дротам 100500 разів на секунду це теж недешева забава, може зайняти десь 100 мікросекунд. Тобто потенційно затримка на отримування показників може бути 100+ мкс.
Сенсор віддає дані наприклад з частотою в 60Гц, тому нема сенсу перевіряти його частіше ніж кожні 16.666мс. Отже можна скористатись FreeRTOS і винести функцію яка працює з показниками у окремий таск який буде викликатись 60 разів на секунду. Таким чином ми ще й розвантажуємо ядро, щоб можна було робити іншу роботу, за потреби. Кількість вказаних мілісекунд конвертується в кроки процесору, таким чином досягається приблизна точність в часі.
Тепер виходить, що в нас і сенсор і контроллер працюють на 60Гц, але вони при цьому не синхронізовані. Тобто є дві доріжки, на кожній шось відбувається приблизно кожні 16.666мс, але зі зсувом. Це як два годинники які запустили неодночасно. Таким чином все одно маємо затримку, яка ще і гуляє по часу.
Покращити це можна використавши приривання, якщо в сенсорі є такий інтерфейс. По суті, замість того щоб перевірять датчик на наявність даних, ми чекаємо від нього сигналу. А щоб впевнитись, що реакція на сигнал буде якомога швидшою, функція реєструється як обробник преривання, тобто такою що буде викликана з високим пріорітетом. Тут все одно буде якась затримка, але хоча б стабільна, бо тепер контролер синхронізований з датчиком.
Далі є DMA (direct memory access), але для моїх задач навіть вищеописаного забагато, достатньо безкінченого циклу)
Найпростіший і найтупіший спосіб це зробити — забити на RTOS, і постійно перевіряти датчик на наявність показників, тобто:
while (1)
{
if (data_ready())
{
// read data do stuff
}
}
Аднааака, ходити туди сюди по дротам 100500 разів на секунду це теж недешева забава, може зайняти десь 100 мікросекунд. Тобто потенційно затримка на отримування показників може бути 100+ мкс.
Сенсор віддає дані наприклад з частотою в 60Гц, тому нема сенсу перевіряти його частіше ніж кожні 16.666мс. Отже можна скористатись FreeRTOS і винести функцію яка працює з показниками у окремий таск який буде викликатись 60 разів на секунду. Таким чином ми ще й розвантажуємо ядро, щоб можна було робити іншу роботу, за потреби. Кількість вказаних мілісекунд конвертується в кроки процесору, таким чином досягається приблизна точність в часі.
Тепер виходить, що в нас і сенсор і контроллер працюють на 60Гц, але вони при цьому не синхронізовані. Тобто є дві доріжки, на кожній шось відбувається приблизно кожні 16.666мс, але зі зсувом. Це як два годинники які запустили неодночасно. Таким чином все одно маємо затримку, яка ще і гуляє по часу.
Покращити це можна використавши приривання, якщо в сенсорі є такий інтерфейс. По суті, замість того щоб перевірять датчик на наявність даних, ми чекаємо від нього сигналу. А щоб впевнитись, що реакція на сигнал буде якомога швидшою, функція реєструється як обробник преривання, тобто такою що буде викликана з високим пріорітетом. Тут все одно буде якась затримка, але хоча б стабільна, бо тепер контролер синхронізований з датчиком.
Далі є DMA (direct memory access), але для моїх задач навіть вищеописаного забагато, достатньо безкінченого циклу)
👍12
В когось може є серед знайомих людина яка вміє працювати в solid works? Шукаю людей на позицію помічника головного конструктора, на виробництво літаків
Шановні. Збираю собі на новий айфон, не вистачає буквально 13 тис ваших гривень. Як завжди, буду вдячний за допомогу https://send.monobank.ua/jar/A1dgM457ky
send.monobank.ua
Безпечний переказ коштів
Надсилайте безкоштовно та безпечно кошти
😁41👍6😱4❤1🤮1
В нас новий випуск подкасту, з людиною яка робить observability інструменти для фронтенду
Говорили про web performance, Web Vitals, LCP, observability, telemetry, tracing, monitoring, session replay, security/masking
https://www.youtube.com/watch?v=DVTe_Gn3xPM
Говорили про web performance, Web Vitals, LCP, observability, telemetry, tracing, monitoring, session replay, security/masking
https://www.youtube.com/watch?v=DVTe_Gn3xPM
YouTube
SPA і LCP: підводні камені | Performance: метрики і вплив на бізнес | Session Replay без просідань
Зустрічайте новий випуск Fwdays JavaScript Talks!
У сьогоднішньому випуску наші постійні ведучі, Роман Лютіков та Роман Савіцький і гість подкасту, Кіріл Куц, обговорять теми:
- Frontend performance, Web Vitals, LCP
- Observability, telemetry, tracing,…
У сьогоднішньому випуску наші постійні ведучі, Роман Лютіков та Роман Савіцький і гість подкасту, Кіріл Куц, обговорять теми:
- Frontend performance, Web Vitals, LCP
- Observability, telemetry, tracing,…
👍7❤4
Послухайте що казав Річард Фейнман у 80х про компʼютери і порівняйте з тим шо маємо сьогодні )
https://youtu.be/ipRvjS7q1DI
https://youtu.be/ipRvjS7q1DI
YouTube
Richard Feynman: Can Machines Think?
This is a Q&A excerpt on the topic of AI from a lecture by Richard Feynman from September 26th, 1985.
This is a clip on the Lex Clips channel that I mostly use to post video clips from the Artificial Intelligence podcast, but occasionally I post favorite…
This is a clip on the Lex Clips channel that I mostly use to post video clips from the Artificial Intelligence podcast, but occasionally I post favorite…
👍5❤1
Кому цікаво дивитись на всякі залізяки, в твітері є акаунт який часто постить внутрянку військових систем https://x.com/FPGAX_
Пробую ще раз. Шукаю на виробництво бпла/літаків людину на посаду помічника конструктора. Треба вміти працювати в SolidWorks. Локація Київ, робота по місцю.
Посилання на вакансію https://skydefenders.com.ua/careers
Буду вдячний за контакти та поширення.
Посилання на вакансію https://skydefenders.com.ua/careers
Буду вдячний за контакти та поширення.
skydefenders.com.ua
Sky Defenders
Вакансії. Доєднуйтесь до команди Sky Defenders, створюйте зброю майбутнього разом з нами
👍16
кречу, OpenAI чаржить гроші за транскрипцію аудіо похвилинно. Тіпи додумались прискорити аудіо шоб платити менше))
має сенс, знайти максимальну швидкість записаної розмови яку Whisper може розпізнавати без втрат, можливо навіть саме роспізнавання буде займати менше часу
це доречі хитро з їхнього боку, бо можна було б чаржити за токени на виході, щоб незалежно від швидкості розмови чаржити однаково, але брати гроші за хвилину аудіо виходить вигідніше бо зазвичай люди говорять повільно
має сенс, знайти максимальну швидкість записаної розмови яку Whisper може розпізнавати без втрат, можливо навіть саме роспізнавання буде займати менше часу
це доречі хитро з їхнього боку, бо можна було б чаржити за токени на виході, щоб незалежно від швидкості розмови чаржити однаково, але брати гроші за хвилину аудіо виходить вигідніше бо зазвичай люди говорять повільно
😁35🔥5
Шановні дронщики та дронщикині. Хтось працював з Gazebo для відпрацювання алгоритмів польоту коптерів/літаків? Цікавить зв'язка з Ardupilot, бачу шо для gazebo є плагін, але ще не ковиряв це діло. Буду вдячний за будьякі поради/думки, які не нагуглити.
👍1🤯1
Захист для сапера фпв на який ми збирали вже у товариша, Бодя каже всім пасіба 🖤
❤17
Такс, новий збір. Я час від часу допомагаю волонтерській організації на Сумщині, збираючи гроші на закупівлю сіток та тканини для виготовлення маскувальних сіток.
Збір невеликий, 13к, але важливий. Буду вдячний за допомогу https://send.monobank.ua/jar/4Uxcu5aF41
Збір невеликий, 13к, але важливий. Буду вдячний за допомогу https://send.monobank.ua/jar/4Uxcu5aF41
send.monobank.ua
Безпечний переказ коштів
Надсилайте безкоштовно та безпечно кошти
❤6💯1
Трошки механіки. Не знав, що черв'ячна передача має класну особливість: самогальмування, що запобігає передачі обертання у зворотньому напрямку.
https://www.youtube.com/watch?v=rWnZWvNhi1Y
https://www.youtube.com/watch?v=rWnZWvNhi1Y
YouTube
How does a worm drive work? | statically and dynamically self-locking (self-braking) explained
Worms are a special type of gear in which a tooth wraps around a shaft like the thread of a screw. The gear that meshes with the worm is called a worm gear or worm wheel, and the entire gearbox is called a worm drive.
The number of starts of a worm corresponds…
The number of starts of a worm corresponds…
👍10