Pull to refresh

Comments 75

Можно меньше - мигать светодиодом азбукой Морзе!

Тогда понадобится специально обученный (не обязательно маленький) человек-декодер)

Выучить на морзянке одни цифры можно за несколько минут, там есть закономерность.

Есть тут у меня один претендент)

Осталось подружить МК и LCD...

Есть ещё stm8l, посложнее, зато сильно дешевле. И на удивление купить их до сих пор несложно

Опять просто, (хотя относительно, надо на новые камни переучиваться) хочу с AVR подружить.. Ждите, не хочу спойлерить и загадывать сильно :3

Тут подойдет что-то в корпусе tssop20, иначе плата будет значительно больше дисплея. Именно поэтому я и ставлю везде SSD1306- нужно всего 2 ноги МК. С вашим дисплеем нужно 10.

а как же ресет? или этому дисплею все (включая аппаратный сброс после сбоя питания например) можно сделать по i2c/spi?

Не часто вижу reset на i2c устройствах. У дисплея он конечно есть, но как обычно- просто заглушен подтяжкой на плюс. При сбое питания дисплей перезагрузится вместе с МК, точно так же как при обычном включении.

просто на одной поделке у меня был опыт когда дисплей с другим контроллером SSD13xy, где х точно не нуль (не помню уже точно номер), этот дисплей не выключился при разряде батареи а странно заглючил и подзарядка и софтовый сброс не помог, только отключение и разрядка в нуль. Исправил тем что пришлось подпаять аппаратный сброс - проблема ушла.

Пишут, что некоторые i2c устройства зависают просаживая CLK и только питание дёрнуть помогает. Актуально наверное только для каких то удалённых устройств.

я ставлю резисторы по 100-200 ом в разрыв сигнала от программатора и потребителей портов двойного назначения. Помогает.

Можно залить верх эпоксидкой, и сшлифовать текстолит до самой меди :) Получится ещё меньше

У меня есть стеклотекстолит толщиной 0.2мм. Правда работать с ним тот еще геморрой.

Хотел маленький ЖК индикатор приделать на батарею чтоб всегда показывал напряжение и при этом не разряжал. Обнаружил что таких не найдешь. Казалось бы, что может быть проще.

Можно использовать E-Ink, они работают даже после отключения питания. Мк во сне тоже почти ничего не потребляют.

Есть такая идея. Но они дороги и выбор мал.

Вобще, обычный ЛСД в часах от одной крошечной батарейки годами работает, стоит копейки. Но почему-то таких напряжометров не делают.

ну так часы и возьмите и разберите заради экранчика. делов то.

Тут чувак попробовал таким индикатором (с динамической индикацией, да) поуправлять.

https://github.com/vishalsoniindia/Hack-Digital-Watch-LCD

Не вникал пока, постоянным током, или переменным. Лучше переменным, чтобы электролиза не было. Индикатор дольше протянет.

Если не ошибаюсь (может и правда плохо тему копал), то важно просто обеспечить разность уровней с быстрым переключением, переменка не обязательна. Очень сомневаюсь, что LCDшки в тех же калькуляторах и градусниках кормят переменкой

По проекту ничего особенного, а в местный...кхм с позволения, код, так вообще не рекомендую лезть, если психика слаба...

Глянул код. Напомнило случай, когда в редакцию журнала "Горизонты техники для детей" некий читатель прислал программу для ZX Spectrum, рисующую голову мультперсонажа под названием Smurf. Программа состояла из одних PLOT и DRAW, тогда как можно было упаковать весь массив векторов в DATA и написать короткую программу, вытаскивающую эти данные по очереди и обрабатывающую. Но сотрудник редакции не поленился набрать эту простыню, запустить и показать дочери. Она его узнала. :)

Уж не знаю, было ли это толстым троллингом редакции, или программист оказался действительно настолько начинающим, что не знал про DATA и READ.

Очень сомневаюсь, что LCDшки в тех же калькуляторах и градусниках кормят переменкой

Кормят. Везде. Единственное исключение встречал на некоторых дешёвых мультиметрах с сегментами запятых, со временем начинаются проблемы.

