Sonoff

 Arduino, ESP8266  Комментарии к записи Sonoff отключены
Июн 162017
 

Отличные железки на SoC ESP8266 от Itead Studio

Введение

Во всех устройствах стоит микросхема FLASH памяти 25Q80DVSIG

Continue reading »

Синтезатор AD9850

 Arduino, Электронные прибамбасы  Комментарии к записи Синтезатор AD9850 отключены
Янв 312017
 

Зайдя в очередной раз на сайт местного радиомагазина, обнаружил в продаже интересный девайс. Модуль DDS (direct digital synthesis) — синтезатор частоты на микросхеме AD9850. Такой:

Continue reading »

Mach3 поиск 0 по оси Z

 Arduino  Комментарии к записи Mach3 поиск 0 по оси Z отключены
Янв 072017
 

То, что творится с инструкциями по обнулению оси Z, это, конечно, полный бардак. Одни не понимают что они пишут, другие не понимают что они читают, ломают фрезы и бросают эту полезную затею.
Может где и есть понятные инструкции, но мне они не попались, поэтому пишу свою.

Итак: Задача установить инструмент в точку ноль по оси Z в программе MACH3.
Алгоритм:
Ось Z опускается на заданную величину (10мм). Если происходит замыкание, то ноль по Z устанавливается с учетом толщины пластину и происходит отскок безопасности на 5 мм. Если замыкания не обнаруживается, то ось Z просто останавливается. Толщину пластины и скорость опускания можно задать в скрине Мач3. Остальные параметры в тексте скрипта.

В программе Мач3 есть возможность обнаружить момент замыкания входа LPT на землю. Обычно это контакт между фрезой и металлической деталью или вспомогательной пластиной. Для этого один контакт мы присоединяем к фрезе, а другой к детали или к пластине.
1.На контроллере находим свободный входной пин разъема LPT. Это пины 10, 11, 12, 13 или 15. Например, 12. И к этому разъему присоединяем один контакт, другой к земле.
1. Выбираем свободный номер пина, заходим в Config->Ports-and-Pins->Input-Signals->Probe и ставим галочки в Enable и ActiveLow. В PinNumber выставляем номер пина.
2. Толщина пластины. Если мы обрабатываем металлическую деталь или печатную плату, то вторым контактом будет сама деталь, пластина не нужна и поправка на ее толщину будет ноль. Если деталь не токопроводящая, то нужна вспомогательная пластина. Т.е. необходимо иметь параметр, где мы можем задать толщину пластины.
Что, например, можно сделать.
Скачиваем с официального сайта программу Screen4.exe — это дизайнер экранов программы Мач, и размещаем ее в директорию Мач. Стартуем, открываем файл 1024.set — стандартный файл скринов Мача, переименовываем и сохраняем под другим именем. Теперь мы можем изменять экраны. Нам надо добавить параметр для установки толщины пластины. Выделяем, например, поле Z inhibit, делаем Copy->Paste и размещаем, например, так:
Изображение
Кликаем дважды левой кнопкой, и в поле OEM-Code-Function пишем 1151. По этому номеру мы можем теперь считать в программе значение этого поля.
Сохраняем скринсет. Стартуем Мач, в View-LoadScreens выбираем и загружаем модифицированный экран Мача с новым полем.
3. Теперь нам надо стартовать установку нуля. Для этого используется кнопка AutoToolZero. При нажатии на эту кнопку начнет выполняться программа, контролирующая установку нуля. Эта программа написана на языке VBscript. Такие программы широко используются и называются скриптами. Текст программы или заглушку можно увидеть по Operator->EditButtonScript, а затем кликнуть по мигающей кнопке AutoToolZero.
Вот сюда-то и надо скопировать или ввести программу установки нуля. Не забыть потом сохранить ее и профиль Мач3, при выходе из программы.
4. Скрипт. Количество скриптов для установки нуля превышает разумные пределы. Многие из них работают, хотя авторы даже не понимают, что рекомендуют. Давайте рассмотрим один из вариантов, доработанных мною до состояния, которое меня устроило. Заодно и скрипты изучил немного. Это мой первый скрипт, поэтому замечания приветствуются.

