Перейти к содержанию

Выбор контролера для проекта


Рекомендуемые сообщения

17 часов назад, Chips сказал:

Алгоритм работы следующий

Я когда статью

http://cxem.net/mc/mc446.php

начинал писать, до конца не осознал что основной темой этих статей будет проблема выяснения и описания алгоритма (со всеми пояснениями) работы устройства, даже в случае такого примитивного устройства, как там описано!

Можно сделать все! Но чем больше можно, тем больше нельзя!

Ссылка на комментарий
Поделиться на другие сайты

Реклама: ООО ТД Промэлектроника, ИНН: 6659197470, Тел: 8 (800) 1000-321

ruhi Это должно быть системой управления некой подвижной платформой которая должна доставить некий груз в определённую позицию по X и Y после чего выполнить действия погрузки/выгрузки

Да схема не полная и usard на ней не отображён. counter 1 +, counter 1 - и counter 2 + counter 2 - это четыре входа для счёта двух переменных X и Y на увеличение(counter 1 +, counter 2 +) и уменьшения (counter 1 -, counter 2 -) Counter 1 записывает своё значение в переменную X, а counter 2 в переменную Y которые сравниваются с полученными по usard inputX и inputY. 

Вот зачаток функция в которой будет управлять передвижением 

void move_XY(unsigned char X, unsigned char Y unsigned char input_X unsigned char input_Y)
{
	if (input_X == X)
	{
		MoveXForward_off;	// выключить вперёд
		MoveXBackward_off;	// выключить назад
	}
	if (input_X > X)
	{
		MoveXBackward_off;	// выключить назад
		MoveXForward_on;	// включить вперёд
	}
	if (input_X < X)
	{
		MoveXForward_off;	// выключить вперёд
		MoveXBackward_on;	// включить назад
	}

	if (input_Y == Y)
	{
		MoveUp_off;			// остановить вверх
		MoveDown_off;		// остановить вниз
	}
	if (input_Y > Y)
	{
		MoveDown_off;		// остановить вниз
		MoveUp_on;			// движение вверх
	}	
	if (input_Y < Y)
	{
		MoveUp_off;			// остановить вверх
		MoveDown_on;		// движение вниз
	}
}

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

Касательно моей упёртости  во внешние прерывания я считал что нужно с высокой точностью выдерживать позицию. Но после более углублённого расспроса механиков оказалось +-10 - 20 мм да ещё и свободный люфт редукторов привода делает это бессмысленной затеей. 

Ссылка на комментарий
Поделиться на другие сайты

20% скидка на весь каталог электронных компонентов в ТМ Электроникс!

Акция "Лето ближе - цены ниже", успей сделать выгодные покупки!

Плюс весь апрель действует скидка 10% по промокоду APREL24 + 15% кэшбэк и бесплатная доставка!

Перейти на страницу акции

Реклама: ООО ТМ ЭЛЕКТРОНИКС, ИНН: 7806548420, info@tmelectronics.ru, +7(812)4094849

периодический опрос кнопок занимает очень мало процессорного времени.

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

Мудрость приходит вместе с импотенцией...

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

Ссылка на комментарий
Поделиться на другие сайты

Особенности хранения литиевых аккумуляторов и батареек

Потеря емкости аккумулятора напрямую зависит от условий хранения и эксплуатации. При неправильном хранении даже самый лучший литиевый источник тока с превосходными характеристиками может не оправдать ожиданий. Технология, основанная на рекомендациях таких известных производителей литиевых источников тока, как компании FANSO и EVE Energy, поможет организовать правильный процесс хранения батареек и аккумуляторов. Подробнее>>

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

15 часов назад, Chips сказал:

counter 1 +, counter 1 - и counter 2 + counter 2 - это четыре входа для счёта двух переменных X и Y на увеличение(counter 1 +, counter 2 +) и уменьшения (counter 1 -, counter 2 -) Counter 1 записывает своё значение в переменную X, а counter 2 в переменную Y которые сравниваются с полученными по usard inputX и inputY.

А как это вы собираетесь измерять X и Y?? Платформа что в магнитном поле висит или на колесах ездит например?? Тут надо разбираться с вашей системой позиционирования, за счет чего тележка перемещается? и как измеряется пройденное расстояние и направление или текущие координаты! Откуда берутся Х, Y, counter 1 + и т д , надо физику понимать!!!

