Робототехника

8 декабря

Тезисы

  Практическое применение наше устройство может иметь как учебная демонстрационная модель на уроках Информатики и ИКТ, а так же как игровое устройство для проверки скорости реакции на раздражитель в сравнении с соперниками.
В наше время робототехники и компьютеризации, всем ученикам необходимо научиться решать задачи с помощью автоматов – мы в своей работе называем такие автоматы  киберустройствами, которые  самостоятельно  можно спроектировать, защитить свое решение и воплотить его в реальной модели, т.е. непосредственно сконструировать и запрограммировать.
  Нами разработанное устройство в игровой форме для участников прохождения теста проверяет скорость реакции на звуковой сигнал. Условия игры состоят в следующем: по звуковому сигналу игроки нажимают на тактоввые кнопки и, кто первым нажмёт на кнопку, у того загорается светодиод и на цифровом дисплее отображается номер игрока и количество его побед. Игра проходит до 7 побед, это количество можно менять. По завершении состязания на дисплее отображается сообщение «End».








3
Содержание


1)     Введение
2)    Описание устройства
3)    Список деталей для устройства
4)    Принципиальная схема
5)    Схема устройства
6)    Программа
7)    Вывод
8)    Источники















4
Введение

В наше время робототехники и компьютеризации, всем ученикам необходимо научиться решать задачи с помощью автоматов – мы в своей работе называем такие автоматы  киберустройствами, которые  самостоятельно  можно спроектировать, защитить свое решение и воплотить его в реальной модели, т.е. непосредственно сконструировать и запрограммировать.
На занятиях школьного кружка по Робототехнике в 2016-2017 учебном году мы научились создавать простые электрические схемы, разобрались с рядом электронных устройств и их принципом работы - светодиодами, резисторами, пьезодинамиками, цифровыми дисплеями и т.п.
Свои  работы мы выполняем на основе микроконтроллёра Arduino Uno,
среда программирования –Arduino
   Воплощение нашего проекта в реальность потребовало от нас умения создавать электрические схемы, конструировать, программировать.
    Актуальность работы над проектом  «Киберустройство «Тест человеческой реакции»  заключается в том, что в настоящий момент в России развиваются нанотехнологии, электроника, механика и программирование, а это предполагает условия для развития компьютерных технологий и робототехники. Успехи страны в XXI веке будут определять не природные ресурсы, а уровень интеллектуального потенциала, который определяется уровнем самых передовых на сегодняшний день технологий. Если мы, ученики, со школьной скамьи освоим данные технологии, то это станет элементом успеха как для страны, так и для успешной профессиональной будущности нашей.


5

Описание Киберустройства «Тест человеческой реакции»

     Киберне́тика (от др.-греч. κυβερνητική — «искусство управления») — наука об общих закономерностях получения, хранения, передачи и преобразования информации в сложных управляющих системах, будь то машины,  общество (https://ru.wikipedia.org/wiki/Кибернетика) .
  Нами разработанное устройство в игровой форме для участников прохождения теста проверяет скорость реакции на звуковой сигнал. Условия игры состоят в следующем: по звуковому сигналу игроки нажимают на тактоввые кнопки и, кто первым нажмёт на кнопку, у того загорается светодиод и на цифровом дисплее отображается номер игрока и количество его побед. Игра проходит до 7 побед, это количество можно менять. По завершении состязания на дисплее отображается сообщение «End».
   За основу проекта был взят описанный Эксперимент на странице http://wiki.amperka.ru, авторами он был назван «Кнопочные ковбои». Наше устройство усовершенствованное тем, что
1)    количество участников от двух увеличено до трёх и более, всё зависит от количества пинов на микроконтроллёре, программа легко преобразуется под любое число;
2)    в своём устройстве мы используем кнопки (Troyka – модули) , светодиоды «Пиранья» (Troyka – модули);
3)    использовали четырёхразрядный индикатор для отображения результатов игры на экран (Troyka – модуль);
4)    исходная программа была преобразована так как в устройство был добавлен дисплей и появилась новая задача отображения результатов игры.