Вначале только пример с комментариями. При попытке ввести в программу комментарии на кириллице, приходилось перезагружать компьютер. Рабочий вариант скрипта будет ниже.

Rem VBScript To probe In the z axis
‘ Это комментарий
If GetOemLed (825) <> 0 Then ‘ Проверяем, может быть ноль уже установлен
‘ Расшифровки параметра в GetOemLed находятся в файле LEDCodes.txt
Code «(Z-Plate is grounded or check connection and try again)» ‘ выводим сообщение об этом
Else
‘ Если ноль не установлен, то пробуем его найти
Code «G4 P1» ‘ Пауза в 1 сек
PlateOffset = GetUserDRO(1151) ‘ считываем значение нового поля. Это толщина пластины.
‘ Значения параметров GetUserDro и GetOemDro находятся в файле DroCodes.txt
CurrentFeed = GetOemDRO(818) ‘ счтываем значения поля Feedrate. Это текущая скорость мм/мин
‘ Эту скорость можно изменить перед поиском нуля в скрине Мача
MyFeed = 100 ‘ скорость поиска нуля мм/сек для вашего станка
‘ Зависит от крепости фрезы
‘ Если скорость больше MyFeed, то мы ее уменьшаем до MyFeed.
‘ если меньще MyFeedRate, то устанавливаем меньшую скорость. Ту, которая в Маче
If CurrentFeed>MyFeed Then
Code «F» &MyFeed ‘ Эту скорость вы можете установить под свой станок как стандартную
Else
Сode «F» &CurrentFeed
‘ Эту скорость вы всегда можете установить для конкретного поиска нуля
End if
‘ Начинаем искать ноль
ZNew = GetDro(2) — 10 ‘ Устанавливаем точку на 10мм ниже текущей высоты Z
Code «G31Z» &ZNew ‘ Идем в эту точку с контролем замыкания контактов Probe
While IsMoving() ‘ Ждем пока ось Z дойдет до точки -10мм
Wend

ZNew = GetVar(2002) ‘ Считываем значение по Z в момент замыкания
Code «G1 Z» &ZNew ‘ Если проскочили, то возвращаемся
While IsMoving () ‘ Ждем возвращения
Wend
If GetOemLed (825) <> 0 Then
‘ Проверяем нашли ноль или просто опустились по Z на 10мм
‘ Проверяем толщину пластины
‘ если она ненулевая, то корректируем ось Z с учетом ее толщины, иначе 0
Call SetDro (2, PlateOffset) ‘ новая точка 0 по Z
Code «G4 P0.5» ‘ ждем установку по Z 0.5 сек

ZNew = 5 ‘ отскок безопасности по Z. Можете поменять
Code «G1 Z5 F200» ‘ идем в точку отскока
While IsMoving () ‘ ждем прихода в отскок
Wend
Code «(Z axis is now zeroed)» ‘ выводим сообщение об установке нуля.

Else
‘ Замыкания не достигли. Просто опустились на 10мм
Code «(Z-Plate ie not grounded. Try again.)» ‘ сообщение об этом
End If

Code «F» &CurrentFeed ‘ возвращаем значение скорости
End If

Текст скрипта находится в директории Macros->»профиль» под именем HiddenScript.m1s
Но при старте Mach3 скрипт берется из профиля. Так что если у вас не обновился профиль после изменения скрипта, при старте Мач3 получите старый скрипт.

Рабочий скрипт:

Rem VBScript To probe In the z axis
If GetOemLed (825) <> 0 Then ‘Check to see if the probe is already grounded or faulty
Code «(Z-Plate is grounded or check connection and try again)» ‘this goes in the status bar if aplicable

