Пример виртуальной машины

Автор DI HALT
Опубликовано 28 июля 2010 
Рубрики: AVR. Учебный курс, Робототехника
Метки: , ,

Как то раз я описывал концепцию создания языка программирования для устройства. Который бы позволил запихать сложнейший алгоритм или последовательность действий в виде компактного скрипта.

Простой пример для чего это нужно — фрезерный станок с ЧПУ. И надо на нем выточить голову Сократа из цельного куска металла. Задача, на самом деле, не шибко сложная.

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

Другое дело если разбить программу на элементарные операции, вроде “Резец вверх”, “резец вниз”, “шаг на n мм”, а прошивке скормить последовательность этих микроопераций в виде байт-кода или текстового скрипта. Как все серьезно упрощается. Да и попутно можно нашинковать Платона с Гераклом, было бы желание, да образец для копирования.

Т.е. у нас появился свой язык устройства, полностью отвязанный от аппаратной реализации и оперирующий только органами устройства. И вот тут, главное, не впасть в высокоуровневую прелесть и не начать изобретать универсального интерпретируемого языка аля JAVA для микроконтроллеров. В условиях ограниченных ресурсов это полный бред.

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

Ну, хватит воды, приведу пример того, что у меня получилось за вечерок курения в код. Код рабочий, но я там ничего не оптимизировал. Так, накидал чтоб работало, до ума доведете сами. Сделано все на базе ядра диспетчера. Я его уже описывал, поэтому работу его функций пояснять не буду
Читать полностью

Комментариев (32)

Колеса… колеса… Ноги! Во!

Автор DI HALT
Опубликовано 11 июля 2010 
Рубрики: Робототехника
Метки: ,

Главное его не красить в зеленый цвет, а то монтировками загасят.

Комментариев (32)

Кибергусеница

Автор Serafim
Опубликовано 03 июля 2010 
Рубрики: Робототехника

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

Итак, несколько слов об устройстве. Ниже приведена 3d моделька девайсины.

В основе робота сервомашинки Futaba S3003 - самые простые и дешевые, что удалось раздобыть на нашей кафедре (кафедра ТМ и М ЮЗГУ(КурскГТУ)). О том, что такое сервомашинка и как она работает у Вас есть отдельная статья на данном сайте, поэтому останавливаться на этом я не буду.
Читать полностью

Комментариев (50)

Робоконструктор Velleman Robotic Arm KSR10

Автор DI HALT
Опубликовано 22 июня 2010 
Рубрики: Робототехника
Метки: , ,

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

Это очередной робоконструктор — механическая рука с пятью степенями свободы. Velleman Robotic Arm KSR10
Штука довольно редко встречающася, т.к. на Ebay я нашел всего одного продавца и в exUSSR эта редиска слать не желает. Встречается в нескольких буржуйских магазинах и вроде бы была в ЧиД, но оттуда была выкуплена нами :) Цена вопроса от 60…100 баксов.

Сам агрегат это очередная продвинутая игрушка, но для баловства и отработки алгоритмов нам больше и не требуется. Читать полностью

Комментариев (62)

Контроллер маломощного униполярного шагового двигателя

Автор dzed
Опубликовано 26 марта 2010 
Рубрики: Робототехника
Метки: ,