912 байт - вот это пример правильного ПО. А то в последнее время уже прошивки начали мегабайтами начинать измерять...

Самый большой мой код был для ESP32. Около 6 -7 мегабайт. Но там и были- 4 дюймовый сенсорный дисплей, полноценный звук на I2S из BT, ну и естественно общение с сервером.

И могла бы быть меньше. Недавно тоже посидел над оптимизацией прошивки для attiny10 чтобы влезла в килобайт. Программировал принципиально без ассемблера.

Программные операции деления и умножения занимают каждая байт по 20-30, особенно для uint16_t. Если возможно, лучше подобрать другие параметры делителя чтобы программные операции деления и умножения требовали констант - степеней двойки. Тогда это всё превращается в сдвиги.

Но и это немало:

                                    sleep(delay / 64);                                
 1cc:	64 2f       	mov	r22, r20
 1ce:	75 2f       	mov	r23, r21
 1d0:	86 e0       	ldi	r24, 0x06	; 6

000001d2 <.L1^B1>:
 1d2:	75 95       	asr	r23
 1d4:	67 95       	ror	r22
 1d6:	8a 95       	dec	r24
 1d8:	e1 f7       	brne	.-8      	; 0x1d2 <.L1^B1>

Также параметры функций лучше объявлять как const &, тогда прологи/эпилоги функций которые генерит компилятор не занимаются сохранением/восстановлением регистров с копиями этих параметров.

Также вообще лучше не использовать uint16. MK 8-битовый, все 16-битные операции выполняются над парами 8-битных регистров учитывая флаг переноса, поэтому даже простой инкремент ++ для 16-битного типа превращается в несколько команд на 10 байт.

Вот этот ужас:

    ++ticks;
  40:	40 a1       	lds	r20, 0x40	; 0x800040 <ticks>
  42:	51 a1       	lds	r21, 0x41	; 0x800041 <ticks+0x1>
  44:	4f 5f       	subi	r20, 0xFF	; 255
  46:	5f 4f       	sbci	r21, 0xFF	; 255
  48:	51 a9       	sts	0x41, r21	; 0x800041 <ticks+0x1>
  4a:	40 a9       	sts	0x40, r20	; 0x800040 <ticks>

Также лучше использовать циклы где условие выхода/продолжения - сравнение с нулём. Это требует всего одну 2-байтовую команду перехода с анализом флага нуля. А не 6 байт с загрузкой константы, сравнения и перехода.

Ещё макрос PROGMEM в avr-libc сломан для attiny10, не компилится. Но его можно не использовать вообще, потому что ядро attiny10 использует единое адресное пространство для флэша и RAM. Компилятор сразу генерит правильный код.

Вместо макросов для i2c лучше использовать static-функции. Компилятор лучше соптимизирует. Макросы же не оставляют ему выбора.

АЦП у таких контроллеров очень посредственный, нормальный вольтметр не получится. Дисплеи кстати бывают совсем маленькие из той же серии 8×12мм

АЦП вполне обычный. Разве что опорное с питания берет, но хорошо стабилизировать питание при потреблении самого МК в несколько мА не проблема.

По-моему там обычный для AVR АЦП стоит, только без опорного напряжения внешнего

Не вырывайте слова из контекста

Attiny10 самый маленький МК, из AVR точно

ATTINY10 бывает в wlcsp 1.5×1.6mm (код -uur)

Есть способ сделать конструкцию еще тоньше, но это уже ЛУТом не получится.

Для каждой детали выфрезеровывается соответствующее отверстие в плате и деталь "утапливается" в плату. Результат выглядит странно, но вполне работоспособно.

Я за толщиной не гнался. Как я говорил выше, у меня есть стеклотекстолит толщиной 0.2мм. На фото не лист медной фольги, а именно фольгированный стеклотекстолит, причем двусторонний.

Я увидел то что хотел, 912 байт это конечно сильно но можно ещё меньше на семисегментных индикаторах сделать.

572пв5+ЖКИ - вообще не нужна прошивка.

Меньше можно на ПИК10 каком с OTP. (по стоимости конешн). Когда первый раз увидел аттини10 - смутила ее цена. (в 2016 была под 250р розницы в терре вроде).

