SlideShare una empresa de Scribd logo
1 de 20
Descargar para leer sin conexión
Методические указания проведения лабораторных
работ по программированию микроконтроллеров на Arduino-совместимой
платформе PIC32 ChipKIT Uno32
Составители: Кафедра АМИ,
НГТУ им Алексеева.
Введение
Язык программирования устройств Ардуино основан на C/C++. Он прост в
освоении, и на данный момент Arduino — это, пожалуй, самый удобный способ
программирования устройств на микроконтроллерах. Микроконтроллерные
платы ChipKIT Uno32 с процессором PIC32 полностью совместимы с
платформой Arduino, при этом являются более производительными, чем
оригинальные платы Arduino.
Язык Arduino можно разделить на три раздела:
Операторы
setup()
loop()
Управляющие операторы
if
if...else
for
switch case
while
do... while
break
continue
return
goto
Синтаксис
; (semicolon)
{} (curly braces)
// (single line comment)
/* */ (multi-line
comment)
Арифметические операторы
= (assignment)
+ (addition)
- (subtraction)
* (multiplication)
/ (division)
% (modulo)
Операторы сравнения
== (equal to)
!= (not equal to)
Данные
Константы
HIGH | LOW
INPUT | OUTPUT
true | false
Целочисленные
константы
Константы с
плавающей запятой
Типы данных
boolean
char
byte
int
unsigned int
word
long
unsigned long
float
double
string - массив
символов
String - объект класса
массив (array)
void
Преобразование типов
данных
char()
byte()
int()
long()
float()
Функции
Цифровой ввод/вывод
pinMode()
digitalWrite()
digitalRead()
Аналоговый ввод/вывод
analogRead()
analogReference()
analogWrite()
Дополнительные фунции
ввода/вывода
tone()
noTone()
shiftOut()
pulseIn()
Работа со временем
millis()
micros()
delay()
delayMicroseconds()
Математические функции
min()
max()
abs()
constrain()
map()
pow()
sq()
< (less than)
> (greater than)
<= (less than or equal to)
>= (greater than or equal
to)
Логические операторы
&& (И)
|| (ИЛИ)
! (Отрицание)
Унарные операторы
++ (increment)
-- (decrement)
+= (compound addition)
-= (compound
subtraction)
*= (compound
multiplication)
/= (compound division)
Область видимости
переменных и
квалификаторы
Область видимости
static
volatile
const
sqrt()
Тригонометрические
функции
sin()
cos()
tan()
Генераторы случайных
значений
randomSeed()
random()
Внешние прерывания
attachInterrupt()
detachInterrupt()
Функции передачи данных
Serial
Библиотеки Arduino
Servo — библиотека управления сервоприводами.
EERPOM — чтение и запись энергонезависимой памяти микроконтроллера.
SPI — библиотека, реализующая передачу данных через интерфейс SPI.
Stepper — библиотека управления шаговыми двигателями.
Интерфейс среды программирования
Лабораторная работа №1
«Работа светодиодного индикатора»
Цель работы: Написать программу, позволяющую прерывисто светиться диоду.
Задача: Собрать электрическую схему диода с платформой.
Ход работы.
1) Устанавливаем светодиод на контакторную платформу
Рисунок 1 – Расположение светодиода на контакторной платформе
2) Подключение проводов к пинам платы PIC32 ChipKIT.
Рисунок 2 – сосединение электрической схемы
Строка состояния
3) Загрузка текста программы
void setup() {
pinMode(1, OUTPUT);
}
void loop() {
digitalWrite(1, HIGH);
delay(2000);
digitalWrite(1, LOW);
delay(2000);
}
Лабораторная работа №2
«Работа светодиодного индикатора светового датчика»
Цель работы: Написать программу, позволяющую прерывисто светиться диоду.
Задача : При срабатывании датчика света от него подается сигнал на
платформу и посредством программы должен загораться диод.
Ход работы.
1)Устанавливаем диод на платформу пинов.
Рисунок 3 – расположение диода на платформе пинов
2) Подключение датчика света к платформе PIC32 ChipKIT (рисунок 3).
Рисунок 4 – Датчик света
Рисунок 5 – Подключение диода и датчика света
3) Написание программы
4) Загрузка программы в память платформы PIC32 ChipKIT
Рисунок 6 – Процесс загрузки программы
Рисунок 7 – Успешная загрузка программы
5) Проверка работоспособности системы
Результатом правильной работы системы будет являться загорание
светодиода при отсутствии попадания света на датчик.
а) б)
Рисунок 8 – Проверка работы системы: (а) – свет попадает на датчик; (б) –
свет не попадает на датчик.
Лабораторная работа №3
«Работа электромотора с двумя светодиодными индикаторами и
светодатчиком»
Цель работы: Написать программу, позволяющую идентифицировать работу
электромотора светодиодами.
Задача: При выключенном электромоторе горит светодиод красного цвета. При
срабатывании электромотора, красный светодиод гаснет и загорается зеленый
светодиод. Электромотор включается при срабатывании датчика света.
Ход работы.
1) Собираем электрическую цепь.
а) Подключаем SIG датчика света к Pin3, VСC датчика света к Pin 5V0,
GND датчика света к «-» на платформе пинов.
б)Устанавливаем зеленый диод на платформу пинов «-» к «-», «+» к «+».
в)Подключаем «-» платформы пинов на GND платформы Arduino. «+»
платформы пинов к Pin 2 Arduino.
г)Устанавливаем красный диод «-» к «-», а «+» подходит к Pin1 платформы
Arduino.
г)Подключаем электромотор. «+» подходит к плюсу зеленого светодиода, а
«-» подходит к общему минусу на платформе пинов.
Рисунок 9 – готовая электрическая цепь
2) Текст программы:
void setup() {
pinMode(1, OUTPUT);
pinMode(2, OUTPUT);
pinMode(3, INPUT);
}
void loop() {
digitalWrite(1, LOW);
digitalWrite(2, HIGH);
int val=digitalRead(3);
if (val==1) {
digitalWrite(2, LOW);
digitalWrite(1, HIGH);
delay(100);
}
}
3) Загружаем программу и выполняем проверку :
Рисунок 10 – На световой датчик попадает свет и электромотор не работает
При срабатывании датчика загорается зеленый диод и электромотор
начинает вращаться.
Рисунок 11 – Загорается зеленый диод и начинает работу электромотор
Лабораторная работа №4
«Цифровое табло»
Цель работы: Написать программу, позволяющую отобразить цифровой ряд
от 0 до 9.
Задача: Собрать электрическую цепь и написать программу включающую
определенные сегменты цифрового табло, образующие ту или иную цифру
Ход работы.
1) Устанавливаем цифровое табло на платформу пинов.
Рисунок 12 – цифровое табло на платформе
2) Подключаем «-»цифрового табло к выходу GND платы ChipKIT
3) Остальные 8 пинов, отвечающие за соответствующие сегменты, подключаем
к свободным пинам платы (1→Pin5, 2→Pin7,3→Pin1, 4→Pin8, 5→Pin6,
6→Pin4, 7→Pin3, 8→Pin2,)
Рисунок 13 – Электрическая цепь в сборе
4) Текст программы
void setup() {
pinMode(1, OUTPUT);
pinMode(2, OUTPUT);
pinMode(3, OUTPUT);
pinMode(4, OUTPUT);
pinMode(5, OUTPUT);
pinMode(6, OUTPUT);
pinMode(7, OUTPUT);
pinMode(8, OUTPUT);
}
void loop() {
digitalWrite(1, LOW);
digitalWrite(2, LOW);
digitalWrite(3, HIGH);
digitalWrite(4, HIGH);
digitalWrite(5, HIGH);
digitalWrite(6, HIGH);
digitalWrite(7, HIGH);
digitalWrite(8, LOW);
delay(1000);
digitalWrite(1, HIGH);
digitalWrite(2, LOW);
digitalWrite(3, LOW);
digitalWrite(4, HIGH);
digitalWrite(5, LOW);
digitalWrite(6, LOW);
digitalWrite(7, LOW);
digitalWrite(8, LOW);
delay(1000);
digitalWrite(1, LOW);
digitalWrite(2, LOW);
digitalWrite(3, LOW);
digitalWrite(4, HIGH);
digitalWrite(5, HIGH);
digitalWrite(6, LOW);
digitalWrite(7, LOW);
digitalWrite(8, LOW);
delay(1000);
digitalWrite(1, LOW);
digitalWrite(2, LOW);
digitalWrite(3, HIGH);
digitalWrite(4, LOW);
digitalWrite(5, HIGH);
digitalWrite(6, LOW);
digitalWrite(7, HIGH);
digitalWrite(8, LOW);
delay(1000);
digitalWrite(1, LOW);
digitalWrite(2, HIGH);
digitalWrite(3, LOW);
digitalWrite(4, LOW);
digitalWrite(5, HIGH);
digitalWrite(6, LOW);
digitalWrite(7, LOW);
digitalWrite(8, LOW);
delay(1000);
digitalWrite(1, LOW);
digitalWrite(2, HIGH);
digitalWrite(3, LOW);
digitalWrite(4, LOW);
digitalWrite(5, LOW);
digitalWrite(6, LOW);
digitalWrite(7, LOW);
digitalWrite(8, LOW);
delay(1000);
digitalWrite(1, LOW);
digitalWrite(2, LOW);
digitalWrite(3, LOW);
digitalWrite(4, HIGH);
digitalWrite(5, HIGH);
digitalWrite(6, HIGH);
digitalWrite(7, HIGH);
digitalWrite(8, LOW);
delay(1000);
digitalWrite(1, LOW);
digitalWrite(2, LOW);
digitalWrite(3, LOW);
digitalWrite(4, LOW);
digitalWrite(5, LOW);
digitalWrite(6, LOW);
digitalWrite(7, LOW);
digitalWrite(8, LOW);
delay(1000);
digitalWrite(1, LOW);
digitalWrite(2, LOW);
digitalWrite(3, LOW);
digitalWrite(4, LOW);
digitalWrite(5, HIGH);
digitalWrite(6, LOW);
digitalWrite(7, LOW);
digitalWrite(8, LOW);
delay(1000);
digitalWrite(1, LOW);
digitalWrite(2, LOW);
digitalWrite(3, LOW);
digitalWrite(4, LOW);
digitalWrite(5, LOW);
digitalWrite(6, HIGH);
digitalWrite(7, LOW);
digitalWrite(8, LOW);
delay(1000);
}