6

Список деталей для устройства

 

§  1 плата Arduino Uno
§  3 тактовых кнопки (Troyka – модули)
§  светодиода «Пиранья» (Troyka – модули)
§  1 пьезопищалка
§  7 трёхпроводный шлейф мама-мама
§  Соединительные провода мама-мама (2) и папа-папа (2)


Принципиальная схема

 




7

Схема устройства












8
                                                  
Программа

#include QuadDisplay.h
#define PIN 7
#define BUZZER_PIN   12  // пин с пищалкой
#define PLAYER_COUNT 3   // количество игроков
// вместо перечисления всех пинов по-одному, мы объявляем пару
// списков: один с номерами пинов с кнопками, другой — со
// светодиодами. Списки также называют массивами (англ. array)
int buttonPins[PLAYER_COUNT] = {1,2,3};
int ledPins[PLAYER_COUNT] = {4,5,6};
// объявляем список для учёта количества побед игроков
int igrok[PLAYER_COUNT] = {0,0,0};
void setup()
{
  pinMode(BUZZER_PIN, OUTPUT);
  for (int player = 0; player < PLAYER_COUNT; ++player) {
    // при помощи квадратных скобок получают значение в массиве
    // под указанным в них номером. Нумерация начинается с нуля
    pinMode(ledPins[player], OUTPUT);
    pinMode(buttonPins[player], INPUT_PULLUP);}}
void loop()
{ displayClear(PIN);
 9
 delay(1000);
//вводим переменную для обозначения номера игрока
 int x=0;
 // даём сигнал «пли!», выждав случайное время от 2 до 7 сек
  delay(random(2000, 7000));
  tone(BUZZER_PIN, 3000, 250); // 3 килогерца, 250 миллисекунд
  for (int player = 0;;  player = (player+1) % PLAYER_COUNT) {
    // если игрок номер «player» нажал кнопку...
    if (!digitalRead(buttonPins[player])) {
      // ...включаем его светодиод и сигнал победы на 1 сек
      digitalWrite(ledPins[player], HIGH);
      tone(BUZZER_PIN, 4000, 1000);
      delay(1000);
      digitalWrite(ledPins[player], LOW);
//подсчитываем количество побед игрока, нажавшего первым кнопку
      igrok[player]=igrok[player]+1;
//отображаем на дисплее количество побед
      displayInt(PIN,igrok[player] );
  delay(1000);
   x=1111*(player+1);
  displayInt(PIN, x); //
  delay(1000);
        displayInt(PIN,igrok[player] );
  delay(1000);
        10
displayInt(PIN,igrok[player] );
  delay(1000);
// отображаем на дисплее конец игры
   if (igrok[player]==5){ displayDigits(PIN, QD_E, QD_n, QD_d, QD_NONE);delay(5000);}; 
      break; // Есть победитель! Выходим (англ. break) из цикла
    }}}


















11

Вывод

  Считаем, что с поставленной задачей справились.
   Практическое применение наше устройство может иметь как учебная демонстрационная модель на уроках Информатики и ИКТ, а так же как игровое устройство для проверки скорости реакции на раздражитель в сравнении с соперниками.

Источники
http://wiki.amperka.ru













7 апреля

Предлагаем выполнить следующие проектные работы 
1) Простая метеостанция



2) Детектор дыма и угарного газа


3) Кухонный таймер



4) Саймон говорит

5) Тестер батареек


В этом эксперименте мы выводим на жидкокристаллический дисплей данные о напряжении, измеренном на батарейке.

Список деталей для эксперимента


6) Кнопочные ковбои

В этом эксперименте мы создаем игрушку на реакцию: кто быстрее нажмет кнопку по сигналу.

Список деталей для эксперимента

7) Ночной сканер

8) Перетягивание каната

В этом эксперименте мы создаем еще одну игру, на этот раз нужно быстрее соперника нажать кнопку 20 раз.

