Форум » Металлоискатель «Забава», на микроконтроллере ATTINY2313-20 » Исходник "Забава М1.1" » Ответить

Исходник "Забава М1.1"

Stas: Исходник Чтобы открыть исходник, необходимо установить Algorithm Builder.

Ответов - 28, стр: 1 2 All

Stas: zhelezyaka пишет: переменный резистор с какой характеристикой линейной zhelezyaka пишет: с каким уровнем чувствительности вы обычно с ним работаете? Это зависит от качества изготовления металлоискателя, плохо сделанный металлоискатель при максимальной чувствительности будет подавать ложные сигналы даже если металлоискатель находится в покое, вдали от грунта и металлических предметов. На легких грунтах и на песке я работаю на максимальной чувствительности, при этом ложные сигналы легко отличаются, мозг сопоставляет сигнал и движение датчика, рука дрогнула или бугорок, не знаю как объяснить. На тяжелых и мусорных грунтах чувствительность приходится уменьшать, но как правило больше чем на половину не уменьшаю, но и там можно работать на максимальном чувстве, правда очень медленно, но быстрее чем копать лопатой подряд. :)

zhelezyaka: Stas пишет: но быстрее чем копать лопатой подряд. :) ложные срабатывания вполне могли возникать из-за грубой ошибки - не сохранение регистров в прерывании. попробуйте в самом начале обработчика прерывания Input_Capture_1 добавить : push sreg push r16 а в самом конце перед retI: pop r16 pop sreg retI стабильность должна увеличиться. появился такой вопрос: когда я увидел regyl_glybina то заметил, что в glybina заносится четное/кратное двойке значение, я подумал, что это как-то связано с работой прерывания, т.е. прерывание срабатывает по обоим фронтам и цель замерить не длительность логического уровня, а полностью длительность периода. когда же я сверился в даташитом - оказалось, что режим input capture может работать только в двух режимах по переднему фронту или по заднему, а режим аналогового компаратора в трех: по переднему фронту, по заднему и по смене. да и собственно, как выяснилось позже glybina ни коим образом не участвует в прерывании - по сути это порог разности замеров. проанализировав само прерывание я увидел, что по сути измерение сводится к получению значения длительности периода с интервалом в imp_kol периодов. исходя из анализа программы и технических характеристик: итого получается обобщив все данные: частота кварца 20МГц частота генератора примерно 20кГц imp_kol - результат автонастройки за 31250 тиков таймера предделитель таймера 64 (для автонастройки) и без предделителя для работы итого 10 измерений в секунду т.е. получается довольно грубая дискретизация, огрубление связанное с захватом (измеряется ведь всего 1 период) и с учетом так же косяка с регистрами народ нахваливает работу металлодетектора по сравнению с другими, что же будет если убрать косяк с регистрами?!! должна получится конфетка!!! а если еще попробовать суммировать результат замеров за все время imp_kol, а не отбрасывать их вероятно должна повыситься чувствительность

zhelezyaka: кстати на ебее можно купить за символическую цену очень полезную штуку Saleae это простенький 8ми канальный логический анализатор есть модели подороже даже с аналоговыми входами и генератором наряду с осциллографом и программатором вещь из разряда "должна быть"! :)


Stas: zhelezyaka пишет: ложные срабатывания вполне могли возникать из-за грубой ошибки - не сохранение регистров в прерывании. попробуйте в самом начале обработчика прерывания Input_Capture_1 добавить : Ложные срабатывания происходят из за того, что плавает частота поискового генератора. Пока поисковая катушка будет входить в состав генератора - толку не будет. Что касается остального, то я не помню чего там и сколько, так в общих чертах. Металлоискатель измеряет время за которое генератор выдаст количество импульсов определенное в автонастройке. "vremia" - это константа, увеличивая ее значение можно увеличивать чувствительность, но будет уменьшаться количество измерений в секунду, соответственно махать металлоискателем нужно тоже медленно. При этом нужно учитывать следующий момент: во время измерения таймер переполняется, то есть одного круга работы таймера не хватает для измерения, а в программе не предусмотрено суммирование значений циклов таймера. Но все это ерунда, ни какие потуги с программой не дадут приемлемого результата, пока будет плавать частота поискового генератора.

zhelezyaka: что то в последнее в время как не зайду на форум, все выводится сообщение "форум временно закрыт в связи с переносом данных" :( Ложные срабатывания происходят из за того, что плавает частота поискового генератора. Пока поисковая катушка будет входить в состав генератора - толку не будет. это все понятно, но я же говорю, что у вас в программа грубейшая ошибка, обработчик прерывания ОБЯЗАН сохранять и восстанавливать все прямо или косвенно изменяемые регистры, в вашем случае SREG и R16. это как в столовой принес еду на подносе, сел за стол, поел, убрал за собой... внести изменения, а именно добавить 4 ассембленые команды и перекомпилить минутное дело, прибор и опыт его использования у вас есть - интересно сравнить результат. насколько я понимаю в вашем случае имеют место ложные срабатывания даже если прибор находится в воздухе и абсолютно неподвижен?

zhelezyaka: как вариант можно вместо катушки подключить стабильный генератор хотя бы самодельный с кварцем, правда еще делитель потребуется для понижения частоты до 20 кГц и если уж на нем будет ложное срабатывание, а оно просто обязано быть, то дело не в нестабильности и/или в проводах, хотя конечно они оказывают некоторое влияние... как у вас обстоят дела со знанием ПЛИС/CPLD?

Stas: Ложные срабатывания происходят из за того, что меняется частота генератора, если металлоискатель сделан нормально, то в покое ни каких сигналов нет. Я отлаживал программу в отладчике, прямо на кристалле, там видно все, в том числе и изменения в регистрах. И если я явно регистры не сохранял, значит это не нужно было. zhelezyaka пишет: внести изменения, а именно добавить 4 ассембленые команды и перекомпилить минутное дело, прибор и опыт его использования у вас есть - интересно сравнить результат. прибора у меня нет, и комп другой, нужно выводить разъем com порта. zhelezyaka пишет: как у вас обстоят дела со знанием ПЛИС/CPLD? никак, но если мне нужно будет, то изучу без проблем.

zhelezyaka: ок, я понял, удачи!



полная версия страницы