Высказывания и цитаты:

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

« Предыдущая страница   

  • 01Фев

    GPS, Глонасс, Beidou и другие системы глобального позиционирования облегчают ориентирование на местности, позволяют дистанционно управлять объектом с достаточно высокой точностью.

    О наиболее популярной  — американской GPS настоятельно рекомендую прочитать http://geoconnect.com.au/gps-signals-l1-l2-l5/ . Здесь сказано о технологии позиционирования, диапазонах частот L1, L2, L5, дифференциальном режиме работы, о размере посылок и псевдослучайных последовательностях, о помехах.  Чем длиннее эта последовательность тем выше точность, и если gps приемник способен принимать сигналы в двух диапазонах, например, L1 и L2, то влияние помех ниже и выше точность. Для военных систем применяется более сложное кодирование псевдослучайной последовательности. Мы же возьмем недорогой gps приемник GPS6MV2, который работает в диапазоне L1  и обеспечивает точность до 2 метров. Его заказываем на aliexpress, а также заказываем отличный эргономичный дисплей JLX128G4G (любой модификации), микроконтроллер STM32F103VCT6 в 100 лаповом корпусе, который легко паять на макетной плате (смотреть фото ниже) паяльником E60WT (с набором жал включительно) под микроскопом (Digital Microscope 800x) водяным флюсом ЛТИ-120 SOLINS (100мл пластиковая бутылка за 100р в магазине города), ST-LINK программатор.  Все заказываем с алиэкспресса, выходит очень недорого. Если этого инструмента нет, то не начинать вообще — паять микросхемы с шагом между центрами лап 0,5 мм не получится обычным медным паяльником и канифолью!!! Кстати, я нашел лучшее средство для отмывки канифоли с плат — это автомобильный бензин АИ-92. Никакой спирт и растворитель, которыми я пользовался ранее так быстро не смывали с платы канифоль.

    Читать дальше »

  • 17Янв

    Здравствуйте, друзья! Воспроизведение mp3 файлов используется давно и этим никого не удивить, но воспроизведение речевой информации во многих современных устройствах просто необходимо!

    Моя цель: при питании от зарядного устройства идет проигрывание файла на устройстве HY-Smart STM32. При питании от компьютера, намеренно сделано, чтобы устройство было флешкой.

    Вот как происходит работа mp3 проигрывателя:

    Читать дальше »

  • 27Дек

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

    Сейчас мы приступим к созданию проекта с нуля. Итак, среди большого выбора микроконтроллеров семейства STM32 мы выбрали тот, который популярен, недорог и является достаточно мощным — пусть будет все тот же STM32F103VCT6. Чтобы работать с ним нам нужны два мануала  STM32F103VCT6-STMicroelectronics.pdf (2Mb)    и    STM32 Reference manuals.pdf (10Mb). В Reference manual дается общее описание для семейства STM32 F101,F102,F103,F105,F107 — а именно, то, что имеет общее устройство и общие принципы работы. В  STM32F103VCT6-STMicroelectronics.pdf даны распиновка разных типов корпусов, адресация модулей и памяти — то есть то, что имеет частные отличия от основного описания.

    Итак скачиваем оба мануала, открываем тот, который 2Mb и смотрим Pinouts. STM32F103VCT6 выпускается в трех корпусах (64pin, 100pin, 144pin). Пусть мы будем использовать контроллер с платы HY-MINI STM32, то есть на 100 вывод0в,

    100pin

    Хочу обратить внимание, что распиновка у микроконтроллеров STM32 F101 — F107 одинаковая. Переходим к выбору среды разработки. В настоящее время среди наиболее популярных сред есть Keil, IAR и CooCox IDE. Первые две платные, а третья абсолютно бесплатна и это значит, что есть смысл начать именно с нее. Но забегу вперед. Если вы займетесь отладкой устройств на данных типах микроконтроллеров, то тут безусловный лидер Keil (о нем я немного рассказал в предыдущих уроках). А с точки зрения удобства для тех, кто только начал изучать STM32 здесь я отдаю предпочтение CooCox IDE.

    Читать дальше »

  • 02Дек

    Урок 5. Что меня заинтересовало в демо-прошивке — так именно отображение графических элементов, а именно окошек, похожих на Windows, графиков и картинок. Работая с этими элементами, мы можем делать удобные панели HMI (human-machine interface), которые будут интуитивно понятны любому человеку, и у которых не будет множества неизвестных кнопочек, лампочек и тумблеров.
    К счастью, для нас уже создали библиотеки графических примитивов, которые позволяют использовать buttons, checkbuttons, radiobuttons и другое в наших целях. Одной из таких библиотек является stm32_embedded_GUI_Library (размер около 10 Мб), которая включает в себя программу для Windows — ResourceEditorGUI и проекты с исходными кодами для микроконтроллера. О возможностях этой библиотеки, будет посвящена другая статья.

    Аналог графических элементов Windows я нашел и в других самоделках. С них мы и начнем, потому что любой элемент можно вытащить из одного проекта и вставить в другой, что очень удобно, потому что элементы можно добавлять по мере надобности.

    Первый графический элемент —  Button (кнопка).

    Я написал проект TouchPanel_rus_symbol.rar в Keil для платы Hy-Mini STM32 на основе примера из Урока №2. Итак, при подаче питания на дисплее появляется следующее меню с четырьмя кнопками и маленькой картинкой (качественное изображение мой телефон сделать не смог):

    IMG00671

    Читать дальше »

  • 30Ноя

    Урок №4. Да, сегодня я в ударе, не иначе — написать третью статью за день. В проекте из архива TouchPanel.rar  калибровку touch экрана приходится делать каждый раз при включении питания, что не очень удобно, ведь можно использовать для калибровки под конкретный дисплей константы, заранее записанные в памяти микроконтроллера.
    IMG00675
    Итак, открываем файл TouchPanel.c, калибровка происходт по трем точкам, еще эти точки являются местом для появления курсора.
    Coordinate DisplaySample[3] = {{45,45},{45,270},{190,190}};

    Теперь нам нужна функция
    void TouchPanel_Calibrate(void)
    {
    uint8_t i;
    Coordinate * Ptr;
    for(i=0;i<3;i++)
    { LCD_Clear(Black);
    GUI_Text(10,10,"Touch crosshair to calibrate",0xffff,Black); delay_ms(500);
    DrawCross(DisplaySample[i].x,DisplaySample[i].y);
    do { Ptr=Read_Ads7846(); } while( Ptr == (void*)0 );
    ScreenSample[i].x= Ptr->x; ScreenSample[i].y= Ptr->y;
    }
    setCalibrationMatrix( &DisplaySample[0],&ScreenSample[0],&matrix ) ;
    LCD_Clear(Black);
    }

    Читать дальше »

Последние комментарии

  • Что то не работает, можете помочь?...
  • Да, отсталость России не только в электронике сильно удручае...
  • С силовыми транзисторами стало понятно - это IGBT, я поменя...
  • Спасибо огромное Сергею за проделанную работу. В архиве ...
  • Здравствуйте!!! На почту я вам всё отправил.. Спасибо!!!...