Ребят, проконсультируйте поверхностно, пожалуйста.

Хочу на attiny13 + гироскоп MPU-6050 + светодиодики + CR батарейка + кнопка

собрать "брелок" который будет моргать при отклонении от 90°, размером чуть больше этой самой батарейки.

Я по питанию и мозгам пройду или 100% ерунда выходит?

До этого баловался ардуинками.

Пройдёшь, конечно. У MPU питание 2.375V-3.46V, у attiny от 2.7В. Если взять с индексом V, то вообще от 1.8В

Тяжело будет. Процедура калибровки 6050 и количество данных могут не поместится в 1кБ. На какой-нибудь аттини85 вообще без проблем. Причем тот же OLED можно повесить и смотреть положение в пространстве.

Какое отклонение и с какой точностью надо ловить? Может и контроллера не надо а достаточно датчика наклона с капелькой ртути...

Про ртутные датчики я слышал, но надо почитать что у них с точностью и прочим. Думаю - не пойдет.

Хочу примочку на перфоратор для контроля вертикальности/горизонтальности/задания угла.

Но с заданием угла - это не точно. Проблемы и UI-интерфейсом и памятью МК.

Такой пробовал.

Проблема с "калибровкой" и контролем. Дискретное "горит/негорит", думаю, удобнее. Но, возможно, что окажется не лучше.

Деталей тоже рублей на 100, если штучно закупаться.

UFO landed and left these words here

У вас отклонение показаний из-за вибраций от перфоратора, небось, будет превышать размер ожидаемого сигнала при отклонении угла.

А моде

А может загнëтся от помех с движка. Посмотрим)

Люфт сверла в патррнк перфоратора будет нивелировать всю "точность" измерения))

Нет. Речь о глубоких отверстиях - там это актуально. Точно-точно делать нужды нет, достаточно не облажаться по-крупному

Я сверлил шахту под вентиляцию в газобетоне на 80 см глубины. И там мне бы это помогло сильно (наверное).

Похоже эта штука кроме измерения напряжения ещё что-то умеет

Не так уж и много, умеет адекватно показывать напряжение до 24 вольт, кушать 2мкА в спячке, просыпаться по дабл тапу.

Так мы количеством меряемся или всё таки размерами? ))

Думал, как у меня дисплей, 0,42" 72х40, но на моём 16 ног. Какой здесь стоит?

с плечем 3.5

С плечом.

У меня на телефоне нет Ctrl+Enter

Отличная идея! Интересно, сильно ли вырастет прошивка, если в фоне (например, на каждом втором кадре) выводить осциллограмму сигнала. Насколько я помню, SSD1306 может принимать данные по столбцам, т.е. теоретически данные с АЦП можно не хранить, а сразу отправлять в порт.

подозреваю, что осциллограмма в память не влезет

использовать граф.память самого дисплея, но придётся отдать место на алгоритмы синхронизации

т.е., сразу рисовать кривую? Можно, если хватит пропускной способности шины.

Думал - рисовать по кусочкам. Но боюсь не хватит места на алгоритм. Ваш вариант конечно проще, но да - если только что то не быстрое.
ps по аналогии когда-то думал как затащить ТВ сигнал, скорости и памяти мне не хватало, но можно было по частям.

не пугайтесь картинке, Microchip купила Atme

А чего пугаться то? Уже 9 лет прошло, как покупка состоялась)))

Но я был немного обескуражен, когда очередной раз посетив сайт atmel.com был перенаправлен на микрочип!

На обратной стороне платы деталей нет. Провода для прошивки. Извините за качество фото, всё никак не переставлю симки в новый смартфон.

Вольтметр с этим дисплеем и Attiny10 был в планах, не дошли руки пока.

Да, видел 2 недели назад, но там чуть ли не процессор управляет этим дисплеем, это из пушки по воробьям.

у меня была похожая проблема с дисплеем из-за того что проводки были вместе и наводки давали друг на друга. я их потом расклеил и всё заработало. но когда потом паяешь то всё норм, это только на макетке

Sign up to leave a comment.

Articles