Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Микроконтролери
(за абсолютно начинаещи)
Въведение в микроконтролерите
2015-02-21, Hackafe Пловдив
Copyright © 2015, Neven...
Какво е това микроконтролер
Интегрална схема, съчетаваща в себе си
микропроцесор, тактов генератор,
оперативна памет и вхо...
Какво можем да правим с
микроконтролер – нещо просто
Какво можем да правим с
микроконтролер – нещо сложно
Как се програмира микроконтролер
Трябват ни …
● Компютър
● Програматор
● Микроконтролер
Как работи микроконтролера
Как контролираме битовете
Примерна програма
#include <avr/io.h>
int main(void) {
DDRB |= (1 << PB3);
DDRB &= ~(1 << PB4);
while (1) {
if (PINB & (1 ...
Мигащ светодиод
#include <avr/io.h>
#include <util/delay.h>
int main(void) {
DDRB |= (1 << PB3);
while (1) {
PORTB |= (1 <...
Мигащ светодиод
стъпка 1
#include <avr/io.h>
● Включване на
стандартните за за
микроконтролера
дефиниции с помоща
на #incl...
Мигащ светодиод
стъпка 2
#include <avr/io.h>
int main(void) {
return (0);
}
● Главната за
програмата main()
функция.
Мигащ светодиод
стъпка 3
#include <avr/io.h>
int main(void) {
DDRB |= (1 << PB3);
return (0);
}
● Настройка на PB3
като из...
Мигащ светодиод
стъпка 4
#include <avr/io.h>
int main(void) {
DDRB |= (1 << PB3);
while (1) {
}
return (0);
}
● Задаване н...
Мигащ светодиод
стъпка 5
#include <avr/io.h>
int main(void) {
DDRB |= (1 << PB3);
while (1) {
PORTB |= (1 << PB3);
PORTB &...
Мигащ светодиод
стъпка 6
#include <avr/io.h>
#include <util/delay.h>
int main(void) {
DDRB |= (1 << PB3);
while (1) {
PORT...
Среда за разработка
Windows
● WinAVR / AVR-GCC
Linux
● AVR-GCC
$ make ...
$ avrdude ...
make
avrdude
Практика
Въпроси
?
Контакти и препратки
Невен Боянов
● https://twitter.com/boyanov
● https://www.facebook.com/boyanov
● http://www.boyanov.or...
Бонус
Tinusaur: Какво е това?Tinusaur: Какво е това?
● Платка с ATtiny85
микроконтролер
● Минималния брой
компоненти нужни на
ми...
Проста и евтина платформа
за абсолютно начинаещи 
и нетърпеливи помагаща да
се научат бързо как да
работят с микроконтроле...
Какво включва Проекта Тинузавър?Какво включва Проекта Тинузавър?
● Дизайна на Тинузавър ● Ръководствата
● Проекти с Тинуза...
Екстри: Add-on платкиЕкстри: Add-on платки
Hello World!Hello World!
#include <avr/io.h>
#include <util/delay.h>
// Define the I/O port to be used for the LED.
#defin...
Проекти използващи ТинузавърПроекти използващи Тинузавър
Сравнение с други подобниСравнение с други подобни
Сравнение по параметриСравнение по параметри
Raspberry Pi Arduino Uno ATtiny85/Tinusaur
Processor ARM11 – 32-bit RISK ATme...
Кой би могъл да го използва?Кой би могъл да го използва?
● Абсолютно начинаещите,
не е необходим никакъв
почти опит
● Прог...
Кой не би могъл да го използва?Кой не би могъл да го използва?
Това може да се окаже
дразнещо за хора които ...
● Експерти...
Къде се използва в момента?Къде се използва в момента?
В обучението:
● Училища, извънкласни
форми
● Университети, като
доп...
Как се очаква в бъдеще?Как се очаква в бъдеще?
● Подобрени ръководства
● Подобрени онлайн уроци
● Повече проекти
● Повече ...
КонтактиКонтакти
http://tinusaur.org
http://facebook.com/tinusaur
http://twitter.com/tinusaur
… или просто Google: "tinusa...
Upcoming SlideShare
Loading in …5
×

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

Въведение в микроконтролерите като за съвсем начинаещи. Работа с Atmel AVR и по-специално ATtiny85.

  • Be the first to comment

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

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

×