Else
Code «G4 P1» ‘Pause 1 seconds to give time to position probe plate
PlateOffset = GetUserDRO(1151) ‘Get plate offset DRO
CurrentFeed = GetOemDRO(818) ‘Get the current feedrate to return to later
MyFeed = 100
If CurrentFeed > MyFeed Then
Code «F» &MyFeed ‘slow down feedrate to 100 mmpm
Else
Code «F» &CurrentFeed
End If
Rem Probe In the z direction
ZNew = GetDro(2) — 10 ‘probe move to current z — 10mm
Code «G31Z» &ZNew
While IsMoving() ‘wait for probe move to finish
Wend

ZNew = GetVar(2002) ‘read the touch point
Code «G1 Z» &ZNew ‘move back to hit point incase there was overshoot
While IsMoving ()
Wend
If GetOemLed (825) <> 0 Then ‘ Zero or Not

Call SetDro (2, PlateOffset) ‘set the Z axis DRO to plate thickness
Code «G4 P0.5» ‘Pause for Dro to update.

ZNew = 5 ‘ Up to 5mm
Code «G1 Z5 F200» ‘&ZNew ‘put the Z retract height you want here
While IsMoving ()
Wend
Code «(Z axis is now zeroed)» ‘puts this message in the status bar
Else

Code «(Z-Plate is not grounded. Try again.)»
End If

Code «F» &CurrentFeed ‘Returns to prior feed rate

End If
Rem Finalized by George164 05/03/2012

Прошивка любого Hex-файла в Arduino

 Arduino  Комментарии к записи Прошивка любого Hex-файла в Arduino отключены
Дек 062016
 

104-Прошивка любого Hex-файла в Arduino при помощи штатного загрузчика (Bootloader).

Автор: GetChiper | 15.12.2013
56 комментариев

Давайте немного отвлечемся от создания нашего робота и поговорим о том, как мы будем записывать прошивку в Arduino.

Нас, прежде всего, интересуют три платы Arduino:
Arduino Uno – как самый распространенный вариант
Arduino Nano – компактный вариант, удобный для применения в небольших конструкциях
Arduino Pro Mini – дешевый компактный вариант без встроенного USB-UART преобразователя (для работы с ним понадобится внешний USB-UART преобразователь), но удобный в случае применения сети устройств.

Arduino_UNOArduino_NANOArduino_PRO_MINI

Во всех вышеописанных платах используется микроконтроллер ATmega328 (в более старых версиях ATmega168).

ATmega48_88_168_328.pdf — Даташит на ATmega48A-48PA-88A-88PA-168A-168PA-328-328P

Одной из главных причин выбора платы Arduino для проекта робота была возможность записывать прошивку устройства в МК не применяя программатора и каких либо дополнительных устройств. Все что нужно для прошивки микроконтроллера Arduino – это стандартный USB шнур (который входит в комплект Arduino).

Это значит, если Вы имеете Ардуину – Вы имеете любое устройство ZiChip!

Запись программы в МК через USB происходит через специальный загрузчик (Bootloader), который записан в МК при изготовлении платы. Вообще, загрузчик предназначен для работы со своим специальным программным обеспечением Arduino IDE, но в случае, когда необходимо прошить в Ардуину что-то постороннее (свой Hex-файл), есть программки позволяющее это реализовать.

Начнем с маленькой и удобной
XLoader (Arduino HEX uploader)

XLoader.zip — Программа для записи Hex-файла в Arduino

Программка имеет аскетичный интерфейс и работать с ней предельно просто:
— подключаем Arduino в USB-порт (отдельного питания не нужно)
— выбираем Hex файл
— выбираем тип Вашего Arduino
— выбираем COM порт, который создался при подключении Arduino к USB (скорость порта автоматически подставится при выборе типа Arduino)
— жмем Upload

Это все! Ничего сложного. Прошивка через несколько секунд будет записана в МК и автоматически запустится. Один минус – программа никак не сообщает о том, что прошивка уже записана, но это можно увидеть по прекращению мерцания светодиодов RXD и TXD на Ардуине.

XLoader использует для записи прошивки AVR Dude и в качестве протокола программирования используется STK500. Но, похоже, в настройках AVR Dude, произведена коррекция, так как использование стандартного AVR Dude с такими же настройками не дает результатов.

Автоматизация XLoader.

