Въведение в Микроконтролерите Пловдив/2015-02-21
-
Upload
neven-boyanov -
Category
Education
-
view
271 -
download
5
Transcript of Въведение в Микроконтролерите Пловдив/2015-02-21
![Page 1: Въведение в Микроконтролерите Пловдив/2015-02-21](https://reader031.fdocuments.in/reader031/viewer/2022020208/55a92a391a28abbd768b48dd/html5/thumbnails/1.jpg)
Микроконтролери(за абсолютно начинаещи)
Въведение в микроконтролерите
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](https://reader031.fdocuments.in/reader031/viewer/2022020208/55a92a391a28abbd768b48dd/html5/thumbnails/2.jpg)
Какво е това микроконтролер
Интегрална схема, съчетаваща в себе си микропроцесор, тактов генератор, оперативна памет и входно-изходни устройства, което и позволява да функционира ̀като самостоятелно компютърно устройство.
![Page 3: Въведение в Микроконтролерите Пловдив/2015-02-21](https://reader031.fdocuments.in/reader031/viewer/2022020208/55a92a391a28abbd768b48dd/html5/thumbnails/3.jpg)
Какво можем да правим с микроконтролер – нещо просто
![Page 4: Въведение в Микроконтролерите Пловдив/2015-02-21](https://reader031.fdocuments.in/reader031/viewer/2022020208/55a92a391a28abbd768b48dd/html5/thumbnails/4.jpg)
Какво можем да правим с микроконтролер – нещо сложно
![Page 5: Въведение в Микроконтролерите Пловдив/2015-02-21](https://reader031.fdocuments.in/reader031/viewer/2022020208/55a92a391a28abbd768b48dd/html5/thumbnails/5.jpg)
Как се програмира микроконтролер
Трябват ни …● Компютър● Програматор ● Микроконтролер
![Page 6: Въведение в Микроконтролерите Пловдив/2015-02-21](https://reader031.fdocuments.in/reader031/viewer/2022020208/55a92a391a28abbd768b48dd/html5/thumbnails/6.jpg)
Как работи микроконтролера
![Page 7: Въведение в Микроконтролерите Пловдив/2015-02-21](https://reader031.fdocuments.in/reader031/viewer/2022020208/55a92a391a28abbd768b48dd/html5/thumbnails/7.jpg)
Как контролираме битовете
![Page 8: Въведение в Микроконтролерите Пловдив/2015-02-21](https://reader031.fdocuments.in/reader031/viewer/2022020208/55a92a391a28abbd768b48dd/html5/thumbnails/8.jpg)
Примерна програма
#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](https://reader031.fdocuments.in/reader031/viewer/2022020208/55a92a391a28abbd768b48dd/html5/thumbnails/9.jpg)
Мигащ светодиод
#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](https://reader031.fdocuments.in/reader031/viewer/2022020208/55a92a391a28abbd768b48dd/html5/thumbnails/10.jpg)
Мигащ светодиодстъпка 1
#include <avr/io.h>● Включване на
стандартните за за микроконтролера дефиниции с помоща на #include директивите.
![Page 11: Въведение в Микроконтролерите Пловдив/2015-02-21](https://reader031.fdocuments.in/reader031/viewer/2022020208/55a92a391a28abbd768b48dd/html5/thumbnails/11.jpg)
Мигащ светодиодстъпка 2
#include <avr/io.h>
int main(void) {
return (0);}
● Главната за програмата main() функция.
![Page 12: Въведение в Микроконтролерите Пловдив/2015-02-21](https://reader031.fdocuments.in/reader031/viewer/2022020208/55a92a391a28abbd768b48dd/html5/thumbnails/12.jpg)
Мигащ светодиодстъпка 3
#include <avr/io.h>
int main(void) { DDRB |= (1 << PB3);
return (0);}
● Настройка на PB3 като изход.
![Page 13: Въведение в Микроконтролерите Пловдив/2015-02-21](https://reader031.fdocuments.in/reader031/viewer/2022020208/55a92a391a28abbd768b48dd/html5/thumbnails/13.jpg)
Мигащ светодиодстъпка 4
#include <avr/io.h>
int main(void) { DDRB |= (1 << PB3); while (1) {
} return (0);}
● Задаване на безкраен цикъл wihle(1) за изпълнение на програмата.
![Page 14: Въведение в Микроконтролерите Пловдив/2015-02-21](https://reader031.fdocuments.in/reader031/viewer/2022020208/55a92a391a28abbd768b48dd/html5/thumbnails/14.jpg)
Мигащ светодиодстъпка 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](https://reader031.fdocuments.in/reader031/viewer/2022020208/55a92a391a28abbd768b48dd/html5/thumbnails/15.jpg)
Мигащ светодиодстъпка 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](https://reader031.fdocuments.in/reader031/viewer/2022020208/55a92a391a28abbd768b48dd/html5/thumbnails/16.jpg)
Среда за разработка
Windows● WinAVR / AVR-GCC
Linux● AVR-GCC
$ make ...
$ avrdude ...
![Page 17: Въведение в Микроконтролерите Пловдив/2015-02-21](https://reader031.fdocuments.in/reader031/viewer/2022020208/55a92a391a28abbd768b48dd/html5/thumbnails/17.jpg)
make
![Page 18: Въведение в Микроконтролерите Пловдив/2015-02-21](https://reader031.fdocuments.in/reader031/viewer/2022020208/55a92a391a28abbd768b48dd/html5/thumbnails/18.jpg)
avrdude
![Page 19: Въведение в Микроконтролерите Пловдив/2015-02-21](https://reader031.fdocuments.in/reader031/viewer/2022020208/55a92a391a28abbd768b48dd/html5/thumbnails/19.jpg)
Практика
![Page 20: Въведение в Микроконтролерите Пловдив/2015-02-21](https://reader031.fdocuments.in/reader031/viewer/2022020208/55a92a391a28abbd768b48dd/html5/thumbnails/20.jpg)
Въпроси
?
![Page 21: Въведение в Микроконтролерите Пловдив/2015-02-21](https://reader031.fdocuments.in/reader031/viewer/2022020208/55a92a391a28abbd768b48dd/html5/thumbnails/21.jpg)
Контакти и препратки
Невен Боянов● 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](https://reader031.fdocuments.in/reader031/viewer/2022020208/55a92a391a28abbd768b48dd/html5/thumbnails/22.jpg)
Бонус
![Page 23: Въведение в Микроконтролерите Пловдив/2015-02-21](https://reader031.fdocuments.in/reader031/viewer/2022020208/55a92a391a28abbd768b48dd/html5/thumbnails/23.jpg)
Tinusaur : Какво е това?Tinusaur : Какво е това?
● Платка с ATtiny85 микроконтролер
● Минималния брой компоненти нужни на микроконтролера
● Конектор за програмиране на микроконтролера
● Малка батерия и държач● Отвори за монтиране
![Page 24: Въведение в Микроконтролерите Пловдив/2015-02-21](https://reader031.fdocuments.in/reader031/viewer/2022020208/55a92a391a28abbd768b48dd/html5/thumbnails/24.jpg)
Проста и евтина платформа за абсолютно начинаещи и нетърпеливи помагаща да се научат бързо как да работят с микроконтролери
Какви са целите?Какви са целите?
Относно хардуера ...● Да се научим как да
подбираме необходимите компоненти
● Да се научим как да запояваме и сглобяваме
За 1 час!!!Осигуряване на необходимите компоненти, помощни инструменти и знания, за да завършите всичко от начало до край в рамките на 1 час или по-малко
Относно софтуера …● Да се научим как да инсталираме,
настроим и ползваме средата за разработка.
● Да се научим как да пишем прости програми за микроконтролери
![Page 25: Въведение в Микроконтролерите Пловдив/2015-02-21](https://reader031.fdocuments.in/reader031/viewer/2022020208/55a92a391a28abbd768b48dd/html5/thumbnails/25.jpg)
Какво включва Проекта Тинузавър?Какво включва Проекта Тинузавър?
● Дизайна на Тинузавър ● Ръководствата
● Проекти с Тинузавър● Уроци и примерни програми.
![Page 26: Въведение в Микроконтролерите Пловдив/2015-02-21](https://reader031.fdocuments.in/reader031/viewer/2022020208/55a92a391a28abbd768b48dd/html5/thumbnails/26.jpg)
Екстри: Add-on платкиЕкстри: Add-on платки
![Page 27: Въведение в Микроконтролерите Пловдив/2015-02-21](https://reader031.fdocuments.in/reader031/viewer/2022020208/55a92a391a28abbd768b48dd/html5/thumbnails/27.jpg)
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](https://reader031.fdocuments.in/reader031/viewer/2022020208/55a92a391a28abbd768b48dd/html5/thumbnails/28.jpg)
Проекти използващи ТинузавърПроекти използващи Тинузавър
![Page 29: Въведение в Микроконтролерите Пловдив/2015-02-21](https://reader031.fdocuments.in/reader031/viewer/2022020208/55a92a391a28abbd768b48dd/html5/thumbnails/29.jpg)
Сравнение с други подобниСравнение с други подобни
![Page 30: Въведение в Микроконтролерите Пловдив/2015-02-21](https://reader031.fdocuments.in/reader031/viewer/2022020208/55a92a391a28abbd768b48dd/html5/thumbnails/30.jpg)
Сравнение по параметриСравнение по параметри
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](https://reader031.fdocuments.in/reader031/viewer/2022020208/55a92a391a28abbd768b48dd/html5/thumbnails/31.jpg)
Кой би могъл да го използва?Кой би могъл да го използва?
● Абсолютно начинаещите, не е необходим никакъв почти опит
● Програмисти които са нетърпеливи да научат как работи хардуера
● Учители и преподаватели в училища, университети и др.
![Page 32: Въведение в Микроконтролерите Пловдив/2015-02-21](https://reader031.fdocuments.in/reader031/viewer/2022020208/55a92a391a28abbd768b48dd/html5/thumbnails/32.jpg)
Кой не би могъл да го използва?Кой не би могъл да го използва?
Това може да се окаже дразнещо за хора които ...
● Експерти по хардуера● Експерти по
микроконтролери● Специалисти по и
Raspberry Pi● Които мразят C/C++ :)
Където ...● Има нужда от повече памет● Има нужда от бърз
процесор● Има нужда от по-голям
брои входно-изходни канали
![Page 33: Въведение в Микроконтролерите Пловдив/2015-02-21](https://reader031.fdocuments.in/reader031/viewer/2022020208/55a92a391a28abbd768b48dd/html5/thumbnails/33.jpg)
Къде се използва в момента?Къде се използва в момента?
В обучението:● Училища, извънкласни
форми● Университети, като
допълнителен материал● Университети в чужбина
● Лични проекти
Ще бъде използвано в ...● летни училища по
електроника и роботика
![Page 34: Въведение в Микроконтролерите Пловдив/2015-02-21](https://reader031.fdocuments.in/reader031/viewer/2022020208/55a92a391a28abbd768b48dd/html5/thumbnails/34.jpg)
Как се очаква в бъдеще?Как се очаква в бъдеще?
● Подобрени ръководства● Подобрени онлайн уроци● Повече проекти
● Повече add-on платки– Сензори– Дисплеи– Безжична комуникация
Може би …Нова платка с ARM базиран Cortex M0+ процесор, напр. Atmel SAM D10/D11
● Видео уроци
![Page 35: Въведение в Микроконтролерите Пловдив/2015-02-21](https://reader031.fdocuments.in/reader031/viewer/2022020208/55a92a391a28abbd768b48dd/html5/thumbnails/35.jpg)
КонтактиКонтакти
http://tinusaur.org
http://facebook.com/tinusaurhttp://twitter.com/tinusaur
… или просто Google: "tinusaur"