joi, 4 septembrie 2014

Atelierul Ingineresc “Al meu Robot”

Dupa cum a fost promis la intalnirea de final a Scolii de vara, Clubul ingineresc Microlab va continua cu activitati de atragere a noilor membri prin oferirea posibilitatii de a studia impreuna cu semenii subiecte de interes comun, si mai exact domenii ce tin de proiectarea cu microcontrollere.
 
De data asta venim cu un curs de proiectare  a robotilor mobili, cu numele


Atelierul Ingineresc “Al meu Robot”





Cursul va cuprinde aproximativ 8 -10 intalniri a cate 4 ore, in fiecare sambata.

miercuri, 30 iulie 2014

Scoala de vara Lectia 4 - Arhitectura microcontrollerului, intreruperi.

Cand ne gandim la arhitectura microcontroller-ului ne referim la structura ei pe module si cum interactioneaza pentru realizarea executiei instructiunilor. ca componente ale arhitecturii unui microcontroller vom evidentia: memoria de programe, contorul de program, decodificatorul de comenzi, unitatea aritmetico logica, registrul de stare, bus de date, memoria RAM, Memoria EEPROM,, registri de uz general, registri periferici i module periferice.
Pe scurt, executia unei instructiuni in cadrul arhitecturiise realizeaza in felul urmator:
Instructiunea este selectata de catre Program counter, din memoria de programe si transmisa catre decodificatorul de comenzi, pentru a fi interpretata, Decodificatorul de comenzi descifreaza comanda si configureaza sistemul pentru realizarea instructiunii in dependeta de valoarea bitilor din registrul de stare al operatiilor. insa fiecare instructiune se executa in modul sau, in dependenta de grupul din care face parte.

Scoala de vara Lectia 3 - Logica binara. Masca, Testare si setare biti individuali.

    Aplicatiile dezvoltate pentru microcontrollere se deosebesc de aplicatiile de nivel inalt prin faptul ca aici se lucreaza cu periferiile la nivel jos, adica este necesar de cele mai dese ori de accesat un registru la nivel de bit sa la nivel de bit sau cativa biti consecutivi din acelasi registru periferic. Limbajul C nu ofera un mecanism direct pentru asemenea acces, accesul minimal fiind la nivel de byte, data de tip char.
   Pemtru a accesa pentru modificare sau verificare a unui singur bit dintr-un byte, cea mai eleganta metoda este prin aplicarea unei masti.
    Vom numi masca o constanta in care bitii de interes sunt unitati, iar bitii ignorati zerouri. spre exemplu o masca unde bitul de interes este butul 4 va arata in felul urmator:
    #define MASK 0b00010000
iar o masca cu bitii de interes 2 si 5 va arata dupa cum urmeaza:
    #define MASK 0b00100100
    In programare, mai ales la cea de nivel jos si in special pentru lucrul la nivel de biti cu masca pe larg se utilizeaza reprezentarea in cod hexazecimal. mai mult, reprezentarea in HEX, am putea-o numi o reprezentare compresata a numerelor binare, un digit al careia reprezinta strict un quartet de biti, indiferent pe ce pozitie in numar se afla. in asa mod sirurile lungi de numere binare se put reduce de 4 ori. Practicand des lucrul cu constantele in HEX, programatorii practic o inteleg ca un nativ de nivel jos in programarea pentru microcontrollere.

marți, 29 iulie 2014

Scoala de vara Lectia 2 - Programare MCU in limbajul C, Modulul periferic GPIO.

