Geosan

Карманный кардиограф на SD-карте

 Электронные прибамбасы  Комментарии к записи Карманный кардиограф на SD-карте отключены
Апр 142017
 

Карманный кардиограф на SD-карте

Рассматривается простой кардиограф, умещающийся в кармане и обеспечивающий регистрацию электрокардиограммы (частоты пульса), температуры и положения тела человека. Эти параметры запоминаются на карте памяти micro SD, откуда в последствии могут быть переписаны на персональный компьютер (ПК) и при помощи специальной программы отображены в виде графиков (привязанных к времени и дате съемки) для детального изучения.

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

Continue reading »

SIM900 MINI V4.0 Wireless Data Transmission Module

 Всяческие настройки, Технологии, Электронные прибамбасы  Комментарии к записи SIM900 MINI V4.0 Wireless Data Transmission Module отключены
Мар 132017
 

Как заставить работать sim900a в наших сетях

Схемотехника*, DIY или Сделай сам*

Для начала справочная информация:
sim900 — представитель нового поколения бюджетных GSM/GPRS модулей компании SIMCom.
Sim900a – аналог sim900, предназначенный для использования на азиатском рынке, не работает с российскими операторами.

Continue reading »

Pronterface — программа управления 3D принтером

 3D печать  Комментарии к записи Pronterface — программа управления 3D принтером отключены
Мар 122017
 

Pronterface — программа управления 3D принтером

  • 22 окт, 2014 в 22:07


Программа используется для:
— предварительного нагрева стола перед печатью,
— смены пластика,
— контроля температуры,
— настройки оси Z и других настроек.

Continue reading »

Настройка прошивки для 3D принтера Marlin ver.1.02 (январ ь 2015)

 3D печать  Комментарии к записи Настройка прошивки для 3D принтера Marlin ver.1.02 (январ ь 2015) отключены
Мар 122017
 

Настройка прошивки для 3D принтера Marlin ver.1.02 (январь 2015)

  • 13 фев, 2015 в 19:08


Последний раз редактировал 27.08.15

Многие 3D принтеры работают под управлением популярной прошивки Marlin. Для некоторых 3D принтеров существуют уже стандартно сконфигурированные прошивки:

Continue reading »

Начинаеми изучать ПЛИС

 ПЛИС  Комментарии к записи Начинаеми изучать ПЛИС отключены
Фев 102017
 

Разработка → Сделай шаг к ПЛИС

Программирование микроконтроллеров*, Программирование*, FPGA*

Ты ждал знак? Вот он!

Много лет я не решался начать программировать ПЛИС, потому что это сложно, дорого и больно (как мне казалось). Но хорошо, когда есть друзья, которые помогают сделать первый шаг. И теперь я не понимаю одного — ПОЧЕМУ Я ЖДАЛ ТАК ДОЛГО?

Сейчас я помогу сделать первый шаг и тебе!

 

Continue reading »

Синтезатор AD9850

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

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

Continue reading »

22 January, 2017 21:56

 Электронные прибамбасы  Комментарии к записи 22 January, 2017 21:56 отключены
Янв 222017
 

Оптические датчики сердечного ритма. Простой кардиомонитор

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

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

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