Список деталей для эксперимента

12 марта

HC-SR04 - этот дальномер может служить прекрасным датчиком для робота, благодаря которому он сможет определять расстояния до объектов, объезжать препятствия, или строить карту помещения. Его можно также использовать в качестве датчика для сигнализации, срабатывающего при приближении объектов.

Принцип действия

Ультразвуковой дальномер определяет расстояние до объектов точно так же, как это делают дельфины или летучие мыши. Он генерирует звуковые импульсы на частоте 40 кГц и слушает эхо. По времени распространения звуковой волны туда и обратно можно однозначно определить расстояние до объекта.
В отличие от инфракрасных дальномеров, на показания ультразвукового дальномера не влияют засветки от солнца или цвет объекта. Но могут возникнуть трудности с определением расстояния до пушистых или очень тонких предметов.

11 марта 2017г.

Сервоприводы

.

Понятие сервопривода

Под сервоприводом чаще всего понимают механизм с электромотором, который можно попросить повернуться в заданный угол и удерживать это положение. Однако, это не совсем полное определение.
Если сказать полнее, сервопривод — это привод с управлением через отрицательную обратную связь, позволяющую точно управлять параметрами движения. Сервоприводом является любой тип механического привода, имеющий в составе датчик (положения, скорости, усилия и т.п.) и блок управления приводом, автоматически поддерживающий необходимые параметры на датчике и устройстве согласно заданному внешнему значению.
Иными словами:
  1. Сервопривод получает на вход значение управляющего параметра. Например, угол поворота
  2. Блок управления сравнивает это значение со значением на своём датчике
  3. На основе результата сравнения привод производит некоторое действие, например: поворот, ускорение или замедление так, чтобы значение с внутреннего датчика стало как можно ближе к значению внешнего управляющего параметра
Наиболее распространены сервоприводы, которые удерживают заданный угол и сервоприводы, поддерживающие заданную скорость вращения.
Типичный хобби-сервопривод изображён ниже.

Каким же образом устроены сервоприводы?

Устройство сервопривода

Сервоприводы имеют несколько составных частей.

Привод — электромотор с редуктором. Чтобы преобразовать электричество в механический поворот, необходим электромотор. Однако зачастую скорость вращения мотора бывает слишком большой для практического использования. Для понижения скорости используется редуктор: механизм из шестерней, передающий и преобразующий крутящий момент.
Включая и выключая электромотор, можно вращать выходной вал — конечную шестерню сервопривода, к которой можно прикрепить нечто, чем мы хотим управлять. Однако, для того чтобы положение контролировалось устройством, необходим датчик обратной связи — энкодер, который будет преобразовывать угол поворота обратно в электрический сигнал. Для этого часто используется потенциометр. При повороте бегунка потенциометра происходит изменение его сопротивления, пропорциональное углу поворота. Таким образом, с его помощью можно установить текущее положение механизма.
Кроме электромотора, редуктора и потенциометра в сервоприводе имеется электронная начинка, которая отвечает за приём внешнего параметра, считывание значений с потенциометра, их сравнение и включение/выключение мотора. Она-то и отвечает за поддержание отрицательной обратной связи.
К сервоприводу тянется три провода. Два из них отвечают за питание мотора, третий доставляет управляющий сигнал, который используется для выставления положения устройства.
   Более подробно читайте на  сайте Амперка

5 октября 2016г.

