Пользователь пока ничего не рассказал о себе

Наибольший вклад в теги

Все теги (17)

Лучшие ответы пользователя

Все ответы (34)
  • Необходимые знания для embedded developer'a?

    @LampTester
    Начать хочу с самых ранних азов.


    Правильно. Если хотите стать профессионалом, начинать надо с базовой теории. "Нет царских путей в геометрию".

    Интересуют так же такие вещи как: стоит ли учится писать сценарии программ для Arduino, сможет ли это помочь абстрагироваться в выбранной сфере разработки и получить те самые азы?


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

    Нужно ли учиться паять и разбираться в микросхемах, теристорах, тестерах и прочем железе что бы работать embedded программистом?


    Да, обязательно. Хороший embedded-программист сам должен быть способен разрабатывать железо. Более того, в не слишком сложных проектах (или в очень критичных по оптимальности решения) разработчик железа и программист - один и тот же человек.

    Вообще, embedded-программист - в большей степени электронщик (где-то на 80%, или даже больше), чем программист.

    Нужны ли знания программирования под линукс? Читая вакансии не один раз встречал требования знания работы с линукс.


    Опционально, будет плюсом.

    Что касается процесса обучения, то он примерно идентичен процессу обучения инженера-электронщика.

    1. Полный курс общей физики. Обязательно. Без него никуда, это база всего. После него отпадают 98% элементарных вопросов и появляется стройная картина мира. Математика - без фанатизма, но в достаточном объеме, чтобы понимать курс физики.
    2. Базовый курс конкретно электроники. Здесь можно посмотреть в сторону классики - Горовиц и Хилл первое, что приходит на ум.
    3. Программирование. Без фанатизма. Ночами штудировать численные методы и заучивать классичесские алгоритмы не надо (хотя представлять, как работает, например, метод Рунге-Кутта будет полезно), но выработать навыки алгоритмизации требуется обязательно. На эту тему полно туториалов, гораздо больше, чем по электронике.
    4. Обработка сигнала тоже нужна. В написании программ для контроллеров всякие цифровые фильтры встречаются очень часто (особенно при обработке сигнала с датчиков), надо бы представлять, как работают методы ЦОС.
    5. Специальные вопросы. Архитектура контроллеров, стандартные интерфейсы и т.п. Это уже по необходимости.

    Кроме этого - английский в достаточном объеме, чтобы понимать техническую литературу и общаться на среднем уровне. Простой тест - свободное чтение документации и ресурсов типа hackaday.

    Но самое главное - желание. Только оно может обеспечить достаточный объем практики.
    Ответ написан
  • Как научиться понимать английский язык на слух? Это вообще возможно?

    @LampTester
    Ну, во-первых, да, научиться понимать в принципе возможно. :) Мне тоже сначала казалось, что это вообще нереально.

    1. Как уже говорилось - нафиг субтитры. Они наоборот отвлекают. Реально действенный метод для старта - песни. Слушаете песню, пытаетесь услышать и понять максимум, потом читаете ее текст, потом слушаете снова (не глядя в текст). Вы удивитесь, но после этого вы поймете в ней процентов 50 или даже больше, если только это не совсем хардкорный рэп. :)

    2. Ролики на YouTube, снятые американцами, австралийцами или шотландцами. Это из носителей языка. Не знаю, как кому, но мне эти акценты наиболее понятны. Вообще, часто речь не-носителей еще более понятна. Сначала вы, может быть, будете понимать около 20% произносимого - не пугайтесь, просто слушайте дальше и пытайтесь догадаться по контексту. Через некоторое время вы станете понимать 30%, 50%, 70%...

    Важно - песни должны нравиться, ролики должны быть интересны прежде всего своим содержанием. Иначе просто не будет мотивации для достаточного погружения.

    Могу порекомендовать YouTube-каналы Big Clive, Chief MAKOi. Они говорят не слишком быстро, но и не так рафинированно, как на записи, прилагаемой к учебнику. Это нормальная английская речь в умеренном разговорном темпе.

    Совет выше насчет англоязычного радио тоже дельный.

    3. На английском говорит куча народа и в разном состоянии. Понимать ВСЕХ нереально, этому не надо огорчаться. Сами англичане периодически не понимают своих соседей по королевству, не говоря уже об остальных.

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

    И главное - не отчаивайтесь в начале пути. Как верно сказали выше - это просто тренировка мозга. Пройдет время, и это умение появится, если вы будете достаточно регулярно тренироваться.
    Ответ написан
  • Как реализовать измерение тока на ардуино?

    @LampTester
    Я бы не делал управление ТАКИМ на Arduino. При таких мощностях и электромагнитные поля/выбросы соответствующие, на которые игрушечная ардуина явно не расчитана. Здесь надо хорошо подумать над конструкцией платы, гальванической развязкой всего, чего можно, фильтрацией питания и т.п. Иначе есть шанс, что при первом броске контроллер повиснет, с непредсказуемыми последствиями.
    Ответ написан
  • Как создать свою флешку?

    @LampTester
    Флешку - в смысле USB Flash Drive?

    Что такое USB-флешка? Флешка - это устройство, реализующее USB-класс mass storage. Наверняка у наших восточных коллег есть готовые чипы, реализующие оный, но я сомневаюсь, что эти микросхемы можно купить у нас, тем более - что их можно купить в количестве менее N тысяч штук. Потому, чтобы сделать флешку, надо взять любой микроконтроллер с аппаратным блоком USB, микросхему FLASH-памяти желаемого объема, подключить эту микросхему к контроллеру, и реализовать на последнем поддержку USB mass storage. Сама по себе схема будет примитивна, но вот работа с USB - дело нетривиальное, по крайней мере, без некоторого опыта.
    Ответ написан
  • Почему может не вызываться прерывание?

    @LampTester
    Используйте NVIC_EnableIRQ() вместо __enable_irq(). В ARM прерывания включаются именно так.

    И да, определите обработчик, если еще не сделали этого. Просто скопируйте (но не убирайте его из исходного места!) нужное имя из startup_xxx.S в main.c, оформив его как функцию.

    void SysTick_Handler(void)
    {
    }
    Ответ написан