03 Июня 2017

Ремонт лонг борда

В общем собрал я себе лонгборд..

И на 3й раз он малек сломался пополам( дерево по ходу не вынесло мою 85 кг тушку

Но не выкидывать же) понес к мастеру и вот чего сотворили.
1) вырезали по форме сломанного места из 2мм стали лист

2) Зацентровали

3) с помощью струбцины подогнули метал под форму и нафигачили стяжки болтам

4) пильнули болты

5) ну и в итоге вот яего получилось

Доска конечно стала потяжелее , но едет нормально
стабильно ) и докатать пока жду новую хватит)

Показать полностью 9
14

С чего начать изучение FPGA. Часть 1.

Некоторое время назад я выкладывал проект простенького приёмника UART, для того чтобы показать на что похож процесс проектирования на ПЛИС. http://pikabu.ru/story/prostenkie_primeryi_na_plis_uart_chas...

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


В программировании обычно самая первая написанная программа это программа, которая выводит на консоль фразу “Hello world!”. Вот и мы не будем далеко уходить от канонов.

А что же такое “Hello world!” в железячном исполнении? А в железячном исполнении – это фиговина, которая будет моргать светодиодом. Вот мы с вами и опишем на языке VHDL схему, которая будет моргать светодиодом.


Период моргания 2 секунды, т.е. 1 секунду светодиод горит, 1 секунду не горит, потом опять 1 секунду горит, потом опять не горит. В общем вы поняли, он будет моргать до опупения пока нам это не надоест.


Итак, запускаем Quartus. Что? Вы ещё не скачали Quartus и Modelsim?

Тогда мы идём к вам! Тогда качайте незамедлительно! Это будет ваше первое задание на пути освоения программируемой логики. Хе хе хе. И оно не такое простое, как кажется, от вас требуется СМС и регистрация. Шучу. Только регистрация.

Итак запускаем Quartus и выполняем команды

FILE --> NEW. Подсказка: команду FILE можно найти вверху справа. Только не на потолке, а в углу экрана монитора.

Должно появиться такое вот меню:

В нем тыкаем мышкой на слово New Quartus II Project, расположенное в самом верху этого меню. Тыкать надо не мышкой в монитор, а плавно наводим курсор мышки на строку New Quartus II Project и нажимаем левую кнопку мышки ОДИН раз.

Должна появиться такая вот менюха:

Тыкаем мышкой на NEXT

И видим такую вот менюху:

В верхней строчке (та, которая сверху) указываем папку, где будут храниться файлы нашего проекта. Очевидно, что они хранятся по пути C:/altera/13.1/PROJECT/HELLO_WORLD

Средняя строчка (та, которая межу верхней и нижней строчкой) – это название нашего проекта. У меня проект назван HELLO_WORLD.

Нижняя строчка – это имя файла верхнего уровня. В общем, не паримся и тоже пишем HELLO_WORLD. Затем, когда ваше меню выглядит также как и у меня (нет редактировать в Paint его не надо) тыкаем на кнопку NEXT. В следующем меню также тыкаем кнопку NEXT. И у нас должно появиться такое вот меню:

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

В следующей менюхе опять ставим настройки как у меня:

В настройках мы говорим, что моделирование у нас будет проводиться программе Modelsim, язык для моделирования – VHDL.

И наконец, жамкаем клавишу FINISH.


Всё, один из самых нудных мышкокликательных этапов мы закончили.

Теперь среда разработки готова к полноценной работе.

Но для начала, немного теории, как нам написать наш железячный Hello world.

В первую очередь необходимо придумать, как отсчитать периоды по 1 секунде.

В схемотехнике для счета чего-либо обычно используется счетчик (удивительно не правда ли?). А что же будет считать наш счётчик?

А считать он будет такты от тактового генератора.

К примеру, наш тактовый генератор, работает на частоте 100 MHz или 100 000 000 Герц. Это значит, что каждый раз как счетчик отсчитает от 0 до 99 999 999 (как раз 100 000 000 тактов) пройдет 1 секунда времени.