При разработке ПО для микроконтроллера производится очень много прошивок и всегда нужно стремиться автоматизировать этот процесс после сборки проекта — это экономит время и нервы. В данном случае автоматизация усложнена, так как программа не показывает командную строку для AVR Dude (разве что подбирать опытным путем), но некоторое упрощение процесса возможно. Делается это следующим способом – после первой прошивки не закрываем окно программы (COM порт после прошивки программа отпускает) и после следующей сборки проекта просто жмем кнопку «Upload». Конечно, сборка должна осуществляться в один и тот же Hex-файл.

Еще одна программка
ARP Uploader (Arduino Hex Uploader and Programmer)

ArduinoUploader.zip — Программа для записи Hex-файла в Arduino

Как и предыдущая, программка имеет простой интерфейс.
Процесс прошивки тот же:
— подключаем Arduino в USB-порт (отдельного питания не нужно)
— выбираем Hex файл
— выбираем тип Вашего Arduino
— выбираем COM порт
— жмем Upload

Программа при записи открывает дополнительные окна и визуально отображает свои действия, что позволяет следить за процессом записи.

При попытке прошить Arduino Nano программа отказывалась видеть МК. Причиной стала неправильная установка скорости COM порта. По умолчанию скорость стоит 19200, а нужно 57600. Скорость порта в программе не задается явно, она прописывается в строчке «AVR Dude Params» — поменяйте в ней значение 19200 на 57600.

Автоматизация ARP Uploader.
ARP Uploader как и XLoader работает через AVR Dude, но, в отличие от XLoader, показывает командную строку. Это дает возможность использовать AVR Dude напрямую в Make или Bat файле.

Дополнительные материалы.
Драйвера Arduino.