Más contenido relacionado

Destacado

Raspberry pi lnl
Raspberry pi lnlRaspberry pi lnl
Raspberry pi lnlDon Doerres
 
Arduino training day 1
Arduino training day 1Arduino training day 1
Arduino training day 1Binod Thapa
 
Компьютерная графика в Processing, часть 5. Анимация
Компьютерная графика в Processing, часть 5. АнимацияКомпьютерная графика в Processing, часть 5. Анимация
Компьютерная графика в Processing, часть 5. АнимацияTatiana Volkova
 
Zybo ile Ultrasonik Sensör Uygulaması (Distance Measurement by Ultrasonic Sen...
Zybo ile Ultrasonik Sensör Uygulaması (Distance Measurement by Ultrasonic Sen...Zybo ile Ultrasonik Sensör Uygulaması (Distance Measurement by Ultrasonic Sen...
Zybo ile Ultrasonik Sensör Uygulaması (Distance Measurement by Ultrasonic Sen...Melek Sönmez
 
How to Upgrade a Coffee Machine Using Arduino
How to Upgrade a Coffee Machine Using ArduinoHow to Upgrade a Coffee Machine Using Arduino
How to Upgrade a Coffee Machine Using ArduinoGlobalLogic Ukraine
 
Подготовка к производству
Подготовка к производствуПодготовка к производству
Подготовка к производствуSasha Kulam
 
Смерть тайм-менеджмента
Смерть тайм-менеджментаСмерть тайм-менеджмента
Смерть тайм-менеджментаSasha Kulam
 
Подборка лучших мировых диджитал-продакшн студий и агентств
Подборка лучших мировых диджитал-продакшн студий и агентствПодборка лучших мировых диджитал-продакшн студий и агентств
Подборка лучших мировых диджитал-продакшн студий и агентствSasha Kulam
 
Echelon Indonesia 2016 - Innovation Through Opportunities in IoT & Arduino
Echelon Indonesia 2016 - Innovation Through Opportunities in IoT & ArduinoEchelon Indonesia 2016 - Innovation Through Opportunities in IoT & Arduino
Echelon Indonesia 2016 - Innovation Through Opportunities in IoT & ArduinoAndri Yadi
 
Internet of Things - Technological Perspective
Internet of Things - Technological PerspectiveInternet of Things - Technological Perspective
Internet of Things - Technological PerspectiveAndri Yadi
 
CodeRage XI international Conference: Arduino + Delphi Mobile Apps
CodeRage XI international Conference: Arduino + Delphi Mobile Apps CodeRage XI international Conference: Arduino + Delphi Mobile Apps
CodeRage XI international Conference: Arduino + Delphi Mobile Apps Vic Fernandes
 
Arduino projects list about 2342 arduino list of projects use arduino for p...
Arduino projects list   about 2342 arduino list of projects use arduino for p...Arduino projects list   about 2342 arduino list of projects use arduino for p...
Arduino projects list about 2342 arduino list of projects use arduino for p...Ashraf11111
 
Идеальная система управления проектами и ресурсами
Идеальная система управления проектами и ресурсамиИдеальная система управления проектами и ресурсами
Идеальная система управления проектами и ресурсамиSasha Kulam
 

Destacado (19)

Raspberry pi lnl
Raspberry pi lnlRaspberry pi lnl
Raspberry pi lnl
 
01
0101
01
 
Arduino training day 1
Arduino training day 1Arduino training day 1
Arduino training day 1
 
Компьютерная графика в Processing, часть 5. Анимация
Компьютерная графика в Processing, часть 5. АнимацияКомпьютерная графика в Processing, часть 5. Анимация
Компьютерная графика в Processing, часть 5. Анимация
 
Zybo ile Ultrasonik Sensör Uygulaması (Distance Measurement by Ultrasonic Sen...
Zybo ile Ultrasonik Sensör Uygulaması (Distance Measurement by Ultrasonic Sen...Zybo ile Ultrasonik Sensör Uygulaması (Distance Measurement by Ultrasonic Sen...
Zybo ile Ultrasonik Sensör Uygulaması (Distance Measurement by Ultrasonic Sen...
 
How to Upgrade a Coffee Machine Using Arduino
How to Upgrade a Coffee Machine Using ArduinoHow to Upgrade a Coffee Machine Using Arduino
How to Upgrade a Coffee Machine Using Arduino
 
Подготовка к производству
Подготовка к производствуПодготовка к производству
Подготовка к производству
 
Смерть тайм-менеджмента
Смерть тайм-менеджментаСмерть тайм-менеджмента
Смерть тайм-менеджмента
 
Подборка лучших мировых диджитал-продакшн студий и агентств
Подборка лучших мировых диджитал-продакшн студий и агентствПодборка лучших мировых диджитал-продакшн студий и агентств
Подборка лучших мировых диджитал-продакшн студий и агентств
 
Echelon Indonesia 2016 - Innovation Through Opportunities in IoT & Arduino
Echelon Indonesia 2016 - Innovation Through Opportunities in IoT & ArduinoEchelon Indonesia 2016 - Innovation Through Opportunities in IoT & Arduino
Echelon Indonesia 2016 - Innovation Through Opportunities in IoT & Arduino
 
Internet of Things - Technological Perspective
Internet of Things - Technological PerspectiveInternet of Things - Technological Perspective
Internet of Things - Technological Perspective
 
CodeRage XI international Conference: Arduino + Delphi Mobile Apps
CodeRage XI international Conference: Arduino + Delphi Mobile Apps CodeRage XI international Conference: Arduino + Delphi Mobile Apps
CodeRage XI international Conference: Arduino + Delphi Mobile Apps
 
Arduino projects list about 2342 arduino list of projects use arduino for p...
Arduino projects list   about 2342 arduino list of projects use arduino for p...Arduino projects list   about 2342 arduino list of projects use arduino for p...
Arduino projects list about 2342 arduino list of projects use arduino for p...
 
02.10 arduino-scratchduino
02.10 arduino-scratchduino02.10 arduino-scratchduino
02.10 arduino-scratchduino
 
Arduino introduction
Arduino introductionArduino introduction
Arduino introduction
 
Arduino Basic
Arduino BasicArduino Basic
Arduino Basic
 
Идеальная система управления проектами и ресурсами
Идеальная система управления проектами и ресурсамиИдеальная система управления проектами и ресурсами
Идеальная система управления проектами и ресурсами
 
MTCWE
MTCWEMTCWE
MTCWE
 
Oficina de Arduino
Oficina de ArduinoOficina de Arduino
Oficina de Arduino
 

Similar a Лабораторная работа по программирования pic32 ChipKIT Uno32 в среде Arduino

Робототехника для прикладных программистов
Робототехника для прикладных программистовРобототехника для прикладных программистов
Робототехника для прикладных программистовDotNetConf
 
Программирование микроконтроллеров для управления роботами
Программирование микроконтроллеров для управления роботамиПрограммирование микроконтроллеров для управления роботами
Программирование микроконтроллеров для управления роботамиAnton Moiseev
 
Опыт тестирования API САПР платформы
Опыт тестирования API САПР платформыОпыт тестирования API САПР платформы
Опыт тестирования API САПР платформыSQALab
 
Internet Of Things: возможности Intel Galileo gen 2 и Intel Edison
Internet Of Things: возможности Intel Galileo gen 2 и Intel EdisonInternet Of Things: возможности Intel Galileo gen 2 и Intel Edison
Internet Of Things: возможности Intel Galileo gen 2 и Intel EdisonCodeFest
 
Цифровая микроэлектроника для математиков и программистов 2017
Цифровая микроэлектроника для математиков и программистов 2017Цифровая микроэлектроника для математиков и программистов 2017
Цифровая микроэлектроника для математиков и программистов 2017Anton Moiseev
 
IoT Meetup 2015: готовимся к хакатону в Москве
IoT Meetup 2015: готовимся к хакатону в МосквеIoT Meetup 2015: готовимся к хакатону в Москве
IoT Meetup 2015: готовимся к хакатону в МосквеIntel® Developer Zone Россия
 
Поговорим о микрооптимизациях .NET-приложений
Поговорим о микрооптимизациях .NET-приложенийПоговорим о микрооптимизациях .NET-приложений
Поговорим о микрооптимизациях .NET-приложенийAndrey Akinshin
 
01 готовимся к экзамену по информатике. теория. задачи 2002
01  готовимся к экзамену по информатике. теория. задачи 200201  готовимся к экзамену по информатике. теория. задачи 2002
01 готовимся к экзамену по информатике. теория. задачи 2002dfdkfjs
 
Лекция 2. Оптимизация ветвлений и циклов (Branch prediction and loop optimiz...
Лекция 2. Оптимизация ветвлений и циклов (Branch prediction and loop optimiz...Лекция 2. Оптимизация ветвлений и циклов (Branch prediction and loop optimiz...
Лекция 2. Оптимизация ветвлений и циклов (Branch prediction and loop optimiz...Mikhail Kurnosov
 
Обработка данных с датчиков Холла
Обработка данных с датчиков ХоллаОбработка данных с датчиков Холла
Обработка данных с датчиков Холлаishevchuk
 
отладка Mpi приложений
отладка Mpi приложенийотладка Mpi приложений
отладка Mpi приложенийMichael Karpov
 
Модульная структура
Модульная структураМодульная структура
Модульная структураDenis Tsvettsih
 
Модульная структура. Цветцих Денис D2D Just.NET
Модульная структура. Цветцих Денис D2D Just.NETМодульная структура. Цветцих Денис D2D Just.NET
Модульная структура. Цветцих Денис D2D Just.NETDev2Dev
 
17. Индикация
17. Индикация17. Индикация
17. ИндикацияKamlachPV
 
подготовленная презентация проекта Gpu digital lab от компании аксиома для ко...
подготовленная презентация проекта Gpu digital lab от компании аксиома для ко...подготовленная презентация проекта Gpu digital lab от компании аксиома для ко...
подготовленная презентация проекта Gpu digital lab от компании аксиома для ко...oleg gubanov
 
Ievgen Kulyk - Advanced reverse engineering techniques in unpacking
Ievgen Kulyk - Advanced reverse engineering techniques in unpackingIevgen Kulyk - Advanced reverse engineering techniques in unpacking
Ievgen Kulyk - Advanced reverse engineering techniques in unpackingNoNameCon
 

Similar a Лабораторная работа по программирования pic32 ChipKIT Uno32 в среде Arduino (20)

Lirc или домашний медиацентр
Lirc или домашний медиацентрLirc или домашний медиацентр
Lirc или домашний медиацентр
 
Робототехника для прикладных программистов
Робототехника для прикладных программистовРобототехника для прикладных программистов
Робототехника для прикладных программистов
 
Программирование микроконтроллеров для управления роботами
Программирование микроконтроллеров для управления роботамиПрограммирование микроконтроллеров для управления роботами
Программирование микроконтроллеров для управления роботами
 
Опыт тестирования API САПР платформы
Опыт тестирования API САПР платформыОпыт тестирования API САПР платформы
Опыт тестирования API САПР платформы
 
Internet Of Things: возможности Intel Galileo gen 2 и Intel Edison
Internet Of Things: возможности Intel Galileo gen 2 и Intel EdisonInternet Of Things: возможности Intel Galileo gen 2 и Intel Edison
Internet Of Things: возможности Intel Galileo gen 2 и Intel Edison
 
Цифровая микроэлектроника для математиков и программистов 2017
Цифровая микроэлектроника для математиков и программистов 2017Цифровая микроэлектроника для математиков и программистов 2017
Цифровая микроэлектроника для математиков и программистов 2017
 
Обзор Intel® Edison и Grove Starter Kit
Обзор Intel® Edison и Grove Starter KitОбзор Intel® Edison и Grove Starter Kit
Обзор Intel® Edison и Grove Starter Kit
 
IoT Meetup 2015: готовимся к хакатону в Москве
IoT Meetup 2015: готовимся к хакатону в МосквеIoT Meetup 2015: готовимся к хакатону в Москве
IoT Meetup 2015: готовимся к хакатону в Москве
 
экзамен технолаб
экзамен технолабэкзамен технолаб
экзамен технолаб
 
Поговорим о микрооптимизациях .NET-приложений
Поговорим о микрооптимизациях .NET-приложенийПоговорим о микрооптимизациях .NET-приложений
Поговорим о микрооптимизациях .NET-приложений
 
01 готовимся к экзамену по информатике. теория. задачи 2002
01  готовимся к экзамену по информатике. теория. задачи 200201  готовимся к экзамену по информатике. теория. задачи 2002
01 готовимся к экзамену по информатике. теория. задачи 2002
 
Лекция 2. Оптимизация ветвлений и циклов (Branch prediction and loop optimiz...
Лекция 2. Оптимизация ветвлений и циклов (Branch prediction and loop optimiz...Лекция 2. Оптимизация ветвлений и циклов (Branch prediction and loop optimiz...
Лекция 2. Оптимизация ветвлений и циклов (Branch prediction and loop optimiz...
 
2011 диплом Чуркин А.А.
2011 диплом Чуркин А.А.2011 диплом Чуркин А.А.
2011 диплом Чуркин А.А.
 
Обработка данных с датчиков Холла
Обработка данных с датчиков ХоллаОбработка данных с датчиков Холла
Обработка данных с датчиков Холла
 
отладка Mpi приложений
отладка Mpi приложенийотладка Mpi приложений
отладка Mpi приложений
 
Модульная структура
Модульная структураМодульная структура
Модульная структура
 
Модульная структура. Цветцих Денис D2D Just.NET
Модульная структура. Цветцих Денис D2D Just.NETМодульная структура. Цветцих Денис D2D Just.NET
Модульная структура. Цветцих Денис D2D Just.NET
 
17. Индикация
17. Индикация17. Индикация
17. Индикация
 
подготовленная презентация проекта Gpu digital lab от компании аксиома для ко...
подготовленная презентация проекта Gpu digital lab от компании аксиома для ко...подготовленная презентация проекта Gpu digital lab от компании аксиома для ко...
подготовленная презентация проекта Gpu digital lab от компании аксиома для ко...
 
Ievgen Kulyk - Advanced reverse engineering techniques in unpacking
Ievgen Kulyk - Advanced reverse engineering techniques in unpackingIevgen Kulyk - Advanced reverse engineering techniques in unpacking
Ievgen Kulyk - Advanced reverse engineering techniques in unpacking
 

Más de Anton Moiseev

Блеск и нищета современного ИИ, из истории кибернетики в СССР, философия ИИ -...
Блеск и нищета современного ИИ, из истории кибернетики в СССР, философия ИИ -...Блеск и нищета современного ИИ, из истории кибернетики в СССР, философия ИИ -...
Блеск и нищета современного ИИ, из истории кибернетики в СССР, философия ИИ -...Anton Moiseev
 
Клуб изобретательства и робототехники РО ДОСААФ НО - 2019
Клуб изобретательства и робототехники РО ДОСААФ НО - 2019Клуб изобретательства и робототехники РО ДОСААФ НО - 2019
Клуб изобретательства и робототехники РО ДОСААФ НО - 2019Anton Moiseev
 
Чипы, платы, роботы
Чипы, платы, роботыЧипы, платы, роботы
Чипы, платы, роботыAnton Moiseev
 
цифровое производство плоских деталей
цифровое производство плоских деталейцифровое производство плоских деталей
цифровое производство плоских деталейAnton Moiseev
 
3д моделирование и 3д-печать
3д моделирование и 3д-печать3д моделирование и 3д-печать
3д моделирование и 3д-печатьAnton Moiseev
 
Двумерное моделирование и детали для роботов
Двумерное моделирование и детали для роботовДвумерное моделирование и детали для роботов
Двумерное моделирование и детали для роботовAnton Moiseev
 
Популярная робототехника и 3д-печать
Популярная робототехника и 3д-печатьПопулярная робототехника и 3д-печать
Популярная робототехника и 3д-печатьAnton Moiseev
 
Как бы нам тоже делать роботов
Как бы нам тоже делать роботовКак бы нам тоже делать роботов
Как бы нам тоже делать роботовAnton Moiseev
 
Производим и собираем робота
Производим и собираем роботаПроизводим и собираем робота
Производим и собираем роботаAnton Moiseev
 
Моделируем корпус Робота Машинки
Моделируем корпус Робота МашинкиМоделируем корпус Робота Машинки
Моделируем корпус Робота МашинкиAnton Moiseev
 
2д моделирование в inkscape для производства
2д моделирование в inkscape для производства2д моделирование в inkscape для производства
2д моделирование в inkscape для производстваAnton Moiseev
 
Курс делаем робота
Курс делаем роботаКурс делаем робота
Курс делаем роботаAnton Moiseev
 
Устройство Robotiki и ScratchDuino
Устройство Robotiki и ScratchDuinoУстройство Robotiki и ScratchDuino
Устройство Robotiki и ScratchDuinoAnton Moiseev
 
травление платы и скретч
травление платы и скретчтравление платы и скретч
травление платы и скретчAnton Moiseev
 
создание печатных плат
создание печатных платсоздание печатных плат
создание печатных платAnton Moiseev
 
Виртуальный хостинг на Амазоне: телефон, кредитка, немного времени
Виртуальный хостинг на Амазоне: телефон, кредитка, немного времениВиртуальный хостинг на Амазоне: телефон, кредитка, немного времени
Виртуальный хостинг на Амазоне: телефон, кредитка, немного времениAnton Moiseev
 
OpenSCAD: трёхмерное моделирование для школьников и программистов
OpenSCAD: трёхмерное моделирование для школьников и программистовOpenSCAD: трёхмерное моделирование для школьников и программистов
OpenSCAD: трёхмерное моделирование для школьников и программистовAnton Moiseev
 
Слоеный пирог в стиле техно или как создаются печатные платы
Слоеный пирог в стиле техно или как создаются печатные платыСлоеный пирог в стиле техно или как создаются печатные платы
Слоеный пирог в стиле техно или как создаются печатные платыAnton Moiseev
 
Writing in the Science
Writing in the ScienceWriting in the Science
Writing in the ScienceAnton Moiseev
 
Робототехника в школьном образовании - Robotics Expo
Робототехника в школьном образовании - Robotics ExpoРобототехника в школьном образовании - Robotics Expo
Робототехника в школьном образовании - Robotics ExpoAnton Moiseev
 

Más de Anton Moiseev (20)

Блеск и нищета современного ИИ, из истории кибернетики в СССР, философия ИИ -...
Блеск и нищета современного ИИ, из истории кибернетики в СССР, философия ИИ -...Блеск и нищета современного ИИ, из истории кибернетики в СССР, философия ИИ -...
Блеск и нищета современного ИИ, из истории кибернетики в СССР, философия ИИ -...
 
Клуб изобретательства и робототехники РО ДОСААФ НО - 2019
Клуб изобретательства и робототехники РО ДОСААФ НО - 2019Клуб изобретательства и робототехники РО ДОСААФ НО - 2019
Клуб изобретательства и робототехники РО ДОСААФ НО - 2019
 
Чипы, платы, роботы
Чипы, платы, роботыЧипы, платы, роботы
Чипы, платы, роботы
 
цифровое производство плоских деталей
цифровое производство плоских деталейцифровое производство плоских деталей
цифровое производство плоских деталей
 
3д моделирование и 3д-печать
3д моделирование и 3д-печать3д моделирование и 3д-печать
3д моделирование и 3д-печать
 
Двумерное моделирование и детали для роботов
Двумерное моделирование и детали для роботовДвумерное моделирование и детали для роботов
Двумерное моделирование и детали для роботов
 
Популярная робототехника и 3д-печать
Популярная робототехника и 3д-печатьПопулярная робототехника и 3д-печать
Популярная робототехника и 3д-печать
 
Как бы нам тоже делать роботов
Как бы нам тоже делать роботовКак бы нам тоже делать роботов
Как бы нам тоже делать роботов
 
Производим и собираем робота
Производим и собираем роботаПроизводим и собираем робота
Производим и собираем робота
 
Моделируем корпус Робота Машинки
Моделируем корпус Робота МашинкиМоделируем корпус Робота Машинки
Моделируем корпус Робота Машинки
 
2д моделирование в inkscape для производства
2д моделирование в inkscape для производства2д моделирование в inkscape для производства
2д моделирование в inkscape для производства
 
Курс делаем робота
Курс делаем роботаКурс делаем робота
Курс делаем робота
 
Устройство Robotiki и ScratchDuino
Устройство Robotiki и ScratchDuinoУстройство Robotiki и ScratchDuino
Устройство Robotiki и ScratchDuino
 
травление платы и скретч
травление платы и скретчтравление платы и скретч
травление платы и скретч
 
создание печатных плат
создание печатных платсоздание печатных плат
создание печатных плат
 
Виртуальный хостинг на Амазоне: телефон, кредитка, немного времени
Виртуальный хостинг на Амазоне: телефон, кредитка, немного времениВиртуальный хостинг на Амазоне: телефон, кредитка, немного времени
Виртуальный хостинг на Амазоне: телефон, кредитка, немного времени
 
OpenSCAD: трёхмерное моделирование для школьников и программистов
OpenSCAD: трёхмерное моделирование для школьников и программистовOpenSCAD: трёхмерное моделирование для школьников и программистов
OpenSCAD: трёхмерное моделирование для школьников и программистов
 
Слоеный пирог в стиле техно или как создаются печатные платы
Слоеный пирог в стиле техно или как создаются печатные платыСлоеный пирог в стиле техно или как создаются печатные платы
Слоеный пирог в стиле техно или как создаются печатные платы
 
Writing in the Science
Writing in the ScienceWriting in the Science
Writing in the Science
 
Робототехника в школьном образовании - Robotics Expo
Робототехника в школьном образовании - Robotics ExpoРобототехника в школьном образовании - Robotics Expo
Робототехника в школьном образовании - Robotics Expo
 

Лабораторная работа по программирования pic32 ChipKIT Uno32 в среде Arduino

  • 1. Методические указания проведения лабораторных работ по программированию микроконтроллеров на Arduino-совместимой платформе PIC32 ChipKIT Uno32 Составители: Кафедра АМИ, НГТУ им Алексеева.
  • 2. Введение Язык программирования устройств Ардуино основан на C/C++. Он прост в освоении, и на данный момент Arduino — это, пожалуй, самый удобный способ программирования устройств на микроконтроллерах. Микроконтроллерные платы ChipKIT Uno32 с процессором PIC32 полностью совместимы с платформой Arduino, при этом являются более производительными, чем оригинальные платы Arduino. Язык Arduino можно разделить на три раздела: Операторы setup() loop() Управляющие операторы if if...else for switch case while do... while break continue return goto Синтаксис ; (semicolon) {} (curly braces) // (single line comment) /* */ (multi-line comment) Арифметические операторы = (assignment) + (addition) - (subtraction) * (multiplication) / (division) % (modulo) Операторы сравнения == (equal to) != (not equal to) Данные Константы HIGH | LOW INPUT | OUTPUT true | false Целочисленные константы Константы с плавающей запятой Типы данных boolean char byte int unsigned int word long unsigned long float double string - массив символов String - объект класса массив (array) void Преобразование типов данных char() byte() int() long() float() Функции Цифровой ввод/вывод pinMode() digitalWrite() digitalRead() Аналоговый ввод/вывод analogRead() analogReference() analogWrite() Дополнительные фунции ввода/вывода tone() noTone() shiftOut() pulseIn() Работа со временем millis() micros() delay() delayMicroseconds() Математические функции min() max() abs() constrain() map() pow() sq()
  • 3. < (less than) > (greater than) <= (less than or equal to) >= (greater than or equal to) Логические операторы && (И) || (ИЛИ) ! (Отрицание) Унарные операторы ++ (increment) -- (decrement) += (compound addition) -= (compound subtraction) *= (compound multiplication) /= (compound division) Область видимости переменных и квалификаторы Область видимости static volatile const sqrt() Тригонометрические функции sin() cos() tan() Генераторы случайных значений randomSeed() random() Внешние прерывания attachInterrupt() detachInterrupt() Функции передачи данных Serial Библиотеки Arduino Servo — библиотека управления сервоприводами. EERPOM — чтение и запись энергонезависимой памяти микроконтроллера. SPI — библиотека, реализующая передачу данных через интерфейс SPI. Stepper — библиотека управления шаговыми двигателями.
  • 5. Лабораторная работа №1 «Работа светодиодного индикатора» Цель работы: Написать программу, позволяющую прерывисто светиться диоду. Задача: Собрать электрическую схему диода с платформой. Ход работы. 1) Устанавливаем светодиод на контакторную платформу Рисунок 1 – Расположение светодиода на контакторной платформе 2) Подключение проводов к пинам платы PIC32 ChipKIT. Рисунок 2 – сосединение электрической схемы Строка состояния
  • 6. 3) Загрузка текста программы void setup() { pinMode(1, OUTPUT); } void loop() { digitalWrite(1, HIGH); delay(2000); digitalWrite(1, LOW); delay(2000); }
  • 7. Лабораторная работа №2 «Работа светодиодного индикатора светового датчика» Цель работы: Написать программу, позволяющую прерывисто светиться диоду. Задача : При срабатывании датчика света от него подается сигнал на платформу и посредством программы должен загораться диод. Ход работы. 1)Устанавливаем диод на платформу пинов. Рисунок 3 – расположение диода на платформе пинов 2) Подключение датчика света к платформе PIC32 ChipKIT (рисунок 3). Рисунок 4 – Датчик света
  • 8. Рисунок 5 – Подключение диода и датчика света 3) Написание программы 4) Загрузка программы в память платформы PIC32 ChipKIT
  • 9. Рисунок 6 – Процесс загрузки программы Рисунок 7 – Успешная загрузка программы
  • 10. 5) Проверка работоспособности системы Результатом правильной работы системы будет являться загорание светодиода при отсутствии попадания света на датчик. а) б) Рисунок 8 – Проверка работы системы: (а) – свет попадает на датчик; (б) – свет не попадает на датчик.
  • 11. Лабораторная работа №3 «Работа электромотора с двумя светодиодными индикаторами и светодатчиком» Цель работы: Написать программу, позволяющую идентифицировать работу электромотора светодиодами. Задача: При выключенном электромоторе горит светодиод красного цвета. При срабатывании электромотора, красный светодиод гаснет и загорается зеленый светодиод. Электромотор включается при срабатывании датчика света. Ход работы. 1) Собираем электрическую цепь. а) Подключаем SIG датчика света к Pin3, VСC датчика света к Pin 5V0, GND датчика света к «-» на платформе пинов. б)Устанавливаем зеленый диод на платформу пинов «-» к «-», «+» к «+». в)Подключаем «-» платформы пинов на GND платформы Arduino. «+» платформы пинов к Pin 2 Arduino. г)Устанавливаем красный диод «-» к «-», а «+» подходит к Pin1 платформы Arduino. г)Подключаем электромотор. «+» подходит к плюсу зеленого светодиода, а «-» подходит к общему минусу на платформе пинов. Рисунок 9 – готовая электрическая цепь 2) Текст программы:
  • 12. void setup() { pinMode(1, OUTPUT); pinMode(2, OUTPUT); pinMode(3, INPUT); } void loop() { digitalWrite(1, LOW); digitalWrite(2, HIGH); int val=digitalRead(3); if (val==1) { digitalWrite(2, LOW); digitalWrite(1, HIGH); delay(100); } } 3) Загружаем программу и выполняем проверку :
  • 13. Рисунок 10 – На световой датчик попадает свет и электромотор не работает
  • 14. При срабатывании датчика загорается зеленый диод и электромотор начинает вращаться. Рисунок 11 – Загорается зеленый диод и начинает работу электромотор
  • 15. Лабораторная работа №4 «Цифровое табло» Цель работы: Написать программу, позволяющую отобразить цифровой ряд от 0 до 9. Задача: Собрать электрическую цепь и написать программу включающую определенные сегменты цифрового табло, образующие ту или иную цифру Ход работы. 1) Устанавливаем цифровое табло на платформу пинов. Рисунок 12 – цифровое табло на платформе 2) Подключаем «-»цифрового табло к выходу GND платы ChipKIT 3) Остальные 8 пинов, отвечающие за соответствующие сегменты, подключаем к свободным пинам платы (1→Pin5, 2→Pin7,3→Pin1, 4→Pin8, 5→Pin6, 6→Pin4, 7→Pin3, 8→Pin2,)
  • 16. Рисунок 13 – Электрическая цепь в сборе 4) Текст программы void setup() { pinMode(1, OUTPUT); pinMode(2, OUTPUT); pinMode(3, OUTPUT); pinMode(4, OUTPUT); pinMode(5, OUTPUT); pinMode(6, OUTPUT); pinMode(7, OUTPUT); pinMode(8, OUTPUT); } void loop() { digitalWrite(1, LOW);
  • 17. digitalWrite(2, LOW); digitalWrite(3, HIGH); digitalWrite(4, HIGH); digitalWrite(5, HIGH); digitalWrite(6, HIGH); digitalWrite(7, HIGH); digitalWrite(8, LOW); delay(1000); digitalWrite(1, HIGH); digitalWrite(2, LOW); digitalWrite(3, LOW); digitalWrite(4, HIGH); digitalWrite(5, LOW); digitalWrite(6, LOW); digitalWrite(7, LOW); digitalWrite(8, LOW); delay(1000); digitalWrite(1, LOW); digitalWrite(2, LOW); digitalWrite(3, LOW); digitalWrite(4, HIGH); digitalWrite(5, HIGH); digitalWrite(6, LOW); digitalWrite(7, LOW); digitalWrite(8, LOW);
  • 18. delay(1000); digitalWrite(1, LOW); digitalWrite(2, LOW); digitalWrite(3, HIGH); digitalWrite(4, LOW); digitalWrite(5, HIGH); digitalWrite(6, LOW); digitalWrite(7, HIGH); digitalWrite(8, LOW); delay(1000); digitalWrite(1, LOW); digitalWrite(2, HIGH); digitalWrite(3, LOW); digitalWrite(4, LOW); digitalWrite(5, HIGH); digitalWrite(6, LOW); digitalWrite(7, LOW); digitalWrite(8, LOW); delay(1000); digitalWrite(1, LOW); digitalWrite(2, HIGH); digitalWrite(3, LOW); digitalWrite(4, LOW); digitalWrite(5, LOW); digitalWrite(6, LOW);
  • 19. digitalWrite(7, LOW); digitalWrite(8, LOW); delay(1000); digitalWrite(1, LOW); digitalWrite(2, LOW); digitalWrite(3, LOW); digitalWrite(4, HIGH); digitalWrite(5, HIGH); digitalWrite(6, HIGH); digitalWrite(7, HIGH); digitalWrite(8, LOW); delay(1000); digitalWrite(1, LOW); digitalWrite(2, LOW); digitalWrite(3, LOW); digitalWrite(4, LOW); digitalWrite(5, LOW); digitalWrite(6, LOW); digitalWrite(7, LOW); digitalWrite(8, LOW); delay(1000); digitalWrite(1, LOW); digitalWrite(2, LOW); digitalWrite(3, LOW); digitalWrite(4, LOW);
  • 20. digitalWrite(5, HIGH); digitalWrite(6, LOW); digitalWrite(7, LOW); digitalWrite(8, LOW); delay(1000); digitalWrite(1, LOW); digitalWrite(2, LOW); digitalWrite(3, LOW); digitalWrite(4, LOW); digitalWrite(5, LOW); digitalWrite(6, HIGH); digitalWrite(7, LOW); digitalWrite(8, LOW); delay(1000); }