|
|
|
|
135112 306 48 33 |
|
Опции темы | Поиск в этой теме |
04.01.2016, 23:58 | 1 |
Ветеран Фонарёвки
Регистрация: 08.10.2011 Последняя активность: 30.03.2024 21:54 Адрес: 哈尔滨
Сообщений: 8001
Сказал(а) спасибо: 934
Поблагодарили: 5199 раз(а) в 2785 сообщениях
|
Модинг народным драйвером бюджетного L-образного фонарика (налобника)
Исходный фонарик-тушка продается без названия на таобао, у нескольких продавцов.
Лучший выбор у этого продавца: http://yuyanghx008.taobao.c... . Там, по крайней мере, есть хоть какой-то выбор, как по типам светодиодов, так и по их оттенку. Предложения периодически меняются. Самое дешевое предложение на сегодня $12.61 (без доставки) на нейтральном XPG R5. В магазине продавца достаточно адекватные фото, а мой фотик сейчас недоступен, поэтому в теме только несколько фотографий сделанных в разное время и не сильно хорошего качества. Сам по себе, фонарик можно использовать и без доработки, на свою цену: - нормальная герметичность, везде, где надо, есть резинки; - анодирование, но, похоже, не очень твердое – толстой скрепкой процарапать можно, легче, чем на Конвое. С другой стороны, у многих китайских нонеймов анодирование похуже; - длинна 106мм, вес 60 грамм, диаметр хвоста 24мм, головы 25мм, средняя часть 22мм; - хороший магнит в торце, заметно сильнее, чем у Skilhunt H02; - съемная клипса на двух винтах; - нормально лезут как защищенные, так и обычные банки, с любой конструкцией «+»; - гладкий стоковый рефлектор похож на рефлектор Skilhunt R02, с таким же распределением света; - хороший теплоотвод от светодиода и хорошая теплопередача с головы на корпус – корпус прогревается заметно быстрее и сильнее, чем у Skilhunt H02 (возможно сказывается отсутствие анодирования на резьбах). Сравнительное фото: Skilhunt H02, герой обзора, Nitecore HC30 С родной электроникой не все так радужно, стабилизации тока нет: стоит директ-драйв через одноомный резистор. Ограничения по разряду аккума нет. Вполне можно увести аккум заметно ниже 3В. Фонарь при этом будет едва светить, так что разряженность аккума не заметить нельзя. У фонаря три режима: слабый (100мА), яркий (около 1А на новом аккуме) и строб (около 0,5Гц). Слабый режим делается ШИМ-ом достаточно высокой частоты – 4кГц, поэтому мерцание практически незаметно (стоковый Конвой имеет более заметный ШИМ). Включается и выключается коротким кликом, переключение – долгим нажатием. Есть память режимов – включается в том же режиме, что и выключается. Тактовая кнопка в голове: Из косяков: не очень удачно сделаны проточки для о-ринга стекла и юбки кнопки. Проточки касаются друг друга в самом углу и образуют яму. На фото выглядет страшнее, чем на самом деле. Когда ставиться кнопка, она закрывает эту яму и О-ринг для стекла, при закручивании безеля, нормально герметизирует фонарь. Впрочем, и плюс в этом есть – через эту щель на кнопку попадает больше, чем обычно, света со светодиода. И светонакопительная кнопка достаточно долго и достаточно ярко светится в темноте, после выключения фонарика. Из хорошего: - легко модернизировать прошитым для тактовой кнопки «народным» драйвером, по размеру драйвер полностью идентичен. Устанавливается он в латунную втулку впресованную в голову фонаря, при желании можно закрепить каплей припоя; - легко поставить тирку, подходит такая же, как и у Skilhunt H02. Тирку можно поставить под родное стекло. Из доработки – сделать проставку под звезду. Для установки тирки под стекло и при толщине звезды 1,6мм, нужна проставка 2мм. Диаметр под звезду светодиода 15,7мм, Ставить надо либо стандартную 16мм звезду, немного обточенную, либо звезду 14мм. Изначально на фонаре под звездой было анодирование, я его смыл «кротом». Тела фонаря под звездой около 7мм – вполне можно сделать отверстия с резьбой для винтов прижима звезды (и проставки). На фото пока только один винт закручен. О модернизации фонаря народным драйвером (8хAMC7135 на ATtiny13A): «Народный» драйвер модернизируется аналогично https://forum.fonarevka.ru/... Нужно: 1. Тактовая кнопка подключается к 6-му выводу, второй вывод кнопки – на минус. 2. Отрезается нижнее плечо делителя напряжения от земли и подключается к 6-му выводу. 3. Пятая нога микроконтроллера управляет одним 7135 (ШИМ), ко второй ноге подключен тоже один 7135, остальные 7135 подключены к 3-й ноге. Как именно резать дорожки зависит от конкретной версии драйвера, на форуме достаточно инфы на эту тему. Прошивка писалась для туристическо-резервного использования фонаря, с небольшим уклоном к экономичному юзу на слабых режимах. Исходники (проект для AVR Sudio 5, hex и fuse) в архиве. Хоть у фонаря много режимов, управлять режимами легко. - короткий клик – включение/выключение фонаря; - долгое нажатие – перебор режимов «вверх», до 4-го включительно, без перехода по «кругу»; - короткий клик + долгое нажатие – пребор режимов «вниз», до 1-го включительно; - двойной клик – включение «турбо» (и из включенного и из выключенного фонаря); - тройной клик – индикация уровня заряда аккума (и из включенного и из выключенного фонаря); Фонарь без памяти последнего режима, но включение возможно в разных режимах: - короткий клик + долгое нажатие (аналог команды понижения режимов) – мунлайт; - короткий клик – 1-й режим; - долгое нажатие (аналог команды повышения режимов) – 2-й режим, если продолжать удерживать кнопку, то перейдет в 3-й режим (через 0,5с); - двойной клик – включение «турбо». Есть защита от случайного включения – пятерной клик. Из включенного режима фонарь моргнет, выключится и заблокируется от случайного включения. Будет доступно только индикация уровня заряда (тройной клик) и снятие блокировки – пятерной клик. При снятии блокировки фонарь коротко моргнет (без включения). Во всех режимах, кроме мунлайта и 1-го режима, есть плавный степдаун – в течении 2 минут яркость плавно понизится (не заметно для глаза) примерно на 20%. В режиме Турбо – плавный степдаун длится примерно 5 мин, за это время ток плавно уменьшится немного больше, чем на 700мА, после этого фонарь перейдет в 4-й режим. При разряде аккума ниже 3В – фонарь понижает режимы вплоть до 1-го (без принудительного перехода в мунлайт). Каждое такое автопонижение индицируется коротким морганием. При напряжении ниже 2,8В – фонарь трижды (с интервалом около 8 с) просигнализирует коротким морганием и выключится. Режимы фонаря по току: Мунлайт - 3мА 1-й - 13мА 2-й - 63мА, после плавного двухминктного степдауна -51мА 3-й - 265мА, после плавного двухминктного степдауна -200мА 4-й - 720мА, после плавного двухминктного степдауна -600мА Турбо - 2,9А, после плавного пятиминутного степдауна -2,1А Ток измерялся по аккуму. Краткий итог (ИМНО) по фонарю – сам по себе стоит своих денег. После модернизации становится конкурентен Skilhunt H02, однако заметно дешевле и с возможностью «заточить» управление «под себя». Несколько огорчает невозможность покупки в более доступных/удобных местах. Лично я, при его покупке, пользовался сервисом http://www.mistertao.com Прошивка tactical_v5.0.zip |
Поблагодарили: 52 раз(а) |
05.01.2016, 10:33 | 2 |
Ветеран Фонарёвки
Регистрация: 15.03.2015 Последняя активность: Вчера 19:38
Сообщений: 3646
Сказал(а) спасибо: 1299
Поблагодарили: 1816 раз(а) в 1164 сообщениях
|
Re: Модинг народным драйвером бюджетного L-образного фонарика (налобника)
Подобный на алиэкспресс
|
06.01.2016, 12:21 | 3 |
Ветеран Фонарёвки
Регистрация: 16.10.2012 Последняя активность: 22.02.2022 02:51 Адрес: Киев, Украина
Сообщений: 4358
Сказал(а) спасибо: 687
Поблагодарили: 2977 раз(а) в 1380 сообщениях
|
Re: Модинг народным драйвером бюджетного L-образного фонарика (налобника)
|
06.01.2016, 12:38 | 4 |
|
Re: Модинг народным драйвером бюджетного L-образного фонарика (налобника)
ceramic,
Фонарь может стать хитом для любителей переделок. Дешевый и отстойный в стоке и похоже, что вполне хороший после переделки. Заказал |
06.01.2016, 13:15 | 5 |
|
Re: Модинг народным драйвером бюджетного L-образного фонарика (налобника)
ceramic,
А сколько байт у тебя программа получается? Мне кажется, ты зря _delay() делаешь inline. |
06.01.2016, 13:27 | 6 |
Участник форума по OpenID
|
Re: Модинг народным драйвером бюджетного L-образного фонарика (налобника)
у меня как раз товарищ искал недорогой и хороший налобник. кажется мне есть чем его обрадовать. а может и себя))
|
06.01.2016, 15:18 | 7 | |
Ветеран Фонарёвки
Регистрация: 08.10.2011 Последняя активность: 30.03.2024 21:54 Адрес: 哈尔滨
Сообщений: 8001
Сказал(а) спасибо: 934
Поблагодарили: 5199 раз(а) в 2785 сообщениях
|
Re: Модинг народным драйвером бюджетного L-образного фонарика (налобника)
Рантайм же.
Таковы были хотелки. Это последний вариант, на 20%. Тот, что я себе хотел оставить, и даже оставил, но неожиданный поход в гости, без заранее готового подарка, лишил меня его. Мне показался интересным такой вариант. Перед этим, два из тех что я модил (уже больше года юза на нескольких сплавно-байдарочных прогулках), понижают яркость на 30%. Первую минуту светит без снижения яркости, потом за минуту плавно съезжает вниз. Глазами совершенно не видно. И даже, если одновременно сравнивать два фонаря с начальным светом и "съехавшим" -- далеко не каждый определит, какой из них ярче. А рантайм-то +30%. Впрочем -- исходник есть, кому не нравиться -- можно отключить. Среди тех кто их юзает, а всего таких 8 человек -- это уже хит, разумеется, за свою цену. Цитата:
Однако на свою цену -- конкурентов как-то не видно. Аналогично. К тому-же там, судя по всему, там уже новая версия продается. Мой продавец (с таобао) ответил мне, что с конца весны у него только новые тушки (хотя фотки на сайте остались старой версии). Придут -- посмотрю какая тут. Когда я открыл тему, я еще не знал что есть новая версия, и что две мои тушки, купленные в сентябре, -- это уже новая версия. У меня в первом посте есть фотки и новой и старой версии. Внешнее отличие одно -- у старой версии средняя часть была абсолютно симметрична, у новой версии одна из проточек чуть поуже. Фотки из моего первого поста (в реале цвет не отличается, телефон и фотоаппарат в разных условиях так сняли) Вес новой тушки совсем чуть чуть больше,увеличился на 2,5 грамма, стал 62,5 грамма. Но есть и более существенные отличия: Из хорошего: наконец проточки сделали по людски, теперь проточки для кнопки и для стекла не касаются. Вот старая версия: А это новая: Из плохого -- немного изменили безель для стекла. Теперь его полочка немного не перпендикулярна и есть маленькая щель между безелем и корпусом. На герметичность не влияет (о-ринг стоит внизу безеля), очень маленькая щель,настолько маленькая, что я ее не видел. Может быть критично только для перфекционистов, которые врядли позаряться на сей фонарь. Сфотографировать сложно, поэтому немного выкрутил безель (в реале щель меньше): 998 bytes (97.5% Full) Возможно. Встречный вопрос: а как стоит попробовать? Раньше (давно пробовал) просто в теле программы расставлял _delay() -- код получился больше. Сейчас не пробовал. ЗЫ Еще из плохого (как для меня) -- вроде магнит послабее стоит. У предыдущей версии разница со Скилхантом была очевидная, а с новой попробовал -- вроде-бы сильнее держит, но совсем не намного. Старой версии сейчас нет, что-бы сравнить. [Исправлено: ceramic, 06.01.2016 в 15:23] |
|
06.01.2016, 15:24 | 8 |
|
Re: Модинг народным драйвером бюджетного L-образного фонарика (налобника)
У меня другой тулачайн и твой вариант не скомпилися - не влез, а код ниже 1012 байт. Попробуй, сколько мой вариант на твоем компиляторе займет.
Код:
/* LED Driver Tactical Button * Created: 25.12.2015 * FIRMWARE VERSION: 5.0 * This code is distributed under the GNU Public License http://www.gnu.org/licenses/gpl.txt * Author: Ceramic https://forum.fonarevka.ru/member.php?u=4262 */ #define OS_MAIN __attribute__((OS_main)) #define INLINE inline __attribute__((__always_inline__)) #define NOINLINE __attribute__((__noinline__)) #define F_CPU 4800000UL #include<avr/io.h> #include<util/delay.h> #include<avr/interrupt.h> volatile unsigned char Cod = 1; unsigned char Nmodes; unsigned char Nmax; unsigned char B; unsigned char P; unsigned char adch_val; unsigned char nV; unsigned char Vblink; unsigned char Timer; unsigned char Power; unsigned char Block; unsigned char Ns; unsigned char ModesDown [6] = { 0, 0, 1, 5, 12, 36}; unsigned char Modes [6] = { 3, 12, 48, 190, 0b01000, 0b11000}; unsigned char volt [4] = { 140, 155, 165, 175 }; NOINLINE void delay_() { _delay_ms( 54 ); } INLINE void blink() { TCCR0A = 0; DDRB = 0b11011; PORTB = 0b00000; delay_(); PORTB = 0b00001; ADCSRA = 0xCF; delay_(); PORTB = 0b00010; } INLINE void Off() { Cod = 0; Power = 0; Nmodes = 0; OCR0A = 0x00; TCCR0B = 0x00; TCCR0A = 0x00; PORTB = 0x02; WDTCR = 0x10; WDTCR = 0x00; MCUCR = 0x30; GIMSK = 0x40; BODCR = 0x03; BODCR = 0x02; sei(); asm("sleep"); MCUCR = 0x00; TCCR0B = 0x01; } INLINE void SwitchMode() { GIMSK = 0x00; unsigned char n; if ( B == 3 ) { for (n = 0; n < 5; n++) { blink(); if (adch_val < volt[ n ]) break; } delay_(); delay_(); goto m2; } else if ( ( B == 5 ) ) { Block = Power; if ( Power ) Power = 0; blink(); goto m2; } else if ( Block ) goto m2; else if ( B == 10 ) { if ( ( Power ) && ( Nmodes < Nmax ) ) Nmodes++; else if ( !Power ) Nmodes = 2; } else if ( B == 11 ) { if ( ( Power ) && ( Nmodes > 1) ) Nmodes--; } else if ( B == 2 ) Nmodes = 5; else if ( B == 1 ) { if ( !Power ) Nmodes = 1; else { Power = 0; goto m2; } } else goto m2; Power = 1; m2: Cod = 0; if ( Vblink ) { TCCR0A = 0; PORTB &=~ 0b11001; delay_(); Vblink = 0; } if ( Power ) { Ns = Modes[ Nmodes ]; TCCR0A = 0x83; PORTB &=~ 0b11001; if ( Nmodes > 3 ) { PORTB |= Ns; Ns = 255; } OCR0A = Ns; Timer = 0; GIMSK = 0x40; } else Off(); } OS_MAIN int main(void) { DDRB = 0b11001; CLKPR = 0x80; CLKPR = 0x02; ACSR = 0x80; ADMUX = 0x61; while(1) { if (Cod) SwitchMode(); } } ISR(INT0_vect) { GIMSK = 0x00; if ( P == 0 ) { P = 1; B = 0; } else if ( P == 2 ) P = 3; else if ( P == 4 ) P = 6; WDTCR = 0x10; WDTCR = 0x40; } ISR(WDT_vect) { GIMSK=0x00; if ( P == 0 ) { DDRB = 0b11011; PORTB &=~ 0b00010; ADCSRA = 0xCF; } else { if ( bit_is_set ( PINB, PB1 ) ) { if ( ( P == 1 ) || ( P == 4 ) ) { if ( P == 4 ) { Nmax = 4; if ( B < 10 ) Cod = 1 ; } P=0; WDTCR = 0x10; WDTCR = 0x61; } else { if ( P == 3 ) { B++; WDTCR = 0x10; WDTCR = 0x44; } else { WDTCR = 0x10; WDTCR = 0x41; } P = 4; } MCUCR = 0x00; } else { if ( P == 5 ) { WDTCR = 0x10; WDTCR = 0x00; } else { if ( P == 2 ) { P = 4; if ( B ) B = 11; else B = 10; Cod = 1; if ( !Power ) Nmax = 3; WDTCR = 0x10; WDTCR = 0x45; } else if ( P == 4 ) Cod = 1; else { P = 2; WDTCR = 0x10; WDTCR = 0x44; } } MCUCR = 0x03; } GIMSK = 0x40; } } ISR (ADC_vect) { adch_val = ADCH; ADCSRA = 0; DDRB = 0x19; PORTB |= 0b00010; if ( Timer < 14 ) { if ( ++Timer > 7 ) { Ns = Ns - ModesDown [ Nmodes ]; if ( ( Nmodes == 5 ) && ( Timer == 14 ) ) { if ( bit_is_set ( PINB, PB3 ) ) { Timer = 0; PORTB &=~ 0b01000; Ns = 255; } else { B = 11; Cod = 1; } } OCR0A = Ns; } } if ( adch_val < 130 ) { B = 11; if ( adch_val < 115 ) { if ( ++nV > 3 ) { B = 1; nV = 0; } } Vblink = 1; Cod = 1; } else nV = 0; GIMSK = 0x40; } |
06.01.2016, 15:47 | 9 | |
Ветеран Фонарёвки
Регистрация: 08.10.2011 Последняя активность: 30.03.2024 21:54 Адрес: 哈尔滨
Сообщений: 8001
Сказал(а) спасибо: 934
Поблагодарили: 5199 раз(а) в 2785 сообщениях
|
Re: Модинг народным драйвером бюджетного L-образного фонарика (налобника)
Цитата:
Скомпилировал: 1008 bytes (98.4% Full) Немного больше чем было. |
|
Поблагодарили: 1 раз |
Tamagotchi (06.01.2016)
|
06.01.2016, 15:48 | 10 |
|
Re: Модинг народным драйвером бюджетного L-образного фонарика (налобника)
|
06.01.2016, 15:58 | 11 |
Ветеран Фонарёвки
Регистрация: 08.10.2011 Последняя активность: 30.03.2024 21:54 Адрес: 哈尔滨
Сообщений: 8001
Сказал(а) спасибо: 934
Поблагодарили: 5199 раз(а) в 2785 сообщениях
|
Re: Модинг народным драйвером бюджетного L-образного фонарика (налобника)
|
06.01.2016, 17:49 | 12 |
|
Re: Модинг народным драйвером бюджетного L-образного фонарика (налобника)
|
06.01.2016, 18:30 | 13 |
Ветеран Фонарёвки
Регистрация: 08.10.2011 Последняя активность: 30.03.2024 21:54 Адрес: 哈尔滨
Сообщений: 8001
Сказал(а) спасибо: 934
Поблагодарили: 5199 раз(а) в 2785 сообщениях
|
Re: Модинг народным драйвером бюджетного L-образного фонарика (налобника)
Теперь и я не знаю.
Инсталятор называется avr8-gnu-toolchain-installer-3.4.5.30-win32.any.x86.exe Но в нем лежит файл avr8-gnu-toolchain-3.4.5.1522-readme.pdf А 5-я студи в "OPTION" показывает toolchain-3.2.3_315. Приду домой попробую там разобраться. На работе у меня только 5-я студия, а дома стоит пару 4-х, пару 5-х и 6-я (старые не сносил, когда новые ставил, но все работают). Может там будет понятнее. |
06.01.2016, 18:34 | 14 |
|
Re: Модинг народным драйвером бюджетного L-образного фонарика (налобника)
|
07.01.2016, 02:19 | 15 |
Ветеран Фонарёвки
Регистрация: 08.10.2011 Последняя активность: 30.03.2024 21:54 Адрес: 哈尔滨
Сообщений: 8001
Сказал(а) спасибо: 934
Поблагодарили: 5199 раз(а) в 2785 сообщениях
|
Re: Модинг народным драйвером бюджетного L-образного фонарика (налобника)
Tamagotchi, разобрался с версиями, то, что я писал про тулачайн раньше -- неверно.
Тулчайны я то инсталлировал, но сейчас, как оказалось использую два, которые шли с инсталляцией студий (не всегда своих). Много времени прошло. Я несколько разных вариантов пробовал вот и забыл. На компе у меня стоит: AVR Studio 4.18 (build 684) -- использует тулчайн 3.3.1_27 от AVR Studio 5.1 (лежит в cProgram Files\Atmel\AVR Studio 5.1\extensions\Atmel\AVRGCC\3.3.1.27\AVRToolchain\bin\) AVR Studio 4.19 (build 730) -- то-же самое. AVR Studio 5.0 (build 1163) Installer - Full -- родной тулчайн 3.2.3_315 AVR Studio 5.1 (build 20 Installer - Full -- родной тулчайн 3.3.1_27 Atmel Studio 6.2 sp1 (build 1502) -- использует тулчайн 3.3.1_27 от AVR Studio 5.1 Почему именно на таком наборе остановился -- точно не помню. Думаю, именно из-за размера сгенерированного кода. Чужие проекты ни разу (во всяком случае пока) не оказывались большими (HEX), а нередко (после перекомпиляции) -- меньшими. Один и тот-же исходник во всех этих студиях дает одинаковый по длине код (наверняка не всегда, но мне еще не встречались исключения). [Исправлено: ceramic, 07.01.2016 в 02:20] |
Поблагодарили: 1 раз |
Tamagotchi (07.01.2016)
|
07.01.2016, 10:04 | 16 |
|
Re: Модинг народным драйвером бюджетного L-образного фонарика (налобника)
ceramic, Как правильную версию посмотреть?
|
07.01.2016, 14:13 | 17 |
Ветеран Фонарёвки
Регистрация: 08.10.2011 Последняя активность: 30.03.2024 21:54 Адрес: 哈尔滨
Сообщений: 8001
Сказал(а) спасибо: 934
Поблагодарили: 5199 раз(а) в 2785 сообщениях
|
Re: Модинг народным драйвером бюджетного L-образного фонарика (налобника)
Разобрался.
В предыдущем сообщении о версиях опять сбрехал. То ли Студия изначально такая, то-ли я установками тулчейнов ее запутал, что в разных местах по разному показывает, а по факту может быть и по другому. Надо смотреть окно вывода информационного сообщения при компиляции (если повторно перекомпилировать -- можно не увидеть, лучше изменить какую-то буковку и скомпилировать). Ищем сообщение о запуске make: ...\make.exe all Вскоре за этим будет инфа о запуске gcc. На моей студии 6.2: "CProgram Files\Atmel\AVR Studio 5.1\extensions\Atmel\AVRGCC\3.3.1.27\AVRToolchain\bin\avr-gcc.exe" ..... Открываем этот avr-gcc.exe текстовым редактором и ищем по "_GNU_Toolchain_" Находим версию, у меня: pkgversion=AVR_8_bit_GNU_Toolchain_3.3.1_466 Получается, что у меня студия 5.0 использует pkgversion=AVR_8_bit_GNU_Toolchain_3.2.3_315 А студии 4.18, 4.19, 5.1 и 6.2 -- pkgversion=AVR_8_bit_GNU_Toolchain_3.3.1_466 |
Поблагодарили: 1 раз |
Tamagotchi (07.01.2016)
|
07.01.2016, 15:58 | 18 |
|
Re: Модинг народным драйвером бюджетного L-образного фонарика (налобника)
|
07.01.2016, 16:43 | 19 |
Ветеран Фонарёвки
Регистрация: 08.10.2011 Последняя активность: 30.03.2024 21:54 Адрес: 哈尔滨
Сообщений: 8001
Сказал(а) спасибо: 934
Поблагодарили: 5199 раз(а) в 2785 сообщениях
|
Re: Модинг народным драйвером бюджетного L-образного фонарика (налобника)
|
07.01.2016, 17:24 | 20 |
|
Re: Модинг народным драйвером бюджетного L-образного фонарика (налобника)
|