0 / 0 / 0
Регистрация: 11.04.2019
Сообщений: 6
|
|
1 | |
Подскажите, с чего начать реализовывать идею22.10.2024, 01:01. Показов 1423. Ответов 30
Метки нет (Все метки)
Добрый день!
Хочу ворваться в область программирования + железо, но совершенно не представляю с чего начать, даже не знаю терминологии, чтобы что-то начать искать Хочу попробовать сделать такую штуку: Мотор, на оси катушка с ниткой. К нитке привязан груз. Задавая с телефона какие-то параметры, мотор опускает-поднимает груз Как это делается? С чего все начинается? 1) Каким образом программа на телефоне может включать/выключать мотор? Допустим, мне нужно проводное соединение. Как это сделать проще, и как это бывает? 2) Каким образом я могу получить обратную связь? Я видел, существуют модули лазерного дальномера, что-то типа VL53L0X (GY-VL53L0XV2). Как их подключать и куда, так чтобы на телефоне получить с него параметр, и на его основе включать-выключать мотор? Может есть где почитать про такие совсем простые вещи? А то на этом форуме я посмотрел темы для новичков - пока что сложно все) Спасибо за помощь!
0
|
22.10.2024, 01:01 | |
Ответы с готовыми решениями:
30
Подскажите, с чего начать? База данных "Биржа труда": с чего начать и как реализовывать Решил начать изучать графику. Подскажите с чего начать Подскажите, с чего начать |
449 / 415 / 124
Регистрация: 03.02.2013
Сообщений: 1,295
|
|
22.10.2024, 02:02 | 2 |
купить blue pill/black pill, это stm32, модуль bluetooth типа HC-05, для начала общаться в обычном RS-232, на телефоне в маркете есть стандартные приложения для этого, по поводу VL53L0X выход I2C легко примонтируется к stm32 и с ним так же можно общаться по тому же протоколу, на первое время библиотека HAL пойдёт, наперёд скажу нужно будет программатор st link-v2 или хотя бы преобразователь интерфейсов usb->ttl, желательно всё это)
ну либо второй вариант вместо stm32 и HC-05 брать ESP32 с wifi на борту когда основы связи проштудируем, займёмся обратной связью)
0
|
4001 / 2548 / 428
Регистрация: 09.09.2017
Сообщений: 11,296
|
|
22.10.2024, 10:17 | 3 |
Если нужно готовое устройство, а тратить свое время не хочется, проще заказать разработку кому-нибудь другому.
Если нужно сделать и забыть, проще всего, пожалуй, Ардуино. Там куча готовых библиотек и аппаратных модулей под что угодно. Правда, качество и того и другого где-то на уровне "на 5% лучше, чем ничего". Если же хотите именно научиться работать с железом, берите контроллер. Лучше сразу на отладочной плате - те же Arduino, BluePill, LonganNano и т.п. Для старых контроллеров вроде AVR или PIC плату можно и самостоятельно изготовить (там корпуса приятные), для современных - без опыта не справитесь. Сразу же закапываете HAL, ардуинскую среду разработки, cvavr и прочие автоконфигураторы, хватаете в обнимку даташит и учебник на выбранный камень, и изучаете. Лично я бы для "фундаментального" подхода предложил AVR (или PIC, или другую 8-битку но с ним я сам незнаком) или что-то из RISC-V (gd32vf103, ch32v103, ch32v203, ...), потому что у них довольно приятный ассемблер. Преимущество 8-битных контроллеров из прошлого тысячелетия - простота. Мало периферии, мало настроек периферии, мало настроек ядра. И огромное количество готового кода, в который можно подсматривать. В общем, невысокий порог входа даже если начинать с ассемблера. Но это же будет недостатком при практическом применении: в какой-то момент просто не хватит мощности и придется переходить на что-то более современное. Но зная одну архитектуру, это будет несложно.
0
|
1181 / 656 / 113
Регистрация: 15.05.2012
Сообщений: 4,052
|
|
22.10.2024, 15:24 | 4 |
Найти сотоварища.
0
|
619 / 316 / 49
Регистрация: 22.09.2023
Сообщений: 919
|
|
22.10.2024, 18:47 | 5 |
Учебник физики за 8 класс (тогда, кажется, электричество проходили), затем научно-популярные книжки А. Айсберга для младшего школьного возраста "Радио? Это очень просто", "Телевидение? Это очень просто!", "Транзистор? Это очень просто!". Если зацепит - полученных знаний будет достаточно, чтобы перейти к более серьезным книгам - книжка "Барьеры" из библиотечки "Квант" для понимания, как работают полупроводники и уже с этими знаниями - "Искусство схемотехники" Хоровица с Хиллом и "Полупроводниковая схемотехника" Титце с Шенком, Причем, если зацепит - читаться и пониматься будет быстро и легко. Если не зацепит - лучше попробовать себя в чем-то другом.
Без чтения литературы (по советам на форуме) максимум, чего можно добиться - тупо повторить какие-нибудь конструкции из интернета. А если в процессе повторения что-то будет сделано неправильно, шанс добиться работоспособности очень мал.
0
|
Нарушитель
|
|
22.10.2024, 20:34 | 6 |
Да элементарно через консоль, TTY-ACM в помощь. Консольных приложений полно, я так дистанционное включение иллюминации через bluetooth делал когда-то, да и просто железяки свои любые могу к лопатофону подключить и управлять. Т.е. ноутбук с собой таскать уже почти не нужно.
Микроконтроллер выбирай, самые дешевые варианты - ch32v003, STM32F030 и STM32F103. Ну и так далее… Разве что если уж хочешь к лопате подключить, то нужно выбирать МК с USB, т.е. некоторые самые дешевые отпадают. Тогда ничем не помогу. Хотя бы 10 лет своей жизни, а потратить придется для того, чтобы разбираться в элементарных вопросах. // кстати, а не Вождь ли ты Рязанов из Татарки? ☺
0
|
4001 / 2548 / 428
Регистрация: 09.09.2017
Сообщений: 11,296
|
|
22.10.2024, 21:04 | 7 |
Плохая идея. На самых дешевых тяжело учиться: не хватает периферии, не хватает ног, не хватает памяти. Выбирать нужно в первую очередь те, по которым больше документации. ATmega8 / 328, stm32f103 в первую очередь.
Отдельно НЕ РЕКОМЕНДУЮ ch32v003: и корпус ущербный (часть важных ног не выведена), и с прошивкой проблемы, и ядро урезанное, и периферии мало. Какой-нибудь ch32v203g8 куда лучше. И корпус с крупным шагом, легко запаять. Мне даже удалось сделать отладочную плату без ЛУТа и принтера, просто резаком. Кстати, чем хороши stm32 и ch32, для их программирования не нужен программатор, достаточно переходника на UART. Который в любом случае будет нужен для отладки.
0
|
Нарушитель
|
|
22.10.2024, 21:41 | 8 |
Хоть в остальном согласен, но насчет этого куска унылого дерьма - против. Это же самый ущербный МК в серии! У него даже CAN с USB одновременно работать не могут! Ну и еще настолько много минусов, что некоторые ребята, отчаявшись, вместо чтения эрраты, городят ногодрыжный I2C (как пример), хотя набортный отлично работает, если уметь читать.
Ну, с другой стороны, не умеющие читать так и сидят на абдуринах, калокубах и прочей дряни. Увы, это так: идиоты в наше время преобладают над нормальными людьми уже значительно выше, чем 95%. И всему виной всякие "соцсети" и тот же интернет. Когда-то люди надеялись, что интернет разовьет мощь человеческого мозга, а оказалось абсолютно наоборот: со всякими "чатоми ЖОПЭТЭ" люди еще более быдлом стали. Увы… // подозреваю, что в следующие полгода я ничего на этом ресурсе написать не смогу. Таковы уж "правила" мира выблядков…
0
|
0 / 0 / 0
Регистрация: 11.04.2019
Сообщений: 6
|
|
22.10.2024, 23:02 [ТС] | 9 |
abit, Начал читать, гуглить, уже есть за что зацепиться, спасибо!
COKPOWEHEU, Идея попробовать научиться что-то делать самому, но без глубокого погружения в саму схемотехнику. В идеале мне нужен "конструктор", который я бы мог программировать, без необходимости самому допивать усилители-генераторы частот и другое низкоуровневое pyzhman, Да, займусь этим, если не сольюсь на первых шагах)) Dushevny, К сожалению не для меня. В разное время пробовал разбираться именно со схемотехникой, не вышло. Хочу высокий уровень - программирование, контроллеры, вот это Eddy_Em, Ага спасибо, буду смотреть-пытаться-понимать. Нет, я не тот Вождь, я из Питера) Спасибо за советы! Информации в инете море, оказывается, пойду читать)
0
|
4001 / 2548 / 428
Регистрация: 09.09.2017
Сообщений: 11,296
|
|
22.10.2024, 23:34 | 10 |
Я не спорю, что первый блин у ST вышел не слишком удачным. Но на основе f103 многое сделано как в плане самоделок, так и линеек контроллеров. Взять хотя бы настройку портов, open-drain и подтяжек. У какой-нибудь l151 это реализовано куда лучше, но большинство контроллеров наследуют все-таки схему f103-го.
Еще раз: мы обсуждаем на каком МК писать первые хелло-ворлды. Первые полгода для ТС не будет разницы даже по сравнению с AVR. Как-то не довелось работать с I2C на f103. Но на v303 повозиться пришлось. Какого фига они не генерируют прерывание окончания передачи?! А на vf103 тот же код работать не пожелал... но тут уже было лень разбираться. Не вспомните случайно, какие там грабли на f103, что куберы пропускают? Без погружения именно в схемотехнику или и в программирование тоже? Так-то готовых отладочных плат продается море, начиная с той же ардуинки. А с другой стороны, при разработке под контроллеры схемотехника обычно простая. Максимум - прикинуть на пальцах ограничительный резистор к светодиоду или транзистору. Закон Ома, который проходят в 8 классе. Вот если лезть в аналоговую схемотехнику или тем более в СВЧ - вот там боль. Так что пока рекомендация прежняя - плата Arduino или BluePill. А дальше все зависит от целей. Если надо просто быстро и коряво решить бытовую задачу, можно взять ST-HAL с тамошним Кубом или ту же ардуиновскую среду разработки. А если именно научиться программировать, от подобной гадости держитесь подальше. Хотя бы основы будут нужны в любом случае. Но их можно будет изучить и несколько позже, когда дорастете до понимания где и зачем это нужно.
0
|
619 / 316 / 49
Регистрация: 22.09.2023
Сообщений: 919
|
|
23.10.2024, 09:57 | 11 |
Поэтому я и рекомендовал начать с книг для самых маленьких, в которых сложные вещи объясняются "на пальцах".
Контроллеры без схемотехники невозможны. Или навсегда ограничить себя ардуиной: нет готовой платы-кубика/библиотеки - задача нерешаема. Добавлено через 5 минут Нужно еще понимать пути протекания тока. Иначе виноваты всегда будут плохие транзисторы, а конструкция наполнена магией и колдовством.
0
|
4001 / 2548 / 428
Регистрация: 09.09.2017
Сообщений: 11,296
|
|
23.10.2024, 10:05 | 12 |
Не надо навсегда. Достаточно с нее стартовать, а если затянет, можно будет и углубить знания.
На первом этапе, опять-таки не критично. Когда все устройство состоит из BluePill-а и трех готовых модулей, току особо растекаться некуда.
0
|
Нарушитель
|
|
23.10.2024, 12:07 | 13 |
Не помню. Но у меня самого там что-то не зашло с DMA, поэтому только блокирующие операции использую, к сожалению.
0
|
4001 / 2548 / 428
Регистрация: 09.09.2017
Сообщений: 11,296
|
|
23.10.2024, 12:37 | 14 |
Я с DMA и не стал заморачиваться. Там же надо сначала выставить адрес девайса, потом адрес регистра и только потом пойдет поток данных. Получается здоровенная пауза в начале работы.
Проще уж на прерываниях, тем более даже на скорости 400 кб/с их будет не слишком много. Отсюда и моя ненависть: в самом конце, когда последний байт передан, нужно послать STOP, но после него следующее прерывание не возникнет. В результате в моей реализации проверка готовности I2C к следующей транзакции выглядит как "не случился ли таймаут?" + "переданы ли все байты?" + "сбросился ли наконец BUSY?" Кстати удалось сделать достаточно красивый интерфейс, чтобы модуль сначала передал сколько-то байтов, а потом принял. Может пригодиться если адрес регистра не 8-битный. Но, как я уже говорил, писалось под ch32. Попытался портировать на gd32vf, но что-то не взлетело. На stm не переносил.
1
|
449 / 415 / 124
Регистрация: 03.02.2013
Сообщений: 1,295
|
|
24.10.2024, 03:44 | 15 |
если мы говорим про stm32 то не проще, а накладнее что по ресурсам, что по труду
Добавлено через 4 минуты и пауза, конечно только при старте, ну воткнули на 15 миллисекунд позже питание, о чём речь, в момент работы, режим Cycle, никакое прерываение его не обгонит уже, более того МК на это не отвлекается, данные сами обновляются в RAM, проверено лично на датчике с потоком 20Мбит/c на stm32h745, вы же знаете чем отличается гарвардская архитектура от фон-неймана?
0
|
4001 / 2548 / 428
Регистрация: 09.09.2017
Сообщений: 11,296
|
|
24.10.2024, 08:24 | 16 |
Сомневаюсь, что I2C в stm32f103 сильно отличается от аналогичного в ch32v303.
Пауза в начале каждой операции обмена, а не только при включении питания. Хочется прочитать 3 байта с датчика? Сначала подожди 200 мкс (~30000 тактов) и только потом запустится DMA. Какое отношение способ организации адресного пространства имеет к интерфейсу I2C?
0
|
Нарушитель
|
|
24.10.2024, 08:55 | 17 |
В таких случаях более выгодно использовать блокирующую операцию. А DMA запускать, когда несколько сот байт надо передать или считать. Хотя, как оказалось (как пример - мои попытки считать сразу все изображение из MLX90640), не все устройства умеют отдать за один присест такой поток данных (там пришлось на 2 куска бить).
0
|
619 / 316 / 49
Регистрация: 22.09.2023
Сообщений: 919
|
||||||
24.10.2024, 09:06 | 18 | |||||
Нет нам никакой паузы. Все реализуется конечным автоматом на прерываниях. Причем даже явной переменной состояния конечного автомата не требуется.
Кликните здесь для просмотра всего текста
0
|
619 / 316 / 49
Регистрация: 22.09.2023
Сообщений: 919
|
|
24.10.2024, 09:30 | 20 |
Зато можно откомментировать каждую строчку, любую (в том числе первую и последнюю) строчку закомментировать при помощи
// и можно копировать из проекта в проект, заменяя в нужных местах 0 на 1 и/или наоборот, при этом ни один из битов не будет забыт.
0
|
24.10.2024, 09:30 | |
24.10.2024, 09:30 | |
Помогаю со студенческими работами здесь
20
Подскажите с чего начать подскажите с чего начать Подскажите с чего начать? подскажите с чего начать Подскажите с чего начать подскажите с чего начать? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |