SlideShare una empresa de Scribd logo
1 de 26
Програмиране на дребни устройства:
еволюцията от микроконтролера до
Arduino и Raspberry Pi
Невен Боянов
Bulgaria Web Summit 2014
2014-05-31
Защо ни е да знаем
как работи хардуера
Какви проблеми се решават с
хардуера
● Основно софтуерни :)
– Връзка с външния свят: вход/изход
● Създава още повече софтуерни проблеми.
Трудно ли се разработва хардуер за
малки устройства
Не!
3 платформи
Raspberry Pi Arduino ATtiny85
Схема със светодиод
● Raspberry Pi
● Arduino
● Microcontroller
ATtiny85
● Processing, Wiring, Arduino, ...
Raspberry Pi – C/C++
#include <wiringPi.h>
int main (void)
{
wiringPiSetup ();
pinMode (0, OUTPUT);
for (;;)
{
digitalWrite (0, HIGH);
delay (500);
digitalWrite (0, LOW);
delay (500);
}
return 0;
}
#include <wiringPi.h>
int main (void)
{
wiringPiSetup ();
pinMode (0, OUTPUT);
for (;;)
{
digitalWrite (0, HIGH);
delay (500);
digitalWrite (0, LOW);
delay (500);
}
return 0;
}
Raspberry Pi – Python
import RPi.GPIO as GPIO
import time
# blinking function
def blink(pin):
GPIO.output(pin,GPIO.HIGH)
time.sleep(1)
GPIO.output(pin,GPIO.LOW)
time.sleep(1)
return
# to use Raspberry Pi board pin numbers
GPIO.setmode(GPIO.BOARD)
# set up GPIO output channel
GPIO.setup(11, GPIO.OUT)
# blink GPIO17 50 times
for i in range(0,50):
blink(11)
GPIO.cleanup()
Arduino – C/C++
// Pin 13 has an LED connected on most Arduino boards.
// give it a name:
int led = 13;
// the setup routine runs once when you press reset:
void setup() {
// initialize the digital pin as an output.
pinMode(led, OUTPUT);
}
// the loop routine runs over and over again forever:
void loop() {
digitalWrite(led, HIGH); // turn the LED on
delay(1000); // wait for a second
digitalWrite(led, LOW); // turn the LED off
delay(1000); // wait for a second
}
ATtiny85 – C/C++
#include <avr/io.h>
#include <util/delay.h>
// Define the I/O port to be used for the LED.
// This a number between 0 and 7 that tells which bit to use.
#define LED_PORT PB3
int main(void) {
// Set the LED port number as output.
// The DDRB is the data direction for port B.
// - shifts the "1" on left to the desired position and ...
// - does bitwise "OR" with the value in the port register.
DDRB |= (1 << LED_PORT);
// Start infinite loop.
while (1) {
// Set the LED bit to "1" - LED will be "on".
PORTB |= (1 << LED_PORT);
// Wait a little. The delay does N-number of "empty" loops.
_delay_ms(200);
// Set the LED bit to "0" - LED will be "off".
PORTB &= ~(1 << LED_PORT);
// Wait a little.
_delay_ms(400);
}
return (0);
}
Как да изберем какъв хардуер да
използваме
The Tinusaur project
● ATtiny85, 8-bit RISK
● 1 MHz (up to 20 MHz)
● 512 B RAM
● 8 KB PRG
● 512 B EEPROM
● 6 GPIO
Технически критерии за сравнение
Raspberry Pi Arduino Uno ATtiny85/Tinusaur
Процесор ARM11 – 32-bit RISK ATmega328P 8-bit RISK ATtiny85 – 8-bit RISK
Честота 700 MHz 16 MHz 1 MHz
Памет RAM 256/512 MB 2 KB 512 B
Памет PRG On-board SD slot 32 KB, 1 KB EERPROM 8 KB, 512 B EERPROM
Вход/изход 8×GPIO, UART, I²C, SPI ... 6 analog, 14 digital 6 analog/digital
Периферия USB, audio & video, HDMI - -
OS Linux, etc. - -
Размери 85×56 mm 53×68 mm 23×36 mm
Тегло 45 гр. 28 гр. 9 гр.
Консумация 500mA, 700–1000 mA 50 mA 1-2 мА, 300 µA (0.1 µA)
Цена 35 USD 20 USD (10 USD) 8 USD (5 USD)
Една практическа задача:
говореща играчка
Talking Toy
Основни функции:
● Дигитализиране на
аудио
●
Запис на аудио в
паметта
● Промени в записания
сигнал
●
Възпроизвеждане на
аудио
Ако използваме Raspberry Pi + Linux
● Трябва да се използва
външен модул за
аудио вход
● Кода може да се
напише на:
– C/C++
– Python
– Shell script
– Etc..
Ако използваме Arduino
● Външен модул за
запис и
възпроизвеждане
за аудио
● Програма за
комуникация с
модула
– Ползва се C/C++
Ако използваме ATtiny85/Tinusaur
Нужни са:
● микрофон с предусилвател
● външна памет със сериен достъп
●
високоговорител с усилвател
Най-важното е:
● Програма
Защо ATtiny85/Tinusaur
Ефективен:
● Минималната нужна
производителност
● Ниска консумация
● Ниска себестойност
● Миниатюрни размери
● Лесен старт при
разработката
Предимства на другите:
● Arduino:
– повече памет за код;
– възможност за разширение
на възможностите;
– сравнително ниска цена.
● Raspberry Pi:
– достатъчно ресурси
(процесор и памет);
– възможност за разширение
на възможностите.
А защо не ATtiny85/Tinusaur
● Няма достатъчно
вградена памет за
данни.
● Малко памет за
код.
● Невъзможност за
значително
разширение при
бъдещи нужди.
Недостатъци на другите
решения:
● Arduino:
– по-висока себестойност;
– по-големи размери;
– по-висока консумация.
● Raspberry Pi:
– прекалено мощен за
задачата;
– висока себестойност;
– много висока консумация;
– големи размери.
За какво друго може да ни
послужи ATtiny85/Tinusaur
Лични проекти:
● Включване и
изключване при
различни условия –
време, температура,
светлина, сигнал, и
др.
За какво друго: обучение
Обхваща един пълен, но
лесен за усвояване, цикъл на
разработка на малка
микропроцесорна система:
● подбор на компонентите на
системата
●
сглобяване на хардуера
●
писане на софтуер на ниско
ниво
●
писане на софтуер на високо
ниво
● решаване на
теоретични задачи
– хардуерни – логика,
сигнали и др.
– софтуерни – алгоритми,
паралелни задачи и др.
● решаване на
практически задачи
● създаване на реални
продукти
Kickstarter проекти: Arduino
Kickstarter проекти: Arduino
Въпроси и отговори
?
Контакти
Невен Боянов
https://www.facebook.com/boyanov
https://twitter.com/boyanov
https://plus.google.com/+NevenBoyanov
http://www.boyanov.org/
Tinusaur
The Tinusaur Project
http://tinusaur.org
http://tinusaur.wordpress.com
https://www.facebook.com/tinusaur
https://twitter.com/tinusaur
http://tinusaur.storenvy.com

Más contenido relacionado

Destacado

Safety and email protection from spam
Safety and email protection from spamSafety and email protection from spam
Safety and email protection from spamSvetoslav Stoimenov
 
Kурсова работа БЗКСП ралица христова
Kурсова работа БЗКСП ралица христоваKурсова работа БЗКСП ралица христова
Kурсова работа БЗКСП ралица христоваRalica Hristova
 
упражнение контроли калкулатор
упражнение контроли   калкулаторупражнение контроли   калкулатор
упражнение контроли калкулаторdnaidenowa
 
Network Security and Network Attacks
Network Security and Network AttacksNetwork Security and Network Attacks
Network Security and Network AttacksSvetlin Nakov
 
63.кеш памет
63.кеш памет63.кеш памет
63.кеш паметdnaidenowa
 
Техническа обезпеченост на студентите за учене чрез мобилни технологии
Техническа обезпеченост  на студентите за учене чрез мобилни технологииТехническа обезпеченост  на студентите за учене чрез мобилни технологии
Техническа обезпеченост на студентите за учене чрез мобилни технологииgjadkov
 
\"Guerrilla Marketing\" в Интернет - Жанер Найденова
\"Guerrilla Marketing\" в Интернет - Жанер Найденова\"Guerrilla Marketing\" в Интернет - Жанер Найденова
\"Guerrilla Marketing\" в Интернет - Жанер НайденоваDigital Agency Interactive Share
 
