Перейти к содержанию

1YHAIhwx

Members
  • Постов

    16
  • Зарегистрирован

  • Посещение

Электроника

  • Стаж в электронике
    1-2 года

Посетители профиля

1 251 просмотр профиля

Достижения 1YHAIhwx

Новичок

Новичок (1/14)

  • 10 постов на форуме
  • Неделя на форуме
  • Месяц на форуме
  • Год на форуме

Последние значки

3

Репутация

  1. Зачем именно перезагружаться с USB? А то, возможно, вы пытаетесь решить XY-проблему.
  2. Уже лучше. Тогда можно просто размещать до изображения транспортир-хелпер или иметь возможность управлять мышью линией с началом в центре, концом у верхнего края шкалы и отображением угла этой линии. Сценарий: пользователь имеет непроградуированный прибор и хочет для него нелинейную шкалу. Выполняет измерение прибором, записывает угол, переносит в редактор. Можно не записывать разрешение в заголовок png, но отталкиваться от размера бумаги формата А4 и стандартных разрешений принтеров. Кроме того, для работы с png уже есть либа png.js, не знаю, может ли она в правку заголовков, правда. Но это привяжет приложение к формату png. Багрепорты: - подвал поехал, см. рисунок. (Firefox 54.0) Фич-реквесты: - линию отреза выполнять тонким курсивом, чтобы не перепутать эти линии с линиями маркировки. Из приложенного рисунка неясно, следует ли обрезать ушки у квадратика или нет.
  3. Что на Земле мешает сделать функцию сохранения изображения? Кроме того, размеры указываются в пикселях, что совсем неудобно, когда потребуется эту шкалу напечатать и на прибор наклеить. Аналогично с линиями. Отталкиваться можно от стандартных разрешений принтеров - 600 - 720 dpi. Если целью ставился не академический интерес поупражняться в php, можно вообще интерактивную рисовалку на JavaScript запилить. Увеличивать угол не линейно, но логарифмически? Если сохранялось в jpg, неудивительно.
  4. А насколько надежно были соеденены провода? Если хоть что-то показывало, это уже плюс. Попробуйте выполнить надежное соединение и посмотреть, не улучшится ли изображение. Затем то же самое, только без регистратора.
  5. https://www.google.nl/search?dcr=0&q=Siemens+CX75+display+avr - https://geektimes.ru/post/255436/ - http://www.juras-projects.org/eng/lcd.php?id=c75 - http://xpcc.io/api/group__driver__display.html#ga88ed7f137638b0af028648c139432b2a - https://geektimes.ru/post/257602/
  6. Не гироскоп, но акселерометр. 1. Коммуникация между ардуиной и компьютером 2. Подключение библиотек в Arduino IDE 3. Можно прошить с нуля. 4. UART 5. UART to USB 6. Паспорт Atmega8 7. Эмуляция клавиатуры
  7. '[A] 1,206 (&H04B6) = 688Hz * 256 / 146 Const Poiadd_al = &H06 Const Poiadd_ah = &H04 '[B] 1,289 (&H0509) = 735Hz * 256 / 146 Const Poiadd_bl = &H09 Const Poiadd_bh = &HA5 Строки 11-12, 14-15 управляют тоном зуммера. Подберите тон здесь http://www.szynalski.com/tone-generator/ , забейте в формулу частота_тона * 256 / 146 , полученное число переведите в шестнадцатеричную систему в калькуляторе. Пример: Тон1 = 85 Гц, Тон2 = 103 Гц A = 85 * 256 / 146 ~ 149 (&H95) B = 103 * 256 / 146 ~180 (&HB4) Const Poiadd_al = &H95 Const Poiadd_ah = &H0 Const Poiadd_bl = &HB4 Const Poiadd_bh = &H0
  8. Померял напряжение между стоком и истоком транзисторов: ~1В в открытом, ~7В в закрытом. Как это должно было помочь ответить на вопрос "почему греется регулятор напряжения" - не ясно. И таки оказалось, что греется он вовсе не поэтому. Греется он не в зависимости от яркости, что было бы странно, но в зависимости от режима ESPшки. Если она постоянно принимает данные по WiFi, потребляемый ток превышает 300 mA, что больше заявленного пикового потребления. Кроме того, я не заморачивался с уменьшением энергопотребления в прошивке совсем. В интернетах я оказался не один такой, вот аналогичная проблема: http://www.esp8266.com/viewtopic.php?f=13&t=2534 Советуют увеличить ёмкость С2 до 100 мкФ. Аналогичная дискуссия: https://forum.micropython.org/viewtopic.php?t=2333 Итого: - температура регулятора напряжения не зависит от яркости светодиодов в схеме; - должно помочь увеличение ёмкости C2.
  9. Я пытаюсь управлять RGB-светодиодной лентой при помощи ШИМ и ESP8266. См. схему. Проблема в том, что регулятор напряжения сильно греется, когда лента включена на максимальную яркость и задействованы все светодиоды в ней. При иных режимах греется меньше. Подозреваю, что греется он потому, что я пропускаю через него слишком большой ток. Что мне непонятно: почему через него проходит большой ток, если регулятор в схеме предназначен исключительно для питания ESP8266, а мосфеты управляются напряжением? Конечно, я могу поставить регулятор на больший ток, но это не избавит меня от непонятного нагрева всё равно. Я понимаю, что при конверсии из 12в в 3.3 выделится какое-то тепло, но его выделение сильно возрастает с увеличением яркости светодиодов, несмотря на выходное напряжение стабилизатора на них напрямую не подаётся, что мне не понятно. Входное напряжение: 12в. Лента безымянная, длиной метр, согласно маркировке, питается от 12в. С1 1мкф 25в С2 22мкф 25в T1 - T3 - FQP30N06 (FQP30N06L.pdf) Регулятор напряжения - LM2937 (3.3V 500 mA) (lm2937.pdf) ESP8266-12E распиновка:
  10. Написал самостоятельно. Делает, что мне надо, я доволен. Бинарник: dsonanov3analyzer-1.0-SNAPSHOT.jar Сорцы: dsonanov3logicanalyzer.tar.gz Пример данных: DATA16.CSV
  11. В моём распоряжении имеется осциллограф DSO Nano V3, который умеет подключаться к компьютеру лишь в режиме флешки, но умеет скидывать содержимое памяти в csv. Я снял осциллограмму, однако анализировать её на экране осциллографа довольно неудобно. Мой вопрос: существуют ли программы, повторяющие интерфейс осциллографа со всеми возможностями он предоставляет по анализу данных? Требования: свободное ПО, преимущественно под Linux; умеет открывать csv с слепком данных; умеет визауализировать данные; умеет вырезать часть данных и сохранять их отдельно как csv или в графическом виде; (желательно) уметь работать логическим анализатором, пусть и ограниченно. Изначальная проблема: у меня есть осциллограмма как на пике. Это - визуализация csv, которую я снял с осциллографа. Из этого csv я хотел бы получить строку из "0" и "1", где "1" отображает короткий импульс, "0" - длинный. Более длинные промежутки предлагается любезно не замечать. Сейчас я делаю всё это набором скриптов, однако вручную ковырять всё это довольно неудобно. Скрипт визаулизации: Скрипт анализа данных: На выходе: 1111101111111101010111011111111111111111111111111111110101111110000000000000111111111110011011111111111101111111101010111011111111111111011110101111111101111111111010111101011111111111111111111010111111111110101111111111111111111111111011111111110101111111101101010101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
  12. А причина-то очевидна - с micros() всё в порядке, ровно как и с кодом. Таки дело в пульте. Я подключил фотоприёмник вместо микрофона ещё раз и настрелял десятки последовательностей. Да, пульт иногда производит импульс 9 и 10 в ~1300 мкс вместо ~900. Просто в первый раз я очень удачно нащёлкал и в запись такие последовательности не попали. И последняя чиселка тоже вполне объяснима: пульт пакет передал, встал на паузу, затем снова передавать начал, я же прерывание на изменение логического уровня повесил, вот он длину пребывания на выходе лог. 0 и считал. Таким образом: - с ардуиной и функцией micros() всё в порядке; - код работает удовлетворительно; - неправильная постановка эксперимента ведёт к потере времени. Убедился в этом, генеря сигнал другой ардуиной и ловя его аудаситей и скетчем выше. Замечательно трекает все последовательности с удовлетворительной погрешностью. const int LED_PIN = 13; const int LED_PIN_CARRIER = 12; void setup() { pinMode(LED_PIN, OUTPUT); pinMode(LED_PIN_CARRIER, OUTPUT); } void loop() { tone(LED_PIN_CARRIER, 38000); while(true) { delay(10); digitalWrite(LED_PIN, 0); delay(10); digitalWrite(LED_PIN, 1); } }
  13. Уже пробовал, результат аналогичен. Обновление арудиноиде тоже не спасло. Инициализация UART уже после отправки данных не помогла тоже. Девятый и десятый отчёт всё равно периодически становится равным ~1300 мкс вместо положенных 400-900.
  14. void loop() { while(true) { if(i == BUFFER_LEN) { detachInterrupt(ARDUINO_MICRO_INTTERRUPT_ON_PIN3); for(int x = 1; x < BUFFER_LEN; ++x) { Serial.print(periods[x]); Serial.print(" "); } Serial.println(); Serial.flush(); lastMicros = 0; delay(1500); i = 0; attachInterrupt(ARDUINO_MICRO_INTTERRUPT_ON_PIN3, sensorInterruptHandler, CHANGE); } else { if(!isRunning) { continue; } byte oldSREG = SREG; noInterrupts (); mcs = micros(); periods[i] = mcs - lastMicros; lastMicros = mcs; ++i; SREG = oldSREG; } isRunning = false; } } Нет, это не помогло. Также стал заполнять массив периодов с отключенными прерываниями. Притом даже если я просто буду печатать в UART текущее значение микросекунд, видно, что иногда между соседними значениями проскакиевает большой промежуток (более 3мс). Не понимаю, откуда они берутся.
  15. Выходит куда и делает что? Напоминаю, функция loop() {} в ардуинодиалекте аналогична коду while(true){}. Таким образом, код void loop() { if(!isRunning) { return; } // do something useful here } функционально идентичен while(true) { if(!isRunning) { continue; } }
×
×
  • Создать...