Jump to content
Sign in to follow this  
Kirmayer

Как правильно проектировать устройства?

Recommended Posts

Изучаю электронику как хобби.

Сейчас имею на руках самодельную машинку на радиоуправлении. Электронная начинка выглядит как монстр Франкенштейна, управлением мотора занимается китайский клон odrive, связью модуль подсоединенный к Raspberry Pi (он же пользуется и как связующее звено для остальных модулей), различная периферия(экранчик, лампочки, руль, куча датчиков и сенсоров) в общей сложности подключены к двум ардуинкам и трём stm32f103.

Такой зоопарк следствие того что изначально это всё были разные эксперименты, а сейчас хочу объединить весь свой опыт в одном проекте. Всё это было пробным макетом, теперь же надо привести к красоте. Так как я уже давно хотел изучить Altium Designer собираюсь воссоздать машинку на самодельной плате. И тут у меня начался затуп: а как делать правильно? Сделать одну большую плату на одном мощном контроллере (stm32f407 к примеру), или же для каждой периферии отдельный модуль на слабом контроллере.

Собственно вопрос к профессионалам, есть ли какой-то свод правил как проектировать сложные устройства, или какого принципа рекомендуется придерживаться?

Share this post


Link to post
Share on other sites
10 часов назад, Kirmayer сказал:

есть ли какой-то свод правил как проектировать сложные устройства

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

Share this post


Link to post
Share on other sites

Изготовление 2-х слойных плат от 2$, а 4-х слойных от 5$!

Быстрое изготовление прототипа платы всего за 24 часа! Прямая доставка с нашей фабрики!

Смотрите видео о фабрике JLCPCB: https://youtu.be/_XCznQFV-Mw

Посетите первую электронную выставку JLCPCB https://jlcpcb.com/E-exhibition чтобы получить купоны и выиграть iPhone 12, 3D-принтер и так далее...

Запускаем новый BLE 5.2-чип BlueNRG-LP от STMicroelectronics

Любая разработка начинается с чтения документации и изучения доступных средств разработки. Данный материал целиком посвящен средствам разработки, включая детальные инструкции по запуску вашего первого приложения на BlueNRG-LP. Описана работа с отладкой STEVAL-IDB011V1, набором инструментов и пакетом ПО позволяющим разработчику быстро войти в курс дела.

Подробнее

Между распределением функций и их сосредоточением ищется компромисс. 

26.04.2020 в 21:26, Kirmayer сказал:

в общей сложности подключены к двум ардуинкам и трём stm32f103.

Я не знаю какие задачи решает твоя система но предполагаю, что это перебор.

Share this post


Link to post
Share on other sites

Революция в силовой электронике. Начало

Что привлекает в SiC по сравнению с кремнием, и какие особенности делают компоненты SiC часто используемыми, несмотря на более высокую стоимость в сравнении с кремниевыми высоковольтными устройствами? – Объясняет специалист ведущего разработчика силовых приборов из карбида кремния, компании Infineon.

Подробнее

26.04.2020 в 21:26, Kirmayer сказал:

к двум ардуинкам и трём stm32f103

А ЧЁ практически нейронная сеть:)

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

Share this post


Link to post
Share on other sites

Материалы вебинара Практическое использование TrustZone в STM32L5

Материалы вебинара, посвященного экосистеме безопасности и возможностях, которые дает новая технология TrustZone в МК STM32L5, содержат две подробные практические работы: создание простого приложения с изоляцией в TrustZone, и пример отладки и тестирования TFM-SBSFU. Программа рассчитана на технических специалистов и тех, кто уже знаком с основами защиты ПО в STM32.

Подробнее

26.04.2020 в 21:26, Kirmayer сказал:

подключены к двум ардуинкам

Ардуинки это зло. В них все завязано на готовый софт и готовую периферию. Все это не позволяет использовать оптимально все возможности микроконтроллера. Если действительно хотите изучать микроконтроллеры учитесь писать программы допустим на СИ

Share this post


Link to post
Share on other sites
1 час назад, musa56 сказал:

Если действительно хотите изучать микроконтроллеры учитесь писать программы допустим на СИ

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

Без этого гарантированы глупые ошибки и полное непонимание, "почему моя программа на "С" не работает". :)

Edited by Lexter

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
Sign in to follow this  

  • Сообщения

    • За 5 копеек приобретён довольно хороший опыт, что весьма бесценно. С уважением, Сергей
    • Зачем , если есть заводской шунт , с заявленными параметрами ???
    • https://radiosvat.ru/ehlektronika/754-vosstanovlenie-avtomobilnyh-akkumuljatornyh-batarej.html-никто непробовал ?
    • Водил Моисей по пустыне евреев 10 лет. Привёл куда-то и спрашивает:  - Нравится вам здесь? Евреи отвечают: - Нет, здесь воняет. Водил он их ещё 10 лет. Привёл куда-то и спрашивает: - Нравится вам тут? Евреи отвечают: - Нет, здесь воняет. Пошли они опять. Через 20 лет он их приводит он их куда-то и спрашивает: - Нравится здесь вам? Они отвечают: - Нравится. Теперь у арабов нефть, и у евреев не воняет.
    • Если бы "залипло", то ИБП вывалился в ошибку при включении ...
    • Здравствуйте. Защита АС  симисторная или реле? А если реле из "дешмана", про Кг можно только промолчать, как и "когда обгорит и залипнет", цобель- мобель ни о чем. Полезно в пробке постоять, перечитывая ту вегу: И, вообще, реле это расходник, ее менять придется (обслуживать усь кто будет, а у клиента?) У кого "пук" при включении, смотрим на схему автоусей и применяем. Да, иип в питании ВК, как еще одна защита, в т.ч. по току (и, конечно, без стабилизации по напряжению).  Во, как много Букв.
    • Тогда уж из стрелочного амперметра использовать) какой нить совковый прибор - там наверняка метал - тот что нужен, имхо. 
  • Similar Content

    • By admin
      В видео поговорим об энергоэффективности микроконтроллеров. Сравним потребление в режима сна arduino, blue pill с STM32F103 и представителя новой линейки энергоэффективных микроконтроллеров от st — STM32L552.
      Подробную информацию об линейке L5 можно найти тут: https://www.compel.ru/lib/143383
      Пи тест часть 1: https://youtu.be/ozu1IUjH1_Q
      Пи тест часть 2: https://youtu.be/uLOWYE-JJpA
    • By Dj_Grander Z Play
      У меня есть ESP32Cam которая берет кадры (240*176пкс. QQVGA) и пересылает их серверу по UDP. С этой частью проекта проблем нет всё работает всё ОК. Но хочу прикрутить получение данных по UDP от того же сервера причем с достаточно приличной частотой. Кто пробовал работать с такими модулями, не подскажете не будет и помехой работа с камерой, работе с сервером по UDP-протоколу. У меня есть сомнения по поводу того не будет ли эспешка в момент взятия кадра зацикливаеся на этом и в этот момент не сможет принять сообщения от сервера и управлять периферией. Подскажите пожалуйста кто может т.к. работаю с этими камнями впервые. Заранее спасибо.
    • By Nikolay_R
      Добрый день! В данный момент прохожу производственную преддипломную практику (сам учусь в УРТК). Стоит задача соединить Lego EV3 и Raspberry PI по I2C интерфейсу. До этого, при работе с другими устройствами, у меня никогда не было проблем с I2C интерфейсом, но в данной связке "EV3-RPI" - начались ошибки. Перед описанием ошибок, уточню, что EV3 - Master, а Raspberry - Slave, т.к. EV3 умеет работать только в режиме Master.
      Первое, что бросается в глаза, это практически постоянная передача в эфир SLA пакета (адреса Slave-устройства). По-факту, именно с этого и должна начинаться передача, но в данном случае, её попросту не происходит. А, если быть точнее, то происходит она только каждый шестой раз.
      Следующая проблема заключается в том, что обмен данными не всегда происходит до конца. Даже если EV3 отправляет свой пакет (два байта), то ответ от Raspberry (он тоже два байта) приходит через-раз, а то и ещё реже.
      я также пробовал соединять EV3 с Arduino, Arduino с Raspberry, что бы найти причину, но там всё отлично работало и ошибок было ноль. Стабильный обмен двумя байтами, как и нужно.

      Очень нужна помощь в устранении данных ошибок!


      P.S: У EV3 используется нестандартный уровень лог. единицы (там он 4.3в) и обычные конверторы уровней уже не работают с ним. Поэтому, мне пришлось перепаивать его под другие номиналы подтягивающих резисторов, что бы всё заработало. В его работе нареканий нет.

      Ниже показаны осциллограммы работы I2C между различными устройствами, которые были задействованы.


    • By YetiSPb
      Здравствуйте. Мои знания в электронике малы, но мне необходимо подружить датчик давления и модуль тока и напряжения, если это возможно.
      Итак, есть датчик дифференциального давления NPH-8-172DH и модуль тока и напряжения CJMCU-219 для Arduino .
      Если я правильно понял то датчик отдаёт два сигнал нала в mV. Пины 5, 6 вход отдают данный по давлению на входе, пины 4, 10 по давлению на выходе.
      Возможно ли измерить сигнал датчика модулем CJMCU-219?  Какое должно на датчик подаваться напряжение и какой должен быть ток? Как правильно подключить датчик и модуль дуг у дугу правильно?
    • Guest kaisarali1997ss@gmail.com
      By Guest kaisarali1997ss@gmail.com
      Доброго времени суток.
      Не смог реализовать повторный Serial.available() внутри условия Serial.available.
      Может кто-то уже сталкивался с этим.
      Задача состоит в том, что нужно зажечь светодиодные ленты WS2812b. 
      Алгоритм действий:
      1)  Ожидаем появления данных на входе serial с помощью if (Serial.available()){}
      2) Принимаем значения int val=Serial.paresInt();
      3)Условие сравнивания if(val>123){chess=val;} esle if(val<124){color=val;} т.е номер светодиода это chess, цвет это color
      4) На смартфон отправляем 'n', для разрешения отправки следующих данных
      5)Ждем уже цвет светодиода на входе serial далее по предыдущему алгоритму 
      6)Зажигаем указанный светодиод на указанный цвет. 
      #include <FastLED.h> #define LED_PIN 6 #define NUM_LEDS 123 CRGB leds[NUM_LEDS]; const unsigned int DIM1 = 123; const unsigned int DIM2 = 1; const unsigned int DIM3 = 3; int ary[DIM1][DIM2][DIM3]; void setup() { Serial.begin(9600); FastLED.addLeds<WS2812, LED_PIN, GRB>(leds, NUM_LEDS); } void loop() { if(Serial.available()){ int val=Serial.parseInt(); int chess=val; Serial.println(chess); delay(1); Serial.println('n'); clear_serail(); if(Serial.available()){int color=Serial.parseInt(); Serial.println(color); if(color>0){ if(color==124){ ary[chess][1][1]=0; ary[chess][1][2]=255; ary[chess][1][3]=0; Serial.println(ary[chess][1][1]); Serial.println(ary[chess][1][2]); Serial.println(ary[chess][1][3]); leds[chess]=CRGB(ary[chess][1][1],ary[chess][1][2],ary[chess][1][3]); FastLED.show(); Serial.println('l'); clear_serail(); } if(color==125){ ary[chess][1][1]=255; ary[chess][1][2]=0; ary[chess][1][3]=0; leds[chess]=CRGB(ary[chess][1][1],ary[chess][1][2],ary[chess][1][3]); FastLED.show(); Serial.println('l'); clear_serail(); }}} } } void clear_serail(){ Serial.end(); Serial.begin(9600); }  
×
×
  • Create New...