Стоит ли мне покупать Arduino, будучи студентом-компьютерщиком?

Через месяц я буду на третьем курсе университета. Программной частью бакалавриата я доволен, но чувствую, что мне не хватает практики в практической реализации. Стоит ли мне приобретать плату Arduino и экспериментировать с ней?

, 👍3

Обсуждение

Зависит от того, сколько времени вы хотите потратить и каковы ваши цели. Вы можете многое узнать о разработке программных систем с ограничением ресурсов, изучая простые платы, такие как Arduino. Но все дело в том, сколько времени вам придется потратить. Плата(ы) по сравнению с ней дешевая. Вы можете просто начать с чтения и попытки понять часть исходного кода, из которого строится ядро и библиотеки Arduino. Часто в университетской программе не учат тому, как читать большие системы с исходным кодом., @Mikael Patel

Вы не упомянули свой уровень опыта работы с оборудованием. Есть ли у вас опыт работы с электронными схемами?, @linhartr22

Микаэль Патель, ты должен опубликовать это как ответ., @linhartr22


3 ответа


5

Это зависит. Если у вас нет никаких знаний о микроконтроллерах, это может быть полезно.

Однако Arduino скрывает множество концепций в своих библиотеках. Если вы хотите узнать больше, проверьте другие системы, такие как STM32 или PIC.

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

Более важно то, ЧТО вы пытаетесь: не останавливайтесь на светодиодах/переключателях, а проверяйте протоколы связи, такие как SPI, I2c, UART и т. д. И узнайте, что такое таймеры, прерывания и т. д. и как их использовать.

,

и сети для Интернета вещей, @Juraj

Оригинальные платы Arduino основаны на 8-битных микроконтроллерах AVR, и использование с ними библиотек Arduino совершенно необязательно. Информации о программировании микроконтроллеров AVR на языке C и ассемблере много, а даташиты вполне читабельны. С STM32 изучать низкоуровневое программирование намного сложнее, поскольку разработчики предпочитают различные HAL. Даже найти базовый файл определения регистров/выводов является непростой задачей, если вы не хотите использовать какой-либо HAL. По этой причине я бы выступил против STM32 для изучения низкоуровневого программирования., @ex-punctis

@Im_Int не уверен, согласен ли я, около 99% пользователей Arduino используют IDE, которая скрывает множество внутренних компонентов (что нормально для большинства людей). С STM32 используется HAL, но не так часто, как IDE для Arduino (относительно). Существует множество различных STM32/IDE и способов программирования (HAL, CMSIS, StdLib). Я не имел в виду, что ему нужно перейти на такой низкий уровень, но команды Ардуина скрывают так много, что едва ли нужно понимать, как работает микроконтроллер., @Michel Keijzers


0

Я не думаю, что в этом есть необходимость или не следует, вам нужна недорогая экспериментальная установка с использованием языка C для экспериментов с идеями и концепциями без огромных затрат или несвободного программного обеспечения или соглашений о неразглашении для получения данных чипа, которые привязывает вас к одной компании, тогда почему бы и нет? Вы можете получить клоны Arduino очень дешево на таких сайтах, как aliexpress и т. д., а также в наборах для прототипирования. Хотя Arduino IDE является относительно примитивным редактором, вы можете использовать любой программный редактор, который вам нравится, для составления файлов C и использовать Arduino IDE только для окончательной компиляции , связывания и загрузки/записи их на целевое устройство. Это можно сделать так дешево, что даже если вы решите, что это не вдохновляет ваше воображение, вы не потратите сотни долларов! Только что потратил пару десятков долларов, чтобы собрать значительную игровую площадку с микроконтроллером! Предполагается, что у вас уже есть персональный компьютер или легкий доступ к нему.

,

3

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

Если это поможет, поделюсь своим личным опытом. Я изучал информатику всего за один год в университете. Затем я остановился, чтобы продолжить обучение по физике. Но поскольку я никогда не терял интереса к компьютерам, Я продолжал учиться самостоятельно. Я начал играть с Ардуино только что. потому что это выглядело как интересный способ изучить некоторые вещи, связанные с микроконтроллерами, и низкоуровневое программирование. Барьер входа чрезвычайно низок: в кратчайшие сроки вы замигаете светодиодом, и оттуда вы сможете начать исследовать множество возможностей. Arduino IDE и основная библиотека делают его чрезвычайно легко создавать простые программы, но они весьма ограничены, когда вы хотите чтобы стать более серьезным. Для многих людей эта среда плюс дополнительные загружаемые библиотеки — это все, что им нужно для достижения своих целей. Для меня, это был шаг к изучению вещей более низкого уровня, таких как прямое аппаратное обеспечение. доступ, использование avr-libc и даже программирование на ассемблере.

Сегодня то, что мне больше всего нравится в Arduinos (или, скорее, в AVR микроконтроллеры по своей сути), является их простота и понятность. Сегодня, когда я дизассемблировал написанную мной программу, Я могу понять практически все: инициализацию среды выполнения C. код, распределение памяти, то, как компилятор транслирует мои собственные кода... Я нахожу чрезвычайно полезным достичь такого понимания (вид) компьютерной системы.

Такого же уровня понимания было бы (для меня) невозможно достичь на обычном ПК. Несмотря на то, что я использую Linux с открытым исходным кодом, и я иметь доступ к полному исходному коду, всему задействованному программному стеку запуск даже самой простой программы утомляет. Само ядро похоже на миллионы строк кода. Даже язык ассемблера x86 (или x86_64) на мой вкус кажется слишком сложным.

В заключение хочу сказать, что Arduino стал для меня очень полезным обучением. опыт. Если вы хотите испачкать руки голым металлом программирования, я определенно рекомендую вам приобрести Uno или что-то в этом роде. подобное, и начните играть с ним. Как только вы получите свою первую программу бегом (и это не требует времени!) начинайте заглядывать под капот: читайте исходный код ядра Arduino (он короткий и очень читабельный), прочитайте техническое описание микроконтроллера, начните тыкать аппаратное обеспечение, взгляните, как компилятор выделяет память, как она транслирует исходный код...

,