И успокойте всех уже что ли, это не кнопки у вас будут, а выходы с датчиков позиционирования или измерения пути по двум координатам, и ни какого дребезга на них, соответственно быть не должно, правильно???

А то задача опроса кнопок прямо таки завораживает знатоков :), при ее наличии не о чем другом мы думать не в состоянии :)!

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

Можно сделать все! Но чем больше можно, тем больше нельзя!

Ссылка на комментарий
Поделиться на другие сайты

Выбираем схему BMS для корректной работы литий-железофосфатных (LiFePO4) аккумуляторов

 Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ, также как и для других, очень важен контроль процесса заряда и разряда, а специализированных микросхем для этого вида аккумуляторов не так много. Инженеры КОМПЭЛ подготовили список имеющихся микросхем и возможных решений от разных производителей. Подробнее>>

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

Я конечно перед всеми извиняюсь за своё не умение излагать свои мысли в письменном виде. Ruhi Это всё представляется неким стеллажом с некими ящиками, возле которого по рельсе вдоль оси X будет перемещаться некая тележка с подъёмным механизмом с захватом ориентироваться всё это будит в первом приближении по металлическим флажкам они либо будут нажимать на какой то концевой либо будут стоять бесконтактные датчики это ещё не решено. В общем оно будет выглядеть примерно так

b5a25c1d9f88690803b05d72884f0668.jpg

Я уже осознал свои косяки и насколько глупо был поставлен вопрос и что восьмой атмеги мне хватит за глаза.

Ссылка на комментарий
Поделиться на другие сайты

12 минуты назад, Chips сказал:

либо будут стоять бесконтактные датчики это ещё не решено

механические менее надежные по определению - нажатие это удар! Значит Y это высота - интересно :) !

Обычно, Пока не попробуешь, все равно, не поймешь!

16 минут назад, Chips сказал:

что восьмой атмеги мне хватит за глаза

и я бы посоветовал вам не экономить (чего бы не было 200 руб, место на плате, ...), поставьте хотя бы 128-ю атмегу.

Можно сделать все! Но чем больше можно, тем больше нельзя!

Ссылка на комментарий
Поделиться на другие сайты

13 минуты назад, ruhi сказал:

поставьте хотя бы 128-ю атмегу

А он под нее плату сделает? Камень распаяет? DIP-корпус в этом плане попроще, да и зачем в такой задаче аж 128-я мега?

Ругался на отсутствие форматирования исходного кода (включая отсутствие осмысленных комментариев и наличие неубранного после конфигуратора мусора) не менее 15 раз.

Часть моих наработок.

Ссылка на комментарий
Поделиться на другие сайты

COKPOWEHEU есть возможность изготовить несколько опытных плат правда без маски и шелкографии, а распаять микросхему в корпусе TQFP-64 задаче трудная но реализуемая

Ссылка на комментарий
Поделиться на другие сайты

мега 128 тут ни в какие ворота, пушкой по воробьям. Максимум что имеет смысл - ардуиновскую мегу328.

Учение - изучение правил. Опыт - изучение исключений.

Ссылка на комментарий
Поделиться на другие сайты

14 часа назад, Chips сказал:

распаять микросхему в корпусе TQFP-64 задаче трудная но реализуемая

Я, да, особо не разбираюсь в корпусах, типах. У меня всегда было кому об этом думать. Главное здесь не делайте в-упор!

Задачи имеют свойство размножаться и/или усложняться, по мере погружения в тему.

В общем "запас карман не тянет".

Можно сделать все! Но чем больше можно, тем больше нельзя!

Ссылка на комментарий
Поделиться на другие сайты

В 17.01.2018 в 17:48, Chips сказал:

...что восьмой атмеги мне хватит за глаза.

Если правильно составите алгоритм, будете писАть на низком уровне, то еще и останется (больше половины).

Ссылка на комментарий
Поделиться на другие сайты

В 18.01.2018 в 08:57, ruhi сказал:

В общем "запас карман не тянет".

Применительно к контроллерам он таки тянет карман. Верней, кошелёк.

Учение - изучение правил. Опыт - изучение исключений.

Ссылка на комментарий
Поделиться на другие сайты

  • 1 месяц спустя...

Это только если нажимать кнопки исключительно по одной. Двойные нажатия будут приводить к фантомам.

 

Учение - изучение правил. Опыт - изучение исключений.

Ссылка на комментарий
Поделиться на другие сайты