( публикуемые материалы позаимствованы на сайте http://wiki.amperka.ru/) 

Языки программирования

Итак, у нас есть процессор. Мы наверняка понимаем, что процессор можно как-то запрограммировать, чтобы он делал то, что мы хотим. Для того, чтобы была выполнена полезная работа необходимо (а) написать полезную программу и (б) отдать её процессору для исполнения.
В целом, не важно какой именно у нас процессор: последний Intel Pentium в вашем ноутбуке или микроконтроллер на плате Arduino. Принципы написания программы, т.е. программирования, в обоих случаях одни и те же. Различается лишь быстродействие и объём возможностей по работе с другими устройствами.

Что такое программа и куда её писать

Процессор несмотря на всю сложность производства, по сути своей, довольно простая и прямолинейная вещь. Думать он не умеет. Он умеет лишь слепо, байт за байтом исполнять инструкции, которые ему подсунули. Можно привести грубый пример последовательности инструкций:
Байт инструкцииЧто он означает для процессора
00001001означает: взять следующий байт и запомнить его в ячейке №1
00000110…это как раз следующий байт, который мы запоминаем в ячейке №1: число 5
00011001означает: отнять от значения в ячейке №1 единицу и оставить там обновлённый результат
00101001означает: сравнить значение в ячейке №1 с нулём и если оно ноль — перепрыгнуть через столько байт, сколько указано в следующем байте
00000100…если результат был ноль, мы хотим прыгнуть через 4 байта, к предпоследней инструкции
10000011означает, что мы хотим вывести на экран символ, код которого записан в следующем байте
01000001…букве «A» как раз соответствует этот код
00101000означает, что мы хотим прыгнуть назад на столько байт, сколько указано в следующем байте
00000110…прыгать будем на 6 байт назад, к инструкции №3
10000011означает, что мы хотим вывести на экран символ, код которого записан в следующем байте
00100001…знаку «!» как раз соответствует этот код
В результате исполнения такой последовательности инструкций на экран будет выведена паническая фраза «АААА!».
Довольно много кода для такой простой цели! Понятно, что если бы все программы писались вот так, непосредственно, разработка сложных продуктов занимала бы века.

Зачем нужны языки программирования

Для упрощения задачи в миллион раз были придуманы языки программирования. Их очень много и даже из тех, что постоянно на слуху можно быстро вспомнить десяток-другой: Assembler, C, C++, C#, Java, Python, Ruby, PHP, Scala, JavaScript.
Программы на этих языках гораздо ближе к естественному языку человека. А следовательно их проще, быстрее и приятнее писать, а что самое главное, их гораздо проще читать: вам сразу после написания, вам через год или вашему коллеге.
Проблема в том, что такие языки не понятны процессору и перед тем как отдать ему эту программу, её нужно скомпилировать: перевести с естественного языка в те самые инструкции в виде нулей и единиц. Этим занимаются программы, которые называются компиляторами. У каждого языка, если только он не остался на уровне фантазий, есть свой компилятор. Для популярных языков их обычно несколько на выбор, от разных производителей и для разных платформ. Большинство из них свободно доступно в интернете.
Итак, есть программы на вполне понятном человеку языке: их ещё называют «исходным кодом», просто «кодом» или «исходниками». Они пишутся в простые текстовые файлы с помощью любого текстового редактора, хоть с помощью notepad. Затем они превращаются в понятные процессору наборы нулей и единиц с помощью компилятора: компилятор получает на вход исходный код, а на выходе создаётбинарный исполняемый файл, тот самый, понятный процессору.
Бинарные файлы не пригодны для чтения и предназначены, в общем, лишь для исполнения процессором. Они могут иметь разный тип в зависимости от того для чего получены: .exe — это программы для Windows, .hex — программы для исполнения микроконтроллером типа Arduino и т.п.
Почему же существует столько языков программирования и в чём разница?
  • Почему? Потому что на Земле много людей и компаний, и многие считали, что могут сделать лучше всех: удобнее, понятнее, быстрее, стройнее.
  • В чём разница: разные языки — это разный баланс скорости написания, понятности при чтении и скорости исполнения.
  • ********************************************************************************************************************************

18 сентября 2016г. 

Монтажные схемы к первым практическим работам

( публикуемые материалы позаимствованы на сайте http://wiki.amperka.ru/) 

Схема  светофора с ручным управлением


Автоматический светофор


Понятие электричества

Поведение электрической цепи можно сравнить с гидравлической системой

Электрическая цепь