Particularitati programare MCU in C.

 
    Un microcontroller, dupa cum am mai mentionat, este un microcalculator comportamentul caruia este definit de programul e care il ruleaza. Scrierea de programe presupune utilizarea unui limbaj specific pe care il poate interpreta aceasta structura inteligenta. Limbajul nativ al microcontrollerului, cel mai apropiat de codul binar care in realitate este inscris in memoria de programe al acestuia este limbajul assembler. O comanda assembler reprezentand o actiune pe care o poate realiza procesorul, prcatic limbajul asembler presupune ca programele reprezinta o secventa de actiuni la nivel cod masina pentru realiza o problema anumita. Neajunsul dezvoltarii aplicatiilor in limbajul ASM este ca fiecare arhitectura de procesor isi are setul sau de instructiuni, respectiv un program care ese scris pentru o arhitectura este putin probabil ca va rula si pe alta arhitectura daca aceasta nu este compatibila cu setul de instructiuni dat.
    Pentru a da o universalitate programelor elaborate se recomanda utilizarea unui limbaj de nivel mai inalt decat ASM, asa cum este de exemplu limbajul C. In acest limbaj se pot dezvolta aplicatii practic pentru orice arhitectura existent la momentul actual. Sintaxa acestui limbaj este standartizata si nu este dependenta de o anumita arhitectura. La moment existu foarte multe referinte pentru studiul limbajului propriu zis, respectiv acest subiect este in afara scopurilor acestui curs.
    Ceia ce intra in obiectivele acestui curs este utilizarea Limbajului C in dezvoltarea aplicatiilor pentru microcontroller.
    Specificlul programelor pentru microcontrollere este ca programul rulat nu trebuie sa se finalizeze niciodata, aceasta fiind una din proprietatile de baza pentru aplicatiile pentru MCU.

miercuri, 2 iulie 2014

Scoala de Vara 2014: Lectia 1- Introducere in curs

Bun venit la cursul Scolii de vara - Dezvoltarea Sistemelor Embedded

Dupa cum a fost relatat la prima italnire a cursului la acest curs vom invata sa proiectam systeme Embedded.
Ce este un Sistem Embeded?
Dupa cum spune dictionarul Wikipedia,
Termenul „sistem înglobat” provine de la expresia engleză embedded system și semnifică un mic calculator bazat pe un microprocesor și specializat (dedicat) la îndeplinirea unei sarcini anume, sau a câtorva sarcini, de obicei în „timp real” (aproape instantaneu).[1][2]
la general general este un sistem electronic cu parte de sensoristica si actionare specifica asupra mediului, in centrul caruia se afla un microcontroller. in calitate de exemple de siteme Embedded pot fi incepand de la telefoanele moile contemporane, calculatorul de bord, masini de spalat, roboti industriali pana la jucariile electronice pentr copii.
Microcontrollerul din cadrul sistemului este acea parte a acestuia care reprezinta inteligenta sistemului.

Ce este un Microcontroller?
Este un microcalculator realizat intrun singur cip.

vineri, 27 iunie 2014

Şcoala de vară "Dezvoltarea Sistemelor Embedded" - Editia 2014

Pe data de 1 Iulie va avea loc prima intalnire in cadrul Scolii de Vara "Dezvoltaera Sistemelor Embedded" 
Locul si ora primei intalniri - 1 Iulie, 14:00, aud 3-405, in incinta Facultatatii Calculatoare Informatica, corpul 3 al Universitatii Tehnice a Moldovei.

Pana in prezent si-au anuntat participarea, prin inregistrare la fata locului, mai mult de 20 doritori, de la toate specialitatile facultatii, si nu numai, ceia ce ne-a surplins placut. Se asteapta ca pana pe 1 Iulie sa mai inscrie inca cel putin 10-15 doritori.

Initial, ca program de lucru pentru Scoala de Vara se planifica de a avea 3 intalniri pe saptamana intre orele 14:00-17:00, in zilele de Luni Miercuri si Vineri, Insa orarul final se va adopta impreuna cu toti participantii in cadrul primei intalniri.

Cei care doresc sa se pregatesca din timp, va recomand sa vizitati pagina Note de Curs ce se poate accesa din meniul de sub logotipul siteului.

In calitate de mediu de dezvoltare a aplicatiilor cu microcontroller va recomand sa va instalati programele:
AVR Studio - simulatorul si mediul de dezvoltare a programelor
WinAvr - compilatorul C pentru AVR
Proteus - Simulatorul electric unde se poate dezvolta Hardware-ul virtual pentru incercarea primara a sistemelor cu microcontroller.

Cat despre HW real, special catre scoala de vara s-a finalizat dezvoltarea Placii de dezvoltare orientata spre solutionarea celor mai des intalnite probleme in sistemele embedded si incluse in cadrul lucrarilor de laborator a curiculei universitare la cursurile respective. Vezi aici placa, descrierea, posibilitatile, si problemele tipice pe care le solutioneaza.

