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

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


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

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

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

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

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

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

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

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

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 мм да ещё и свободный люфт редукторов привода делает это бессмысленной затеей. 

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

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

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

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

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

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

Сравнительное тестирование аккумуляторов EVE Energy и Samsung типоразмера 18650

Инженеры КОМПЭЛ провели сравнительное тестирование аккумуляторов EVE и Samsung популярного для бытовых и индустриальных применений типоразмера 18650. 

Для теста были выбраны аккумуляторы литий-никельмарганцевой системы: по два образца одного наименования каждого производителя – и протестированы на двух значениях тока разряда: 0,5 А и 2,5 А. Испытания проводились в нормальных условиях на электронной нагрузке EBD-USB от ZKEtech, а зарядка осуществлялась от лабораторного источника питания в режиме CC+CV в соответствии с рекомендациями в даташите на определенную модель. Подробнее>>

Реклама: АО КОМПЭЛ, ИНН: 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 + и т д , надо физику понимать!!!

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

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

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

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

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

Новый аккумулятор EVE серии PLM для GSM-трекеров, работающих в жёстких условиях (до -40°С)

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

Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств. Подробнее параметры и результаты тестов новой серии PLM по ссылке.

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

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

b5a25c1d9f88690803b05d72884f0668.jpg

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

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

Литиевые батарейки и аккумуляторы от мирового лидера  EVE в Компэл

Компания Компэл, официальный дистрибьютор EVE Energy, бренда №1 по производству химических источников тока (ХИТ) в мире, предлагает продукцию EVE как со склада, так и под заказ. Компания EVE широко известна в странах Европы, Америки и Юго-Восточной Азии уже более 20 лет. Недавно EVE была объявлена поставщиком новых аккумуляторных элементов круглого формата для электрических моделей «нового класса» компании BMW.

Продукция EVE предназначена для самого широкого спектра применений – от бытового до промышленного. Подробнее>>

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

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 пользователей онлайн

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