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

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/) 

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


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


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

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

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