Va asteptam cu drag pe 1 Iunie la Scoala.
Pe curand

vineri, 20 iunie 2014

MicroLab Development Board


Prezentare generala

 Placa data este proiecta in special pentru studenți și persoanele care doresc sa cunoasca cum lucreaza un microcontroller. Pe placa sunt multe componente, care sunt foarte utile pentru incepatori, cum ar fi LCD, potentiometre, buzzer, senzor de lumina, driver de lumina etc. Cu placa data se poate realiza un set divers de aplicatii incepad cu cele mai simple pana la un nivel de complexitate sporit



Caracteristici

  • Microcontroler ATMega32 si compatibile dupa pinout
  • Afisor LCD 16x2
  • Afisor LED 8x7 segmente
  • Interata de programare ISP
  • interfete I2C USB -UART, paralel
  • 8 canale RC pentru control servo
  • chip RTC - ceas de timp real cu alimentare autonoma.
  • Potentiometru analogic
  • Sensor de luminozitate/ proximitate
  • Sensor de temperatura
  • Drivere de pentru 2 motare in curecnt continuu sau un Stepper Motor
  • 8 LED-uri de uz general
  • Keypad de directii
  • Keypad 4x4
  • 2 relee de comutatie
  • Buton Reset
  • Buzzer Piezo

Exemple de aplicatii realizate cu aceasta placa

1) Aprinderea si stingerea unui led la apasarea unui singur buton.
2) Introducera unui numar prin intermediul unui switch si inmultirea cu un alt numar si afisarea rezultatului la afisorul de 7x8 segmente.
3) Evaluoarea unei expresii aritmetice si afisarea rezultatului la afisorul de 7x8 segmente.
4) Introducerea si extragerea numerilor din tablou si realizarea sumei tuturor elementelor.
5) Scanarea unei tastature 4x4 si afisarea rezultatului la afisorul de 7x8 segmente sau la un LCD.
6) Realizarea unui ceas de timp real.
7) Controlul vitezei de rotatie a doua motoare in dependent de modificarea valorii unei resistente variabile sau a unui sensor de lumina.
8) Controlul motoarelor servo (brat robotic)
9) Afisarea datelor personale la un LCD.
10) Controlul a doua motoare in dependent de comanda primita de la bluetooth.
11) Realizarea filtrelor digitale de prelucrare a semnalului.
12) Realizarea unui PID control, pentru unui sistem de control a unui motor in dependent de variatia temperature.
13) Ralizarea unui protocol de comunicare prin interfata UART cu alt microcontroller sau calculator.
14) Instalarea unui sistem de operare ca FreeRTOS.


Aviz Scoala de vara 2014

AVIZ


Clubul Ingineresc “Microlab”
Catedra Microelectronica si Inginerie Biomedicala

organizeaza in perioada 1-30 Iulie


Şcoala de vară: “Dezvoltarea sistemelor embedded”
(Aplicatii cu microcontrollere)

La scoala sunt admisi toti doritorii, indiferent de specializare si nivel de cunostinte.


Curicula cursului va cuprinde:
  • Introducere in programarea C pentru Microcontroller.
  • Tehnici de proiectare a Sistemelor Embedded.
  • Studiul si proiectarea interfeţei cu utilizatorul.
  • Colectarea datelor de la sensori si prelucrarea semnalelor.
  • Dispozitive de acţionare.
  • Sisteme de control.
  • Sisteme de operare RTOS.
  • Reţele în Sisteme Embedded .


Aplicaţiile se vor implementa pe Hardware real, proiectat special pentru acest curs.
La sfîrşitul cursurilor se vor înmîna certificate de participare.


Pentru a va exprima intentia de participare sau pentru informatii suplimentare va rog sa va adresati in biroul 409 bl3 UTM, Andrei Bragarenco, sau e-mail:  bragarenco@mcu-labs.com

Va asteptam.

marți, 18 martie 2014

Реализация алгоритмов при помощи команд условного перехода.