интернет Yordan
интернет Yordanинтернет Yordan
интернет Yordanvyapova
 
СофтУни - представяне във Велико Търново - 1 март 2014
СофтУни - представяне във Велико Търново - 1 март 2014СофтУни - представяне във Велико Търново - 1 март 2014
СофтУни - представяне във Велико Търново - 1 март 2014Software University
 
Snezhana Filipova, Librarian at Obrazovanie Public Chitalishte in the village...
Snezhana Filipova, Librarian at Obrazovanie Public Chitalishte in the village...Snezhana Filipova, Librarian at Obrazovanie Public Chitalishte in the village...
Snezhana Filipova, Librarian at Obrazovanie Public Chitalishte in the village...Glob@l Libraries - Bulgaria Program
 
Software University: for the Business (Jan 2014)
Software University: for the Business (Jan 2014)Software University: for the Business (Jan 2014)
Software University: for the Business (Jan 2014)Software University
 
Теоремата на фон Нойман за отсъствие на скрити параметри в квантовата механика
Теоремата на фон Нойман за отсъствие на скрити параметри в квантовата механикаТеоремата на фон Нойман за отсъствие на скрити параметри в квантовата механика
Теоремата на фон Нойман за отсъствие на скрити параметри в квантовата механикаVasil Penchev
 

Destacado (20)

Safety and email protection from spam
Safety and email protection from spamSafety and email protection from spam
Safety and email protection from spam
 
Kурсова работа БЗКСП ралица христова
Kурсова работа БЗКСП ралица христоваKурсова работа БЗКСП ралица христова
Kурсова работа БЗКСП ралица христова
 
хакери
хакерихакери
хакери
 
Лекция първа Security
Лекция първа SecurityЛекция първа Security
Лекция първа Security
 
Present tsa 10
Present tsa 10Present tsa 10
Present tsa 10
 
Os
OsOs
Os
 
Xp, vista, win7
Xp, vista, win7Xp, vista, win7
Xp, vista, win7
 
Chap6
Chap6Chap6
Chap6
 
упражнение контроли калкулатор
упражнение контроли   калкулаторупражнение контроли   калкулатор
упражнение контроли калкулатор
 
Chap4
Chap4Chap4
Chap4
 
Network Security and Network Attacks
Network Security and Network AttacksNetwork Security and Network Attacks
Network Security and Network Attacks
 
63.кеш памет
63.кеш памет63.кеш памет
63.кеш памет
 
Техническа обезпеченост на студентите за учене чрез мобилни технологии
Техническа обезпеченост  на студентите за учене чрез мобилни технологииТехническа обезпеченост  на студентите за учене чрез мобилни технологии
Техническа обезпеченост на студентите за учене чрез мобилни технологии
 
\"Guerrilla Marketing\" в Интернет - Жанер Найденова
\"Guerrilla Marketing\" в Интернет - Жанер Найденова\"Guerrilla Marketing\" в Интернет - Жанер Найденова
\"Guerrilla Marketing\" в Интернет - Жанер Найденова
 
интернет Yordan
интернет Yordanинтернет Yordan
интернет Yordan
 
Reup&Audit2
Reup&Audit2Reup&Audit2
Reup&Audit2
 
СофтУни - представяне във Велико Търново - 1 март 2014
СофтУни - представяне във Велико Търново - 1 март 2014СофтУни - представяне във Велико Търново - 1 март 2014
СофтУни - представяне във Велико Търново - 1 март 2014
 
Snezhana Filipova, Librarian at Obrazovanie Public Chitalishte in the village...
Snezhana Filipova, Librarian at Obrazovanie Public Chitalishte in the village...Snezhana Filipova, Librarian at Obrazovanie Public Chitalishte in the village...
Snezhana Filipova, Librarian at Obrazovanie Public Chitalishte in the village...
 
Software University: for the Business (Jan 2014)
Software University: for the Business (Jan 2014)Software University: for the Business (Jan 2014)
Software University: for the Business (Jan 2014)
 
Теоремата на фон Нойман за отсъствие на скрити параметри в квантовата механика
Теоремата на фон Нойман за отсъствие на скрити параметри в квантовата механикаТеоремата на фон Нойман за отсъствие на скрити параметри в квантовата механика
Теоремата на фон Нойман за отсъствие на скрити параметри в квантовата механика
 

Similar a Programming Small Devices - Web Summit Bulgaria 2014

Курсове по роботика с Arduino 1.0
Курсове по роботика с Arduino 1.0Курсове по роботика с Arduino 1.0
Курсове по роботика с Arduino 1.0Milen Tsolov
 
16. серийна шина usb. основни характеристики
16. серийна шина usb. основни характеристики16. серийна шина usb. основни характеристики
16. серийна шина usb. основни характеристикиdnaidenowa
 
45. komp s ma intel core i
45. komp s ma intel core i45. komp s ma intel core i
45. komp s ma intel core idnaidenowa
 
Свободни PLC
Свободни PLCСвободни PLC
Свободни PLCOpenFest team
 
описание и технически параметри на компютърна система
описание и технически параметри на компютърна системаописание и технически параметри на компютърна система
описание и технически параметри на компютърна системаПетя Газдова
 
Как проектът Yocto помага за създаване на Internet of Things?
Как проектът Yocto помага за създаване на Internet of Things?Как проектът Yocto помага за създаване на Internet of Things?
Как проектът Yocto помага за създаване на Internet of Things?Leon Anavi
 
56. каскадно свързване на контролерите на прекъсване
56. каскадно свързване на контролерите на прекъсване56. каскадно свързване на контролерите на прекъсване
56. каскадно свързване на контролерите на прекъсванеdnaidenowa
 
Връщане към живота на ретро електроника с Raspberry Pi
Връщане към живота на ретро електроника с Raspberry PiВръщане към живота на ретро електроника с Raspberry Pi
Връщане към живота на ретро електроника с Raspberry PiLeon Anavi
 
Демо урок по програмиране със Светлин Наков
Демо урок по програмиране със Светлин НаковДемо урок по програмиране със Светлин Наков
Демо урок по програмиране със Светлин НаковSvetlin Nakov
 
Open Vpn – Poor Man’S Vpn Solution
Open Vpn – Poor Man’S Vpn SolutionOpen Vpn – Poor Man’S Vpn Solution
Open Vpn – Poor Man’S Vpn Solutionguest782598d5
 
компютърни системи с процесори Amd k8
компютърни системи с процесори Amd k8компютърни системи с процесори Amd k8
компютърни системи с процесори Amd k8dnaidenowa
 
9 pentium pentium pro
9 pentium pentium pro9 pentium pentium pro
9 pentium pentium prodnaidenowa
 
6. komp s ma pc-xt
6. komp s ma pc-xt6. komp s ma pc-xt
6. komp s ma pc-xtdnaidenowa
 
архитектура на дънна платка
архитектура на дънна платкаархитектура на дънна платка
архитектура на дънна платкаdnaidenowa
 
Как да играем компютърни игри с Nintendo Wii Nunchuk чрез Raspberry Pi RP2040...
Как да играем компютърни игри с Nintendo Wii Nunchuk чрез Raspberry Pi RP2040...Как да играем компютърни игри с Nintendo Wii Nunchuk чрез Raspberry Pi RP2040...
Как да играем компютърни игри с Nintendo Wii Nunchuk чрез Raspberry Pi RP2040...Leon Anavi
 
Виртуализирано видеонаблюдение под FreeBSD
Виртуализирано видеонаблюдение под FreeBSDВиртуализирано видеонаблюдение под FreeBSD
Виртуализирано видеонаблюдение под FreeBSDOpenFest team
 
brochure_iSB-4.00_BG
brochure_iSB-4.00_BGbrochure_iSB-4.00_BG
brochure_iSB-4.00_BGIlko Radulov
 

Similar a Programming Small Devices - Web Summit Bulgaria 2014 (20)

Курсове по роботика с Arduino 1.0
Курсове по роботика с Arduino 1.0Курсове по роботика с Arduino 1.0
Курсове по роботика с Arduino 1.0
 
16. серийна шина usb. основни характеристики
16. серийна шина usb. основни характеристики16. серийна шина usb. основни характеристики
16. серийна шина usb. основни характеристики
 
br7
br7br7
br7
 
45. komp s ma intel core i
45. komp s ma intel core i45. komp s ma intel core i
45. komp s ma intel core i
 
