Въведение в Микроконтролерите Пловдив/2015-02-21

35
Микроконтролери (за абсолютно начинаещи) Въведение в микроконтролерите 2015-02-21, Hackafe Пловдив Copyright © 2015, Neven Boyanov This work by Neven Boyanov is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. Въведение в микроконтролерите 2015-02-21, Hackafe Пловдив Copyright © 2015, Neven Boyanov This work by Neven Boyanov is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License.

Upload: neven-boyanov

Post on 17-Jul-2015

271 views

Category:

Education


5 download

TRANSCRIPT

Page 1: Въведение в Микроконтролерите Пловдив/2015-02-21

Микроконтролери(за абсолютно начинаещи)

Въведение в микроконтролерите

2015-02-21, Hackafe Пловдив

Copyright © 2015, Neven Boyanov

This work by Neven Boyanov is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License.

Въведение в микроконтролерите

2015-02-21, Hackafe Пловдив

Copyright © 2015, Neven Boyanov

This work by Neven Boyanov is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License.

Page 2: Въведение в Микроконтролерите Пловдив/2015-02-21

Какво е това микроконтролер

Интегрална схема, съчетаваща в себе си микропроцесор, тактов генератор, оперативна памет и входно-изходни устройства, което и позволява да функционира ̀като самостоятелно компютърно устройство.

Page 3: Въведение в Микроконтролерите Пловдив/2015-02-21

Какво можем да правим с микроконтролер – нещо просто

Page 4: Въведение в Микроконтролерите Пловдив/2015-02-21

Какво можем да правим с микроконтролер – нещо сложно

Page 5: Въведение в Микроконтролерите Пловдив/2015-02-21

Как се програмира микроконтролер

Трябват ни …● Компютър● Програматор ● Микроконтролер

Page 6: Въведение в Микроконтролерите Пловдив/2015-02-21

Как работи микроконтролера

Page 7: Въведение в Микроконтролерите Пловдив/2015-02-21

Как контролираме битовете

Page 8: Въведение в Микроконтролерите Пловдив/2015-02-21

Примерна програма

#include <avr/io.h>

int main(void) {

DDRB |= (1 << PB3);

DDRB &= ~(1 << PB4);

while (1) {

if (PINB & (1 << PB4) == 0) {

PORTB |= (1 << PB3);

} else {

PORTB &= ~(1 << PB3);

}

}

return (0);

}

Page 9: Въведение в Микроконтролерите Пловдив/2015-02-21

Мигащ светодиод

#include <avr/io.h>#include <util/delay.h>int main(void) { DDRB |= (1 << PB3); while (1) { PORTB |= (1 << PB3); _delay_ms(200); PORTB &= ~(1 << PB3); _delay_ms(400); } return (0);}

Page 10: Въведение в Микроконтролерите Пловдив/2015-02-21

Мигащ светодиодстъпка 1

#include <avr/io.h>● Включване на

стандартните за за микроконтролера дефиниции с помоща на #include директивите.

Page 11: Въведение в Микроконтролерите Пловдив/2015-02-21

Мигащ светодиодстъпка 2

#include <avr/io.h>

int main(void) {

return (0);}

● Главната за програмата main() функция.

Page 12: Въведение в Микроконтролерите Пловдив/2015-02-21

Мигащ светодиодстъпка 3

#include <avr/io.h>

int main(void) { DDRB |= (1 << PB3);

return (0);}

● Настройка на PB3 като изход.

Page 13: Въведение в Микроконтролерите Пловдив/2015-02-21

Мигащ светодиодстъпка 4

#include <avr/io.h>

int main(void) { DDRB |= (1 << PB3); while (1) {

} return (0);}

● Задаване на безкраен цикъл wihle(1) за изпълнение на програмата.

Page 14: Въведение в Микроконтролерите Пловдив/2015-02-21

Мигащ светодиодстъпка 5

#include <avr/io.h>

int main(void) { DDRB |= (1 << PB3); while (1) { PORTB |= (1 << PB3);

PORTB &= ~(1 << PB3);

} return (0);}

● Последователно установяване на изхода в …– 1 = високо ниво

– 0 = ниско ниво

… съответстващо на включване и изключване на светодиода.

Page 15: Въведение в Микроконтролерите Пловдив/2015-02-21

Мигащ светодиодстъпка 6

#include <avr/io.h>#include <util/delay.h>int main(void) { DDRB |= (1 << PB3); while (1) { PORTB |= (1 << PB3); _delay_ms(200); PORTB &= ~(1 << PB3); _delay_ms(400); } return (0);}

● Задаване на закъснение след всяко включване и изключване.

Page 16: Въведение в Микроконтролерите Пловдив/2015-02-21

Среда за разработка

Windows● WinAVR / AVR-GCC

Linux● AVR-GCC

$ make ...

$ avrdude ...

Page 17: Въведение в Микроконтролерите Пловдив/2015-02-21

make

Page 18: Въведение в Микроконтролерите Пловдив/2015-02-21

avrdude

Page 19: Въведение в Микроконтролерите Пловдив/2015-02-21

Практика

Page 20: Въведение в Микроконтролерите Пловдив/2015-02-21

Въпроси

?

Page 21: Въведение в Микроконтролерите Пловдив/2015-02-21

Контакти и препратки

Невен Боянов● https://twitter.com/boyanov● https://www.facebook.com/boyanov● http://www.boyanov.org

Tinusaur● http://tinusaur.org● https://www.facebook.com/tinusaur

Programmers' Club in Veliko Turnovo● http://www.pcvt.org● https://www.facebook.com/groups/pcvt.org/