Программирование на языке ASM (и не только на ASM) предполагает условное или безусловное решение какой-либо задачи . Для безусловного решения  мы можем реализовать , так называемый , последовательный алгоритм , который состоит из последовательных операций перехода и операций обработки:
Условное решение предполагает набор операций перехода и обработки , в зависимости от условия:
Под «набором команд» мы подразумеваем выполнение от одной команды до целого ряда сложных последовательностей(участка кода) программы.
Набор команд для архитектуры AVR предполагает 2 типа условных команд:


  •     Команды условного перехода – BR_OP LABEL.
  •      Команды игнорирования следующей инструкции – SB_OP.

Введение в программирование ASM. Стек память. Подпрограмма и подпрограмма с параметрами.


    Введение в программирование ASM

    Основная сущность языка ASM - это команда.
    Программы - это последовательность команд,работающих одна за другой.
   Программирование на ASM представляет собой доступ к памяти и модификацию значений по данным адресам , при помощи команд. Язык позволяет группировать последовательности команд в подпрограммы, выполнение программы ведётся по условным и безусловным переходам.

    Структура программы ASM

МК в любой момент времени должен выполнять команду, определённую программистом. В то время , когда МК выполняет команду определённую программистом, тогда говорят, что МК находится под контролем программы. В обратном случае, если МК выполняет команду , не определённую программистом, тогда говорят, что МК вышел из под контроля. Программа, которая управляет МК должна постоянно контролировать МК, что подразумевает собой- бесконечный цикл.

    Разделим программу на 2 основных раздела:
1) Инициализация-последовательность команд в начале программы , которая служит для инициализации МК для его дальнейшей работы.
2) Обработка-решение задач и постоянный контроль МК , при помощи бесконечного цикла.

Программа на ASM имеет следующею структуру:

init:               ; точка входа в программу
    ...
    ...
    ...             ; инициализация МК
    ...
end_init:           ; индикатор конца инициализации
main_loop:          ; начало раздела обработки 
    ...
    ...             ; тело раздела обработки
    ...             ; включённой в бесконечный цикл
    ...
end_main_loop:      ; конец раздела обработки    
    rjmp main_loop  ; переход к началу бесконечного цикла

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

miercuri, 12 martie 2014

Архитектура микроконтроллера. Распределение памяти


        Прежде , чем перейти к анализу архитектуры микроконтроллера дадим некоторые определения:
       Микроконтроллер-схема, которая может выполнять любую функцию в зависимости от программы,которая должна быть выполнена.
       Программа-это набор инструкций(команд),которые выполняются друг за другом.
       Команда(инструкция)-это действие,которое выполняет ядро микроконтроллера.
   Ядро-основная часть микроконтроллера,которая выполняет команды(инструкции) программы.
 Микроконтроллер-мини-компьютер,который содержит в себе ядро микропроцессора,память программ и периферийные модули.В общем случае МК принимает информацию от входного интерфейса,перерабатывает её и выдаёт результат на выходной интерфейс.

marți, 11 martie 2014

Курс Микропроцессорные приложения.

Курс "Микропроцессорные приложения" представляет собой дидактический материал, посвящённый любителям по микропроцессорным приложениям , как и дополнительный материал к лекционному курсу в этой области.

В качестве микроконтроллера (МК) был выбран МК серии AVR от компании Atmel , а приложения , по большей части , будут спроектированы на МК Atmega16,который имеет большинство необходимых модулей для реализации задач данного курса. И так, данный курс содержит в себе описание некоторых тем и решения некоторых типовых задач. Мы выбрали МК серии AVR , т.к. у него относительно простая архитектура , по сравнению с его основными конкурентами. Тем не менее, большей частью для его выбора послужило наличие его на рынке и низкой его цены. Материал будет представлен таким образом, чтобы быть применимым и к другим МК серии AVR.

Данный курс разделён на 2 части:

1) Архитектура ядра микроконтроллера. Программирование на ASM-в этом разделе детально анализируется структура ядра МК, способ функционирования и способ работы его компонентов посредством программирования на языке низкого уровня ASM.

2)Программирование МК на языке C. Периферийные модули-где будет описано введение в программирование МК на языке С и будет подчёркиваться программирование данного МК на этом языке,как на языке высокого уровня. Приложения будут ориентированы на работу периферии данного МК и реализацию приложений для данного МК.

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