Свободни PLC
Свободни PLCСвободни PLC
Свободни PLC
 
описание и технически параметри на компютърна система
описание и технически параметри на компютърна системаописание и технически параметри на компютърна система
описание и технически параметри на компютърна система
 
Как проектът Yocto помага за създаване на Internet of Things?
Как проектът Yocto помага за създаване на Internet of Things?Как проектът Yocto помага за създаване на Internet of Things?
Как проектът Yocto помага за създаване на Internet of Things?
 
56. каскадно свързване на контролерите на прекъсване
56. каскадно свързване на контролерите на прекъсване56. каскадно свързване на контролерите на прекъсване
56. каскадно свързване на контролерите на прекъсване
 
Връщане към живота на ретро електроника с Raspberry Pi
Връщане към живота на ретро електроника с Raspberry PiВръщане към живота на ретро електроника с Raspberry Pi
Връщане към живота на ретро електроника с Raspberry Pi
 
Демо урок по програмиране със Светлин Наков
Демо урок по програмиране със Светлин НаковДемо урок по програмиране със Светлин Наков
Демо урок по програмиране със Светлин Наков
 
OpenVPN
OpenVPNOpenVPN
OpenVPN
 
Open Vpn – Poor Man’S Vpn Solution
Open Vpn – Poor Man’S Vpn SolutionOpen Vpn – Poor Man’S Vpn Solution
Open Vpn – Poor Man’S Vpn Solution
 
компютърни системи с процесори Amd k8
компютърни системи с процесори Amd k8компютърни системи с процесори Amd k8
компютърни системи с процесори Amd k8
 
9 pentium pentium pro
9 pentium pentium pro9 pentium pentium pro
9 pentium pentium pro
 
6. komp s ma pc-xt
6. komp s ma pc-xt6. komp s ma pc-xt
6. komp s ma pc-xt
 
архитектура на дънна платка
архитектура на дънна платкаархитектура на дънна платка
архитектура на дънна платка
 
Kompsistema
KompsistemaKompsistema
Kompsistema
 
Как да играем компютърни игри с Nintendo Wii Nunchuk чрез Raspberry Pi RP2040...
Как да играем компютърни игри с Nintendo Wii Nunchuk чрез Raspberry Pi RP2040...Как да играем компютърни игри с Nintendo Wii Nunchuk чрез Raspberry Pi RP2040...
Как да играем компютърни игри с Nintendo Wii Nunchuk чрез Raspberry Pi RP2040...
 
Виртуализирано видеонаблюдение под FreeBSD
Виртуализирано видеонаблюдение под FreeBSDВиртуализирано видеонаблюдение под FreeBSD
Виртуализирано видеонаблюдение под FreeBSD
 
brochure_iSB-4.00_BG
brochure_iSB-4.00_BGbrochure_iSB-4.00_BG
brochure_iSB-4.00_BG
 

Más de Neven Boyanov

Tinusaur Intro (EN) 2020-02
Tinusaur Intro (EN) 2020-02Tinusaur Intro (EN) 2020-02
Tinusaur Intro (EN) 2020-02Neven Boyanov
 
Платформа Блоктину за визуално по C/C++ за микроконтролери
Платформа Блоктину за визуално по C/C++ за микроконтролериПлатформа Блоктину за визуално по C/C++ за микроконтролери
Платформа Блоктину за визуално по C/C++ за микроконтролериNeven Boyanov
 
Интегриран подход за обучение по математика и информатика със засилени интер...
Интегриран подход за обучение по математика и информатика  със засилени интер...Интегриран подход за обучение по математика и информатика  със засилени интер...
Интегриран подход за обучение по математика и информатика със засилени интер...Neven Boyanov
 
Tinusaur Starter - User Guide
Tinusaur Starter - User GuideTinusaur Starter - User Guide
Tinusaur Starter - User GuideNeven Boyanov
 
Отворена система за управление на потребителите
Отворена система за управление на потребителитеОтворена система за управление на потребителите
Отворена система за управление на потребителитеNeven Boyanov
 
Стартиране на софтуерен бизнес - пътят от програмата до продукта
Стартиране на софтуерен бизнес - пътят от програмата до продуктаСтартиране на софтуерен бизнес - пътят от програмата до продукта
Стартиране на софтуерен бизнес - пътят от програмата до продуктаNeven Boyanov
 