Далее должна быть схема сравнения, которая смотрит за состоянием счетчика. Как только счетчик досчитал до 99 999 999, схема сравнения должна выдать сигнал о том, что счетчик отсчитал период в 1 секунду.


Ну и последнее устройство - устройство, которое каждый раз как схема сравнения показала, что счетчик отсчитал 1 период, меняла состояние светодиода на противоположное. По сути – это обычный D-триггер с сигналом разрешения работы и соединенным входом и выходом через инверсию.

Каждый раз как триггеру разрешена работа (когда счетчик досчитал до 99 999 999), он меняет свое состояние на противоположное.


Вам наверное показалось, что объяснение сложное ? Какие-то схемы сравнения, триггеры, счетчики. Но на самом деле, на языке HDL все это дело выглядит очень компактно и просто. Вот картинка, поясняющая принцип работы нашего устройства:

Я все это писал, для того, чтобы было понимание, как наше устройство реализуется схемотехнически. Поскольку основная задача при работе с ПЛИС – описать схему. Поэтому крайне важно понимать то, что мы описываем языком, и как это реализуется внутри ПЛИС.


Собственно давайте опишем нашу схему на языке VHDL. Для этого создадим файл куда мы будем писать наш проект. Для этого тыкаем мышкой:

FILE --> NEW --> VHDL FILE --> OK

У нас создаться текстовый файл, куда мы будет писать проект.

Сохраним пустой файл:

FILE --> SAVE AS --> СОХРАНИТЬ

Обычно программа сама присваивает файлу название файла верхнего уровня. У нас это HELLO_WORLD.

Ну и наконец описываем нашу схему на языке VHDL:

И запускаем наше текстовое описание схемы на проверку ошибок и возможности синтеза внутри ПЛИС:

PROCESSING --> START ANALYSE & SYNESYS

Вылезли ошибки? Ищем очепятку. У меня всё работает(ну кто бы сомневался)!

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

Для этого тыкаем мышкой:

TOOLS --> NETLIST VIEWERS --> RTL VIEWER

И вот что мы там видим:

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

На самом деле у нас сейчас написан мега-быдло-код. Это я для учебных целей разделил все на функциональные блоки, чтобы вам было проще понять описание схемы (какой я молодец).


На самом деле этот же код можно записать вот так, и не поменяется ровным счетом ничего:

По большему счету проект закончен. И можно генерировать прошивку, прошивать ПЛИС и наша ПЛИС будет усердно мигать нашему миру светодиодом.


А если светодиод не будет мигать? Как определить работоспособность проекта до прошивки ПЛИС? Вот для того, чтобы определить работоспособность нашего проекта существует программа Modelsim. В ней мы можем виртуально запустить наш проект, подключить виртуальный кварцевый генератор, и выводить сигнал на виртуальный светодиод. Мы даже можем смотреть на состояние внутренних триггеров, если нам это надо.

Но вот беда, Modelsim не знает, как должна работать схема. И он тем более не знает, что должно подаваться на вход нашей схемы. Задача разработчика написать такой файл, который моделирует внешнее окружение нашей схемы. Т.е файл, который задает внешние воздействия. Данный файл называется testbench – испытательный стенд.

Как правильно проводить тестирование это отдельная статья. Да какая нафиг статья! Правильное тестирование - отдельная прикладная область в разработке. Но в нашем случае ничего сложного нет: в тестбенче должен генерироваться синхросигнал и подаваться на вход нашей схемы.


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

Чтобы создать тестбенч необходимо поклацать мышкой:

PROCESSING -->START -->START TEST BENCH TEMPLATE WRITER

Далее необходимо добавить наш тестбенч в проект для этого клацаем

ASSIGMENTS --> SETTINGS

И следуем указанием на картинке:

Ну как, мышь не поломалась от бесконечного клацания ?

Теперь запускаем симуляцию:

TOOLS --> RUN SIMULATION TOOL --> RTL SIMULATION

У нас запускается Modlesim и на экране монитора появляется страшная НЕХ:

Не пугайтесь, это крайне недружелюбный интерфейс Modelsim, с которым разработчик проводит достаточно большую часть времени…

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

C:\altera\13.1\PROJECT\HELLO_WORLD\simulation\modelsim\HELLO_WORLD.vht

Откроем этот файл тестовым редактором и удалим из него ненужную нам фигню, и добавим нужную нам. В итоге, после всех нехитрых манипуляций тест наш выглядит так:

После того как подправили тест на тот, который нам нужен, запускаем перекомпилирование наших файлов проекта:

После того, как перекомпилировали проект можно запускать на симуляцию.

Для этого укажем, сколько времени симулировать наш проект и запустим её:

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

А вот и результаты нашего тестирования:

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

Как видите тест показывает, что устройство наше вполне работоспособно, работает так, как мы и задумывали !

Наш железячный “Hello world!” прекрасно работает. Правда виртуально. Осталось прошить ПЛИС и наш проект заработает в железе, можете не сомневаться.

Да что тут говорить, смотрите сами !

Синтезируем прошивку:

PROCESSING --> START COMPILATION

После того, как прошла компиляция входим в меню программирования ПЛИС:

TOOLS --> PROGRAMMER

Ну и запускаем программирование:

А вот видео работы. Снимал на старенький HTC сильно не пинайте:

Спасибо за прочтение. Все интересующие вас вопросы пишите в комментариях.

Показать полностью 17 1
714

Записки проводника. Китайка.

Проводникам категорически запрещено к прочтению во избежании взрыва пуканов.
Я правда старался, но ваших комментариев очень много,поэтому задавайте свои вопросы уже под этим постом,если они есть,есессно.
Просили рассказать подробнее про китайку. Тем,кто забыл,напомню,что китайкой у проводников называется нелегальное белье,вторичное. Деньги за него идут в карман проводнику,часть которых он отдает начальнику. Понеслась.
Вы,пассажир,можете купить постельное белье либо сразу с билетом,либо уже в вагоне у проводника. Стоимость в прошлом году была 133 рубля.
Существует два варианта комплектации наборов постельного,для вагонов купе и плацкартных. В плацкартный набор входит полотенце, две простыни, наволочка и памятка, которая гласит:"В случае надрыва пакета,белье должно быть чистое...." и так далее. В купейном наборе вместе одной из простыней идет пододеяльник,а все остальное такое же.
"А чё так не справедливо-то,а?". Да я не в курсе особо. Думаю,чтобы все 54 человека(именно столько мест в плацкартном вагоне)не мучились и не сотрясали воздух. Некоторым пассажирам пришлось бы помогать скомпоновать одеяло с пододеяльником. А потом, в конце поездки,очень много времени уходило бы у проводника на процесс разборки этой конструкции)
Ну,и экономия,есессно,куда ж без нее.
Постельное белье выдается вот в таких(подобных) пакетах(запомните эти пакеты,они ключевые)