Считаю не лишним напомнить, что для связи Arduino с компьютером в последнем должны присутствовать драйвера. Оставляю здесь архив с драйверами для Arduino (включая и старые драйвера в Old_Arduino_Drivers.zip и драйвера для FTDI-чипа в папке «FTDI USB Drivers»

Arduino_drivers.zip — Драйвера для Arduino

Стали появляться недорогие китайские Ардуины с драйвером CH340G
Driver CH340G.zip — Драйвер для преобразователя USB-UART

Загрузчики Arduino

Если Вы решите собрать свою плату Arduino (а сложного там ничего нет, фактически, это голый ATmega328 или ATmega168), Вам понадобится загрузчик Bootloader который должен содержать МК для работы со средой (или программками для заливки Hex-файлов). Конечно, Вам для записи Hex-файлов в чистый МК понадобится программатор и придется выставить фьюзы.

ATmegaBOOT_168_atmega328.hex — Bootloader для ATmega328
Для правильной работы нужно установить фьюзы следующим образом Low: FF High: DA Ext: 05

ATmegaBOOT_168_diecimila.hex — Bootloader для ATmega168
Фьюзы Low: FF High: DD Ext: 00

Схемы Arduino

Cхемы вышеописанных Ардуин.
Arduino_Uno_Rev3-schematic.pdf — Схема Arduino Uno
ArduinoNano30Schematic.pdf — Схема Arduino Nano
Arduino-Pro-Mini-schematic.pdf — Схема Arduino Pro Mini

Фьюзы установленные по умолчанию в Arduino (только с ATmega328)
Arduino Uno
Low Fuse 0xFF
High Fuse 0xDE
Extended Fuse 0x05

Arduino Duemilanove or Nano w/ ATmega328
Low Fuse 0xFF
High Fuse 0xDA
Extended Fuse 0x05

Arduino BT w/ ATmega328
Low Fuse 0xFF
High Fuse 0xD8
Extended Fuse 0x05

LilyPad Arduino w/ ATmega328
Low Fuse 0xFF
High Fuse 0xDA
Extended Fuse 0x05

Arduino Pro or Pro Mini (5V, 16 MHz) w/ ATmega328
Low Fuse 0xFF
High Fuse 0xDA
Extended Fuse 0x05

(Visited 25 343 times, 70 visits today)

Раздел: Полезные программы Программаторы и преобразователи Метки: Arduino, ATmega328

Кинезио тейп

 Arduino  Комментарии к записи Кинезио тейп отключены
Ноя 232016
 

Кинезио тейп — лечебно профилактический пластырь для мышц и суставов

1367 0

кинезио пластырьКинезио тейп (бинт эластичный ленточный малой растяжимости адгезивный) — это эластичная хлопковая лента, разработанная на клейкой основе, которая применяется в спортивной медицине при реабилитации после травм.

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

Кинезиологический тейп необходим для того, чтобы даже при наличии какой-либо травмы была возможность достижения поставленной цели и получение положительного результата.

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

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

принцип действия кинезиобинта

Содержание статьи

Цели использования

Цели использования пластыря:

  • улучшение кровообращения и лимфотока;
  • купирование болевых ощущений;
  • проведение расслабления гипертонуса либо для стимуляции гипотонуса мышц;
  • защита мышцы от перезагруженности;
  • для снятия воспалительных процессов;
  • для стабилизации суставов.

цели кинезиотейпирования

Преимущества данного пластыря так же в том, что он способен обеспечить ускорение регенерации мышц и связочного аппарата.

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

Чем кинезиотейп отличается от традиционных бинтов

От традиционных спортивных тейпов кинезио пластырь отличается тем, что его возможно оставлять на коже на неделю, но повторного применения одной ленты не предусмотрено.

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

В отличие от обычного эластичного бинта, который фиксирует мышцы и суставы, мешая тем самым нормальной работе связок, уменьшая диапазон движения и приводит к онемению, кинезиотейп же не создает каких-либо препятствий для кровообращения и не стесняет движений.

Бинт необходимо снять сразу по окончанию тренировки, так как он способен вызвать раздражение кожи и даже пересыхание мышц. Тейп же позволяет коже дышать, его не видно под одеждой и нет необходимости снимать его даже во время принятия ванны. В отличие от подобных средств он гипоаллергенен.

преимущества тейпов

Особенности и методы наложения

Для того чтобы определить качество тейпа, необходимо посмотреть как разматывается рулон. Он должен без рывков и натяжения разматываться до самого конца, часть ленты отрываться без каких-либо усилий. При нанесении на кожу не образовывать воздушных складок и клеиться легко и своевременно.

Самым важным в обращении с данной лентой является необходимость знать мышечную анатомию, так как придется разобраться в том, в какой части кости или сустава прикреплена поврежденная мышца.

методы наложения кинезиотейпа

Пластырь нужно приклеить так, чтобы мышца было подтянута вдоль волокон. Одной накладкой пользуются в течение четырех-шести дней. Максимальный эффект будет достигнут при эластичности пластыря 50-70%.

Для того, чтобы правильно наложить тейп нужно:

  1. Определить с какой целью это делается. При мышечной и суставной боли пластырь рекомендуется накладывать по периметру травмированной зоны, в которой соответственно имеются болевые ощущения. Во время использования пластыря для коррекции детской осанки или же плоскостопия кинезиотейп необходимо наложить по длине позвоночника или стопы. Если же возникает необходимость защитить мышцы во время занятия спортом, то приклейте его на проблемные зоны.
  2. В зоне наложения сбрить лишние волосы.
  3. Обезжирить кожу спиртом, а затем использовать ленту.
  4. После приклеивания необходимо подождать в течение получаса, пока клей начнет взаимодействовать с кожей и лишь, потом начинать занятия спортом.

Полезные видео материалы

Лучше один раз увидеть, чем десять прочитать. Полезная подборка видео пособий, в которых можно найти инструкции по применению кинезио тейпов, методы наложения, особенности воздействия и многое другое.

загрузка…

ГРИ часы под управлением ESP8266

 Arduino, Электронные прибамбасы  Комментарии к записи ГРИ часы под управлением ESP8266 отключены
Окт 152016
 

ГРИ часы под управлением ESP8266

Опубликовано 21.09.2015.
Создано при помощи КотоРед.

О конструкции.

Основой часов служит модуль ESP-12(WiFi) с чипом ESP8266 китайской компании Espressif. Пожалуй, радиолюбитель у которого есть интернет, уже знает или хотя бы слышал об этих модулях. Останавливаться на описании смысла нет.

Continue reading »

Приемник УКВ с управлением Arduino

 Arduino  Комментарии к записи Приемник УКВ с управлением Arduino отключены
Авг 222016
 

Цифровой FM приемник на Arduino и модуле RDA5807 с графическим дисплеем и функцией RDS
Попался мне модуль радиоприемника на микросхеме RDA5807, он заинтриговал меня своей ценой и размерами, а когда я посмотрел весь его функционал, то понял что с ним можно поработать. В итоге в связке с arduino получился полноценный радиоприемник, с функцией RDS, цифровой регулировкой громкости, и авто настройкой.
Цифровой FM приемник на Arduino и модуле RDA5807 с графическим дисплеем и функцией RDS

Назначение контактов модуля RDA5807.
Цифровой FM приемник на Arduino и модуле RDA5807 с графическим дисплеем и функцией RDS

К ардуино данный модуль подключается по следующей схеме.
Цифровой FM приемник на Arduino и модуле RDA5807 с графическим дисплеем и функцией RDS

Из компонентов нам понадобятся:
Сам модуль приемника RDA5807.
Плата ARDUINO.
Графический дисплей NOKIA 5110.
3 тактовых кнопки.
Резисторы:
10кОм — 3шт.
47 Ом — 1шт.
10 Ом — 2шт.
И 2 электролитических конденсатора 330 мкФ 16 вольт.
Наушники.
Соединяем все согласно схемы, и обращаем особое внимание на подключение ЖК индикатора, так как они собираются в разных подвалах китая и выводы могут отличатся.
PIN_SCE подключен к выводу 3 arduino
PIN_RESET подключен к выводу 4 arduino
PIN_DC подключен к выводу 5 arduino
PIN_SDIN подключен к выводу 6 arduino
PIN_SCLK подключен к выводу 7 arduino
По выводам питания и подсветки разберетесь сами.
Кнопки по схеме
1-я значение (-)
2-я (Меню)
3-я значение (+)
Наушники подключать на прямую к модулю приемника RDA5807 нельзя, собираем простую схему согласования.
Цифровой FM приемник на Arduino и модуле RDA5807 с графическим дисплеем и функцией RDS

Кстати звук в наушниках получается очень громким, дополнительного усилителя не нужно.
После сборки можно заливать скетч а ардуино.
Листинг программы

Добавлена функция BASSBOOST индикацию включения не писал

После старта приемник установит громкость «2» и частоту 104.7 мГц. кнопкой меню перелистываем пункты:
VOLUME — Громкость
AUTO TUNE — авто настройка частоты
MANUAL TUNE — ручная настройка на частоту.
INFO — данные системы RDS
Вот небольшое видео работы данного приемника

Для корректного отображения данных RDS нужна нормальная антенна, на индикаторе сверху есть буква S — и значение, это уровень принимаемого сигнала. дальше идет уровень громкости от 0 до 15, строка меню, текущая частота сигнала, и данные RDS. Если возникают вопросы пишите в комментариях.
Скачать все файлы проекта priemnik-RDS.rar [486,58 Kb] (cкачиваний: 1728)

Подключение AVRDRAGON к среде разработки ARDUINO

 Arduino, AVR  Комментарии к записи Подключение AVRDRAGON к среде разработки ARDUINO отключены
Июн 012014
 

Отсюда  http://forum.arduino.cc/index.php?topic=51561.0

I read on this forum a few confused posts about using AVR Dragon as an external programmer with Arduino IDE and thought my experience may be useful to someone.

AVR Dragon can be used as an external programmer with Arduino IDE, e.g. to burn sketches to Arduino-compatible hardware without the bootloader. For example, I use it to upload my sketch to an ATMega8L controlling an audio amplifier based on TI’s TAS5086 PWM processor. I use it under Mac OS X; I have heard, but not tested, that the same thing under Windows may be tricky because of USB driver incompatibility.
Continue reading »