Стартиране на софтуерен бизнес - пътят от програмата до продукта
Стартиране на софтуерен бизнес - пътят от програмата до продуктаСтартиране на софтуерен бизнес - пътят от програмата до продукта
Стартиране на софтуерен бизнес - пътят от програмата до продуктаNeven Boyanov
 

Más de Neven Boyanov (7)

Tinusaur Intro (EN) 2020-02
Tinusaur Intro (EN) 2020-02Tinusaur Intro (EN) 2020-02
Tinusaur Intro (EN) 2020-02
 
Платформа Блоктину за визуално по C/C++ за микроконтролери
Платформа Блоктину за визуално по C/C++ за микроконтролериПлатформа Блоктину за визуално по C/C++ за микроконтролери
Платформа Блоктину за визуално по C/C++ за микроконтролери
 
Интегриран подход за обучение по математика и информатика със засилени интер...
Интегриран подход за обучение по математика и информатика  със засилени интер...Интегриран подход за обучение по математика и информатика  със засилени интер...
Интегриран подход за обучение по математика и информатика със засилени интер...
 
Tinusaur Starter - User Guide
Tinusaur Starter - User GuideTinusaur Starter - User Guide
Tinusaur Starter - User Guide
 
Отворена система за управление на потребителите
Отворена система за управление на потребителитеОтворена система за управление на потребителите
Отворена система за управление на потребителите
 
Стартиране на софтуерен бизнес - пътят от програмата до продукта
Стартиране на софтуерен бизнес - пътят от програмата до продуктаСтартиране на софтуерен бизнес - пътят от програмата до продукта
Стартиране на софтуерен бизнес - пътят от програмата до продукта
 
Стартиране на софтуерен бизнес - пътят от програмата до продукта
Стартиране на софтуерен бизнес - пътят от програмата до продуктаСтартиране на софтуерен бизнес - пътят от програмата до продукта
Стартиране на софтуерен бизнес - пътят от програмата до продукта
 

