All streams
Search
Write a publication
Pull to refresh
4
0
Александр Хабаров @AlexHa

инженер-радиотехник, начальник сектора

Send message
Переписывать не буду, вот на этой теме в комментариях описывал ситуацию: habrahabr.ru/company/neuronspace/blog/235399/
А состояние сна и преддремотное состояние этот дивайс может определять? А если да, то с какой степенью достоверности при использовании в полевых условиях и при наличии индустриальных помех в пределах ГОСТ?
И еще добавлю, по поводу качества кода примеров. Загружается стандартный набор, компилируется и линкуется, Времени это занимает много, минуты или даже десятки минут. Большая часть файлов в проекте примера не нужна, при удалении их из проекта функциональность не страдает. Еще часть просто удалить нельзя, хотя их ненужность очевидна. При их удалении линковщик выдает ошибки, на них есть ссылки в других файлах. Если закомментировать эти ссылки, проект примера нормально собирается и нормально функционирует. Т.е. никто оптимизацией примеров явно не занимался, просто втупую что-то наваяли под копирку.
Что еще досадно, нашел несколько примеров использования акселерометра, несложные сравнительно программы, статьи на русском языке — но для 302DL. Для 3DSH их приспособить не удалось. 3DSH это вроде бы более новый акселерометр, более точный или более чувствительный. Библиотечный пример для 302DL приспособить для 3DSH удалось, частота моргания светодиодов зависела от направления и величины наклона. Как мышь плата тоже работала. Правки там были незначительные, типа этот самый id поменять и/или еще что-то, не помню точно. Библиотечный пример для использования оказался непригоден, там какой-то сложный многоуровневый код, очень запутанный. Только в рамках функциональности примера — диоды местами поменять и т.п., да и то не слишком просто.
Дык не нужно уж совсем за идиота меня держать, все скачал, что мог с этого сайта, и схемы, и даташиты, и библиотеки, и даже рекламные листы посмотрел. С русскоязычных форумов тоже информацию брал, т.к. английский знаю плохо. В платах с акселерометром они сначала ставили акселерометр одного типа, потом стали ставить другого, схемы на сайте оказались для старого варианта и примеры в библиотеках также. Сейчас, возможно, заменили уже.
Не знаю, на мой взгляд они там в ST что-то не совсем то делают в смысле продвижения этих МК. Заявлено вроде бы как замена Ардуино, но замены как-то не получается, слишком сложно пользовать. Это скорее уровень после освоения Ардуино, больше возможностей, но порог вхождения выше. Платы же отладочные, дискавери, можно сказать, копеечные, расчет явно на массовость. Тут на хабре разрекламировали эти контроллеры, а у меня соображение было, на МК примитивную систему навигации сделать, чтобы положение сенсора в пространстве грубо отслеживать, в пределах нескольких метров и показания сенсора на ПК передавать. Можно было бы это потом как-то попользовать для сканеров, например, металлоискателей, ближней локации и т.п. Сам я не программист, больше железячник, причем, больше по аналоговой технике. Тем не менее, решил попробовать. Ну вот приобрел я эту плату, сначала на кортекс M3, кое-как через кейл запрограмировал, поморгал дидами, потом взял пример (не из Cube) и сделал обмен с ПК через аудиопорт (понятно, что лучше через COM, USB и пр., но уж как смог). Даже отписался по этому поводу здесь: habrahabr.ru/post/224169/
Дальше нужно было акселерометр/гироскоп как-то к этому приделать, данные с него обрабатывать и в ПК передавать. Отдельно акселерометр брать не стал, приобрел другую плату STM дискавери, со встроенным акселерометром, но уже на кортекс М4. Взял пример с акселерометром из Cube, попытался допилить — весь мозг сломал. Сначала оказалось что на моей плате акселерометр не того типа, что в примере. Причем, определять это пришлось экспериментально, маркировки там нет и никакой сопроводительной документации к плате также. Ну ладно, нашел даташит на нужный акселерометр, переставил цифирьки-буковки, что-то вроде заработало — но только в пределах примера, а в явном виде в примере значения ускорений мне там найти не удалось. Обмен там шел через DMA, все летало мимо процессора. Для обработки же нужно было иметь ускорения по трем осям в явном виде в дискретные моменты времени. Возился долго, потом бросил — времени нет, нужно же и по работе что-то делать. У меня приятель есть, под Ардуино программирует, я ему STM32 порекомендовал, плату предложил попользовать, думал, разберется, потом меня научит, он вроде сначала загорелся, потом почитал все эти даташиты и то что есть по этому поводу в интернете и энтузиазм пропал. Так что начинающим, на мой взгляд, вряд ли это посоветуешь.
Испытывали мы пару лет назад аналогичное устройство, для контроля состояния бодрствования водителя, производства одной конторы в Ростове. Вот точно такой же наголовник, такие же пимпочки замечательные разноцветные, розовенькие, синенькие, зелененькие. Гель, да, шприц, все дела. Только там проводов не было, беспроводная передача данных. Обрили налысо старлея, надели ему ентот чудо-шлем, поехали. А торможение автоматическое. Ну там проехали километров сколько-то, бац — шасси колом, на мониторе надпись «водитель спит». Старлей из кабины вылез, ходит вокруг, командир ему — ты куда, лунатик? Держите типа, а то сейчас на елку залезет, а он матом ругается. Лунатики вообще как, разговаривают? В общем, пришлось от этой системы отказаться в пользу педали с датчиком. Типа пока водитель на педаль давит, то значит не спит еще. А корифеи из Ростова, в ответ на критику, сказали, что пошли вы мол на… со своим контролем бодрствования, у нас задачи более глобальные, возвышенные. Мы, типа, может человечество спасаем.
Не знаю, дело вкуса конечно, но на мой взгляд, процедура обратного распространения ошибки более понятна в терминах классической математики, без этих апелляций к физическим образам.
Писал треки от обычного GPS приемника, в обычном режиме, во время езды на велосипеде, приемник был в сумке. Первоначально получалась неплохая точность, порядка 1-2 метров, но однажды трек выскочил на 100 метров вбок и пошел параллельно дороге. Как оказалось, в результате удара колеса на яме GPS приемник в сумке перевернулся. Видел также статью про снижение точности европейской системы Galileo вблизи различных отражателей. Рискну предположить, что заявленная в статье точность достижима лишь при отсутствии значительных изменений отражений вокруг приемника, например, при его перемещении. Точность тем выше, чем меньше изменения. Идеально, измерения следует делать на ровной большой площади, где вокруг нет посторонних предметов. 2.7% «неправильных» измерений могут быть вызваны, например, перемещением экспериментаторов относительно приемной антенны.
Да, Delphi тоже в этом смысле неплох, но С сейчас это уже просто какой-то стандарт, очень много для него написано и есть в открытом доступе. К тому же здесь в конторе программистов на Паскале вообще уже не осталось, в случае если быстро надо вопрос некому задать.
Ну для Фортрана я в интернете кода не нашел :)
Перестаиваемый фильтр. Дельфи это среда просто, в которой все делалось, пользовательский интерфейс оттуда, а код работал с аппаратурой через буфер без заметных временных задержек. Хотя и не непосредственно с ЦАП-АЦП на карте, но достаточно быстро.
Насчет вставок думал, но все равно же пришлось бы С или ассемблер изучать, а обработка в следующий раз требовалась уже не настолько заковыристая, так что пришлось Фортран оставить. Хотя пытался, да :) Товарищ мне даже подпрограмму написал на ассемблере для работы с портом, попытался ее туда приделать, но решил в конце концов что это не удобно и если работать будет плохо, то причину не найдешь. То что С для работы с бинарными данными и для побитовых операций вне конкуренции, сомнений не вызывает.
Мне нужно было с аудиокарты данные получать, делать преобразование Фурье, совершать какие-то манипуляции с составляющими, делать обратное преобразование и выдавать обратно на аудиокарту — и все это с минимальной задержкой. Я нашел в интернете уже готовый код для получения и вывода аудиоданных на Паскале и сделал все на Дельфи. Микроконтроллеры это просто для сравнения, хотя современные микроконтроллеры уже могут решать такие задачи.
Не использовал Win32. В Visual Fortran 6.0 возможность создавать проекты в Win32 существовала, даже попытался что-то там сделать, но бросил, написал все ручками, все эти окна-кнопки, так мне показалось проще. Их немного требовалось, а там и чисто по математике хватало над чем голову поломать. У меня есть сомнения, что используя Win32 можно работать с периферией в режиме реального времени, как в микроконтроллерах.
Согласен, после Фортрана вынужден был перейти на Делфи, потом на С, т.к. в Фортране плохо с инструментами для работы с периферией, обработкой данных от «железа». Было с чем сравнивать, с моей точки зрения для сугубо математики Фортран самый удобный в использовании.
Да, конечно. Но не только опыт, я там еще и теоретическую базу попытался подвести :)
9 лет назад написал программу на Фортране: ftp.radio.ru/pub/2005/10/sintez.exe Использовал Visual Fortran 6.0, замечательный язык для математики средней и большой сложности. Все встроено, и комплексные числа и матрицы. Матрицы складываются оператором А+В, транспонирование одним оператором, сказка просто.
Не факт, что другие вообще бывают. Это похоже на какое-то профессиональное качество начальников в больших организациях, часть общего умения вести интриги и продвигаться по службе.
Монитор с аналоговым интерфейсом, там так нельзя считать.

Information

Rating
6,227-th
Location
Ковров, Владимирская обл., Россия
Date of birth
Registered
Activity