Невен Боянов● https://twitter.com/boyanov● https://www.facebook.com/boyanov● http://www.boyanov.org

Tinusaur● http://tinusaur.org● https://www.facebook.com/tinusaur

Programmers' Club in Veliko Turnovo● http://www.pcvt.org● https://www.facebook.com/groups/pcvt.org/

Page 22: Въведение в Микроконтролерите Пловдив/2015-02-21

Бонус

Page 23: Въведение в Микроконтролерите Пловдив/2015-02-21

Tinusaur : Какво е това?Tinusaur : Какво е това?

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

● Минималния брой компоненти нужни на микроконтролера

● Конектор за програмиране на микроконтролера

● Малка батерия и държач● Отвори за монтиране

Page 24: Въведение в Микроконтролерите Пловдив/2015-02-21

Проста и евтина платформа за абсолютно начинаещи и нетърпеливи помагаща да се научат бързо как да работят с микроконтролери

Какви са целите?Какви са целите?

Относно хардуера ...● Да се научим как да

подбираме необходимите компоненти

● Да се научим как да запояваме и сглобяваме

За 1 час!!!Осигуряване на необходимите компоненти, помощни инструменти и знания, за да завършите всичко от начало до край в рамките на 1 час или по-малко

Относно софтуера …● Да се научим как да инсталираме,

настроим и ползваме средата за разработка.

● Да се научим как да пишем прости програми за микроконтролери

Page 25: Въведение в Микроконтролерите Пловдив/2015-02-21

Какво включва Проекта Тинузавър?Какво включва Проекта Тинузавър?

● Дизайна на Тинузавър ● Ръководствата

● Проекти с Тинузавър● Уроци и примерни програми.

Page 26: Въведение в Микроконтролерите Пловдив/2015-02-21

Екстри: Add-on платкиЕкстри: Add-on платки

Page 27: Въведение в Микроконтролерите Пловдив/2015-02-21

Hello World!Hello World!

#include <avr/io.h>#include <util/delay.h>// Define the I/O port to be used for the LED.#define LED_PORT PB3int main(void) { // Set the LED port number as output. // The DDRB is the data direction for port B.

DDRB |= (1 << LED_PORT); // Start an infinite loop. while (1) { // Set the LED bit to "1" - LED "on"

PORTB |= (1 << LED_PORT); _delay_ms(200); // Wait a little. // Set the LED bit to "0" - LED "off"

PORTB &= ~(1 << LED_PORT); _delay_ms(400); // Wait a little. } return (0);}

Page 28: Въведение в Микроконтролерите Пловдив/2015-02-21

Проекти използващи ТинузавърПроекти използващи Тинузавър

Page 29: Въведение в Микроконтролерите Пловдив/2015-02-21

Сравнение с други подобниСравнение с други подобни

Page 30: Въведение в Микроконтролерите Пловдив/2015-02-21

Сравнение по параметриСравнение по параметри

Raspberry Pi Arduino Uno ATtiny85/Tinusaur

Processor ARM11 – 32-bit RISK ATmega328P 8-bit RISK ATtiny85 – 8-bit RISK

Frequancy 700 MHz 16 MHz 1 MHz

Memory RAM 256/512 MB 2 KB 512 B

Memory PRG On-board SD slot 32 KB, 1 KB EERPROM 8 KB, 512 B EERPROM

Input/Output 8×GPIO, UART, I²C, SPI ... 6 analog, 14 digital 6 analog/digital

Peripheral USB, audio & video, HDMI - -

OS Linux, etc. - -

Dimensions 85×56 mm 53×68 mm 23×36 mm

Weight 45 гр. 28 гр. 9 гр.

Power 500mA, 700–1000 mA 50 mA 1-2 мА, 300 µA (0.1 µA)

Cost 35 USD 20 USD (10 USD) 5 USD (8 USD Starter)

Page 31: Въведение в Микроконтролерите Пловдив/2015-02-21

Кой би могъл да го използва?Кой би могъл да го използва?

● Абсолютно начинаещите, не е необходим никакъв почти опит

● Програмисти които са нетърпеливи да научат как работи хардуера

● Учители и преподаватели в училища, университети и др.

Page 32: Въведение в Микроконтролерите Пловдив/2015-02-21

Кой не би могъл да го използва?Кой не би могъл да го използва?

Това може да се окаже дразнещо за хора които ...

● Експерти по хардуера● Експерти по

микроконтролери● Специалисти по и

Raspberry Pi● Които мразят C/C++ :)

Където ...● Има нужда от повече памет● Има нужда от бърз

процесор● Има нужда от по-голям

брои входно-изходни канали

Page 33: Въведение в Микроконтролерите Пловдив/2015-02-21

Къде се използва в момента?Къде се използва в момента?

В обучението:● Училища, извънкласни

форми● Университети, като

допълнителен материал● Университети в чужбина

● Лични проекти

Ще бъде използвано в ...● летни училища по

електроника и роботика

Page 34: Въведение в Микроконтролерите Пловдив/2015-02-21

Как се очаква в бъдеще?Как се очаква в бъдеще?

● Подобрени ръководства● Подобрени онлайн уроци● Повече проекти

● Повече add-on платки– Сензори– Дисплеи– Безжична комуникация

Може би …Нова платка с ARM базиран Cortex M0+ процесор, напр. Atmel SAM D10/D11

● Видео уроци

Page 35: Въведение в Микроконтролерите Пловдив/2015-02-21

КонтактиКонтакти

http://tinusaur.org

http://facebook.com/tinusaurhttp://twitter.com/tinusaur

… или просто Google: "tinusaur"