Видимо,кто-то даже на авито продает эти комплекты)Дожили
Это и есть комплект. Белье поставляется на вагоны в мешках по 10 комплектов в каждом. Количество мешков зависит от дальности поездки соответственно. Иногда,в дальние рейсы,под белье отводят 53 и 54 места,потому что в нерабочем тамбуре к середине пути грязное белье уже не помещается,а там еще и чистое лежит порой.
Закинули(в прямом смысле. Ездить машинка с мешками и из нее закидывают вам в вагон). Мешки нужно проверить,чтобы в каждом было именно по 10 комплектов,потому что количество мешков строго блюдят. Если у тебя было 12 мешков,то и комплектов ты должен сдать в сумме 120(чистые+грязные).
Видели когда-нибудь маленьких девчонок-проводников,миниатюрных совсем. Ну,вот приходилось им помогать порой с мешками, потому что тяжеловаты эти мешки.
Перед посадкой комплекты белья раскладывают на столы.
Бывает такое,что в комплекте нет полотенца или надорвано что-то,порезано. Не стоит сразу думать:"Ага,вот она,китайка.Где тут телефон горячей линии?". Иногда такие ущербные комплекты бывают и без нашего вмешательства.
Едем. Пассажир захотел у меня купить белье,дает деньги,а взамен я должен выдать ему комплект и квитанцию об оплате. Квитанции в двух экземплярях,одну пассажиру,а вторую-начальнику по приезде в депо. Количество белье проверяется ревизорами в обязательном порядке.
Но бывает так, что начальник подмазывает ревизоров или просто знает,что не сядут на пути следования,и тогда можно делать китай(или китайку,кто как называет).
Из точки А мы прибыли в точку Б, но нам ведь нужно вернутся обратно в А. В точке Б проводник убирает вагон,вылизывает его и собирает оставшееся грязное белье.
В первую очередь мы искали ровно вскрытые пакеты,с торцевой части по одной поперечной линии, чтобы их можно было спаять.
Пайка пакетов происходит путем нагревания металлического предмета(я грел ручку чайной ложки) и быстрым движением проводится нагретой стороной поперек пакета,чтобы заделать брешь. Надеюсь,смысл понятен.
Мы ходили по составу и выбирали более менее сохранившееся белье. Не использовали вы одну простыню? Мы ее уже приметили и забрали. Не использовали полотенце? Спасибо)
"Ха!Я все использовал,всё помял,выкусите!". Ну,ничего. Использованное тоже берем. Поспали вы аккуратно на наволочке,без пятен и прочего, проводники снимают ее и выравнивают. Так же со всем остальным. Берется и гладится.
"Вы там и утюг с собой возите что ли для этих дел?". Нет, гладится все элементарно.

Вода разбрызгивается, руки вместо утюгов хлесткими движениями от центра к бокам ровняют вмятины. Все аккуратно складывается по пакетам и происходит пайка.
Вот почему иногда белье бывает мокрым. Такие дела.
"А что делать, если белье мокрое/порванное/с пятнами?". Идите к проводнику,попросите поменять. "Ой,да это нам такое дают,только с прачки",-ответят вам. Ну,шанс есть,тут уж не угадаешь,но скорее всего что-то тут нечисто.  Но мне никто не жаловался на белье,ни на какое)
Можете потребовать,в случае отказа сказать,что знаете,что эта китайка и позвоните на горячую линию,если не поменяют. Не поменяли? Можете сходить сначала к начальнику(он может быть и не в курсе того,что проводник делает китай,но обычно знает),проблема должна решиться. Не решилась? Можете звонить куда надо и просить к телефону кого надо. Реакция обычно молниеносная.
Да,я так тоже делал. Да,так делают все. Не всегда это происходит "потому что хочу больше бабла",порой нужно давать оброк начальнику поезда на всякие проверки,а свои не хочется отдавать.Приходится выкручиваться такими способами.
Грязные не берем,конечно.Я не брал. Лишь в идеальном или близко к идеальному состоянию. Потому что совесть не позволяет и потому что тяжело разглаживать.
"Да какая совесть у тебя,урод". Ну,я понимаю,как человек и пассажир, ваше негодование. Но вы не понимаете меня, как проводники. Вы не работали там. Приходится адаптироваться и успевать отстегивать деньги. Часть с каждого комплекта отдается начальнику поезда. У каждого свои условия. Кто-то 50 процентов забирает,а кто-то 50 рублей с комплекта.
Грязное белье в беспорядочном порядке скидывается в мешки из-под когда-то чистого белья,а по приезде обратно,в пункт А, сдается.
Вообще,грязное белье должны считать и недостачи вычитаются из зп. Не помню,что  и сколько стоило. В Питере считали только мешки, в Москве считали наволочки и полотенца.
Но лучше не терять белье. Поэтому,если прихватите с собой полотенце,выходя из вагона,проводник будет за него потом платить. Или делать китайку.

Показать полностью 3
66

Отдадим котёнка

Отдадим котёнка

Котёнок орал в подъезде, девушка его забрала хз что с ним делать, в квартире уже 2 кошки и собака.
Город Москва, район Митино.
Комментарий для минусов внутри.