Предыстория
Понадобилось мне прошлой осенью восстановить измерительный стенд. Одна из главных частей стенда — система протяжки лески с закрепленной на ней трубочке сквозь СВЧ-резонатор (это такая медная банка весом 20-30 кг). Причем протяжка должна осуществляться периодически с фиксацией положения (на 1мм подвинул, остановился, подождал секунду, ещё на 1мм подвинул, и так далее). Естественно сразу возникла мысль о шаговом двигателе (ШД). Но как им управлять? Разобрался. Начал искать схемные решения - биполярными двигателями сложно управлять, поэтому выбор пал на униполярный. Был приобретён кЫтайский моторчик под названием
MOTS1 (ST28), который в России продаётся Velleman`ом

Купленный моторчик оказался без какой-либо документации. В интернете — тоже почти ничего. Позже экспериментально нашёл необходимую последовательность управляющих сигналов.
Читать полностью

Комментариев (55)

Виртуальная машина и байт код

Автор DI HALT
Опубликовано 19 Фев 2010 
Рубрики: Робототехника
Метки: , ,

Часто требуется делать большие последовательности сложных операций — например полетное задание для робота. Да, можно запихать все это дело в основную программу, но вдруг что то пойдет не так как надо и алгоритм надо будет переделать — придется переделывать всю программу.

Тут на помощь придет виртуальная машина. Суть в чем — в памяти контроллера, в основную программу, занесены основные процедуры управления устройством. Если это робот, то это могут быть такие простые команды как “вперед”, “назад”, “повернуть” и так далее.

Дальше мы увязываем это все в таблицу переходов, где у каждой команды будет номер-смещение.

Потом нам нужен обработчик скриптов, который бы брал откуда нибудь, нашу последовательность действий — скрипт и преобразовывал это в вызовы реальных кусков кода -микрооперации.
Обработчик скриптов может быть той же самой задачей диспетчера, запущенной фоном. А откуда он будет брать данные неважно. Их вполне можно засасывать по usart или тащить из EEPROM памяти. А можно загнать на IIC память и получится сменный картридж :)
Читать полностью

Комментариев (82)

Робоконструктор POP-BOT

Автор DI HALT
Опубликовано 01 Ноя 2009 
Рубрики: Робототехника
Метки: , ,

Снова Элемент порадовал новым робоконструктором. Опять от Innovative Experiments. На этот раз это POP-BOT.

Выглядит почти точно также как и MICROCAMP и шасси сходное, а вот начинка несколько иная. Читать полностью

Комментариев (100)

Мотор-редукторы IE-BO2-120M и IE-BO2-48M

Автор DI HALT
Опубликовано 19 Окт 2009 
Рубрики: Робототехника
Метки: , ,

Фирма Inex Global кроме робоконструкторов барыжит еще и прикольными мотор-редукторами. Теми самыми, что стоят в Robopica и Microcamp. В Челябинск их периодически таскает Элемент. Я прикупил парочку на пробу, есть у меня одна задумка на их счет, но об этом несколько позже ;)

Пока же расскажу о самом движке. Бывают они двух моделей IE-BO2-120M и IE-BO2-48M, отличаются друг от друга передаточным отношением редуктора 1:120 и 1:48.

Больше ничем, отличить 120 от 48 визуально можно только по цвету кожуха. У 120 кожух черного цвета, у 48го белый. У меня сейчас в наличии только два 48ых.
Читать полностью

Комментариев (77)

Робоконструктор MicroCamp

Автор DI HALT
Опубликовано 06 Сен 2009 
Рубрики: Робототехника
Метки: , , ,

В Элементе появилась очередная игрушка, так что я не устоял и подорвался туда с фотиком.
Итак, это робоконструктор, подобный RoboPICA, но на этот раз на ATmega8 и колесном шасси. Этакая вертлявая каракатица на двух колесах и двух шариках, поворачивает по тракторному — реверсом колес. Проходимость у ней, конечно, не танковая, но зато по маневрености она гусеничному шасси огромную фору даст. Читать полностью

Комментариев (146)

Вот жеж нифига себе! Пора готовиться к войне?

Автор DI HALT
Опубликовано 31 Авг 2009 
Рубрики: Новости, Робототехника

Интересно какой момент развивают привода? Видно что там конические шестерни и скорей всего малоинерционные роторы. А также любопытно сколько это все жрет тока.

З.Ы.
В свободное время потихоньку крою план для лазерной нарезки частей манипулятора о 6 степенях свободы. Будет у моей платформы клешня =)

Комментариев (88)

Русская инструкция на робоконструктор RoboPica

Автор DI HALT
Опубликовано 26 Авг 2009 
Рубрики: Начинающим, Робототехника
Метки: ,

Помните я обещал русский мануал к RoboPica? Так вот, я не успел и конструктор смели с прилавков быстрей чем я договорился выцыганить книжку на сканирование. Однако Bschepan, один из довольных обладателей этой игрушки, сделал доброе дело и выложил скан упиханый в DejaVu.

Русская инструкция на робоконструктор RoboPica

Рекомендую всем кто начинает раскуривать контроллеры PIC. Там все довольно подробно расписано на примере компилятора MicroC от Микроэлектроники.

Комментариев (8)

Сервомашинка HS-311

Автор DI HALT
Опубликовано 08 Авг 2009 
Рубрики: Робототехника
Метки: , , ,

PLC похачил, защита там оказалась даже не детской — идиотской, пароль шел от PLC в комп открытым текстом и сверялся с введеным уже в софте. Так что RS232 сниффер это наше все :) Рубанул капусты и решил ее куда нибудь потратить. На глаза попалась сервомашинка HS-311. Вот и прикупил ее показать что это за зверь.

Серва это краеугольный камень механики радиоуправляемых моделей, а последнее время и домашней робототехники. Представляет собой небольшой блок с двигателем, редуктором и схемой управления. На вход сервомашинки подается питалово и управляющий сигнал, задающий угол на который надо выставить вал сервы.

В основном все управление тут стандартизировано (если есть тут RCшники, то может добавите свои пять копеек?) и сервомашинки, по большей части, различаются усилием на валу, быстродействием, точностью управления, габаритами, весом и материалом изготовления шестеренок. Цена колеблется от 200-300 рублей за самую дешевую и до бесконечности за ультрамегатехнологичные девайсы. Как и в любой фанатской области, верхняя планка цен тут не ограничена и наверняка под потолком в ход идут какие нибудь шестерни из перфорированного титана и карбоновые корпуса с обратной связью через миллионимпульсный оптический энкодер =) В общем, всегда можно чем нибудь померяться.

Я же не стал выпендриваться и взял пока самую дешевую, самую распространенную HS-311. Тем более у меня уже есть планы по ее переделке.
Характеристики HS-311

Читать полностью

Комментариев (92)

Робоконструктор Robo-PICA

Автор DI HALT
Опубликовано 10 июня 2009 
Рубрики: Робототехника
Метки: , ,

В Челябинском Элементе появилась прикольная вещь — робоконструктор Robo-PICA. Пользуясь моментом, пришел туда с фотиком и зафоткал все содержимое коробки, а потом выложил на всеобщее обозрение.

кликабельно — больший размер

Дальше будут в основном фотки с моим кратким описанием.
Читать полностью

Комментариев (46)

Робот на контроллере PIC от SWG. Часть 3

Автор DI HALT
Опубликовано 31 Окт 2008 
Рубрики: Робототехника
Метки: , , , ,

Тем временем, в Казахстане ударными темпами продолжается разработка киборга оригинальной конструкции на базе контроллера PIC, о чем SWG очень активно отписывается в комментарии к постам о своем роботе.

О ходе работ можно почитать в записях ать и два и, главное комментариях к ним

Попутно скидывая мне мылом некоторые свои наработки.

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

Под бамперами будет крепиться пластина толщиной миллиметров 10 из довольноплотного поролона или даже микропористой резины, пока еще не решил, пробую разные материалы. Надо чтобы был мягкий, но не очень. Будет выступать запределы плат миллиметров на 10-15, защищая светодиоды подсветки и сами платы. Пока просто положил платы бамперов в коробку, чтобы показать общуюкомпоновку.

Определившись с размещением и креплением плат, сделаю соединительные шлейфики из МГТФ, оптимальной длины, чтобы зря не болтались,но и не в натяжку. Прикидываю также варианты, конструкцию и размещение датчиков одометров, и оборудования, которое будет установлено в будущем,чтобы по нескольку раз не переделывать.

На платах бамперов синие колодочки снизу - датчики пола с фоторезисторами ибелыми светодиодами подсветки. (Сделал из клеммников, слегка рассверлив их местами). Прозрачные светодиоды сверху - подсветка ИК локатора на TSOP(стоят посредине, вверх ногами).Черные кубики на внутренних углах - оптопары на отражение датчиков столкновения. Над ними к боковым стенкам будуткрепиться угольники - шторки с белой областью на черном фоне или отверстием определенной формы.

Когда уже платы были готовы, подумал, что можно было припаять оптопары не сверху, а снизу платы, и нарисовать нужные фигуры прямо на дне коробки. Вообще - то это и сейчас еще не поздно сделать, пока еще не решил. Тем более, что в библиотеку я по запарке тоже занес их зеркально, и при запайке пришлось загнуть ноги под ними для правильной распайки, а снизу они встанут правильно. В общем, накопилась куча мелочей, на обдумывание которых бесполезно уходит время. (”Тирания альтернатив”). С пересылкой состояния датчиков тоже вроде все просто, но когда начинаешь добавлять кучу всяких защит от всего, и проверок правильности функционирования, все обрастает, как снежный ком, постоянно приходится все проверять на возможные и невозможные ситуации, чтобы все нормально отрабатывало. Слишком велика будет цена падения, например, в открытый люк, а постоянно закрывать все дырки и двери - тоже не выход… Но и сильно перестраховавшись, можно вообще никогда не стронуться с места.

Читать полностью

Комментариев (48)

Ультразвуковой дальномер

Автор DI HALT
Опубликовано 24 Окт 2008 
Рубрики: Робототехника
Метки: , , ,

Подключенный сонар
Подключенный сонар

Вот прикупил я для своего робота ультразвуковой дальномер — Maxbotix LV-MaxSonar EZ1. На днях ко мне пришла посылка из Терраэлектроники, где сей замечательный девайс был куплен. Сам сонар стоит под 750 рублей, доставка обошлась в 800 :) Но я заказывал кучу всего вкусного, так что оно того стоило. Несмотря на нехватку времени, не побаловаться этой игрушкой я не мог. Итак, встречайте краткий тест системы.

Описание:
Девайс представляет из себя головку излучателя с платой контроллера на заднице. Контроллер собран на базе PIC16F676 и микросхемы LM324. Схема сонара указана в даташите, а прошивку в итоге можно и самому написать, так что рано или поздно я повторю его на AVR :) Тем более где то я эту схему уже видел… Впрочем, схема тут не важна, УЗ сонаров как грязи разработано умельцами, самое главное тут это излучатель, вот его найти задачка та еще. Я применил MaxBotix’овский пьезоизлучатель. И если цена готового модуля почти 800рублей, то сама пищалка стоит всего 150 рублей.

Читать полностью

Комментариев (62)

Робот на контроллере PIC от SWG. Часть 2

Автор DI HALT
Опубликовано 01 Окт 2008 
Рубрики: Робототехника
Метки: , , ,

Предварительная версия схемы
Предварительная версия схемы
Тем временем, SWG продолжает совершенствовать своего робота. Структурно его конструкции похожа на моего робота — тоже раздельные специализированные контроллеры. Недавно он прислал мне схему контроллера датчиков/ИК буфферов. Короче глаза и прочие сенсоры. А также наброски кода для управления всем этим добром. Респект!

Хы, надо сказать я несколько отстаю в разработке :) Он уже за датчики взялся, а у меня пока только ходовая отлаживается… ничо ничо, вот щас с заказами разберусь и закажу себе УЗ сонары :)))) А там еще посмотрим кто первый в космос полетит :)

SWG:
Оперативную связь с ходовым контроллером планирую с использованием в обоих контроллерах линий портов B0, B1, с задействованием внешнего прерывания по B0. Кроме того, у контроллера буферов будет также выход на межмодульную шину I2C, для связи с центральным процессором, а иногда и с ходовым контроллером, (для несрочных операций, типа уточнения местоположения препятствия, диагностики исправности датчиков и т.д.) На всякий случай вывожу на разьем также неиспользуемые линии портов, в т.ч. и USART (на всякий случай, в первую очередь для отладки). В качестве датчиков столкновений пока нарисовал микрики, но ставить скорее всего буду все же оптопары, что лучше будет отрабатывать толчки с разных направлений, но потребует дополнительных резисторов для CD подсветки, и желательно управление ей. Свободные линии портов для этого еще есть. На всякий случай (для отладки, а также наглядности работы буфера, и облегчения настройки локаторов, на A4 хочу поставить сигнальный светодиод. (при подачи тока на него он светится разными цветами, переключая их по очереди).

Бонусом в архиве идет доработанная программа ходового контроллера:

Описание ходовой части. Обратите внимание на комменты к посту, в них автором расписана большая часть подробностей и идей по дальнейшему развитию.

Комментариев (41)

Робот на контроллере PIC от SWG

Автор DI HALT
Опубликовано 17 Сен 2008 
Рубрики: Робототехника
Метки: , , ,

Камрад SWG решил тоже побаловаться самобеглыми тачанками. И достал с антресоли давнюю разработку.

SWG:
Глядя на вашу бурную активность, я тоже решил шевельнуть ластами. Достал со шкафа сделанную еще в 2006г простенькую тележку (к коробке от CD-ROMа прикручены 2 самодельных колеса, 2 движка ДПМ-25-Н1-7Т с редукторами (27v, но неплохо тянут уже при 12, надо будет больше - сделаю преобразователь 12->27), и самодельный поворотный узел с роликом (третье колесо).

Потребление от 12v: 33 мА при выкл. двигателях, при макс. скорости без нагрузки (колеса не касаются пола) = 103 мА вперед, 115 мА назад. При одном заклиненном колесе - 300 мА, при обоих заклиненных колесах = 500 мА.
L293DN чуть теплая. Будет греться - приклею радиатор. Да, частоту ШИМ взял пока 500 Гц. (период 2 мс). Померяю скорость нарастания тока в двигателях - определю более оптимальную (За самый короткий импульс ток в двигателе должен успеть достигнуть максимума).
Максимальная скорость движения по полу сейчас 15-20 см/сек. Больше мне пока ни к чему, слишком быстро будет комнату пробегать. Диаметр колес = 80мм (резиновые “бублики” вроде от какой-то сантехники, полно на базаре).

Честно говоря, я был сильно удивлен когда нагуглил характеристики движка ДПМ. Почти все они, несмотря на весьма брутальную конструкцию, жрут довольно мало. Так что даже L293 их спокойно тянет. При этом они отличаются вполне сносным моментом и оборотами.
Читать полностью

Комментариев (60)

Управление шаговым двигателем

Автор DI HALT
Опубликовано 10 Сен 2008 
Рубрики: Робототехника
Метки: ,

Первая модификация. L293 вытащена.
Первая модификация силового блока. L293 вытащена.
Вид снизу
Вид снизу
Рано или поздно, при постройке робота, возникнет нужда в точных перемещениях, например, когда захочется сделать манипулятор. Вариантов тут два — сервопривод, с обратными связями по току, напряжению и координате, либо шаговый привод. Сервопривод экономичней, мощней, но при этом имеет весьма нетривиальную систему управления и под силу далеко не всем, а вот шаговый двигатель это уже ближе к реальности.

Шаговый двигатель это, как понятно из его названия, двигатель который вращается дискретными перемещениями. Достигается это за счет хитрой формы ротора и двух (реже четырех) обмоток. В результате чего, путем чередования направления напряжения в обмотках можно добиться того, что ротор будет по очереди занимать фиксированные значения.
В среднем, у шагового двигателя на один оборот вала, приходится около ста шагов. Но это сильно зависит от модели двигателя, а также от его конструкции. Кроме того, существуют полушаговый и микрошаговый режим, когда на обмотки двигателя подают ШИМованное напряжение, заставляющее ротор встать между шагами в равновесном состоянии, которое поддерживается разным уровнем напряжения на обмотках. Эти ухищрения резко улучшают точность, скорость и бесшумность работы, но снижается момент и сильно увеличивается сложность управляющей программы - надо ведь расчитывать напряжения для каждого шага.

Один из недостатков шаговиков, по крайней мере для меня, это довольно большой ток. Так как на обмотки напруга подается все время, а такого явления как противоЭДС в нем, в отличии от коллекторных двигателей, не наблюдается, то, по сути дела, мы нагружаемся на активное сопротивление обмоток, а оно невелико. Так что будь готов к тому, что придется городить мощный драйвер на MOSFET транзисторах или затариваться спец микросхемами.

Типы шаговых двигателей
Если не углубляться во внутреннюю конструкцию, число шагов и прочие тонкости, то с пользовательской точки зрения существует три типа:

  • Биполярный - имеет четыре выхода, содержит в себе две обмотки.
  • Униполярный - имеет шесть выходов. Содержит в себе две обмотки, но каждая обмотка имеет отвод из середины.
  • Четырехобмоточный - имеет четыре независимые обмотки. По сути дела представляет собой тот же униполярник, только обмотки его разделены. Вживую не встречал, только в книжках.
Униполярный отличается от биполярного только тем, что ему нужна куда более простая схема управления, а еще у него значительно слабее момент. Так как работает он только половинами обмоток. НО! Если оторвать нафиг средний вывод униполярника, то мы получим обычный биполярный. Определить какой из выводов средний не сложно, достаточно прозвонить сопротивление тестером. От среднего до крайних сопротивление будет равно ровно половине сопротивления между крайних выводов. Так что если тебе достался униполярник, а схема подключения для биполярного, то не парься и отрывай средний провод.

Где взять шаговый двигатель.
Вообще шаговики встречаются много где. Самое хлебное место - пятидюймовые дисководы и старые матричные принтеры. Еще ими можно поживиться в древних винчестерах на 40Мб, если, конечно, рука поднимется покалечить такой антиквариат.
А вот в трехдюймовых флопарях нас ждет облом - дело в том, что там шаговик весьма ущербной конструкции — у него только один задний подшипник, а передним концом вал упирается в подшипник закрепленный на раме дисковода. Так что юзать его можно только в родном креплении. Либо городить высокоточную крепежную конструкцию. Впрочем, тебе может повезет и ты найдешь нетипичный флопарь с полноценным движком.

Схема управления шаговым двигателем
Я разжился контроллерами шаговиков L297 и мощным сдвоенным мостом L298N.

Читать полностью

Комментариев (108)

Контроллер шасси

Автор DI HALT
Опубликовано 24 Авг 2008 
Рубрики: Робототехника
Метки: , , ,

Шасси в сборе
Шасси в сборе
Как и обещал, выкладываю силовую часть робота. Она уже встала в шасси на боевое дежурство, так что больше изменений не планируется.

Блок питания.
У нас же стоит свинцовый аккумулятор на 12 вольт, а контроллеру нужно 5 вольт. Вот я и сварганил импульсный блок питания. Можно было, конечно, поставить какой нибудь LM7805 (как у меня на макетке) и на нем сбросить напряжение, но это тупой метод. Дело все в том, что разницу напряжений LM7805 отрыгнет в виде тепла. Так что КПД данного девайса будет ниже 50%, а питание у нас батарейное. Так что выход один — это DC-DC преобразование. В качестве контроллера взял проверенный временем, популярный, доступный и дешевый MC33063A. Изобретать ничего не стал и взял типовую понижающую схему (Step - Down) из его даташита. Как работает схема этого блока питания я расскажу несколько позже, отдельным постом. После выхода статьи в “Хакер”, где я толкнул статью про источники питания.

Читать полностью

Комментариев (146)

It’s a live!!! It’s a live!!!

Автор DI HALT
Опубликовано 22 Авг 2008 
Рубрики: Робототехника
Метки: , , ,

Так камрады, сварганил таки контроллер шасси. Пока он практически на 100% повторяет макетную плату. Оно и понятно, макетка делалась для отладки шасси. Теперь вместо унылых лампочек драйвер L293, питание от аккумулятора с DC-DC преобразователем 12->5 вольт. Вроде бы все работает, кроме одометров. Буду разбираться где косяк, когда все отлажу выложу схему, печатную плату и подробнейшее описание каждого элемента схемы. Ориентировочно, это будет сегодня вечером или завтра днем.

Пока же можете полюбоваться на работу монстра в деле. Прога из второго примера - едем до касания передними датчиками, потом сдаем назад на 30 оборотов редуктора. Правда не работает одометр поэтому спустя 30 оборотов колеса он не останавливается. Но это мелочи, поправлю. Заранее извиняюсь за отвратное качество видео. В таком формате пишет моя говномыльница.

Может кто посоветует еще прогу которой можно пережать видео в два клика? Просто сделать размер поменьше, может формат сменить. Что нибудь тупое и простое, разбираться в тонкостях мега софта мне сейчас совершенно некогда.

Комментариев (13)

Раньше →


Материалы сайта являются авторскими. Копирование и публикация материалов без активной ссылки на первоисточник запрещено.

Реклама: