Гость Илья

Зеркало с информацией

5 сообщений в этой теме

Гость Илья   
Гость Илья

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

Возник следующий вопрос; возможно ли на stm32 сделать какую-никакую графику, чтоб при этом работала не как слайд шоу? K примеру, на дисплее погода, махнул рукой, появились новости, выбрал нужную, читаешь, перелистываешь.

Встраивать малинку считаю нецелесообразным, все-таки зеркало, а не медиа-центр.

Жду ваших советов!

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
andryxa    232

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Vanchelsing    0
11 минуту назад, andryxa сказал:

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

Большой это сколько? 

Можете варианты кроме малины посоветовать? (не хочу 3к на мозги зеркала тратить)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
fessit    52

Б/У планшет или телефон с соответствующими программами, общение с датчиками через bluetooth...

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Vanchelsing    0

Такой вариант я не рассматриваю. С функционалом определился, пытаюсь выяснить что взять за основу.

Впринцепе у малинки есть куча преимуществ, можно и фронталку запилить, и потоковое видео, НО цена выше stm'ки в разы. 

Кто-нибудь пользовался кмиайскими клонами малины?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Ваша публикация должна быть проверена модератором

Гость
Вы не авторизованы. Если у вас есть аккаунт, пожалуйста, войдите.
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Восстановить форматирование

  Разрешено не более 75 смайлов.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

Загрузка...

  • Похожие публикации

    • Автор: michaelukolov
      Доброго времени суток.
      Сразу скажу: я не прошу писать за меня код, просто натолкните, как правильнее это реализовать.
      Имеется STM32F103C8T6, необходимо на ней построить одноканальный генератор сигнала, желательно разной формы (синус/меандр) с регулировкой частоты и скважности от переменного резистора. Регулировки частоты хватило бы в пределах 1Гц - 20кГц (отсюда еще вопрос, годится ли для этого F103C8T6?). Хотелось бы еще иметь разные уровни (5В/12В), но это и сам сообразить могу.
      Если использовать HAL таймер, то когда он уже будет запущен, можно будет менять частоту/скважность?
      Как реализовать переключение синус/меандр?
    • Автор: artos5
      Всем привет! Столкнулся с проблемой которую не удается решить.
      прописал в файле Drive.h так:
      typedef struct { uint8_t FlgL; uint8_t FlgR; uint16_t Speed; uint16_t PulseL1; uint16_t PulseL2; uint16_t PulseR1; uint16_t PulseR2; } Motor_; typedef struct { uint8_t Status; } Button_; extern struct Motor_ Motor; extern struct Button_ Button; а в с файле:
      #include "Drive.h" Motor.Pulse = 3; // зададим значение переменной в структуре Motor в итоге 2 ошибки редефайн....
       
      как правильно с ними работать? За вчера и за сегодня уже наверное 1000 вариантов попробовал.
    • Автор: artos5
      Всем доброго времени суток!
      Необходима стабилизация частоты вращения двигателей по энкодерам. Энкодеры состоят из одного датчика холла на валу двигателя.
      Эту задачу на АВР я решил при помощи INT0 и аппаратного таймера , попробовал перенести код на STM32 . Попробовал через EXTI , результат не понравился .. Решил через таймер .
       
      void HAL_TIM_IC_CaptureCallback(TIM_HandleTypeDef *htim) { static uint8_t InpCaptIndexL=0, InpCaptIndexR=0; if (htim->Channel == HAL_TIM_ACTIVE_CHANNEL_1) // =RISING= EDGE DETECTED { // Get =RISING= EDGE Capture value if(InpCaptIndexR==0) { Motor.TimerOldR = HAL_TIM_ReadCapturedValue(htim, TIM_CHANNEL_1); InpCaptIndexR=1; } else { Motor.TimerNewR = HAL_TIM_ReadCapturedValue(htim, TIM_CHANNEL_1); InpCaptIndexR=0; } if (Motor.TimerOldR > Motor.TimerNewR) { Motor.MotorRData = (Motor.TimerOldR - Motor.TimerNewR); } else { Motor.MotorRData = (Motor.TimerNewR - Motor.TimerOldR); } // Reset Counter After Input Capture Interrupt Occurs __HAL_TIM_SET_COUNTER(&htim1,0x00); } if (htim->Channel == HAL_TIM_ACTIVE_CHANNEL_2) // =FALLING= EDGE DETECTED { // Get =FALLING= EDGE Capture value if(InpCaptIndexL==0) { Motor.TimerOldL = HAL_TIM_ReadCapturedValue(htim, TIM_CHANNEL_2); InpCaptIndexL=1; } else { Motor.TimerNewL = HAL_TIM_ReadCapturedValue(htim, TIM_CHANNEL_2); InpCaptIndexL=0; } if (Motor.TimerOldL > Motor.TimerNewL) { Motor.MotorLData = (Motor.TimerOldL - Motor.TimerNewL); } else { Motor.MotorLData = (Motor.TimerNewL - Motor.TimerOldL); } // Reset Counter After Input Capture Interrupt Occurs } StabMotorSpeed1(); __HAL_TIM_SET_COUNTER(&htim2, 0x00); } в интернете подсмотрел применение захвата но получается какая то каша . Осциллографом четко вижу меандр одинаковой частоты , а в юарт сыпет постоянно разные значения ...
      (имею ввиду переменную Motor.MotorLData и Motor.MotorRData)
      Тактирование 64МГц
      настройки таймера такие:
      TIM_ClockConfigTypeDef sClockSourceConfig = {0}; TIM_MasterConfigTypeDef sMasterConfig = {0}; TIM_IC_InitTypeDef sConfigIC = {0}; htim2.Instance = TIM2; htim2.Init.Prescaler = 6400; htim2.Init.CounterMode = TIM_COUNTERMODE_UP; htim2.Init.Period = 65535; htim2.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1; htim2.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE; if (HAL_TIM_Base_Init(&htim2) != HAL_OK) { Error_Handler(); } sClockSourceConfig.ClockSource = TIM_CLOCKSOURCE_INTERNAL; if (HAL_TIM_ConfigClockSource(&htim2, &sClockSourceConfig) != HAL_OK) { Error_Handler(); } if (HAL_TIM_IC_Init(&htim2) != HAL_OK) { Error_Handler(); } sMasterConfig.MasterOutputTrigger = TIM_TRGO_UPDATE; sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE; if (HAL_TIMEx_MasterConfigSynchronization(&htim2, &sMasterConfig) != HAL_OK) { Error_Handler(); } sConfigIC.ICPolarity = TIM_INPUTCHANNELPOLARITY_RISING; sConfigIC.ICSelection = TIM_ICSELECTION_DIRECTTI; sConfigIC.ICPrescaler = TIM_ICPSC_DIV1; sConfigIC.ICFilter = 0; if (HAL_TIM_IC_ConfigChannel(&htim2, &sConfigIC, TIM_CHANNEL_1) != HAL_OK) { Error_Handler(); } if (HAL_TIM_IC_ConfigChannel(&htim2, &sConfigIC, TIM_CHANNEL_2) != HAL_OK) { Error_Handler(); } что то я или недопонимаю , или что то не так приготавливаю..
       
      Пробовал и так:
      void HAL_TIM_IC_CaptureCallback(TIM_HandleTypeDef *htim) { if (htim->Channel == HAL_TIM_ACTIVE_CHANNEL_2) // =RISING= EDGE DETECTED { // Get =RISING= EDGE Capture value Motor.TimerR = HAL_TIM_ReadCapturedValue(htim, TIM_CHANNEL_2); // Reset Counter After Input Capture Interrupt Occurs __HAL_TIM_SET_COUNTER(&htim1,0x00); } if (htim->Channel == HAL_TIM_ACTIVE_CHANNEL_1) // =FALLING= EDGE DETECTED { // Get =FALLING= EDGE Capture value Motor.TimerL = HAL_TIM_ReadCapturedValue(htim, TIM_CHANNEL_1); // Reset Counter After Input Capture Interrupt Occurs } StabMotorSpeed(); __HAL_TIM_SET_COUNTER(&htim2, 0x00); } Результат тоже хуже чем на АВР , и в юарт сыпет каша (имею ввиду переменную Motor.TimerL и Motor.TimerR)
      Помогите пожалуйста разобраться в чем дело.
    • Автор: Grampus
      Добрый день!
      ПОМОГИТЕ ПОЖАЛУЙСТА!
      в описании для одного дисплея нашел код для STM на СИ
      там есть строчка которая мне не понятна, точнее смысл ее понятен но нет объявления аргументов функции
      помогите пожалуйста. В общем ситуация такая 
       
      spi_write ( DTA, 0x00 )                                     spi_write ( CMD, 0x01) 
      вот эта функция
      DTA - выполняет установку пина в 1 ,    CMD -  выполняет установку пина в 0 
      0x00 , 0x01, .........0xFF     это либо данные либо команда. 
       и все бы ничего но все это нужно передать по HAL_SPI_Transmit 
      помогите написать эту функцию с описанием аргументов и всех действий.
    • Автор: Mars36
      Добрый день. Имею желание вкатиться в разработку на stm32. Не много погуглив обнаружил копеечный программатор(tt-link), но отладочной платы как у какой нибудь avr'ки не нашел(аля вставил камень, прошил, впаял в плату). Существует множество всяких discovery  и им подобных, для проверки работы штука удобная, но для использовании в конечном устройстве нерациональная. Поэтому хотелось бы знать, существуют ли какие либо платы, переходники и т.д.? И если подобных промышленных вариантов нету, то единственный вариант это развести такую самостоятельно и вкорячивать переходники c LQFPхх и т.д.?
      P.S. Когда то видел вариант у аврки c tqfp корпусом, когда к подобной домашней плате аврку цепляли с помощью прищепки.
  • Сообщения

    • Проще некуда. Стоит в зале люстра с двумя переключениями. Поставьте на одну лампу, а пульт на стену возле туалета. А я бы сделал еще проще, просто опустил бы выключатель света ниже, но учитывая безопасность выключателя.   https://ru.aliexpress.com/item/3/32960283192.html?spm=a2g0v.search0604.3.39.4426231bZ0Aa5y&ws_ab_test=searchweb0_0%2Csearchweb201602_1_10065_10068_5730211_319_317_5729711_10696_453_10084_454_10083_10618_10307_10301_538_537_536_10059_10884_10889_10887_100031_321_322_10915_10103_10914_10911_5735411_10910-10889%2Csearchweb201603_51%2CppcSwitch_0&algo_pvid=dc6abec2-aad5-4d9c-85a7-2ed354e362b6&algo_expid=dc6abec2-aad5-4d9c-85a7-2ed354e362b6-6
    • Я думал, что память мня подводит! А нет!  Привожу нашедшую у себя статью. В ней данные более правдоподобные. У нас в школе было два УНЧ ТУ-50. Меня заставляли включать марши на праздниках, показательных выступлениях спортсменов и выборах. Акустика - рупорные колокола. Так искажения переваливали, наверное все 20% при достаточно хорошей громкости. Даже речь диктора искажалось, не говоря о записи с пластинки! Слух в 14 лет, я думаю у меня был отменный! Радиотрансляционные установки ТУ-50 и ТУ-100.rar
    • теперь я повторюсь. при вашем описании есть три варианта развития событий! 1. при появлении зазора, двигатель останавливается в приделах зазора. чтобы его запустить надо игнорировать щелевой датчик для разблокировки двигателя (я вам предложил этот вариант, он вас не устраивает), те задается приоритет индуктивного датчика 2. при появлении зазора, двигатель останавливается из-за инерции останавливается после зазора. (и этот вариант вам предложили , и он вас не устраивает) те задается приоритет щелевого датчика 3. приоритет запуска/останова по фронтам (это собственно и есть ваша хотелка ) , вам сказано это задача  МК ,  вряд ли кто  будет разрабатывать RS-триггер с управлением по фронтам на логике/реле ЗЫ Уже давно бы перерисовали плату , общими усилиями подобрали МК , и договорились бы за написание прошивки
    • ..не были они основой,а применялись на радиоузлах школ,пионерских лагерей,в небольших поселках в качестве трансляционных проводных и,между тем,обеспечивали весьма приемлимое качество звучания..6% ихних процентов--это как 1% камня.Толком не слушал,но забыл..?..).В поселках городского типа и в городах стояли куда как более качественные и мощные трансляторы с диапазоном 60Гц-12КГц , 3%..
      http://www.rw6ase.narod.ru/00/rtran/tu100m.PDF
    • Как Вам эта девушка! Диктор и ведущая телевизионных каналов "Украина" , а в данное время на канале "ZIK". Ольга Алексеевна Бутко.