Искомую схему добил, представляю на рассмотрение. Изначально поставил "древний" процессор, при желании его можно заменить без лишних хлопот на Tiny2313, цоколевка совпадает. Теперь осталось самое "малое", написать саму программу....
Проблема в том, что для МК Tiny2313 (AT89C2051) - емкостью флешь всего 2 Кб. 2Кб занимает программа с библиотекой для LCD дисплея , еще одна спецификация, если использовать значения с плавающей точкой, то ко всему этому добавиться еще 1Кб. И так, что бы получить нормальную программу с LCD дисплеем рекомендуют использовать МК от 4Кб. И как говориться, что бы написать программу, нужен алгоритм описывающий работу и все режимы этой схемы, описать каждую кнопку, индикатор, переключатель, реле. Да еще звуковая сигнализация, если с мелодией тоже займет 1-2Кб. Посмотрел по базе на складе разница между ATTiny2313 / ATmego8/ ATmego16 всего в 0.25-0.7 уе. Но я думаю что использовать Мего8 с 8КБ флешью вполне рационально.
Смотря каким ПО пользоваться, для предложенной схемы основной язык Ассемблер, я к примеру в 2 КБ кучу сервиса запихиваю без заметных осложнений (я имею в виду AT89C2051), правда многое уже под завязку, в лучшем случае 300-400 байт остаются для улучшения. С Tiny2313 чуть сложней, там я имею в своем распоряжении 1024 инструкций против 2048, если есть в наличии AT89C4051, то вообще сказка, там я могу затолкать очень много своих хотелок и еще 1 КБ остается про запас. Я еще в далеком 2004-м сделал блок управления на 87С51, там вся программа уложилась в 3,5КБ, а это: 5 аналоговых каналов на 10 разрядов (причем для них развертывающий АЦП чисто программный, 5 замеров в сек.), программный часы-клендарь, поворот, 4 кнопки меню, 3 датчика положения, индикатор СДИ 7 сегментный на 9 знакомест с динамической индикацией и сканированием клавиатуры, поддержка 2-х нагревателей с 10% шагом регулировки мощности (фактически этим блоком можно держать параметры климата в 2-х камерах). В те времена программу я писал на скорую руку, если ее оптимизировать, то она спокойно влезет в 2 КБ.
Сейчас народ обленился, не хочет осваивать и писать на ассемблере, как итог не хватает памяти для программ 2КБ, подавай больше. Для голого поворота с сервисом достаточно и целочисленной арифметики с полным комплектом булевой алгебры, операции ввода/вывода остаются в силе (экономить на них категорически запрещается). К примеру я планирую получить откопимлированный код в пределах 1,3....1,9 КБ, когда соберу аппарат в живую смогу сказать более точно про объем выходого кода.
Смотря каким ПО пользоваться, для предложенной схемы основной язык Ассемблер, я к примеру в 2 КБ кучу сервиса запихиваю без заметных осложнений (я имею в виду AT89C2051),
Мне как программисту верхнего уровня лесть в ассемблер просто не стоит, я понимаю, если там разница в стоимости МК была бы 10 уе, а так с разницей в 50 центов учить Ассемблер в котором я в принципе не плохо разбирался в институте, но для моей работе он совсем оказался не нужен и забивать себе голову этим лесом времени у меня нету, приходиться писать на СИ. И я в принципе не закумариваюсь размерами МК опять же по тому, что стоимость их не зависимо от размеров практически одинаковая. Мир наш развивается и помимо размеров программировать МК старого образца который программируется только через LPT порт смысла уже нету, У меня программатор самодельный программирует как через COM порт так и через USB так как и AVR так и PIC МК. Скажите мне зачем мне всякие заморочки и беготня за размерами? Искать МК которые как 10 лет назад уже не продают. Новый мир, новые технологи, новые МК и новые средства их программирования и прошивки. Все прошла эра погоней за размерами, это раньше разница между 1КБ МК и 2КБ МК была в 50 уе., а сейчас в 50 центов. не знаю наверное нельзя скидывать ссылки но тут человек на AVRе пишет в принципе то, что вы хочете. его некст файл занимает 7.8КБ в принципе можно было уменьшить до 4КБ, ну я бы не стал написал там мелодию для сирены красивую)) _http://radiokot.ru/circuit/digital/home/139/ Ну чем плох AVR он в начале проекта создает начальный код по начальным настройкам, автоматически добавляя куча ненужного кода. Ну и рассчитан на любителей бубна. Я научился за 3 дня писать на Atmel Studio он как раз для тех кто хочет научиться писать МК без гемороя, все описано, расписано, куча подсказок, визуальная отладка, при добавлении протеуса, идеальная платформа для создания больших проектов. Кстати изначально скопировал, написал код который был под AT89C2051 под ATtiny2313 он у меня получился в сего 63 байта ваш 80 байт занимал. Все наверное из за счетчика времени, но судить не буду я не в курсе какой алгоритм подсчета времени вы использовали.
Если есть дело с микроконтроллерами, то разработчик обязан хорошо владеть и железом и программами в равной степени, поэтому сачкование от железа в пользу софта вряд ли даст оптимальное решение. Программист который знает хорошо железо сделает куда эффективней программу, чем его собрат недостаточно владеющий таким даром. С каким ПО работать я спорить и биться не стану, каждый отстаивает то, чем владеет лучше и как ему удобно с ним работать, каждый уже выберет по своим силам и знаниям. Мне к примеру было без разницы какой язык применить Си или ассемблер, но учитывая то, что я больше железячник чем программист, то предпочтение отдал ассемблеру несмотря на то что он более хлопотен чем Си. В этой теме ради доступности и понимания менее подготовленными я и применил классику (для некоторых это уже древность), это вполне достаточно для решения такого сложности задачи и не ставил себе цель гоняться за модой на определенные типы навороченных контроллеров и софт под них. Если вам удалось написать работающий код для Tiny2313, его можно спокойно выложить сюда до кучи (только придется привести и схему в случае больших изменений по сравнению с оригиналом), пусть народ потренируется делать по одной и той же структуре блока с разными семействами микроконтроллеров (в нашем случае x51 и AVR-ки). Если посмотреть с другой стороны то для конечного пользователя предоставлены все необходимые составные для сборки и отладки: схема, печатка и прошивка (хекс. или бин. формат), при таком раскладе ему по барабану исходный текст программы для полученной прошивки, главное чтобы работало дубово.
Другая цель этой темы это своеобразное обучение непосвященых азам цифровой и процессорной техники, пусть это будет точкой опоры или отправки для более сложных проектов,
Мне к примеру было без разницы какой язык применить Си или ассемблер, но учитывая то, что я больше железячник чем программист, то предпочтение отдал ассемблеру несмотря на то что он более хлопотен чем Си. В этой теме ради доступности и понимания менее подготовленными я и применил классику (для некоторых это уже древность),
В чем вся и проблема, что древность!!! Мне нужно было апгрейдить свой инкубатор на 100 яиц, так как я не чего не смыслил в МК и как их программировать начал гуглить уже готовые решения. И наткнулся на ваш вроде нечего сложного, за тратился, купил МК AT89C2051 и оказалось, что бы прошить такой МК нужен ЛПТ порт, глянул по своим ПК, а там минимум COM порт. Пришлось читать литературу. Нашел Тиньку подходит по цоколевки, но не подходит прошивка, что делать? пришел к выводу, нужно перепрограммировать самому, Ну так как я программирую на Visual Studio C# выбрал Atmel Studio построение языка в .NET одинаков, так, что без разницы какой язык использовать VB, C#, C++ или просто первоначальный их СИ. Вывод: для большинство людей или покупать уже готовое решение или учиться программировать уже более продвинутые модели МК. Я говорю за то, что я не когда не программировал нижний уровень, а не брешу на работе каждый день программирую ну там тоже не ассемблер там WinCC.
В общем мысль понял, это многое объясняет. И такой вопрос, зачем надо было мучится дизассеблировать прошивку когда я могу предоставить исходный текст с комметариями, в худшем случае можно было скачать по ссылке оригинальной статьи (Радiоаматор №7 за 2011, стр.28-32). И все таки мне любопытен ваш вариант прошивки для tiny2313, пусть народ попробует и этот вариант. К примеру в продолжение приспособления контроллеров семейства Tiny есть неплохие микрухи в 8-выводном корпусе (Tiny11, Tiny12 и Tiny15), под исходную схему они вписываются отлично, просто в повседневной свистопляске я просто упустил из вида.
И чуточку отклонюсь от темы, если уж совсем не хочется заморачиваться с контроллерами, то блок поворота по точно такому алгоритму работы, только на жеской логике можно заимствовать из состава А50Б (он содержится тоже в этой ветке или заглянуть в тот же Радiоаматор, только в №11 за 2010, стр.29-34).
А с остальными замечаниями можно писать мне в ЛС без ограничений, отвечу без проблем, просто в теме не всякий поймет суть наших дебатов.
В посте #19 я привел пример нa Tiny2313. Единственное, что там немного добавил функционал, ну для себя делал. Быстрый вариант, там много можно упростить, ну я как раз обучался на нем)). Если нужно могу создать точную копию под первоначальный вариант. А теперь появилось желание сделать для себя с LCD или ЖК экраном ну пока руки не доходят, огороды замучили)) . Да еще там в архиве с проектом путь к hex файлу \ATtiny2313A_Inkubator_povorot\Debug\ATtiny2313A_Inkubator_povorot.hex
Проект написан на Atmel Studio 6.2
Спасибо, абсолютно точную копию не обязательно, то что выложено пока хватает. Я постараюсь завершить программу для выложенной схемы с ЖКИ, исходный текст могу забросить вам в ЛС и с вашей стороны будет то же самое для Тини2313. Более сложную схему пока нет смысла делать, возможно применить другие типы и семейства контроллеров для заданной структуры...
Искомую схему добил, представляю на рассмотрение. Изначально поставил "древний" процессор, при желании его можно заменить без лишних хлопот на Tiny2313, цоколевка совпадает. Теперь осталось самое "малое", написать саму программу....
Шикарная схема и до безобразия простая. DB108 - что за гусь и насколько он надежен и сколько тока отдаст?
ULN2003 хорошая микросхема никак на нее не подсяду, все транзисторами да транзисторами коммутирую или мосфетами из матплат.
Не нашел на схеме кто нюхает температуру и влажность?
буду аналогично собирать на pic16f628a (2k) или pic16f887 (кажется 8к)
DB108 это выпрямительный мост, до 1 А в действительности я его применяю в более щадящем режиме до 0,4А.
ULN2003 помогает экономить рассыпуху, вещь стоящая. Кроме нее есть ULN2803, она содержит 8 ключей против 7, держит шаговый движок ПБМГ-42 или ему аналогичный.
Изначально эта схема не предусмотрена для обслуживания датчиков температуры и влажности, только поворот.
ULN2003 помогает экономить рассыпуху, вещь стоящая. Кроме нее есть ULN2803, она содержит 8 ключей против 7
полезно, спасибо за информацию.
1) Не поделитесь физикой процесса переворота, расположение движка, мертвые точки как определяет МК и как двигаются шарниры. С электроникой проблем не будет смогу запрограммировать, а вот с механикой не сильно сталкивался. Планирую на будущий инкубатор установить автопереворот и увеличить количество яиц.
2) влажность сильно играет на вывод перепел, куры, утки, гуси как параметр стоит контролировать (устанавливать датчик влажности) или не стоит тратиться? имею готовый протокол для китайского dht11, он конечно врет сильно порядка +\-10% я думаю для инкубатора пойдет.
P.S. при перевороте никто не использует датчик холла? или концевики надежней?
Про физику переворота можно писать не один роман, предложенная публикация рассчитана для винтовой или червячной передачи, при этом надо учитывать вес кассеты, как она сбалансирована и самое главное, усилие на оси поворота от движка (особо критично оно в крайних положениях кассеты, при этом усилие должно быть с запасом).
С применением всякой экзотики в качестве концевиков, особенно датчики Холла и оптопары с открытым каналом, их в чистом виде применять не рекомендуется, электроника микроконтроллера может подкачать, обязательно дублировать нажимными выключателями на разрыв. Даже в этом году был случай, после ремонта на линии электрики иначе подключали фазы и в итоге сгорел движок для переворота и сомался защитный упор, так что как не обеспечивай защиту, то всегда найдется мудак в виде пьяного электрика который обойдет предусмотренную защиту от дурака.
С контролем влажности проще иметь отдельный аппарат наподобие термостата, но это выходит за рамки данной темы, при необходимости можно открыть отдельную тему под него.
Проблема в том, что для МК Tiny2313 (AT89C2051) - емкостью флешь всего 2 Кб. 2Кб занимает программа с библиотекой для LCD дисплея , еще одна спецификация, если использовать значения с плавающей точкой, то ко всему этому добавиться еще 1Кб. И так, что бы получить нормальную программу с LCD дисплеем рекомендуют использовать МК от 4Кб. И как говориться, что бы написать программу, нужен алгоритм описывающий работу и все режимы этой схемы, описать каждую кнопку, индикатор, переключатель, реле. Да еще звуковая сигнализация, если с мелодией тоже займет 1-2Кб. Посмотрел по базе на складе разница между ATTiny2313 / ATmego8/ ATmego16 всего в 0.25-0.7 уе. Но я думаю что использовать Мего8 с 8КБ флешью вполне рационально.
Смотря каким ПО пользоваться, для предложенной схемы основной язык Ассемблер, я к примеру в 2 КБ кучу сервиса запихиваю без заметных осложнений (я имею в виду AT89C2051), правда многое уже под завязку, в лучшем случае 300-400 байт остаются для улучшения. С Tiny2313 чуть сложней, там я имею в своем распоряжении 1024 инструкций против 2048, если есть в наличии AT89C4051, то вообще сказка, там я могу затолкать очень много своих хотелок и еще 1 КБ остается про запас. Я еще в далеком 2004-м сделал блок управления на 87С51, там вся программа уложилась в 3,5КБ, а это: 5 аналоговых каналов на 10 разрядов (причем для них развертывающий АЦП чисто программный, 5 замеров в сек.), программный часы-клендарь, поворот, 4 кнопки меню, 3 датчика положения, индикатор СДИ 7 сегментный на 9 знакомест с динамической индикацией и сканированием клавиатуры, поддержка 2-х нагревателей с 10% шагом регулировки мощности (фактически этим блоком можно держать параметры климата в 2-х камерах). В те времена программу я писал на скорую руку, если ее оптимизировать, то она спокойно влезет в 2 КБ.
Сейчас народ обленился, не хочет осваивать и писать на ассемблере, как итог не хватает памяти для программ 2КБ, подавай больше. Для голого поворота с сервисом достаточно и целочисленной арифметики с полным комплектом булевой алгебры, операции ввода/вывода остаются в силе (экономить на них категорически запрещается). К примеру я планирую получить откопимлированный код в пределах 1,3....1,9 КБ, когда соберу аппарат в живую смогу сказать более точно про объем выходого кода.
Мне как программисту верхнего уровня лесть в ассемблер просто не стоит, я понимаю, если там разница в стоимости МК была бы 10 уе, а так с разницей в 50 центов учить Ассемблер в котором я в принципе не плохо разбирался в институте, но для моей работе он совсем оказался не нужен и забивать себе голову этим лесом времени у меня нету, приходиться писать на СИ. И я в принципе не закумариваюсь размерами МК опять же по тому, что стоимость их не зависимо от размеров практически одинаковая. Мир наш развивается и помимо размеров программировать МК старого образца который программируется только через LPT порт смысла уже нету, У меня программатор самодельный программирует как через COM порт так и через USB так как и AVR так и PIC МК. Скажите мне зачем мне всякие заморочки и беготня за размерами? Искать МК которые как 10 лет назад уже не продают. Новый мир, новые технологи, новые МК и новые средства их программирования и прошивки. Все прошла эра погоней за размерами, это раньше разница между 1КБ МК и 2КБ МК была в 50 уе., а сейчас в 50 центов. не знаю наверное нельзя скидывать ссылки но тут человек на AVRе пишет в принципе то, что вы хочете. его некст файл занимает 7.8КБ в принципе можно было уменьшить до 4КБ, ну я бы не стал написал там мелодию для сирены красивую)) _http://radiokot.ru/circuit/digital/home/139/ Ну чем плох AVR он в начале проекта создает начальный код по начальным настройкам, автоматически добавляя куча ненужного кода. Ну и рассчитан на любителей бубна. Я научился за 3 дня писать на Atmel Studio он как раз для тех кто хочет научиться писать МК без гемороя, все описано, расписано, куча подсказок, визуальная отладка, при добавлении протеуса, идеальная платформа для создания больших проектов. Кстати изначально скопировал, написал код который был под AT89C2051 под ATtiny2313 он у меня получился в сего 63 байта ваш 80 байт занимал. Все наверное из за счетчика времени, но судить не буду я не в курсе какой алгоритм подсчета времени вы использовали.
Если есть дело с микроконтроллерами, то разработчик обязан хорошо владеть и железом и программами в равной степени, поэтому сачкование от железа в пользу софта вряд ли даст оптимальное решение. Программист который знает хорошо железо сделает куда эффективней программу, чем его собрат недостаточно владеющий таким даром. С каким ПО работать я спорить и биться не стану, каждый отстаивает то, чем владеет лучше и как ему удобно с ним работать, каждый уже выберет по своим силам и знаниям. Мне к примеру было без разницы какой язык применить Си или ассемблер, но учитывая то, что я больше железячник чем программист, то предпочтение отдал ассемблеру несмотря на то что он более хлопотен чем Си. В этой теме ради доступности и понимания менее подготовленными я и применил классику (для некоторых это уже древность), это вполне достаточно для решения такого сложности задачи и не ставил себе цель гоняться за модой на определенные типы навороченных контроллеров и софт под них. Если вам удалось написать работающий код для Tiny2313, его можно спокойно выложить сюда до кучи (только придется привести и схему в случае больших изменений по сравнению с оригиналом), пусть народ потренируется делать по одной и той же структуре блока с разными семействами микроконтроллеров (в нашем случае x51 и AVR-ки). Если посмотреть с другой стороны то для конечного пользователя предоставлены все необходимые составные для сборки и отладки: схема, печатка и прошивка (хекс. или бин. формат), при таком раскладе ему по барабану исходный текст программы для полученной прошивки, главное чтобы работало дубово.
Другая цель этой темы это своеобразное обучение непосвященых азам цифровой и процессорной техники, пусть это будет точкой опоры или отправки для более сложных проектов,
В чем вся и проблема, что древность!!! Мне нужно было апгрейдить свой инкубатор на 100 яиц, так как я не чего не смыслил в МК и как их программировать начал гуглить уже готовые решения. И наткнулся на ваш вроде нечего сложного, за тратился, купил МК AT89C2051 и оказалось, что бы прошить такой МК нужен ЛПТ порт, глянул по своим ПК, а там минимум COM порт. Пришлось читать литературу. Нашел Тиньку подходит по цоколевки, но не подходит прошивка, что делать? пришел к выводу, нужно перепрограммировать самому, Ну так как я программирую на Visual Studio C# выбрал Atmel Studio построение языка в .NET одинаков, так, что без разницы какой язык использовать VB, C#, C++ или просто первоначальный их СИ. Вывод: для большинство людей или покупать уже готовое решение или учиться программировать уже более продвинутые модели МК. Я говорю за то, что я не когда не программировал нижний уровень, а не брешу на работе каждый день программирую ну там тоже не ассемблер там WinCC.
В общем мысль понял, это многое объясняет. И такой вопрос, зачем надо было мучится дизассеблировать прошивку когда я могу предоставить исходный текст с комметариями, в худшем случае можно было скачать по ссылке оригинальной статьи (Радiоаматор №7 за 2011, стр.28-32). И все таки мне любопытен ваш вариант прошивки для tiny2313, пусть народ попробует и этот вариант. К примеру в продолжение приспособления контроллеров семейства Tiny есть неплохие микрухи в 8-выводном корпусе (Tiny11, Tiny12 и Tiny15), под исходную схему они вписываются отлично, просто в повседневной свистопляске я просто упустил из вида.
И чуточку отклонюсь от темы, если уж совсем не хочется заморачиваться с контроллерами, то блок поворота по точно такому алгоритму работы, только на жеской логике можно заимствовать из состава А50Б (он содержится тоже в этой ветке или заглянуть в тот же Радiоаматор, только в №11 за 2010, стр.29-34).
А с остальными замечаниями можно писать мне в ЛС без ограничений, отвечу без проблем, просто в теме не всякий поймет суть наших дебатов.
В посте #19 я привел пример нa Tiny2313. Единственное, что там немного добавил функционал, ну для себя делал. Быстрый вариант, там много можно упростить, ну я как раз обучался на нем)). Если нужно могу создать точную копию под первоначальный вариант. А теперь появилось желание сделать для себя с LCD или ЖК экраном ну пока руки не доходят, огороды замучили)) . Да еще там в архиве с проектом путь к hex файлу \ATtiny2313A_Inkubator_povorot\Debug\ATtiny2313A_Inkubator_povorot.hex
Проект написан на Atmel Studio 6.2
Спасибо, абсолютно точную копию не обязательно, то что выложено пока хватает. Я постараюсь завершить программу для выложенной схемы с ЖКИ, исходный текст могу забросить вам в ЛС и с вашей стороны будет то же самое для Тини2313. Более сложную схему пока нет смысла делать, возможно применить другие типы и семейства контроллеров для заданной структуры...
Шикарная схема и до безобразия простая. DB108 - что за гусь и насколько он надежен и сколько тока отдаст?
ULN2003 хорошая микросхема никак на нее не подсяду, все транзисторами да транзисторами коммутирую или мосфетами из матплат.
Не нашел на схеме кто нюхает температуру и влажность?
буду аналогично собирать на pic16f628a (2k) или pic16f887 (кажется 8к)
DB108 это выпрямительный мост, до 1 А в действительности я его применяю в более щадящем режиме до 0,4А.
ULN2003 помогает экономить рассыпуху, вещь стоящая. Кроме нее есть ULN2803, она содержит 8 ключей против 7, держит шаговый движок ПБМГ-42 или ему аналогичный.
Изначально эта схема не предусмотрена для обслуживания датчиков температуры и влажности, только поворот.
полезно, спасибо за информацию.
1) Не поделитесь физикой процесса переворота, расположение движка, мертвые точки как определяет МК и как двигаются шарниры. С электроникой проблем не будет смогу запрограммировать, а вот с механикой не сильно сталкивался. Планирую на будущий инкубатор установить автопереворот и увеличить количество яиц.
2) влажность сильно играет на вывод перепел, куры, утки, гуси как параметр стоит контролировать (устанавливать датчик влажности) или не стоит тратиться? имею готовый протокол для китайского dht11, он конечно врет сильно порядка +\-10% я думаю для инкубатора пойдет.
P.S. при перевороте никто не использует датчик холла? или концевики надежней?
Про физику переворота можно писать не один роман, предложенная публикация рассчитана для винтовой или червячной передачи, при этом надо учитывать вес кассеты, как она сбалансирована и самое главное, усилие на оси поворота от движка (особо критично оно в крайних положениях кассеты, при этом усилие должно быть с запасом).
С применением всякой экзотики в качестве концевиков, особенно датчики Холла и оптопары с открытым каналом, их в чистом виде применять не рекомендуется, электроника микроконтроллера может подкачать, обязательно дублировать нажимными выключателями на разрыв. Даже в этом году был случай, после ремонта на линии электрики иначе подключали фазы и в итоге сгорел движок для переворота и сомался защитный упор, так что как не обеспечивай защиту, то всегда найдется мудак в виде пьяного электрика который обойдет предусмотренную защиту от дурака.
С контролем влажности проще иметь отдельный аппарат наподобие термостата, но это выходит за рамки данной темы, при необходимости можно открыть отдельную тему под него.