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 just landed and posted this here

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

А моде

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

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

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

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

Ну это не серьезно, там же аж 20 ног! :)

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

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

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

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

с плечем 3.5

С плечом.

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

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

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

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

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

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

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

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

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

Ещё больше был обескуражен когда походил по старым ссылкам, вот например:
http:/www.atmel.com/devices/atmega8.aspx?tab=overview
http://www.atmel.com/Images/doc8103.pdf

А ведь могли забить и не делать перенаправление, но нет, запилили таки, похвально

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

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

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

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

Sign up to leave a comment.

Articles

Change theme settings