меню и управление прошивками на флешке
- Войдите на сайт для отправки комментариев
Пнд, 09/07/2012 - 18:30
Народ подскажите как сделать меню и чбобы можно было загружать прошивки разного типа на контроллере
Народ подскажите как сделать меню и чбобы можно было загружать прошивки разного типа на контроллере
Никак.
Где сделать? Какие прошивки? Откуда загружать? Зачем? ОбЪясните по нормальному, что хотите...
хочу сделать так создал прошивки для арду несколько вариантов с помощью меню выбираю для опреденного действия прошивку в контроллер скетч заливается тоесть на CD карту с пк записываю несколько вариантов а на контроллере выбираю какой скет нужен и загружаю. это нужно сделать для занятий по робото техние что то похожее как контролер "НХТ"
меню нужно для выбора скетчей на крте памяти
Именно в таком виде без компа (или некого программатора) это не возможно, т.к. контроллер сам себя прошить не может.
Но можно сделать одну прошивку, в которой будет несколько вариантов работы (меню) и например при запуске МК выбирать нужный режим работы.
Ну и теоретически, можно из дуины сделать программатор, который будет брать прошивку с SD карты и заливать ее в другую дуину.
Но можно сделать одну прошивку, в которой будет несколько вариантов работы (меню) и например при запуске МК выбирать нужный режим работы.
Этот вариант тоже устроит
подскажешь примером?
Меню где будет отображаться?
Можно даже (и наверное лучше) без дисплея сделать какой либо способ выбора режима работы...
Сколько режимов работы планируется?
Дисплей обязателен. режимов примерно 4-6
Просто дисплей будет занимать ноги дуины... а почему обязательно? можно ведь и без него если режимов всего 4-6...
это для детей что бы они видели что включают, пусть занимает это не страшно. дальнейшее эото подключение других дуинок к главной.
Какой дисплей?
Именно в таком виде без компа (или некого программатора) это не возможно, т.к. контроллер сам себя прошить не может.
Здесь вы не правы, микроконтроллер сам себя прошить может. Для ATMega читаем AVR109 (или главы 25-26 дейташита на ATMega48/88/168/328) и узнаем, что программа, которая будет заниматься самопрошивкой, просто должна сидеть в особой области программной памяти.
И называться она будет, как правило, Bootloader/загрузчик. И только от фантазии разработчика будет зависеть, откуда будет поступать информация для прошивки.
В ардуиновском загрузчике это, например USART. Но вполне может быть и SD-карточка.
Ну что ж, тогда с вас пример кода....
LCD 16/2 стандартный
Я все равно не понял зачем городить несколько прошивок? По-моему все можно решить одной, пускай более объемной.
просто эти прошивки будут делать сами дети практические занятия
Я все равно не понял зачем городить несколько прошивок? По-моему все можно решить одной, пускай более объемной.
Либо какой-то примитивный интерпретатор соорудить, который будет читать команды с карты и выполнять их.
Но IMHO все равно ничего не выйдет. В любом случае, мне кажется, если знаний хватает на написание бутлоадера, то человек уже знает что такое бутлоадер :) И вообщем "показать примеры" просить не будет никак.
Мне кажется самым "простым и сердитым" вариантом - взять плату с DIP-панелькой. Прошить 6-ть микрух, и сказать детям "перетыкайте/меняйте". Если боимся что "погнуть ноги" - делаем что-то типа картритжей, с более "андивандальными разъемами".
у меня сейчас задумка собрать 10 контроллеров с lcd и sd так чтобы ребята собирали своих роботов на данном железе и могли опробовать несколько вариантов сразу а не подключая к пк чтобы залить новую прошивку
просто мне будет просче объяснять им что да как да и самому тоже легче будет потому что сам тоже тока учусь )
просто эти прошивки будут делать сами дети практические занятия
Тогда вообще не понятно. А чем вариант "сделать прошивку, найти ее .hex на компе, запихнуть на SD, тыкнуть в дуину, в меню выбрать", лучше чем "подсоеденить шнурок и нажать upload"?
объясню еще не много будет несколько занятий по различным вариантам прошивок потом практическое применение на роботах этих прошивок уже в автомномном варианте без использования пк тоесть выбрал прошивку прошился и робот выполняет именно то что нужно на данном этапе полигона
у меня сейчас задумка собрать 10 контроллеров с lcd и sd так чтобы ребята собирали своих роботов на данном железе и могли опробовать несколько вариантов сразу а не подключая к пк чтобы залить новую прошивку
просто мне будет просче объяснять им что да как да и самому тоже легче будет потому что сам тоже тока учусь )
И все-таки подумайте о других вариантах (какой-то свой примитивный язычок, заливать по блютусу, еще че-нить). Сделать кастомный бутлоадер или автономный программатор - совсем не для новичка задача. Да и для "знающего" повозится будет с чем. Разве что повезет "нагуглить" что-то готовое.
Что-нить типа такого: http://hackaday.com/2012/02/21/flash-an-arduino-from-an-sd-card/ не вникал, но там похоже одна дуина другую шьет именно скетчем с ІВю
Ну что ж, тогда с вас пример кода....
Их много разных. Наберите в Google "avr bootloader sd-card" и черпайте полной ложкой.
Dangerous Prototypes, например, предлагает приглядеться к проекту 2boots, который и USART поддерживает, и SD. Сойдет?
UPD: ссылочка на Dangerous Prototypes подправлена...
сейчас посмотрю
Ну что ж, тогда с вас пример кода....
Их много разных. Наберите в Google "avr bootloader sd-card" и черпайте полной ложкой.
Dangerous Prototypes, например, предлагает приглядеться к проекту 2boots, который и USART поддерживает, и SD. Сойдет?
Как я понимаю дисплей подключить не получится и несколько прошивок по выбору не получится заливать с SDкарты...
Dangerous Prototypes, например, предлагает приглядеться к проекту 2boots, который и USART поддерживает, и SD. Сойдет?
Если честно не много не понял о чем там
Ну а если действительно разобраться как написать бутлоудер, то можно это реализовать.... но согласен, был не прав, сам себя может шить.
какой вариант просче реализовать и использовать в дальнейшем тогда так поставлю вопрос
В общем в вашем случае одна прошивка с различными режимами работы самый оптимальный вариант...
В меню подменю будут?
Под меню скорее всего так лучше мне кажется
Если не будет подменю, то скейтч получится проще. Если режимов всего 4 - 6. то зачем подменю? Вы уже продумали как должно выглядеть меню?
В самом простом случае можно обЪявить глобальную переменную, которая будет отвечать за режим работы
по аналогии делаете сколько нужно режимов, а переменную mode менять из функции обработки кнопок и дисплея.
Кстати, а кнопки вы какие будете использовать?
Вариант кнопок на одном канале с разными резисторами дабы с экономит порты на ардуино
Все-таки опишите подробнее, что за робот (роботы), что от него (них) хотите и т.д. и т.п. ?
езда по полосе, арена, сталкивание стаканов, лабиринт проход его, что то типо того.
Кнопок сколько? Три?
да три
Все таки я не очень понимаю как все это будет выглядеть...
1. Дисплей и кнопки будут нужны только для выбора режима?
2. Робота будут собирать дети?
3. Робот будет могофункциональный или собираться под конкретный режим? т.е. на нем уже будут установлены и подключены все датчики или датчики будут подключаться и устанавливаться для разных режимов?
робота каркас собирать дети датчики будут к определенным пинам но у них фунционал разный на каждом режиме
Вы ответили только на второй вопрос...
1 хотелось еще и текс выводить но это пока не обязательно но желательно тоесть совмещение с выбранным меню
2 описал
3 много фунциональный
Вот как то так можно переключать режимы
И теперь осталось только сделать вывод на дисплей...
Код еще не оптимизирован, могут быть ошибки...
Спасибо. Начну прикручивать дисплей.
чет примерор куча а толку никакого
нашел библиотеки для меню поробовал с кодом совместить но чет не то работает
как заставить работать на дисплее и убать пока лишнее
может есть смысл попробовать всетаки начать с меню на дисплее? но вот как? не пойму
вот кажись получилось код для дисплея своего отделил от хлама
Стандартный пример "Hello Word" работает?
да
сейчас с ним колупаюсь пытаюсь меню прикрепить но чет не догоняю