50х50 - всё зависит от задачи... в каком-то коде это хорошо, в каком-то - хуже.....
...но надо знать про это и применять , в твоём проекте отображение байта на СД - это самое ТО.....
можно проект реализовать и на ATmega, а можно и на ATtiny, добавив последПараллРегистр для СД и параллПоследРегистр для кнопок......
50х50 - всё зависит от задачи... в каком-то коде это хорошо, в каком-то - хуже.....
...но надо знать про это и применять , в твоём проекте отображение байта на СД - это самое ТО.....
можно проект реализовать и на ATmega, а можно и на ATtiny, добавив последПараллРегистр для СД и параллПоследРегистр для кнопок......
Можно, но в этой задаче этого в принципе не требуется) Макетку собирал?)
Один не разберет,чем пахнут розы…
Другой из горьких трав добудет мед… Кому-то мелочь дашь,навек запомнит… Кому-то жизнь отдашь,а он и не поймет…
Омар Хайям
guliyev34 , моя всё знать не может ( да и никто ) - иногда приходится фею ( фея ) звать.....
:)-
......зато как код сокращается !
это я про то, что нельзя отступать от отображения битов на СД.... орднунг ист орднунг :)
...спрашивай !
....мине есть кого спрашивать :) , надеюсь....
ничего сложного там нет.... лучше за день научиться летать и долететь за 5 мин , чем иттить пешком три дня ! ( мульт )
если это курсовая - одно, зафанател - терпи и учи.....
спасибо, быстрый спаситель :)
байты жизнь и уровень по задаче могут быть 0.....3 , для более - нужен int и мозги :)
по заданию нужно менять биты 2,3,4 и 5,6,7...
ничего сложного там нет.... лучше за день научиться летать и долететь за 5 мин , чем иттить пешком три дня ! ( мульт )
если это курсовая - одно, зафанател - терпи и учи.....
а разницу увидел - через регистры зажигать СД или через много digitalWrite() ?
спрашивай.... у миня ПОКА время свободное - есть
Честно?) Я пока хочу разобраться с основами, вот игра, которую делаю, это и есть, так сказать введение во все это) Хочу сначала закончить это, а потом уже все остальное) Сейчас волнует только то, что если долго жму кнопку, результат не засчитывается((
А вот в этих сообщениях, не понял что стоит в левой и правой части, понял что коньюкция только))
ейчас волнует только то, что если долго жму кнопку, результат не засчитывается((
День Варенья помешал.....
PORTD&B11100011
побитно умножить состояние порта на константу
где в константе единицы - не изменят состояние этого бита ( 0 * 1 = 0 , 1 * 1 = 1 )
где в константе нули - приведёт к состоянию этих битов в 0 ( 0 * 0 = 0 , 0 * 1 = 0 )
...анализируй-думай
PORTD&B11100011
эта штука установит в ноль биты 2,3,4 и оставит биты 0,1,5,6,7 какими и были
ейчас волнует только то, что если долго жму кнопку, результат не засчитывается((
День Варенья помешал.....
PORTD&B11100011
побитно умножить состояние порта на константу
где в константе единицы - не изменят состояние этого бита ( 0 * 1 = 0 , 1 * 1 = 1 )
где в константе нули - приведёт к состоянию этих битов в 0 ( 0 * 0 = 0 , 0 * 1 = 0 )
...анализируй-думай
PORTD&B11100011
эта штука установит в ноль биты 2,3,4 и оставит биты 0,1,5,6,7 какими и были
Что значит буква "B"? Теперь, потом умножает порт (PORTD) на константу (11100011). Теперь, это же будет зависить от состяния порта? Так почему же изменит 234 и оставил 01567? Если состояние порта 1 , то состояние битов 0, 1, 2, 6, 7 останутся такими же как и были, а вот остальные биты станут равны 0. так как при умножении на 1&1=1, 1&0=0; Далее порт = 0, тогда и все биты станут равны 0.. Я запутался..
с макеткой проблема :( , у миня все элементы в формфакторе SMD......
чего смог собрать - ардуино нано , три кнопки , два СД_задание ( но резистор 220 Om только один , т.е. одинСД )
время на ввод увеличил до 10 сек , чтобы не торопицца , заливал этот код
кнопка_3 глючит ( даже на слух она плохо щёлкает ) , но это пока не важно....
задание подсматривал в Сериале.....
...........в режиме ввода при нажатии кнопки включается СД соответствующий и горит пока нажата кнопка , при отпускании кнопки СД гаснет и записывается номер кнопки в массив
т.е. СД_задание подмигивают соответственно нажатой кнопке - работает , почему у тибя НЕТ ? или не так мой вопрос понял ?
....давай свой крайний код и вопросы
Ну в принципе понятно.. Порт имеет 2 значения? 0 и 1.
порт - это совокупность пинов... у UNO - порт D пины 0.....7 , порт B пины 8.....13 , порт C пины A0.....A5
состояние пина - да, 0 или 1 ( для входного пина ещё и Z-состояние )
состояние 8-ми битного порта - 0.......255
состояние порта и пина порта - разные вещи :)
с дребезгом контактов можно бороться не только программно , но и физически....
dimax делает так :
А я уже не использую программные способы подавления дребезга :) Раньше не пользовался внешними прерываниями, а позже всё же оценил их удобства. Но в прерывании дребезг подавлять очень проблематично. Можно конечно, но как говорится "мне этой геморой не нужен" :) Но не всё так плохо, если подобрать конденсатор паралельно кнопке, то вероятность ложного срабатывания будет почти нулевой. При условии использования внутренней подтяжки я остановился на электролитах 1uF. С самой обычной кнопкой (а-ля ресет с морды компьютерного системника) вероятность корректного срабатывания при тестировании была 100 раз из 100.
Вот конечный код. Протестировал, работает классно) Долго или быстро жмешь на кнопки, пишет значения корректно, без нареканий. Светодиоды, при нажатие на кнопки, тоже загораются. Все работает правильно. Большое спасибо)))
управление СД и чтение кнопок - переделывать на управление через порты будем ?
или уже всё устраивает ? проект закрыт ?
:)
Я добавлю еще 1 Сд, 1 кнопку, переделаю индикацию, чтобы сделать понятнее для игрока и скину сюда конечный вариант кода) На счет порта.. Я думаю что еще мы к этому вернемся, но в другом проекте))) Можете написать свой e-mail на всякий случай?) Меня Максим зовут кстати)
с дребезгом контактов можно бороться не только программно , но и физически....
dimax делает так :
А я уже не использую программные способы подавления дребезга :) Раньше не пользовался внешними прерываниями, а позже всё же оценил их удобства. Но в прерывании дребезг подавлять очень проблематично. Можно конечно, но как говорится "мне этой геморой не нужен" :) Но не всё так плохо, если подобрать конденсатор паралельно кнопке, то вероятность ложного срабатывания будет почти нулевой. При условии использования внутренней подтяжки я остановился на электролитах 1uF. С самой обычной кнопкой (а-ля ресет с морды компьютерного системника) вероятность корректного срабатывания при тестировании была 100 раз из 100.
Т.е просто подключить конденсатор параллельно кнопке и все?)) И не надо мучаться с дребезгом в коде?)
Все, дописал код и доделал игру. Так как я делал эту игру чисто для того, чтобы научиться работать с ардуино, корпус делать не стал. Ну что получилось, то получилось) Строго не судите) (Желтый СД заменится на такой же как и все остальные, просто нет его под рукой пока)
:) падравляю !!!!
а где резисторы для красных СД ?
voidLoss() и void Win() - можно создать массив и в цикле выводить эти данные на СД - получится значительно короче
Я думал об этом)) Потом просто попробовал сделать так) Резисторы для красных находятся под ардуино) Очень долго пришлось повозиться с разводкой платы) Слишком не удобно распологались пины и элементы) Если что, могу показать как развел. Мало ли, может будут какие-нибудь замечания)
не надо... я не спец по разводке печатных плат :(
...и через массив не надо переделывать , надо переходить на другой проект , а то этот будешь оттачивать-улучшать ещё два месяца - зачем ?
не надо... я не спец по разводке печатных плат :(
...и через массив не надо переделывать , надо переходить на другой проект , а то этот будешь оттачивать-улучшать ещё два месяца - зачем ?
Я уже с этим все) Проверял еще и эксперементировал с лазером) делал сигнализацию) Но там все просто) Еще сделал машинку на блютуз управлении. Она была на р/у. Поставил ардуино, запрограммировал. Написал приложение для телефона. Вот летает теперь) Сейчас вот хочу подключить к ней датчики. И сделать 2 режима работы. Один это чисто от телефона ездиет. Второй - езда с помощью датчиков (автоматический режим). Ручной режим сделал.. А вот автоматический не могу.. Точнее пока не допер как сделать переключение между ручным и автоматическим. Вот приходит на ардуино символ "М". Должен менять на автомат, если до этого было ручное. Или на ручное, если до этого было авто. Надо просто заняться этим) Сейчас времени не особо на это есть) И наверно через пару недель начну делать 3д Куб из светодиодов. Надо только понять какого размера хочу)
А у тебя есть какие-нибудь проекты?) Хотелось бы посмотреть.. Может идея какая появится)
Еще сделал машинку на блютуз управлении. Она была на р/у. Поставил ардуино, запрограммировал. Написал приложение для телефона.
можно подробнее ? в чём писал ? коды, тексты.... пробовал http://beta.appinventor.mit.edu/ , но версия onLine мне не нравится, а offLine не могу понять как скачать :(
проектов нету ( только тестовые ) , потихоньку осваиваю все направления... крайняя тема - управление ардуинкой из приложения созданного в Delphi....
Еще сделал машинку на блютуз управлении. Она была на р/у. Поставил ардуино, запрограммировал. Написал приложение для телефона.
можно подробнее ? в чём писал ? коды, тексты.... пробовал http://beta.appinventor.mit.edu/ , но версия onLine мне не нравится, а offLine не могу понять как скачать :(
проектов нету ( только тестовые ) , потихоньку осваиваю все направления... крайняя тема - управление ардуинкой из приложения созданного в Delphi....
Вот тут и делал.. App Invertor. http://appinventor.mit.edu/ Но тут не все можно реализовать. Например тачпад. Одновременное нажатие двух кнопок тоже не получилось сделать. Приложение, которое я написал, выглядет так
Вот эти кнопки по диагонали вставлены из-за того что 2 кнопки сразу не получается нажимать.. Например вот слева сверху. Машинка едет вперед и поворачивает влево одновременно.
Я сделал движение все. Скорость меняется. Фары включаются. НАжал один раз, они включились, еще раз нажал - выключились. Скетч там легкий. Сначала Просто в функциях описал движения. потом вызывал взависимости от символа. Потом переделал. Написал функции для скорости, для фар, для движения. Движение автомобиля сделал через swith. Ну в принципе и все. Вот сама машинка, правда колеса открутил)
Проблема такая. Есть некое устройство, которое работает по командам от сотового телефона. Например приходит 'S', делается одно действие, а если приходит 'W', то другое. Так вот. Команды с телефона приходят разные. Как состоящие только из одного символа, так и из нескольких, например "Speed1". Переменная, в которую записываются команды, имеет тип данных char. char cmd; через Serial.println(cmd). Проверил как ардуино воспринимает приходящий в нее сигнал. Вот например 'S', она так и выдает. А вот например 'SA', он выдает сначала S, а потом отдельной строкой A. Но у меня в программе, именно под 'SA', заложенно какое-то действие. Если я посылаю команду 'SA' с телефона, ардуино выполняет (каким-то странным образом). А если в программе пишу 'SA', то не выполняет. Я знаю что надо записать cmd как строку. Но:
- какое количество символов задать начальное? cmd[?];
- когда принимаю сигнал, надо проверять все в циклах?
- как ардуино поймет сколько символов пришло, и какой длины будет cmd?
именно с этим щас и борюсь - отправка из приложения созданного в делфи для виндов на ардуину и получение от неё запрашиваемых данных...
ветки-темы нет... помогает "бог" Kisoft через электронную почту....
моя религия :
буфер обмена - один на всё
команда с устройства ( любого ) ардуине - #getADC,5,0/KS*
getADC- команда считать аналоговый пин
5 - номер пина
0 - не важно ( только для структуры приёма-передачи )
KS - контрольная сумма для контроля
ардуина отвечает -
#valueADC,5,617/KS*
тибе такое же надо ?
код в состоянии зачатия ( может и не работать, косяки не все убрал )
ссылки посмотрел... Спасибо ! уже начал делать кракозябры :)
Хаха)) Я уже сделал замер расстояния) И почти сделал автоматический режим. Но вот команду 'SA' (т.е двигататься назад и влево одновременно) ардуино не воспринимает.. Когда с телефона приходит, то работает все. Например есть функция. Получаю 'S' он едет назад. И получив следом 'A', он поворачивает влево. Поэтому с телефона получается делать это. И будет поворачивать назад и влево, до тех пор пока не придет символ 'T'(соответсвует отпусканию кнопки). А вот в программе записать не получается. Я так понимаю надо переменную которая принимает команду, сделать массивом символов (строкой).
Сейчас проблема в следующем.
Машинка на блютуз управлении. Приложении есть 11 кнопок. 4 из них это ехать вперед(W), назад(S), влево(A), вправо(D). другие 4, это вперед и влево (WA), вперед и вправо (WD), назад и влево(SA), назад и вправо(SD). и оставшиеся 3 это выбор скорости 100 - (I), 200 - (O), 255 - (P). Сейчас все работает как надо. Решил переделать приложение, и вместо такого выбора скорости, сделать чтобы скорость изменялась бегунком. Но не получается синхронизировать приложение и ардуино. Ведь переменная одна в скетче, которая принимает команду. Имеет тип char. И например W,S,D,A она воспринимает как символы (как и должна). А вот цифры, она тоже переводит в символы. Короче надо разобраться с этим. Вот идея и проблема подробнее:
Есть Бегунок в приложении. Значения изменяются от 0(крайнее левое положение бегунка) до 100.(крайнее правое полжение бегунка). Вот например я могу попробовать с телефона отправить на ардуино строку "Speed100". Что будет означать: Speed - режим выбора скорости. 100 - поставить скорость на 100 (регулируется значение бегунком). Саму функцию написать могу. В программе 0 будет нулем, а 100 - это 255 (максимальное напряжение на выходе пина). Но вот ардуино должен сделать следующее. Получив эту строку, понять что это относится к скорости. Обратиться к функции и выставить скорость на 100(255). Как это сделать? Ведь переменная одна на все команды.. И на движение, и на выбор скорости..
посылать "Speed/100/" , в ардуине разобрать строку на две строки "Speed" и "100" по признаку-разделителю "/" http://www.cplusplus.com/reference/cstring/strtok/
.....не переводи , внизу пример кода есть
посылать "Speed/100/" , в ардуине разобрать строку на две строки "Speed" и "100" по признаку-разделителю "/" http://www.cplusplus.com/reference/cstring/strtok/
.....не переводи , внизу пример кода есть
Подскажите, пожалуйста, новичку. В этой теме на восемь страниц обсуждаются ошибки в простой программе. А нет ли для наборов (каких-то конкретных или всех вместе) какой-нибудь графической оболочки для этого самого IDE? Ведь существуют же Microsoft Robotics Studio или, скажем, LabVIEW. Например, для создания игр, к чему я причастен, есть Clickteam Fusion, Construct 2, GameMaker и прочее, которые позволяют делать всё то же, но через графический интерфейс даже без знания языка. Неужели тут всё руками без вариантов? Спасибо. Извините если может быть, не в тему.
читал http://arduino.ru/Tutorial/Upravlenie_portami_cherez_registry ?
Да, особенно про "За и против"
читал http://arduino.ru/Tutorial/Upravlenie_portami_cherez_registry ?
Да, особенно про "За и против"
50х50 - всё зависит от задачи... в каком-то коде это хорошо, в каком-то - хуже.....
...но надо знать про это и применять , в твоём проекте отображение байта на СД - это самое ТО.....
можно проект реализовать и на ATmega, а можно и на ATtiny, добавив последПараллРегистр для СД и параллПоследРегистр для кнопок......
читал http://arduino.ru/Tutorial/Upravlenie_portami_cherez_registry ?
Да, особенно про "За и против"
50х50 - всё зависит от задачи... в каком-то коде это хорошо, в каком-то - хуже.....
...но надо знать про это и применять , в твоём проекте отображение байта на СД - это самое ТО.....
можно проект реализовать и на ATmega, а можно и на ATtiny, добавив последПараллРегистр для СД и параллПоследРегистр для кнопок......
Можно, но в этой задаче этого в принципе не требуется) Макетку собирал?)
нет :( , День Варенья у соседа :) , пока только головой могу , руками уже нет :(
to kisoft :
моя спрашивал и обсуждали - сбросить бит, установить бит, написать функцию изменения смежных битов....
это из той темы :)
нет :( , День Варенья у соседа :) , пока только головой могу , руками уже нет :(
to kisoft :
моя спрашивал и обсуждали - сбросить бит, установить бит, написать функцию изменения смежных битов....
это из той темы :)
Ого, я в шоке)))
Один не разберет, чем пахнут розы…
Другой из горьких трав добудет мед…
Кому-то мелочь дашь, навек запомнит…
Кому-то жизнь отдашь, а он и не поймет…
Омар Хайям
guliyev34 , моя всё знать не может ( да и никто ) - иногда приходится фею ( фея ) звать.....
:)-
......зато как код сокращается !
это я про то, что нельзя отступать от отображения битов на СД.... орднунг ист орднунг :)
...спрашивай !
....мине есть кого спрашивать :) , надеюсь....
Ого, я в шоке)))
ничего сложного там нет.... лучше за день научиться летать и долететь за 5 мин , чем иттить пешком три дня ! ( мульт )
если это курсовая - одно, зафанател - терпи и учи.....
строки 30....33 в комментах ошибки.... там другие номера пинов надо указать :(
SU-27-16, Если не вдаваться в подробности (поскольку я редко использую прямой доступ к регистрам), то есть только одна помарочка. Вот эта строка 38
Она будет работать некорректо, если _n будет больше 8. Втупую исправить можно добавив перед этой командой строку:
Но тогда если _n будет больше 8, оно не испортит биты порта, но всё равно будет работать криво.
Потому вопрос философский, что важнее.
спасибо, быстрый спаситель :)
байты жизнь и уровень по задаче могут быть 0.....3 , для более - нужен int и мозги :)
по заданию нужно менять биты 2,3,4 и 5,6,7...
спасибо большое :)
Ого, я в шоке)))
ничего сложного там нет.... лучше за день научиться летать и долететь за 5 мин , чем иттить пешком три дня ! ( мульт )
если это курсовая - одно, зафанател - терпи и учи.....
Зафанател))))
а разницу увидел - через регистры зажигать СД или через много digitalWrite() ?
спрашивай.... у миня ПОКА время свободное - есть
а разницу увидел - через регистры зажигать СД или через много digitalWrite() ?
спрашивай.... у миня ПОКА время свободное - есть
Честно?) Я пока хочу разобраться с основами, вот игра, которую делаю, это и есть, так сказать введение во все это) Хочу сначала закончить это, а потом уже все остальное) Сейчас волнует только то, что если долго жму кнопку, результат не засчитывается((
А вот в этих сообщениях, не понял что стоит в левой и правой части, понял что коньюкция только))
PORTD&B11100011
ейчас волнует только то, что если долго жму кнопку, результат не засчитывается((
День Варенья помешал.....
PORTD&B11100011
побитно умножить состояние порта на константу
где в константе единицы - не изменят состояние этого бита ( 0 * 1 = 0 , 1 * 1 = 1 )
где в константе нули - приведёт к состоянию этих битов в 0 ( 0 * 0 = 0 , 0 * 1 = 0 )
...анализируй-думай
PORTD&B11100011
эта штука установит в ноль биты 2,3,4 и оставит биты 0,1,5,6,7 какими и были
ейчас волнует только то, что если долго жму кнопку, результат не засчитывается((
День Варенья помешал.....
PORTD&B11100011
побитно умножить состояние порта на константу
где в константе единицы - не изменят состояние этого бита ( 0 * 1 = 0 , 1 * 1 = 1 )
где в константе нули - приведёт к состоянию этих битов в 0 ( 0 * 0 = 0 , 0 * 1 = 0 )
...анализируй-думай
PORTD&B11100011
эта штука установит в ноль биты 2,3,4 и оставит биты 0,1,5,6,7 какими и были
Что значит буква "B"? Теперь, потом умножает порт (PORTD) на константу (11100011). Теперь, это же будет зависить от состяния порта? Так почему же изменит 234 и оставил 01567? Если состояние порта 1 , то состояние битов 0, 1, 2, 6, 7 останутся такими же как и были, а вот остальные биты станут равны 0. так как при умножении на 1&1=1, 1&0=0; Далее порт = 0, тогда и все биты станут равны 0.. Я запутался..
1 ( десятиричное ) = B00000001 ( двоичное ) = 0x01 ( 16-ти)
....................................................
255 ( десятиричное ) = B11111111 ( дв0ичное ) = 0xFF ( 16-ти)
потом умножает порт (PORTD) на константу (11100011)
....умножаем по правилам ДВОИЧНОЙ логики ПОБИТНО !
1 ( десятиричное ) = B00000001 ( двоичное ) = 0x01 ( 16-ти)
....................................................
255 ( десятиричное ) = B11111111 ( дв0ичное ) = 0xFF ( 16-ти)
потом умножает порт (PORTD) на константу (11100011)
....умножаем по правилам ДВОИЧНОЙ логики ПОБИТНО !
Ну в принципе понятно.. Порт имеет 2 значения? 0 и 1. Что там с макеткой?((
с макеткой проблема :( , у миня все элементы в формфакторе SMD......
чего смог собрать - ардуино нано , три кнопки , два СД_задание ( но резистор 220 Om только один , т.е. одинСД )
время на ввод увеличил до 10 сек , чтобы не торопицца , заливал этот код
кнопка_3 глючит ( даже на слух она плохо щёлкает ) , но это пока не важно....
задание подсматривал в Сериале.....
...........в режиме ввода при нажатии кнопки включается СД соответствующий и горит пока нажата кнопка , при отпускании кнопки СД гаснет и записывается номер кнопки в массив
т.е. СД_задание подмигивают соответственно нажатой кнопке - работает , почему у тибя НЕТ ? или не так мой вопрос понял ?
....давай свой крайний код и вопросы
Ну в принципе понятно.. Порт имеет 2 значения? 0 и 1.
порт - это совокупность пинов... у UNO - порт D пины 0.....7 , порт B пины 8.....13 , порт C пины A0.....A5
состояние пина - да, 0 или 1 ( для входного пина ещё и Z-состояние )
состояние 8-ми битного порта - 0.......255
состояние порта и пина порта - разные вещи :)
с дребезгом контактов можно бороться не только программно , но и физически....
dimax делает так :
А я уже не использую программные способы подавления дребезга :) Раньше не пользовался внешними прерываниями, а позже всё же оценил их удобства. Но в прерывании дребезг подавлять очень проблематично. Можно конечно, но как говорится "мне этой геморой не нужен" :) Но не всё так плохо, если подобрать конденсатор паралельно кнопке, то вероятность ложного срабатывания будет почти нулевой. При условии использования внутренней подтяжки я остановился на электролитах 1uF. С самой обычной кнопкой (а-ля ресет с морды компьютерного системника) вероятность корректного срабатывания при тестировании была 100 раз из 100.
Вот конечный код. Протестировал, работает классно) Долго или быстро жмешь на кнопки, пишет значения корректно, без нареканий. Светодиоды, при нажатие на кнопки, тоже загораются. Все работает правильно. Большое спасибо)))
управление СД и чтение кнопок - переделывать на управление через порты будем ?
или уже всё устраивает ? проект закрыт ?
:)
управление СД и чтение кнопок - переделывать на управление через порты будем ?
или уже всё устраивает ? проект закрыт ?
:)
Я добавлю еще 1 Сд, 1 кнопку, переделаю индикацию, чтобы сделать понятнее для игрока и скину сюда конечный вариант кода) На счет порта.. Я думаю что еще мы к этому вернемся, но в другом проекте))) Можете написать свой e-mail на всякий случай?) Меня Максим зовут кстати)
roma1602@rambler.ru , Александр
с дребезгом контактов можно бороться не только программно , но и физически....
dimax делает так :
А я уже не использую программные способы подавления дребезга :) Раньше не пользовался внешними прерываниями, а позже всё же оценил их удобства. Но в прерывании дребезг подавлять очень проблематично. Можно конечно, но как говорится "мне этой геморой не нужен" :) Но не всё так плохо, если подобрать конденсатор паралельно кнопке, то вероятность ложного срабатывания будет почти нулевой. При условии использования внутренней подтяжки я остановился на электролитах 1uF. С самой обычной кнопкой (а-ля ресет с морды компьютерного системника) вероятность корректного срабатывания при тестировании была 100 раз из 100.
Т.е просто подключить конденсатор параллельно кнопке и все?)) И не надо мучаться с дребезгом в коде?)
roma1602@rambler.ru , Александр
К 375 посту познакомились) Приятно познакомится :)
:)
...а кондёры на кнопки - поставь
просмотрел сообщение - да, просто кондёры уменьшат код
Все, дописал код и доделал игру. Так как я делал эту игру чисто для того, чтобы научиться работать с ардуино, корпус делать не стал. Ну что получилось, то получилось) Строго не судите) (Желтый СД заменится на такой же как и все остальные, просто нет его под рукой пока)
Скетч:
Вот что получилось в итоге:
:) падравляю !!!!
а где резисторы для красных СД ?
void
Loss() и
void
Win()
- можно создать массив и в цикле выводить эти данные на СД - получится значительно короче:) падравляю !!!!
а где резисторы для красных СД ?
void
Loss() и
void
Win()
- можно создать массив и в цикле выводить эти данные на СД - получится значительно корочеЯ думал об этом)) Потом просто попробовал сделать так) Резисторы для красных находятся под ардуино) Очень долго пришлось повозиться с разводкой платы) Слишком не удобно распологались пины и элементы) Если что, могу показать как развел. Мало ли, может будут какие-нибудь замечания)
не надо... я не спец по разводке печатных плат :(
...и через массив не надо переделывать , надо переходить на другой проект , а то этот будешь оттачивать-улучшать ещё два месяца - зачем ?
не надо... я не спец по разводке печатных плат :(
...и через массив не надо переделывать , надо переходить на другой проект , а то этот будешь оттачивать-улучшать ещё два месяца - зачем ?
Я уже с этим все) Проверял еще и эксперементировал с лазером) делал сигнализацию) Но там все просто) Еще сделал машинку на блютуз управлении. Она была на р/у. Поставил ардуино, запрограммировал. Написал приложение для телефона. Вот летает теперь) Сейчас вот хочу подключить к ней датчики. И сделать 2 режима работы. Один это чисто от телефона ездиет. Второй - езда с помощью датчиков (автоматический режим). Ручной режим сделал.. А вот автоматический не могу.. Точнее пока не допер как сделать переключение между ручным и автоматическим. Вот приходит на ардуино символ "М". Должен менять на автомат, если до этого было ручное. Или на ручное, если до этого было авто. Надо просто заняться этим) Сейчас времени не особо на это есть) И наверно через пару недель начну делать 3д Куб из светодиодов. Надо только понять какого размера хочу)
А у тебя есть какие-нибудь проекты?) Хотелось бы посмотреть.. Может идея какая появится)
Еще сделал машинку на блютуз управлении. Она была на р/у. Поставил ардуино, запрограммировал. Написал приложение для телефона.
можно подробнее ? в чём писал ? коды, тексты.... пробовал http://beta.appinventor.mit.edu/ , но версия onLine мне не нравится, а offLine не могу понять как скачать :(
проектов нету ( только тестовые ) , потихоньку осваиваю все направления... крайняя тема - управление ардуинкой из приложения созданного в Delphi....
Еще сделал машинку на блютуз управлении. Она была на р/у. Поставил ардуино, запрограммировал. Написал приложение для телефона.
можно подробнее ? в чём писал ? коды, тексты.... пробовал http://beta.appinventor.mit.edu/ , но версия onLine мне не нравится, а offLine не могу понять как скачать :(
проектов нету ( только тестовые ) , потихоньку осваиваю все направления... крайняя тема - управление ардуинкой из приложения созданного в Delphi....
Вот тут и делал.. App Invertor. http://appinventor.mit.edu/ Но тут не все можно реализовать. Например тачпад. Одновременное нажатие двух кнопок тоже не получилось сделать. Приложение, которое я написал, выглядет так
Вот эти кнопки по диагонали вставлены из-за того что 2 кнопки сразу не получается нажимать.. Например вот слева сверху. Машинка едет вперед и поворачивает влево одновременно.
Все кнопки работают. И отправляют на ардуино определенный символ. И уже взависимости от символа выполняется команда. Я смотрел видеоурок как создавать приложение. Там все подробно рассказано и описано. http://www.youtube.com/watch?v=y2jAJ05s2EQ . А вот сама тема http://habrahabr.ru/post/252137/
Я сделал движение все. Скорость меняется. Фары включаются. НАжал один раз, они включились, еще раз нажал - выключились. Скетч там легкий. Сначала Просто в функциях описал движения. потом вызывал взависимости от символа. Потом переделал. Написал функции для скорости, для фар, для движения. Движение автомобиля сделал через swith. Ну в принципе и все. Вот сама машинка, правда колеса открутил)
Самая первая статья, которая поддалкнула на эту идею http://cxem.net/uprav/uprav46.php Вот еще эти посмотри: http://cxem.net/uprav/uprav43.php http://cxem.net/uprav/uprav57.php http://cxem.net/uprav/uprav34.php
Можешь помочь?
Проблема такая. Есть некое устройство, которое работает по командам от сотового телефона. Например приходит 'S', делается одно действие, а если приходит 'W', то другое. Так вот. Команды с телефона приходят разные. Как состоящие только из одного символа, так и из нескольких, например "Speed1". Переменная, в которую записываются команды, имеет тип данных char. char cmd; через Serial.println(cmd). Проверил как ардуино воспринимает приходящий в нее сигнал. Вот например 'S', она так и выдает. А вот например 'SA', он выдает сначала S, а потом отдельной строкой A. Но у меня в программе, именно под 'SA', заложенно какое-то действие. Если я посылаю команду 'SA' с телефона, ардуино выполняет (каким-то странным образом). А если в программе пишу 'SA', то не выполняет. Я знаю что надо записать cmd как строку. Но:
- какое количество символов задать начальное? cmd[?];
- когда принимаю сигнал, надо проверять все в циклах?
- как ардуино поймет сколько символов пришло, и какой длины будет cmd?
именно с этим щас и борюсь - отправка из приложения созданного в делфи для виндов на ардуину и получение от неё запрашиваемых данных...
ветки-темы нет... помогает "бог" Kisoft через электронную почту....
моя религия :
буфер обмена - один на всё
команда с устройства ( любого ) ардуине - #getADC,5,0/KS*
getADC- команда считать аналоговый пин
5 - номер пина
0 - не важно ( только для структуры приёма-передачи )
KS - контрольная сумма для контроля
ардуина отвечает -
#valueADC,5,617/KS*
тибе такое же надо ?
код в состоянии зачатия ( может и не работать, косяки не все убрал )
ссылки посмотрел... Спасибо ! уже начал делать кракозябры :)
ссылки посмотрел... Спасибо ! уже начал делать кракозябры :)
Хаха)) Я уже сделал замер расстояния) И почти сделал автоматический режим. Но вот команду 'SA' (т.е двигататься назад и влево одновременно) ардуино не воспринимает.. Когда с телефона приходит, то работает все. Например есть функция. Получаю 'S' он едет назад. И получив следом 'A', он поворачивает влево. Поэтому с телефона получается делать это. И будет поворачивать назад и влево, до тех пор пока не придет символ 'T'(соответсвует отпусканию кнопки). А вот в программе записать не получается. Я так понимаю надо переменную которая принимает команду, сделать массивом символов (строкой).
Сейчас проблема в следующем.
Машинка на блютуз управлении. Приложении есть 11 кнопок. 4 из них это ехать вперед(W), назад(S), влево(A), вправо(D). другие 4, это вперед и влево (WA), вперед и вправо (WD), назад и влево(SA), назад и вправо(SD). и оставшиеся 3 это выбор скорости 100 - (I), 200 - (O), 255 - (P). Сейчас все работает как надо. Решил переделать приложение, и вместо такого выбора скорости, сделать чтобы скорость изменялась бегунком. Но не получается синхронизировать приложение и ардуино. Ведь переменная одна в скетче, которая принимает команду. Имеет тип char. И например W,S,D,A она воспринимает как символы (как и должна). А вот цифры, она тоже переводит в символы. Короче надо разобраться с этим. Вот идея и проблема подробнее:
Есть Бегунок в приложении. Значения изменяются от 0(крайнее левое положение бегунка) до 100.(крайнее правое полжение бегунка). Вот например я могу попробовать с телефона отправить на ардуино строку "Speed100". Что будет означать: Speed - режим выбора скорости. 100 - поставить скорость на 100 (регулируется значение бегунком). Саму функцию написать могу. В программе 0 будет нулем, а 100 - это 255 (максимальное напряжение на выходе пина). Но вот ардуино должен сделать следующее. Получив эту строку, понять что это относится к скорости. Обратиться к функции и выставить скорость на 100(255). Как это сделать? Ведь переменная одна на все команды.. И на движение, и на выбор скорости..
посылать "Speed/100/" , в ардуине разобрать строку на две строки "Speed" и "100" по признаку-разделителю "/"
http://www.cplusplus.com/reference/cstring/strtok/
.....не переводи , внизу пример кода есть
посылать "Speed/100/" , в ардуине разобрать строку на две строки "Speed" и "100" по признаку-разделителю "/"
http://www.cplusplus.com/reference/cstring/strtok/
.....не переводи , внизу пример кода есть
Во, спасибо большое, буду разбираться)
и ещё - строка в число
http://www.cplusplus.com/reference/cstdlib/atoi/?kw=atoi
или по русски :)
http://lord-n.narod.ru/download/books/walla/programming/Spr_po_C/14/strt...
http://lord-n.narod.ru/download/books/walla/programming/Spr_po_C/18/atoi...
Подскажите, пожалуйста, новичку. В этой теме на восемь страниц обсуждаются ошибки в простой программе. А нет ли для наборов (каких-то конкретных или всех вместе) какой-нибудь графической оболочки для этого самого IDE? Ведь существуют же Microsoft Robotics Studio или, скажем, LabVIEW. Например, для создания игр, к чему я причастен, есть Clickteam Fusion, Construct 2, GameMaker и прочее, которые позволяют делать всё то же, но через графический интерфейс даже без знания языка. Неужели тут всё руками без вариантов? Спасибо. Извините если может быть, не в тему.
Зачем? Язык Wiring до тупого прост. Програмирование визуальными блоками его только усложнит.