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

Zerber

Members
  • Постов

    48
  • Зарегистрирован

  • Посещение

Сообщения, опубликованные Zerber

  1. Alexeyslav И как только у Вас терпения хватает отвечать на такие вопросы...

    ВСЕМ!!! Если ещё будет подобный вопрос, на который можно найти ответ в ДШ, отправлю в баньку читать ДШ

    Я наверное хреново вижу и читаю еще хуже, но помнится мне тема называлась "Начинающим С Нуля (pic)", а не "Идите в баньку читать ДШ". Или я все таки плохо вижу?

  2. :huh: Стоп, я разве сказал что это программатор? Сори если ввел в заблуждение, это не программатор (хотя прошивать свои программки через него можно), но! Сначала тебе надо будет найти настоящий программатор и зашить на нем в свой PIC программку, которая называется Bootloader (загрузчик. программа которая загружает и прошивает твой контроллер), только после этого для программирования тебе нужна будет только MAX232 и Com-порт. Сразу с помощью макса PIC не прошить. Схему подключения макса я тебе могу дать, да и ее найти не сложно, программу я тебе тоже могу дать. Но настоящим программатором все равно придется разок воспользоваться.

    По поводу настоящего программатора вот здесь погляди - http://www.pcports.ru/articles/pic4.php (это очень простой, сделать самому не сложно). Кстати там есть статьи для начинающий, довольно хорошо написано.

    Хотя для пиков лучше наверное купить PICKit2 (можно и самому собрать, но будет сложнее - http://electronix.ru/forum/index.php?showtopic=44125 ).

    Max232 выложу чуть позже

  3. чтобы сразу обойти все подводные камни.

    Сразу обойти все подводные камни? Фиг два! Это ты погорячился. Как раз на таких камнях и учатся чаще всего.

    А выбор МК это вообще не проблема... у вас вероятно была проблема выбрать контроллер который можно было бы применить где угодно и самый дешевый, только тогда появляется проблема выбора... Но так проектировать нельзя, надо начинать с задачи потом по характеристикам подбирать контроллер, желательно с запасом.

    Вот это совет дельный. Микроконтроллер никогда не выбирается по цене! PIC12F683-I/P PBF хороший выбор, но мое личное мнение лучше начать с PIC16F877A он чуть дороже, но более распространен в любительских и профессиональных поделках. А следовательно на него существует куча примеров и прошивок. К тому же на нем куча портов и все возможные модули начиная от ШИМ и кончая SPI. К тому же для него не нужен программатор, нужна только MAX232 и пара конденсаторов. ;) Хотя лично я считаю на учебе не экономят! Из простых программаторов могу посоветовать PICKit 2. Если постараешься то соберешь его самостоятельно, исходники и все прочее в свободном распространении (смотри на сайте микрочипа). Кстати он внутрисхемный и его поддерживает MPLAB, можно прошивать и отлаживать прямо в нем. Для "Hello World" тебе нужна макетная плата, сам PIC, 10 резисторов, 10 светодиодов, 5 конденсаторов, 1 max232, COM-порт на компе или переходник с USB на COM, две-три кнопки и метр проводов (одножильных, они лучше подходят для макетной платы).

    Если что то вспомню еще скажу ;)

  4. Понял, спасибо :)

    Все таки лучше наверное за флагом следить, там еще куча всяких дел выполняется и эти данные очень важны для программы. Я делаю на этом пике сервоконтроллер для 18 сервомашинок и эти данные для этих серво. И эти данные для этих серво. Можно было бы подряд все 18 чисел передавать, но мне кажется это немного не подходящий выход. Если в данный момент изменяются координаты одной сервы, а не всех 18 то зачем передавать все 18?! Для этого и нужен адрес массива и собственно сам массив. Индекс изменяется от 0 до 18, а значения от 30 до 130.

    Пока что я сделал так:

    while(1)
    {
    if(pulse_2==6)
    {
    	pulse_1=0;
    	pulse_2=0;
    	impuls_signal_1=massiv[pulse_2];
    	impuls_signal_2=massiv[pulse_2+6];
    	impuls_signal_3=massiv[pulse_2+12];
    	PORTA=servo_signal_1[pulse_2];
    	PORTB=servo_signal_2[pulse_2];
    	PORTD=servo_signal_3[pulse_2];
    }	
    if(pulse_1==166)
    {
    	pulse_1=0;
    	pulse_2++;
    	impuls_signal_1=massiv[pulse_2];
    	impuls_signal_2=massiv[pulse_2+6];
    	impuls_signal_3=massiv[pulse_2+12];
    	PORTA=servo_signal_1[pulse_2];
    	PORTB=servo_signal_2[pulse_2];
    	PORTD=servo_signal_3[pulse_2];
    }
    if(RCIF)
    {
    	incom_data=RCREG;
    	if(incom_data<18)
    		index=incom_data;
    	if(incom_data>30)
    		massiv[index]=incom_data;	
    	TXREG=index;
    	TXREG=massiv[index];
    }

    Проверил на железе. Все работает :D

    Правда незнаю на сколько стабильно :rolleyes:

    Сервы правда начали немного дергаться... Пока незнаю почему.

  5. Народ, наставьте на путь истинный. Никак не могу разобраться с USART.

    Есть PIC16F877A, комп с com-портом, на компе программка, которая посылает PIC-у два char-а. PIC их принимает и записывает в одномерный массив определенным образом. Первый char - это индекс этого массива (от 0 до 17) по нему микроконтроллер определяет куда будет записан второй char. Второй char это и есть само значение массива. В даташите написано что буфер приемника USART двойной (два числа можно записать) и чтобы прочитать эти два значения нужно просто два раза обратиться к регистру RCREG.

    Вот кусок программы:

    #include <pic.h>
    __CONFIG(0x03F72);
    
    char massiv[18]={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}; // массив
    char index=0;	// адрес
    char pulse_1=0;
    char pulse_2=0;
    
    void interrupt IntFun(void)
    {
    if(T0IF)
    {
    	// текст программы (к USART не имеет отношения)
    					pulse++;
    	TMR0=0xE7;
    }
    }
    
    void main(void)
    {
    SPBRG=129;			// Скорость работы порта передачи (20МГц, 9600)
    TXEN=1;			// Разрегение передачи - разрешен
    CREN=1;			// Разрешение приема - разрешен
    SPEN=1;			// Разрешение работы последовательного порта - открыт
    SYNC=0;			// Режим работы USART - асинхронный
    BRGH=1;			// Выбор высокоскоростного режима
    RCIE=1;			// Разрешение прерывания от USART
    
    TMR0=0xE7;			// задержка 20мкС
    OPTION=0b10000000;				// прескалер 1:2
    T0IE=1;	
    GIE=1;
    
    TRISA=0b00000000;	// Настройка режима регистра порта А - выход
    PORTA=0b00000000;	// Логический уровень порта А
    TRISB=0b00000000;	// Настройка режима регистра порта В - выход
    PORTB=0b00000000;	// Логический уровень порта B
    TRISD=0b00000000;	// Настройка режима регистра порта D - выход
    PORTD=0b00000000;	// Логический уровень порта D
    
    // Цикл программы			
    while(1)
    {
    	// текст программы (к USART не имеет отношения)
    					if(pulse_2==6)
    	{
    		pulse_1=0;
    		pulse_2=0;
    	}	
    	if(pulse_1==166)
    	{
    		pulse_1=0;
    		pulse_2++;
    	} 
    					// сам USART
    	if(RCIF)
    	{
    		index=RCREG;				  // Читаю первый char (индех)
    						massiv[index]=RCREG;	  // Читаю второй char (значение)
    		TXREG=index;				   // Отсылаю эти значения назад просто для визуальной проверки правильности
    		TXREG=massiv[index];	   // Отсылаю эти значения назад просто для визуальной проверки правильности
    	}		
    }
    }

    Так вот отсылаю три раз подряд такое значения: индекс - 12; значение - 50.

    А PIC принимает какую то ерунду:

    1 раз:

    индекс - 12; значение - 12.

    2 раз:

    индекс - 50; значение - 12.

    3 раз:

    индекс - 12; значение - 50.

    Потом все повторяется заново. Я только начал в этом разбираться и не исключено что что-то напутал, но что понять не могу. Подскажите как надо. :unsure:

    PS: И еще один вопросик, по таймеру. Каждые 20 микросекунд срабатывает прерывание где проходит инкрементирование счетчика pulse_1. Когда pulse_1 доходит до 166 то он сбрасывается в ноль и инкрементируется счетчик pulse_2. Когда pulse_2 доходит до 6 то все сбрасывается в ноль и начинается заново. По расчетам от начала инкрементирования счетчика pulse_2 до его сброса снова в ноль должно быть где то около 20 милисекунд, а по осцилографу в PROTEUS-е получается 15 милисекунд. Я где-то туплю?

  6. Горячее выключение USB ничему не вредит (насколько мне помнится) это не LPT и не COM. Я свой PICKit2 уже миллион раз выдергивал так. А насчет того что прошивать... Вместе с программатором идет прошивка. Так же народ помнится говорил что прошивка для него есть на сайте микрочип. Но микруха ли это на самом деле?! :huh:

  7. Дело в том что в прескалере накапливается некое значение, и если его не сбросить то...

    Значит все таки лучше без прескалера... :huh: А как к этому значению обратиться и сбросить его, оно же ведь где то хранится?

    И еще один вопрос (глупость может быть ну да ладно) для сервотестера на 20 серво машинок PIC16F877A пойдет или лучше взять PIC18? А то мой справляется что то плохо, как будто подвисает иногда.

  8. Народ хотите прикол?

    Преамбула...

    Четвертый день подряд мучаюсь с таймером на PIC. Все даташиты излазил и ничего. Программу переписывал раз 10, вылизал ее так что была как котовы яйца. И тут увидел этот пост и решил сюда за советом обратиться, а заодно и подучиться. И вот что я собирался написать -

    Хорошая тема! Я начинающий, хочу освоить PIC-и. В наличии: комп, MPLAB, макетная плата, PIC16F877A с вшитым бутлодером, кварц 20МГц и куча проводов. Прошиваю через COM-порт и MAX232. Купил недавно PICKit, но пока не разобрался, так что по старинке. Прошивки пишу на Си в HI-TECH PICC. Решил разобраться с TMR0. Написал программку, ШИМ. На порт B выдается сигнал: (объяснять долго, поэтому нарисую).

    Просчитал вроде бы все правильно, все перепроверил, поставил задержку, но ничего не работает. Точнее работает, но сигнал толи больше толи меньше, в общем не тот который нужен.

    Цвет изменил модератор Lexi, не надо выделять красным то что можно прочитать черным. Устное предупреждение.

    Ну и собственно сам прикол...

    Вставляю код своей программы и начинаю его кромсать (удаляю закоментированные строки, банальные коментарии, короче всякую ересь). А сам того не замечая правлю код. Там сям подправил и ЗАРАБОТАЛА :lol: Вот я болван :lol:

    Можно сразу вопрос? Я слышал что таймер без прескалера точнее работает, а с прескалером надо поправку вносить. Это так или это глупость?

  9. Мне кажется что для универсальности нужно делать не одну плату, а три - четыре. Тоесть вся конструкция (электроника) должна быть модульной, один большой главный модуль на котором будет центральный проц, скорее всего интерфейсы какие нибудь для связи с компом и программирования (USB, RS232,...), может быть радио связь или что то похожее, чтобы кучу проводов не таскать за собой. И куча модулей расширения: управление серводвигателями, управление простыми двигателями, датчики, камеры, модули для питания робота (стабилизаторы и прочее...). Наверное вот как то так...

  10. А не проще будет набрать 6В из Ni-MH аккумуляторов, запитать напрямую от него сервы, а для электроники сделать стабилизатор на 5В с фильтром и прочим прочим и тоже цеплять его к этому же аккумулятору? Я понимаю прекрасно что лучше два питания, но ведь это утяжеляет конструкцию (li-po в расчет не берем. во-первых, у меня его нет, во-вторых, с зарядкой гемор и наконец, его фиг разберешь). Тут просто вот какой момент, я заметил то без сигнала мои сервы потребляют ток до 2А, что если вдруг питание электроники сдохнет, это тогда с какой силой сервы напрягут аккумулятор?! Или я что то путаю? А тут тогда получается что все выключится одновременно.

    Да, еще попутный вопрос если брать Li-po и делать по аналогии как у этого мужика то какой аккумулятор лучше взять и какую зарядку к нему посоветуете? И стабилизатор?

    Я смотрел вот эти:

    http://www.hobbycity.com/hobbycity/store/u...?idProduct=6452

    http://www.hobbycity.com/hobbycity/store/u...?idProduct=4319

    http://www.hobbycity.com/hobbycity/store/u...?idProduct=6320

    http://www.hobbycity.com/hobbycity/store/u...?idProduct=6233

    http://www.hobbycity.com/hobbycity/store/u...?idProduct=7028

    http://www.bruckversand.de/cgi-bin/lshop.c...ellenspannungen

    http://www.hobbydirekt.de/Akkus/Lithium-Po...135::74469.html

  11. На просторах инета набрел на форум http://www.lynxmotion.net/viewtopic.php?t=...c&start=270 где увидел похожего робота. :blink: Только я вот не пойму никак нафига ему было использовать два источника питания, сервы питать от Li-po, а элетронику от батарейки? Запитать от одного источника нельзя что ли? И на фига два регулятора? :huh: Толи я совсем дурак, то ли чего то немного не понимаю. Хотел у автора спросить, но там форум какой то долбанутый, все мои адреса почтовые забанил ни стого ни с сего :angry:

  12. Раму для машинки лучше вырезать из алюминия, толщиной где-то 2-3мм (можно из профиля). Он легкий и прочный, и обрабатывается легко. На поворот лучше поставить сервомотор (так надежнее, проще и точнее будет, а главное легче). Конструкции можно поискать в инете. Вот например http://www.rcdesign.ru/articles/auto/hm_chassis помоему ничего шасси :huh:http://www.rchobby.ru/rchobby/old_news.html http://www.rcdesign.ru/articles/auto/monsters_intro http://forum.rcdesign.ru/index.php?automod...blogid=507& Чертежи подвески ты врятли где найдешь и даже на форумах по этому делу спрашивать бесполезно потому что там сидят одни умники которые ничего тебе не скажут, так что остается только смотреть по фоткам и по руководствам сборки http://www.hpieurope.com/instructions.php?lang=en. Так что дерзай ;)

    P.S. У меня где то завалялся архивчик с кучей фоток самодельных машинок и деталей для них. Могу выслать. Я бы и здесь выложил, но он весит 2 мега

  13. Начало этой статьи уже о многом говорит - "Прежде всего - отбросьте мысли о самодельной аппаратуре! Даже если ваша фамилия - Маркони (Попов, Тесла, или Грюндиг), скорее всего вам не удастся создать приличный аппарат для авиамодели...".

    Может все таки делать начинку для самой модели (камеры там всякие, передачу видеосигнала, управление сервами и тд и тп), а пульт управления купить готовый? Купить готовый пульт, купить экран и мучится с ними (мучений даже уже с готовыми будет более чем достаточно). К тому же мы так и не выяснили что за устройство это будет и для чего оно нужно. Вертолет? Отбросьте идею о самодельном радиоуправлении сразу, а об управлении по камере и на большом расстоянии забудьте и никогда не вспоминайте, потому что камера должна смотреть вперед всегда, а не за девками. И если это все на самом деле для подглядываний делается то забудьте о бензиновом моторе, если конечно только вы подглядывать собираетесь не с высоты птичьего полета.

    P.S. К тому же с вертолета, с высоты, с фиговой камеры, на маленьком экране... Ну че там глядеть? Скажи ему лучше пусть девушку себе заведет ;)

  14. Да. Молодец

    Только вот ещё совет - нужно будет сделать провода к сервам немного по другому. Там стоят такие провода которые согнёш 200 раз и кранты ему... Ну и самое главное - Мозг Уже есть планы?

    Wowa, по поводу проводов что можешь посоветовать?

    Кстати, как там твои успехи с черным листом пластика, ты вроде тоже собирался что-то делать? Сервы нашел?

  15. Ты чего такой злой? :o

    Какого робота ты хочешь строить, можно немного поконкретнее? И как ты собираешься обрабатывать материал? Для роботов подойдет любой материал (фанера, оргстекло, аллюминий, пвх-пластик,...).

  16. Все по порядку :)

    Короче материал для тела я использовал ПВХ. Только есть мягкий ПВХ он гнется и пилится фигово, а есть жесткий ПВХ - этот не гнется и обрабатывается на ура. Сразу оговорюсь что все делалось в ручную и вырезалось с помощью ножевки по металлу. Заранее запаситесь полотнами для ножевки :D И напильниками с наждачкой. Сервы я брал Tower Pro MG995, короче самые дешевые какие есть, попозже как все будет работать на ура поднакоплю денег и возьму получше сервы (если в этих разочаруюсь :) ). Все получилось классно, сам очень доволен, но есть одно НО! Конструкция не совсем идеальна потому как вал сервов вставлен внатяг прямо в пластик. Сейчас прорабатываю конструкцию с алюминиевыми качалками и телом уже из аллюминия (хочу попрочнее сделать и полегче). Аллюминий буду уже вырезать на координатном станке. Если есть какие советы или легкая критика буду рад выслушать. По поводу начинки. Планирую поставить на него вот это http://robozone.su/mrc28/32-modul-servokon...-otkrytyjj.html , но хочу заточить его под PIC (с атмелом пока не имел дела). Но это для сервов, а так хочу поставить на него еще один котроллер который и будет мозгом, тоесть один будет отвечать за сервы, а другой будет отвечать за расчеты и все остальное. На ноги думаю поставить датчики давления (если найду подходящие). Ну и завершением будет CMOS видео камера, для нее уже проектирую голову :D .

    P.S. Если кому нужны чертежи пишите, поделюсь. Могу выслать по аське (номер аськи напишу только в личном сообщении, гопники и блондинки уже задолбали).

  17. Долго я мучался и трудился и вот чего у меня получилось. Пока не бегает, но ногами уже дергает :D Правда в процессе конструирования открылись новые подробности и данная конструкция будет дорабатываться, так что сейчас я снова в творческом настроении и занят поиском подходящих деталей и денег для них.

    P.S. Кое что уже заказал, скоро начну тюнинг :)

    post-50328-1216904867_thumb.jpg

  18. Почитал пост, стало жутко интересно чем все закончится :rolleyes:

    В вертолетах я к сожалению нифига не понимаю (ну если только принцип и то как управлять), сам я больше к роботам тяготею, особенно к шагающим. Я тут недавно наткнулся на интересную вещицу, некоторые ваши проблемы может решить

    http://ru.youtube.com/watch?v=Y4jtguSF0n4&...feature=related

    Немцы сварганили, называется - microdrone

    Для подглядывания как раз самое оно ;)

    Но опять же без спомогательных узлов не обойтись (это как пить дать) и первым таким узлом будет гироскоп (стоит не дешево).

  19. Если в плане нечего делать, то конечно можно.

    Если нечего делать то лучше смотреть телевизор, такие вещи от нечего делать не создаются! :angry:

    Любой колесный(гусеничный) вариант движителя на порядок превосходит простые схемы шагателей.Это очевидно.

    Колеса могут даже по ступенькам ходить.

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

    И еще.Если говорить о проходимости, то на болоте и воде колесо по практичее будет. Лапа увязнет...

    А как вам такое

×
×
  • Создать...