Теперь в нашем онлайн-магазине доступна уникальная книга «BEAM-робототехника. От азов до создания практических устройств», идеально подходящая как для кружков робототехники, так и для самообучения дома. Вы можете приобрести её по привлекательной цене в 699 рублей. Дополнительная информация о книге доступна на нашем сайте. Также в ассортименте нашего онлайн-магазина представлены готовые наборы для сборки роботов, с помощью которых ваш ребенок сможет легко собрать своего первого робота, следуя нашим подробным инструкциям. Перейти в магазин
Вот спустя пару месяцев я уже вплотную столкнулся с непосредственным программированием микроконтроллеров симейства Mega, фирмы Atmel. Пока и по сей день пытаюсь потихоньку позновать новые хитрости программирования и отладки программы.
Платформа для робота уже готова. Корпус собран из бывших блоков ИРПС (какой-то блок последовательного согласования каналов ). Это название я и оставил, придумав ему расшифровку: "Интеллектуальная Роботизированная Передвижная Система".
Тягу осуществляют два сервомотора H12K. Колеса от игрушки взял. Робот состоит из двух блоков, нижний-силовая часть, верхний-электроника. На самом верху блок с батарейками. По весу можно сказать что его будет трудновато сдвинуть на "мини-сумо", хотя это надо еще смотреть, так как по размерам он большеват. Для кегельринга, следования по линии, самое то )
Dimsan, да на первом этапе эти сойдут Они без труда всю конструкцию тянут Вес: 500\+50 гр (батарейки) В минисумо уже облом поучаствовать, зато в кегельринге, слаломе, и линии безпроблем. Но для линии и кеглей нужно будет тамия ставить, т.к. там скорость важна.
Добавлено (11.08.2010, 13:24) --------------------------------------------- Как организовать аппаратный ШИМ ? Нужно ли подключать дополнительные библиотеки ? Есть код, но, мой компилятор его не понимает. Использую CvAVR. Пишу на Си.
- Так, ну с ШИМом вро де как разобрался, и с аппаратным, и с программным Так что двигаться мы уже умеем. - Как раболтать с Sharpom тоже вроде как освоил.
На этого робота хочу поставить клешню клешню, и Sharp:
Добавлено (29.08.2010, 23:07) --------------------------------------------- Ждем прихода посылочки с дальномером Sharp на 10-80 см, и блютус адаптер Будем управлять ботом, и "интеллектуально" обходить препятствия с sharpом
Добавлено (31.08.2010, 21:47) --------------------------------------------- Готово новое видео:
Отдельная благодарность: nightmare что терпел мои тупые вопросы , dimsanchuk за поддержку
Добавлено (11.09.2010, 13:33) --------------------------------------------- Добавлена функция видеонаблюдения, так что даже в темноте, мы узнаем где он ползает )
void main (void) { ADMUX=0b11000001; ADCSRA=0b10001110; while(1) { forward(); if(distance() >1.7) //если напряжение на дальномере больше 1.7 вольт (~30см) { backward(); //едем назад delay_ms(500); right(); //поворачиваем направо delay_ms(500); } } }
Краткие вопросы: 1. ADCSRA=0b11001110; // -это тот порт, точнее номер его ножки, к которому подключен дальномер ? 2. ADMUX=0b11000001; // -это ... ? 3. ADCSRA=0b10001110; // -это ... ? 4. Что есть запись 2.56/1024... 2.56 - макс вольтаж ?, 1024 - ... ?
Судя по моему дальномеру, а у меня Sharp GP2Y0A21YK0F: Схема расчета замеров напряжения исходя из расстояния
Следовательно при расстоянии 5 см мы будим иметь максимальное выходное напряжение в 3,.. вольта. При 80 см это будет 0.5 вольт и меньше, все зависит от качества качества отраженного сигнала.
2.56 к ионистору не имеет отношения, инонистоар в мк тоже нет)) Это опорное напряжение. Напряжение на выходе дальномера доходит до 3 с лишним вольт, подключи дальномер к АЦП через делитель напряжения на 2 (после измерения результат надо будет умножить на два), иначе минимальное расстояние, которое покажет дальномер - это 9 см примерно. Вообще переменную adc_data можно сделать типа unsigned char, особая точность здесь не нужна, так даже стабильнее будет и быстрее. При этом напряжение на входе ацп считается по формуле: (adc_data*2.56)/255
Quote
1. ADCSRA=0b11001110; // -это тот порт, точнее номер его ножки, к которому подключен дальномер ?
Нет, это ADC Control and Status регистр, в который записано число 11001110. Каждый бит выполняет какую-то функцию, например 6-ой бит запускает АЦ преобразование.
Quote
2. ADMUX=0b11000001; // -это ... ?
Это мультиплексор, он выбирает какой канал АЦП использовать. В кодевизарде к сожалению выбрать канал нельзя... Но можно в даташите посмотреть, там есть табличка.
Quote
3. ADCSRA=0b10001110; // -это ... ?
это ADC Control and Status регистр, в который записано число 10001110.
Quote
Не знаю, я в С++ не силен
Здесь не надо СИ знать, тут надо в регистрах "рубить" В бейсике это дело похоже опущено.
2. ADMUX=0b11000001; // -это ... ? Это мультиплексор, он выбирает какой канал АЦП использовать. В кодевизарде к сожалению выбрать канал нельзя... Но можно в даташите посмотреть, там есть табличка.
- а, то есть из 8 каналов мы подключаем нужные... Вроде понятно, надо дш еще глянуть.
Project : Version : Date : 25.09.2010 Author : F4CG Company : F4CG Comments:
Chip type : ATmega32L Program type : Application Clock frequency : 7,372800 MHz Memory model : Small External SRAM size : 0 Data Stack size : 512 *****************************************************/
Общайтесь с друзьями в нашем Online-чате по робототехнике
Мы рады, что в России открывается все больше кружков по робототехнике и мы стараемся прикладывать к этому свои усилия начиная с 2008 года :) Мы будем очень рады видеть в чате живое общение, обмен опытом между учащимися в робототехнике и просто увлеченными в этом направлении людей. Мы всегда онлайн, приходите, спрашивайте, помогайте другим - давайте сделаем Мир чуточку лучше!
Чтобы не потерять чат и быть всегда с нами на связи - откройте окно чата в новом окне браузера и добавьте его в заколадки. Открыть в новом окне