Показать полностью 1
4

Странная история Джима Хаггорта (бриз ч.5.2)

Небольшое продолжение 5 части. Для вас мои 7 подписчиков, чтобы не томить долгим ожиданием.



Так вот немного о природе этой удивительной и красочной планеты, на долю которой выпала жёсткая участь видеть столько смертей и жестокости. Большая её часть была покрыта лесами, удивительно высоких деревьев, их высота, на вскидку, была как 9-этажный дом и при малейшем ветре их стволы сгибались и прижимались к земле. Виль говорил, что стволы этих деревьев являются очень крепкими, настолько, что готовы вытерпеть разрывы снарядов и с ними ничего не случиться. А если оказаться в таком лесу во время ветра, то можно смело расстаться с жизнью. На этой планете ветра случались крайне редко и здесь этот период назывался сезон ветров. Тогда какие-либо военные действия вести не представлялось возможным, так как передвигаться наземным транспортом было простым безумием. До сезона ветров оставалось около 2-х месяцев по земным меркам и 1 кварт по местным. Вообще весь период времени здесь делился на 10 квартов. 1 кварт равнялся 3 пармам. Т.е.в нашем понимании год длился не 12 месяцев, а 20 и из этих 20 - 2 месяца был сезон ветров. Во время наступления этого сезона велась исключительно тактическая работа и обучение солдат, разрабатывалась стратегия дальнейших боевых действий. Так вот пока до сезона ветров оставалось 2 месяца или вернее 1 кварт, я с Вилем решил прогуляться до ближайшего леса. Входя в лес мы вспугнули стаю довольно крупных птиц, они при взлете издали такой звук, чем-то похожий на отрывок из классической симфонии. Виль объяснил, что это были ультиции. Ультиции-это птицы, которые были основной живностью на планете и основой местной фауны, они имели довольно мясистое тело, что не осталось без внимания при их отловле. Их спины были покрыты панцерообразными перьями, которые их защищали в сезон ветров от деревьев и они без проблем передвигались в лесах, однако низ был слабо защищен, что позволяло их отлавливать и использовать в пищу. Так как они не имели природных врагов на этой планете их окрас был, конечно увидельно прекрасным, а именно ярко лиловым и бирюзовым, что позволяло их легко заметить издали, если они не сидели в траве. А само пребывание в лесу невозможно передать словами, когда сквозь стволы деревьев прорывались два солнца и их отблекси играли всеми цветами радуги на листе деревьев, словно листья были множеством бриллиантов. Потом я понял в чем дело, ведь из листвы этих деревьев делали отражатели или вернее сказать из их ближайших родственников окультивированных на других планетах скопления света.

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

Отличная работа, все прочитано! Выберите

Темы

Политика

Теги

Популярные авторы

Сообщества

18+

Теги

Популярные авторы

Сообщества

Игры

Теги

Популярные авторы

Сообщества

Юмор

Теги

Популярные авторы

Сообщества

Отношения

Теги

Популярные авторы

Сообщества

Здоровье

Теги

Популярные авторы

Сообщества

Путешествия

Теги

Популярные авторы

Сообщества

Спорт

Теги

Популярные авторы

Сообщества

Хобби

Теги

Популярные авторы

Сообщества

Сервис

Теги

Популярные авторы

Сообщества

Природа

Теги

Популярные авторы

Сообщества

Бизнес

Теги

Популярные авторы

Сообщества

Транспорт

Теги

Популярные авторы

Сообщества

Общение

Теги

Популярные авторы

Сообщества

Юриспруденция

Теги

Популярные авторы

Сообщества

Наука

Теги

Популярные авторы

Сообщества

IT

Теги

Популярные авторы

Сообщества

Животные

Теги

Популярные авторы

Сообщества

Кино и сериалы

Теги

Популярные авторы

Сообщества

Экономика

Теги

Популярные авторы

Сообщества

Кулинария

Теги

Популярные авторы

Сообщества

История

Теги

Популярные авторы

Сообщества