Господа, при всем уважении, на дворе 2018 год, какие атмеги ? Поставьте бы STM32 скажем серии f1 или f2. И скорость выше в разы (раз уж идет гонка за производительность), и прерываний внешних хоть на все  GPIO вешайте (почти на все).

И использование внешних прерываний для кнопок не особо и плохая идея, если к примеру таймеров не много и все они заняты. Не в майне же их опрашивать :blink:

Ссылка на комментарий
Поделиться на другие сайты

On 1/16/2018 at 6:11 PM, Chips said:

ruhi Это должно быть системой управления некой подвижной платформой которая должна доставить некий груз в определённую позицию по X и Y после чего выполнить действия погрузки/выгрузки

Да схема не полная и usard на ней не отображён. counter 1 +, counter 1 - и counter 2 + counter 2 - это четыре входа для счёта двух переменных X и Y на увеличение(counter 1 +, counter 2 +) и уменьшения (counter 1 -, counter 2 -) Counter 1 записывает своё значение в переменную X, а counter 2 в переменную Y которые сравниваются с полученными по usard inputX и inputY. 

Вот зачаток функция в которой будет управлять передвижением 


void move_XY(unsigned char X, unsigned char Y unsigned char input_X unsigned char input_Y)
{
	if (input_X == X)
	{
		MoveXForward_off;	// выключить вперёд
		MoveXBackward_off;	// выключить назад
	}
	if (input_X > X)
	{
		MoveXBackward_off;	// выключить назад
		MoveXForward_on;	// включить вперёд
	}
	if (input_X < X)
	{
		MoveXForward_off;	// выключить вперёд
		MoveXBackward_on;	// включить назад
	}

	if (input_Y == Y)
	{
		MoveUp_off;			// остановить вверх
		MoveDown_off;		// остановить вниз
	}
	if (input_Y > Y)
	{
		MoveDown_off;		// остановить вниз
		MoveUp_on;			// движение вверх
	}	
	if (input_Y < Y)
	{
		MoveUp_off;			// остановить вверх
		MoveDown_on;		// движение вниз
	}
}

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

Касательно моей упёртости  во внешние прерывания я считал что нужно с высокой точностью выдерживать позицию. Но после более углублённого расспроса механиков оказалось +-10 - 20 мм да ещё и свободный люфт редукторов привода делает это бессмысленной затеей. 

Более корректный код:

void move_XY(unsigned char X, unsigned char Y unsigned char input_X unsigned char input_Y)
{
	if (input_X == X)
	{
		MoveXForward_off();	// выключить вперёд
		MoveXBackward_off();	// выключить назад
	}
	else if (input_X > X)
	{
		MoveXBackward_off();	// выключить назад
		MoveXForward_on();	// включить вперёд
	}
	else
	{
		MoveXForward_off();	// выключить вперёд
		MoveXBackward_on();	// включить назад
	}

	if (input_Y == Y)
	{
		MoveUp_off();			// остановить вверх
		MoveDown_off();		// остановить вниз
	}
	else if (input_Y > Y)
	{
		MoveDown_off();		// остановить вниз
		MoveUp_on();			// движение вверх
	}	
	else
	{
		MoveUp_off();			// остановить вверх
		MoveDown_on();		// движение вниз
	}
}

 

Ссылка на комментарий
Поделиться на другие сайты

16 часов назад, Alexandr AxenDvlpmntTeam сказал:

Вот зачаток функция в которой будет управлять передвижением 

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

В вашем случае в качестве такой предварительной работы должно быть:

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

датчиков - измерения времени (задержек) срабатывания, точность-дискретность, пороги срабатывания...

Написание функций управления, не имея результатов исследования и измерений по обозначенным направлениям сродни астрологии в моем понимании, то есть это какое-то гадание.

Можно сделать все! Но чем больше можно, тем больше нельзя!

Ссылка на комментарий
Поделиться на другие сайты

А почему меня цитируете ? Я лишь исправил управляющие структуры в коде, т.е.  сменил if-if-if на if-elseif-else, не более. Очень сомневаюсь, что для этого нужны были результаты исследований. Думаю вы хотели адресовать ваш пост автору этого псевдо-кода. Это не я)

Ссылка на комментарий
Поделиться на другие сайты

2 часа назад, Alexandr AxenDvlpmntTeam сказал:

т.е.  сменил if-if-if на if-elseif-else, не более. Очень сомневаюсь, что для этого нужны были результаты исследований.

Так и исправлять смысла нет, вы так поддерживаете чье то увлечение астрологией! Но у меня тоже первым позывом было else добавить :) (месяц назад?)!

Изменено пользователем ruhi
дополнение

Можно сделать все! Но чем больше можно, тем больше нельзя!

Ссылка на комментарий
Поделиться на другие сайты

В 11.03.2018 в 16:36, Alexandr AxenDvlpmntTeam сказал:

и прерываний внешних хоть на все  GPIO вешайте (почти на все).

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

Ссылка на комментарий
Поделиться на другие сайты

В 11.03.2018 в 16:36, Alexandr AxenDvlpmntTeam сказал:

Поставьте бы STM32 скажем серии f1 или f2. И скорость выше в разы (раз уж идет гонка за производительность), и прерываний внешних хоть на все  GPIO вешайте (почти на все).

Фанатизм до добра не доводит. Какой нафиг STM32 когда меги хватает? Вы туда ещё андроид на ARM v11 4-х ядерном поставьте, там же можно замечательно на джаве писать, скорости-то хватает!

Никогда не надо начинать с железа. Сначала задача, затем физика а потом уже железо. И STM32 нужно будет выбирать только когда простая мега не пойдёт по скорости.

Учение - изучение правил. Опыт - изучение исключений.

Ссылка на комментарий
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы публикуете как гость. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.
Примечание: Ваш пост будет проверен модератором, прежде чем станет видимым.

Гость
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Ответить в этой теме...

×   Вставлено с форматированием.   Восстановить форматирование

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
  • Сообщения

    • @Александр2, это у тебя в голове что-то с чем-то вступает в противоречие.  Я знаю, что ты ярый поклонник Ланзара. Поэтому пояснение для тебя того, почему симметричная на бумаге/на экране монитора схема, и спаянная на реальной плате с реальными комплектующими в отличии от неё за редким исключением вместо 0 на выходе зачастую имеет сдвиг напряжения величиной в +/- километр, думается мне излишняя трата времени.    
    • Верно подмечено. Вот их-то, КТ602ВМ и BD139 в ТО-126 в 1969-ом как раз-таки и не было. Не только у J. L. Hood-а, их вообще ещё не существовало. К тому же КТ602БМ  в корпусе КТ-27-2 (как и BD139 в TO-126) и КТ602А в корпусе КТЮ-3-9 - это совсем не близнецы-братья. Технология изготовления совершенно разная, а она при работе транзисторов динамическом режиме, как в случае с JLH-69, играет далеко не последнюю роль. Просто юноша в силу своего быстрого и раннего развития об этом ничего не знает. 
    • Садится разбираться в алгоритме работы и на микроконтроллере делать замену.  Попробуйте прогреть микросхему на зажигалке, когда-то читал о таком способе восстановления процессора от телевизора. Шансов мало, но вам нечего терять, а потом в панельку.
    • Я хочу попробовать разные способы победить эти шумы. Для начала собрать фильтр для блока питания. Корпус с блютуз антенной я пробовал убрать, ничего не изменилось, если фильтр для блока питания тоже не поможет, значит дело в самом усилителе. В Aiyima A3001, который выдает шум гораздо тише, на выходе стоят электролитические конденсаторы и фильтры, можно попробовать сделать также и на Aiyima A09, может таким образом удастся снизить шумы. Если нет, то буду искать еще варианты. Кроме шумов еще надо разобраться с щелчками в колонки при включении и выключении Brzhifi. Aiyima A09 выдает щелчок только при выключении сетевого фильтра, и слабый. А вот Brzhifi щелкает так, что аж диффузоры в колонках двигаются. Схема питания у них отличается, Brzhifi остается в режиме ожидания и питание не отключается, я хочу переделать его так, чтобы оно отключалось, как на Aiyima A09. Может там что сдохло. а может он так спроектирован. Либо что то делать с контроллером питания, либо найти в схеме где можно врезать выключатель и впихнуть его.
    • @CrazyDog34RU Понять, что изначально были неправы, и питание в вашей проблеме не виновато, например?
    • Неожиданный вопрос... При измерениях в любой точке вот этой части схемы "масса" осциллографа вот тут: При измерениях вот в этой части схемы - вот тут: У этой части схемы - вот в этой точке: Подключать "массу" к одной части схемы, а смотреть точки в другой - нельзя. Все эти три "общие" точки - совершенно разные точки. Между ними может быть вполне ощутимое напряжение. Вот тут это хорошо видно:
×
×
  • Создать...