Теоретически -да. Ардуине вообщем-то главное что-бы скетч приходил на Rx,TX пины. А как он туда приходят - с помощью кабеля, блютус модуля или маленький человечек чечетку на контактах танцует - дело десятое.
Немного смущает только Slave - возможно создат проблемы что "нужно будет потанцевать" (но совсем в этом не уверен, возможно и нет, собственно разницы).
Так же, возможно, но не факт, что с перезагрузкой дуины (что-бы заливка началась) могут быть "нюансы". Но в крайнем случае можно и рукой кнопку ресет давить :)
Вообщем, как вы уже догадались, лично я не пробовал, но думаю 80% что без проблем вообще будет, 10% что будет но с проблемами и 10% - вообще не получится (но модуль в хозяйстве все равно пригодится),
Сложновато будет... Ресет однозначно придется пальцем топтать. Перед загрузкой скетча нужно проинициализироваться, установить связь, открыть поток, только потом можно заливать, когда мост VirtualComm-Синезуб-Arduino уже настроен. Старт заливки, топ на ресет. Ресет не должен воздействовать на модуль!
Спасибо за понимание проблемы, с резетом действительно сложности. А давить на кнопку пробовал не помогает, да и главная цель заливать скетчи не трогая урдуину (будет стоять в модели подводной лодки) вода+герметичность сами понимаете....
Читал статейку в которой для этх целей применяют XBee, но это я так понял совсем другие RF модули..
Ну или как вариант на IRDA спаять, может кто из вас пробовал такой вариант?
Не вижу смысла заливать скетч в подводную лодку (кстати, Xbee под водой не работает :) )
Туда надо передавать программу движения, команду запуска... В Дуине должен быть интерпретатор программы движения, лодка должна новую программу принимать и записывать, скажем, в EEPROM. Можно и во FLASH, но тогда придется заглубляться в программирование.
Можно и во FLASH, но тогда придется заглубляться в программирование.
Хм.. а не подскажете что погуглить-почитать? Пока видел только чтение в примерах (хотя явно возможна запись. бутлоадер-то шьет). А вообще имеет смысл? Как у него с ресурсом перезаписи? Лучше или хуже EEPROM?
2ТопикСтартер:
а еще можно взять, например ATMEGA-8 и ее использовать в качестве "прошивальщика/перезагрузчика" основной меги. Либо устанавливать связь и по UART вливать проишвки (8-ка будет просто мостом между модулем и основной), либо вобще залить в нее ArduinoISP скетч и шить ей "основную" как программатором (вообщем-то у вас тогда и получится "беспроводной программатор").
Наверное я не совсем корректно сказал про подлодку. Под водой мне никакая связь не нужна, просто удобно не разберая лодку каждый раз для того чтобы подключиться и перезалить скетч. Лодка не управляемая так называемый прямоход класса EL.
На этом контроллере я сделал спеыиальный таймер управления ходовым двигателем, корректировка временных интервалов и соответственно оборотов делаю непосредственно в самой программе. Откорректировал, залил скетч, запустил лодку посмотрел, далее вынул внес изменения в программе перезалил и снова пустил, и так пока не получу нужный результат. Модель для соревнований по судомодельному спорту там четкие правила размеры дистанции, один раз хорошо настроить и она все время будет ходить одинаково.
Так можно тогда не прошивать по блютузу, так как это не самая простая задача, а написать программу которая будет по блютузу получать параметы задердки, оборотов двигателя... это гараздо проще реализовать.
Например так. Объявляете массив из 20 копонентов, в котором все четные компоненты - это значения задержек, а все нечетные - обороты двигателя. По блютузу передаете 20 значений и записываете их в ЕЕПРОМ. И вот вам новый алгоритм работы двигателя.
Примерно так:
#include <EEPROM.h>
byte massiv[20]; // Массив
boolean flag = 1; // Флаг
void setup(){
for(int i = 0; i < 20; i++){ // Заполняем массив из ЕЕПРОМ
massiv[i] = EEPROM.read(i);
}
}
void loop(){
if(блютуз.available()){ // Если по блютузу что нибудь есть, то
for(int i = 0; i < 20; i++){
byte b = блютуз.read(); // Читаем байты из блютуза
EEPROM.write(i, b); // Записываем в ЕЕПРОМ
massiv[i] = b; // Заполняем массив
}
flag = 1; // Взводим глаг
}
if(flag){
for(int i = 0; i < 20; i += 2){
двигатель.speed(massiv[i]); // Оборобы двигателя
delay(massiv[i+1]*10); // Время работы на этих оборотах
}
flag = 0; // Отработали весь цикл и опустили флаг, чтобы не было повтора цикла
}
}
тем самым вы получаете 10 контрольных точек, которые можно изменять как вам угодно по блютузу, не разбирая лодку:
двигатель.speed(100); // Задаем оборобы двигателя
delay(3000); // Задаем время работы на этих оборотах
двигатель.speed(75); // Задаем оборобы двигателя
delay(500); // Задаем время работы на этих оборотах
двигатель.speed(50); // Задаем оборобы двигателя
delay(500); // Задаем время работы на этих оборотах
двигатель.speed(75); // Задаем оборобы двигателя
delay(1000); // Задаем время работы на этих оборотах
двигатель.speed(30); // Задаем оборобы двигателя
delay(10000); // Задаем время работы на этих оборотах
двигатель.speed(100); // Задаем оборобы двигателя
delay(2000); // Задаем время работы на этих оборотах
двигатель.speed(100); // Задаем оборобы двигателя
delay(1000); // Задаем время работы на этих оборотах
двигатель.speed(100); // Задаем оборобы двигателя
delay(3000); // Задаем время работы на этих оборотах
двигатель.speed(75); // Задаем оборобы двигателя
delay(500); // Задаем время работы на этих оборотах
двигатель.speed(0); // Задаем оборобы двигателя
delay(100); // Задаем время работы на этих оборотах
но тут же возникают еще пара технических вопросов насчет физической реализации :
ну понятно что к принимающей стороне(Arduino что в самой лодке) на ножку Rx цепляеться приемник.
но как быть с передающей стороной,прийдеться ползьoваться еще одной ардуиной для передачи кода "в лодку",тогда как хоть примерно будет выглядеть скетч передачи кода))?конкретнее-сам код управления лодкой будет передаваться в формате .hex или в тело скетча передатчика будет код управления лодкой будет "вложен" в си'шном синтаксе?
второй вариант реализации,подключение передатчика непосресдвенно к порту RS-232/USB,тут в принцие все ясно,если RS-232 то пользуемся микросхемой MAX232 если USB то FT232RL или же приобрести/собрать USBasp программатор.
IMHO герметично вывести четыре проводка наружу - проще, дешевле, надежней. При желании можно "замаскировать" их под какое-то палубное оборудование.
По крайней мере если вас не смущает "нужно вытащить лодку из воды" и вам не обязательно "хочу на растоянии".
в догонку к идее,можно замаскировать подключение к дуине под шахту ракеты)))с герметично закрывающеся крышечкой,а под крышечкой будет скрываться удлинитель типа как у мышек для ноутбуков :такой двухсторонний моток провода вокрух одной оси))
Да чето я действительно заморочился с этим блютузом,герметичный проводок и проще и надежней, спрятать можно. Вот только что может произайти если в этот проводок попадет вода хоть и пресная но всетаки порт подкарочен будет? Не повлияет ли это на работу самого контроллера?
хммм,если не ошибаюсь,более опытыные пользователи поправят,можно ножку приема данных(Rx) дуины ,в самом конце программирования,программно настроить на вход и "подцепить" через внутренний резистой дуины на землю.тогд вообще никакая вода страшна небудет,если никто на соревнованиях не додумаетсься от розетки в воду оголеный провод кинуть.)
Да чето я действительно заморочился с этим блютузом,герметичный проводок и проще и надежней, спрятать можно. Вот только что может произайти если в этот проводок попадет вода хоть и пресная но всетаки порт подкарочен будет? Не повлияет ли это на работу самого контроллера?
Ну в момент подключения к компу - конечно хорошо-бы иметь контакты сухими и не закороченными между собой.
А "в походном состоянии". Ну что у нас там:
Земля - если никто кабель от ЛЕПа не сунет в вводу или т, то земля свяжется "с землей" общемировой. Ничего страшного (иногда даже нужно)
Rx,Tx - по идее - тоже ничего не должно случится если на землю коротнутся. Если "страшно" можно добавить резистор на Tx (но может начать мешать заливки/передаче данных). Если не использовать у себя в скетче работу с сериал - вообще можно не думать ни о чем. Порты будут включены на вход. А что там они "намеряют в воде" - дело десятое.
Остался Reset. Ну один проводок можно и постаратся заизолировать. Или вывести его через конденсатор (конденсатор - внутри корпуса). Тогда его корочение на землю - вызовет однократный ребут контроллера. Грубо говоря она _может_ перезагрузится в момент опускания в воду.
Ну и конечно, сами контакты попадающие в воду - будут окислятся со временем. Прийдется их защичать если проблемы со связью возникают.
А можно, если ну совсем страшно. Сделать внутри "гравитационные кнопки". Все проводки выводим через такуе кнопки:
два контакта, на ними шарик металически. когда он на них "падает" - он их замыкает. "кнопка нажата". размещаем кнопку в корпусе так что-бы "шарик замыкал" только когда лодка находится "вверх-тормашками". Тогда в походном состоянии эти проводки вообще не будут никуда вести, а для "прошивки" - лодку нужно будет перевернуть.
Или, вместо гравитации, все проводки выводим через геркончики (та же кнопка, только срабатывает от магнита). Тогда что-бы "включить интерфейс" вам нужно просто поднести магнит к определенному месту корпуса, а без него опять будет - "проводки никуда не ведут, просто торчат наружу".
Но IMHO это если хочется "повыкаблучиватся". Из серии "свинцовые трусы". :), думаю все нормально будет и без герконов и гравитационных кнопок.
P.S. Естественно все это в предположении что у вас там не водятся электрические скаты :) Тогда герконы обязательны :)
RX и так настроен на вход. Речь о Tx-Rx вообще не идет, там будет или USB или RS232. C первым проще, можно весь интерфейс запитать через выключатель, замаскированный под... Если оставить напряжение, то при 5 вольтах будет, конечно, небольшой электролиз (а если вода соленая, то большой) и контакты окислятся. Нужна хорошая заглушка.
Ну я ребята даже и не ожидал таких интересных идей по защите интерфейса! Гравитационные контакты мне бы даже в голову не пришли, а насчет герконов мысль вполне осуществимая. Твердотельные оптореле могут подойти. Еще возникла мысль сделать чтото на подобие магнитной оптоголовки, как на пример те что к злектросчетчикам подцепляются, там обмен данными должен быть по проще чем ик порт всетаки изолировано от внешнего излучения..
Гравитационные контакты мне бы даже в голову не пришли, а насчет герконов мысль вполне осуществимая.
Да и "гравитационные" - тоже вполне осуществимо. Это я их так "обозвал". Что-бы принцип действия понятен был. А в продаже они скорее всегу будут называть "датчик наклона", title sensor и т.п.
Но принцип у них будет тот же самый. Правда, скоре всего, в них вместо шарика будет использовать порция ртути (не будет греметь как погремушка), но и цена :( Не космическая но за такой примитив - жаба давит (особенно если их нужно несколько штук).
Тем более что "сделать самому" - 5-10-ть минут. Берем тубу от таблеток/витаминок
Внутрь - шарик от подшибника. В крышечке делаем две дырки горячей иголкой. Пропускаем два провода. С внутреней стороны загручиваем их спиральками и приклеиваем в кнутреней стороне. Например терпопистолетом (китайские сопли).
Закрываем крышку - "гравитационная кнопка" готова ;) В нормальном состоянии - контакты разомкнуты. Перевернули - шарик упал на крышечку и замкнул контакты.
Если вы свой интерфейс выведите на брюхо лодки - то "включение" его будет само-собой. Естественным :) А все будут недоумевать и спрашивать вас: "а не боишься что замкнет"? Если будет сильно греметь - можно еще кусочки поролона/резинки на дно и крышку подлеить.
Нажать кнопку Upload
Я имел в виду можно ли с помощью RS232 bluetooth Slave Wireless module заливать в ардуино скетч?
http://www.ebay.com/itm/261055680524?ssPageName=STRK:MEWNX:IT&_trksid=p3...
Теоретически -да. Ардуине вообщем-то главное что-бы скетч приходил на Rx,TX пины. А как он туда приходят - с помощью кабеля, блютус модуля или маленький человечек чечетку на контактах танцует - дело десятое.
Немного смущает только Slave - возможно создат проблемы что "нужно будет потанцевать" (но совсем в этом не уверен, возможно и нет, собственно разницы).
Так же, возможно, но не факт, что с перезагрузкой дуины (что-бы заливка началась) могут быть "нюансы". Но в крайнем случае можно и рукой кнопку ресет давить :)
Вообщем, как вы уже догадались, лично я не пробовал, но думаю 80% что без проблем вообще будет, 10% что будет но с проблемами и 10% - вообще не получится (но модуль в хозяйстве все равно пригодится),
Сложновато будет... Ресет однозначно придется пальцем топтать. Перед загрузкой скетча нужно проинициализироваться, установить связь, открыть поток, только потом можно заливать, когда мост VirtualComm-Синезуб-Arduino уже настроен. Старт заливки, топ на ресет. Ресет не должен воздействовать на модуль!
Спасибо за понимание проблемы, с резетом действительно сложности. А давить на кнопку пробовал не помогает, да и главная цель заливать скетчи не трогая урдуину (будет стоять в модели подводной лодки) вода+герметичность сами понимаете....
Читал статейку в которой для этх целей применяют XBee, но это я так понял совсем другие RF модули..
Ну или как вариант на IRDA спаять, может кто из вас пробовал такой вариант?
Не вижу смысла заливать скетч в подводную лодку (кстати, Xbee под водой не работает :) )
Туда надо передавать программу движения, команду запуска... В Дуине должен быть интерпретатор программы движения, лодка должна новую программу принимать и записывать, скажем, в EEPROM. Можно и во FLASH, но тогда придется заглубляться в программирование.
Можно и во FLASH, но тогда придется заглубляться в программирование.
Хм.. а не подскажете что погуглить-почитать? Пока видел только чтение в примерах (хотя явно возможна запись. бутлоадер-то шьет). А вообще имеет смысл? Как у него с ресурсом перезаписи? Лучше или хуже EEPROM?
2ТопикСтартер:
а еще можно взять, например ATMEGA-8 и ее использовать в качестве "прошивальщика/перезагрузчика" основной меги. Либо устанавливать связь и по UART вливать проишвки (8-ка будет просто мостом между модулем и основной), либо вобще залить в нее ArduinoISP скетч и шить ей "основную" как программатором (вообщем-то у вас тогда и получится "беспроводной программатор").
Ну... как обычно - поискать в просторах интернета по ключевому слову "самопрограммирование". Вот пара ссылок:
Апноут (самопрограммирование, ассемблер)
Форум - немножко по самопрограммированию на c
Циклов записи у флеша гораздо меньше, чем у епрома, на вскидку, 10000 против 100000... За точными цифрами надо в даташит лезть... сорри, но лень :)
Наверное я не совсем корректно сказал про подлодку. Под водой мне никакая связь не нужна, просто удобно не разберая лодку каждый раз для того чтобы подключиться и перезалить скетч. Лодка не управляемая так называемый прямоход класса EL.
Тогда я не понимаю, зачем перезаливать скетч и зачем контроллер на неуправляемой лодке?
На этом контроллере я сделал спеыиальный таймер управления ходовым двигателем, корректировка временных интервалов и соответственно оборотов делаю непосредственно в самой программе. Откорректировал, залил скетч, запустил лодку посмотрел, далее вынул внес изменения в программе перезалил и снова пустил, и так пока не получу нужный результат. Модель для соревнований по судомодельному спорту там четкие правила размеры дистанции, один раз хорошо настроить и она все время будет ходить одинаково.
Так можно тогда не прошивать по блютузу, так как это не самая простая задача, а написать программу которая будет по блютузу получать параметы задердки, оборотов двигателя... это гараздо проще реализовать.
IMHO герметично вывести четыре проводка наружу - проще, дешевле, надежней. При желании можно "замаскировать" их под какое-то палубное оборудование.
По крайней мере если вас не смущает "нужно вытащить лодку из воды" и вам не обязательно "хочу на растоянии".
Например так. Объявляете массив из 20 копонентов, в котором все четные компоненты - это значения задержек, а все нечетные - обороты двигателя. По блютузу передаете 20 значений и записываете их в ЕЕПРОМ. И вот вам новый алгоритм работы двигателя.
Примерно так:
тем самым вы получаете 10 контрольных точек, которые можно изменять как вам угодно по блютузу, не разбирая лодку:
Например если отправить такой массив:
то алгоритм бедет таким:
возможная помощь тТС:
а можно ли использовать в качестве удлинителя модули типа :
http://www.ebay.com/itm/433Mhz-RF-transmitter-and-receiver-link-kit-for-...
но тут же возникают еще пара технических вопросов насчет физической реализации :
ну понятно что к принимающей стороне(Arduino что в самой лодке) на ножку Rx цепляеться приемник.
но как быть с передающей стороной,прийдеться ползьoваться еще одной ардуиной для передачи кода "в лодку",тогда как хоть примерно будет выглядеть скетч передачи кода))?конкретнее-сам код управления лодкой будет передаваться в формате .hex или в тело скетча передатчика будет код управления лодкой будет "вложен" в си'шном синтаксе?
второй вариант реализации,подключение передатчика непосресдвенно к порту RS-232/USB,тут в принцие все ясно,если RS-232 то пользуемся микросхемой MAX232 если USB то FT232RL или же приобрести/собрать USBasp программатор.
еще варианты?)
IMHO герметично вывести четыре проводка наружу - проще, дешевле, надежней. При желании можно "замаскировать" их под какое-то палубное оборудование.
По крайней мере если вас не смущает "нужно вытащить лодку из воды" и вам не обязательно "хочу на растоянии".
в догонку к идее,можно замаскировать подключение к дуине под шахту ракеты)))с герметично закрывающеся крышечкой,а под крышечкой будет скрываться удлинитель типа как у мышек для ноутбуков :такой двухсторонний моток провода вокрух одной оси))
Да чето я действительно заморочился с этим блютузом,герметичный проводок и проще и надежней, спрятать можно. Вот только что может произайти если в этот проводок попадет вода хоть и пресная но всетаки порт подкарочен будет? Не повлияет ли это на работу самого контроллера?
хммм,если не ошибаюсь,более опытыные пользователи поправят,можно ножку приема данных(Rx) дуины ,в самом конце программирования,программно настроить на вход и "подцепить" через внутренний резистой дуины на землю.тогд вообще никакая вода страшна небудет,если никто на соревнованиях не додумаетсься от розетки в воду оголеный провод кинуть.)
Да чето я действительно заморочился с этим блютузом,герметичный проводок и проще и надежней, спрятать можно. Вот только что может произайти если в этот проводок попадет вода хоть и пресная но всетаки порт подкарочен будет? Не повлияет ли это на работу самого контроллера?
Ну в момент подключения к компу - конечно хорошо-бы иметь контакты сухими и не закороченными между собой.
А "в походном состоянии". Ну что у нас там:
Ну и конечно, сами контакты попадающие в воду - будут окислятся со временем. Прийдется их защичать если проблемы со связью возникают.
А можно, если ну совсем страшно. Сделать внутри "гравитационные кнопки". Все проводки выводим через такуе кнопки:
два контакта, на ними шарик металически. когда он на них "падает" - он их замыкает. "кнопка нажата". размещаем кнопку в корпусе так что-бы "шарик замыкал" только когда лодка находится "вверх-тормашками". Тогда в походном состоянии эти проводки вообще не будут никуда вести, а для "прошивки" - лодку нужно будет перевернуть.
Или, вместо гравитации, все проводки выводим через геркончики (та же кнопка, только срабатывает от магнита). Тогда что-бы "включить интерфейс" вам нужно просто поднести магнит к определенному месту корпуса, а без него опять будет - "проводки никуда не ведут, просто торчат наружу".
Но IMHO это если хочется "повыкаблучиватся". Из серии "свинцовые трусы". :), думаю все нормально будет и без герконов и гравитационных кнопок.
P.S. Естественно все это в предположении что у вас там не водятся электрические скаты :) Тогда герконы обязательны :)
RX и так настроен на вход. Речь о Tx-Rx вообще не идет, там будет или USB или RS232. C первым проще, можно весь интерфейс запитать через выключатель, замаскированный под... Если оставить напряжение, то при 5 вольтах будет, конечно, небольшой электролиз (а если вода соленая, то большой) и контакты окислятся. Нужна хорошая заглушка.
Ну я ребята даже и не ожидал таких интересных идей по защите интерфейса! Гравитационные контакты мне бы даже в голову не пришли, а насчет герконов мысль вполне осуществимая. Твердотельные оптореле могут подойти. Еще возникла мысль сделать чтото на подобие магнитной оптоголовки, как на пример те что к злектросчетчикам подцепляются, там обмен данными должен быть по проще чем ик порт всетаки изолировано от внешнего излучения..
Гравитационные контакты мне бы даже в голову не пришли, а насчет герконов мысль вполне осуществимая.
Да и "гравитационные" - тоже вполне осуществимо. Это я их так "обозвал". Что-бы принцип действия понятен был. А в продаже они скорее всегу будут называть "датчик наклона", title sensor и т.п.
Но принцип у них будет тот же самый. Правда, скоре всего, в них вместо шарика будет использовать порция ртути (не будет греметь как погремушка), но и цена :( Не космическая но за такой примитив - жаба давит (особенно если их нужно несколько штук).
Тем более что "сделать самому" - 5-10-ть минут. Берем тубу от таблеток/витаминок
Внутрь - шарик от подшибника. В крышечке делаем две дырки горячей иголкой. Пропускаем два провода. С внутреней стороны загручиваем их спиральками и приклеиваем в кнутреней стороне. Например терпопистолетом (китайские сопли).
Закрываем крышку - "гравитационная кнопка" готова ;) В нормальном состоянии - контакты разомкнуты. Перевернули - шарик упал на крышечку и замкнул контакты.
Если вы свой интерфейс выведите на брюхо лодки - то "включение" его будет само-собой. Естественным :) А все будут недоумевать и спрашивать вас: "а не боишься что замкнет"? Если будет сильно греметь - можно еще кусочки поролона/резинки на дно и крышку подлеить.