Programming Small Devices - Web Summit Bulgaria 2014

  • 1. Програмиране на дребни устройства: еволюцията от микроконтролера до Arduino и Raspberry Pi Невен Боянов Bulgaria Web Summit 2014 2014-05-31
  • 2. Защо ни е да знаем как работи хардуера
  • 3. Какви проблеми се решават с хардуера ● Основно софтуерни :) – Връзка с външния свят: вход/изход ● Създава още повече софтуерни проблеми.
  • 4. Трудно ли се разработва хардуер за малки устройства Не!
  • 6. Схема със светодиод ● Raspberry Pi ● Arduino ● Microcontroller ATtiny85 ● Processing, Wiring, Arduino, ...
  • 7. Raspberry Pi – C/C++ #include <wiringPi.h> int main (void) { wiringPiSetup (); pinMode (0, OUTPUT); for (;;) { digitalWrite (0, HIGH); delay (500); digitalWrite (0, LOW); delay (500); } return 0; } #include <wiringPi.h> int main (void) { wiringPiSetup (); pinMode (0, OUTPUT); for (;;) { digitalWrite (0, HIGH); delay (500); digitalWrite (0, LOW); delay (500); } return 0; }
  • 8. Raspberry Pi – Python import RPi.GPIO as GPIO import time # blinking function def blink(pin): GPIO.output(pin,GPIO.HIGH) time.sleep(1) GPIO.output(pin,GPIO.LOW) time.sleep(1) return # to use Raspberry Pi board pin numbers GPIO.setmode(GPIO.BOARD) # set up GPIO output channel GPIO.setup(11, GPIO.OUT) # blink GPIO17 50 times for i in range(0,50): blink(11) GPIO.cleanup()
  • 9. Arduino – C/C++ // Pin 13 has an LED connected on most Arduino boards. // give it a name: int led = 13; // the setup routine runs once when you press reset: void setup() { // initialize the digital pin as an output. pinMode(led, OUTPUT); } // the loop routine runs over and over again forever: void loop() { digitalWrite(led, HIGH); // turn the LED on delay(1000); // wait for a second digitalWrite(led, LOW); // turn the LED off delay(1000); // wait for a second }
  • 10. ATtiny85 – C/C++ #include <avr/io.h> #include <util/delay.h> // Define the I/O port to be used for the LED. // This a number between 0 and 7 that tells which bit to use. #define LED_PORT PB3 int main(void) { // Set the LED port number as output. // The DDRB is the data direction for port B. // - shifts the "1" on left to the desired position and ... // - does bitwise "OR" with the value in the port register. DDRB |= (1 << LED_PORT); // Start infinite loop. while (1) { // Set the LED bit to "1" - LED will be "on". PORTB |= (1 << LED_PORT); // Wait a little. The delay does N-number of "empty" loops. _delay_ms(200); // Set the LED bit to "0" - LED will be "off". PORTB &= ~(1 << LED_PORT); // Wait a little. _delay_ms(400); } return (0); }
  • 11. Как да изберем какъв хардуер да използваме
  • 12. The Tinusaur project ● ATtiny85, 8-bit RISK ● 1 MHz (up to 20 MHz) ● 512 B RAM ● 8 KB PRG ● 512 B EEPROM ● 6 GPIO
  • 13. Технически критерии за сравнение Raspberry Pi Arduino Uno ATtiny85/Tinusaur Процесор ARM11 – 32-bit RISK ATmega328P 8-bit RISK ATtiny85 – 8-bit RISK Честота 700 MHz 16 MHz 1 MHz Памет RAM 256/512 MB 2 KB 512 B Памет PRG On-board SD slot 32 KB, 1 KB EERPROM 8 KB, 512 B EERPROM Вход/изход 8×GPIO, UART, I²C, SPI ... 6 analog, 14 digital 6 analog/digital Периферия USB, audio & video, HDMI - - OS Linux, etc. - - Размери 85×56 mm 53×68 mm 23×36 mm Тегло 45 гр. 28 гр. 9 гр. Консумация 500mA, 700–1000 mA 50 mA 1-2 мА, 300 µA (0.1 µA) Цена 35 USD 20 USD (10 USD) 8 USD (5 USD)
  • 14. Една практическа задача: говореща играчка Talking Toy Основни функции: ● Дигитализиране на аудио ● Запис на аудио в паметта ● Промени в записания сигнал ● Възпроизвеждане на аудио
  • 15. Ако използваме Raspberry Pi + Linux ● Трябва да се използва външен модул за аудио вход ● Кода може да се напише на: – C/C++ – Python – Shell script – Etc..
  • 16. Ако използваме Arduino ● Външен модул за запис и възпроизвеждане за аудио ● Програма за комуникация с модула – Ползва се C/C++
  • 17. Ако използваме ATtiny85/Tinusaur Нужни са: ● микрофон с предусилвател ● външна памет със сериен достъп ● високоговорител с усилвател Най-важното е: ● Програма
  • 18. Защо ATtiny85/Tinusaur Ефективен: ● Минималната нужна производителност ● Ниска консумация ● Ниска себестойност ● Миниатюрни размери ● Лесен старт при разработката Предимства на другите: ● Arduino: – повече памет за код; – възможност за разширение на възможностите; – сравнително ниска цена. ● Raspberry Pi: – достатъчно ресурси (процесор и памет); – възможност за разширение на възможностите.
  • 19. А защо не ATtiny85/Tinusaur ● Няма достатъчно вградена памет за данни. ● Малко памет за код. ● Невъзможност за значително разширение при бъдещи нужди. Недостатъци на другите решения: ● Arduino: – по-висока себестойност; – по-големи размери; – по-висока консумация. ● Raspberry Pi: – прекалено мощен за задачата; – висока себестойност; – много висока консумация; – големи размери.
  • 20. За какво друго може да ни послужи ATtiny85/Tinusaur Лични проекти: ● Включване и изключване при различни условия – време, температура, светлина, сигнал, и др.
  • 21. За какво друго: обучение Обхваща един пълен, но лесен за усвояване, цикъл на разработка на малка микропроцесорна система: ● подбор на компонентите на системата ● сглобяване на хардуера ● писане на софтуер на ниско ниво ● писане на софтуер на високо ниво ● решаване на теоретични задачи – хардуерни – логика, сигнали и др. – софтуерни – алгоритми, паралелни задачи и др. ● решаване на практически задачи ● създаване на реални продукти