Activity

Правельный штангенциркуль.(usb шнурок)

В последнее время начал часто пользоваться трехмерным моделированием.
И конечно без штангеля никак.Все время пользовался обычным ,не электронным калибром , и он вполне устраивал.Обычно работа состоит так.
Измеряется нужный размер штангелем,а потом вводится в программу.
Иногда при вводе происходят ошибки . Например вместо 11мм,вписываю 16мм,или наоборот.Иногда пропускаешь или несколько раз вводишь цифру.И какой … если эту ошибку обнаруживаешь уже в готовой детале .😦
Короче решил приобрести цифровой 😎.
на попробовать купил дешевый с али.
Когда получил,он вполне устроил,и обнаружил,что у него есть какой то коннектор.
Поиск ничего не дал,и тут я набрел на интересный ролик.

по ссылке под видео набрел на sites.google.com/…/arduino-reads-digital-caliper

Короче решил пилить.😄

Правда вместо транзисторов использовал lm358 и один переменик на 4.7к.(если нужна схема могу нарисовать).
Все зароботало,но я решил пойти дальше :rolleyes:.
А точнее arduino micro может сосдавать эмулятор клавиатуры,вот я ее использовал.


#include "Keyboard.h"
int i;

int sign;
int inPin = 10;                   // кнопка на входе 10
int val = 0;                     // переменная для хранения значения

long value;

float result;
float result1;
int clockpin = 5;

int datapin = 6;

unsigned long tempmicros;





void setup() {

  Serial.begin(9600);

  pinMode(clockpin, INPUT);
  pinMode(inPin, INPUT);         //  устанавливает режим работы - вход для 7го вход/выхода (pin)

  pinMode(datapin, INPUT);
  Keyboard.begin();
}



void loop () {
  digitalWrite(10, LOW);
  val = digitalRead(inPin);
  while (digitalRead(clockpin) == HIGH) {} //if clock is LOW wait until it turns to HIGH

  tempmicros = micros();

  while (digitalRead(clockpin) == LOW) {} //wait for the end of the H0.0
  if ((micros() - tempmicros) > 500) { //if the HIGH pulse was longer than 500 micros we are at the start of a new bit sequence

    sign = 1;

    value = 0;

    for (i = 0; i < 23; i++) {

      while (digitalRead(clockpin) == HIGH) { } //wait until clock returns to HIGH- the first bit is not needed

      while (digitalRead(clockpin) == LOW) {} //wait until clock returns to LOW

      if (digitalRead(datapin) == LOW) {

        if (i < 20) {

          value |= 1 << i;

        }

          sign = -1;

        }

      }

    }

    result = (value * sign) / 100.0;

    Serial.println(result,1 ); //print result with 2 decimals

if(val==1){
  Keyboard.write(0x8);
  delay(10);
  Keyboard.write(0x8);
  delay(10);
  Keyboard.write(0x8);
  delay(10);
  Keyboard.write(0x8);
  delay(10);
  Keyboard.write(0x8);
  delay(10);
  Keyboard.write(0x8);
  delay(10);

   Keyboard.print(result*-1,1);

   }
result1=result;
    delay(250);

  }

На 10 вход повесил кнопку через 5в.
Как работает.
При нажатии на кнопку срабатывают 5 раз BkSp (стереть) а потом вводится значения.
Вот пример

А вот как вводится значения в солиде.

Все делал на коленке:D,сори.

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

Как раз и разъем у него есть.B)


Операционный усилитель lm358 .

Обновление прошивки Eagle Tree 10Hz GPS Expander Module (GPS-V4),делюсь опытом и впечатлениями.

Вот уж никогда не подумал,что обнавление какой-то прошивки даст положительный результат.Обычно,я придерживаюсь золотого правила,работает,не обнавляй.😁
Но по правде,надоело ждать десятки минут пока Игловский жпс соизволит запуститься.
Решил рескнуть!
Забрёл на эту страничку.Скачал вот этот файлик,и разархививовал.
Подключил ЖПСку через Ардуиновский шнурок,и начал ковырять.

1.Красный-(+5),2.белый-(Земл),3.желт.-(РХ),4.коричневый.-(ТХ).

Первым делом запустил MiniGPS_1.4.exe.Выставил порт и скорость (у GPS-V4 она 38400 бит/сек)
В “About” при нажатии “Query"можно увидеть текущею версию прошивки.

Моя была ровесница динозавра.😆
Решил шить.😈
Запустил \Flash Tool v1.0.0 for Customer\PowerFlash.exe
1.В “ComPort” выставил номер порта и скорость 38400.
2.В “File” открыл “DownloadAgent” и установил файл “MTK_AllInOne_DA_MT3329_v4.02.bin”
3.Дальше в “File” открыл “Rom” и установил последнюю прошивку,на сегодняшний день.
4.Проверил что в “Option” =>” Series" стоит 3329.
5.Нажал ‘‘Connect’’
6.Нажал “Download”
В конце установки программа должна выдасть залёный ноль.😃
Если кому-то,что-то не понятно про установку может почитать на английском в фале “MediaTek_Programming.pdf”.
7.Дальше заходим в “MiniGPS_1.4.exe” и проверяем прошвку.
У меня вышла эта.
😃
8.Заходим в “Setup” и выставляем как на картинке.(Это очень важно)😉

П.С.В “Fix Update Rate” ручками пропысываем 10.😃
9.Если комп не далеко от окна,можно сделать холодный старт.
Подключаем к О.С.Д. и радуемся
Лично у меня,(пока в домашних условиях) стартует за 5-10 секунд,на столе.Чего никогда до этого не было.
И это хорошо😆.

Сборка сенсоров к frsky hub ( пока GPS и вариометр) из подручных материалов,+ улучшение ХАБА,+прошивка GPS-модуля и отображение на er9x- frsky.

Приветствую.
Наконец пришла и ко мне долгожданная посылочка с frsky hub.
Первым делом занялся подклучать GPS -модуль.У меня он такой EM-411.
Конечно-же с первого раза,ничего не вышло:(,но и не сгорело;).
Погуглив нашёл полезную инфу.1,2.
Оказывается хаб видит GPS только на скорости 9600 бит/с.Почитав мануал к GPS-у,обнаружил,что этот модуль изначально передаёт на 4800 бит/с.Так-же из мануала понял,что модуль собран на чипе SiRF star III 😃.
Погуглив нашёл программу “SiRFDemo” которая и помогла мне изменить скорость передачи данных.
Взял шнурок от Ардуино мини,и подключил к нему GPS -модуль.
Запустил “SiRFDemo”,выставил порт шнурка,и скорость модуля.

Нажал на эту кнопку.

И у меня побежала инфа с GPS модуля.😁
,конечно не с первого раза;).
А теперь внимательно.
Переключил модуль на сирф протокол.

И сразу перешёл на любимый "НМЕА"😃.

После перехода на Нмея,должно высветится окно по настройке Нмеа.Выставляем 9600 и нажимем сенд.

Теперь GPS -модуль передает на 9600бит/с.😁
Подключил GPS -модуль к frsky hub.
Из GPS -модуля выводил только ТХ.
Вот таким способом.

На 2 прочитал и про вариометр,им оказался бошовский bmp085,который оказался у меня под рукой.

Решил забить его в корпус.
😁
Теперь решил разобратся с кабелями,между приёмником и хабом.
В приёмнике запитал +5В над сенсорами А1 и А2.(советую это делать только понимающим людям)

А в хабе подключил ТХ к 2.5мм конектору.

Собрал вот такой шнурок.

Все это дело проверил,и подключил.Включил Турнигу,и нолики на экране жпс задёргались😁.Когда фоткал,жпс только расчитывал точку,через пару минут когда модуль запустился координаты отобразились.Правда почему-то время обновления 2-5 сек.😃.

На экране вариометра всё так-же заработало,правда начальная высота 299 метров,что соотвествет высоте над уровнем моря ,где я нахожусь,нажатием на меню обнулил высоту.
При поднятии примерно на 1 метр выводит 1 метр.😁
Жду новой прошвки,в которой будеть высвечиватся скорость.
П.С.Всё делал на свой страх и риск.(И не жалею)😁

Учусь подключать экран 16х02 и ЖПС на Ардуину. Кто со мной?

Приветствую.Вот решил поработать на Ардуинке.
Маргать светодиодом научился,захотелось подключить что то посерьёзней.
Первое ,что пришло на ум, запустить 1602 экранчик.Погуглив нашёл полезный проект,для понимания,правда к нему ещё жпска требовалась.Как раз ко мне пришла с делэкстрима Ем-411,которую надо затестить.😒
Во первых решил прописать ардуино.И сразу получил ошибку.:)Оказываеся для жпса нужно добавить библиотеки. TinyGPS и NewSoftSerial для этого нужно,в сылках найти архивы,(можно не искать TinyGPS10.zip и NewSoftSerial10c.zip ) и содержимое сбросить в библиотеку программы(…\arduino-0022\libraries).После этого ошыбок не было.И ардуинка прописалась.
1.Дальше Подключил экранчик.
RS — pin 13
E — pin 12
D4 — pin 11
D5 — pin 10
D6 — pin 9
D7 — pin 8
Vss, R/W, Vo — GND
Vdd — 5V
Всё это дело запитал,и на экране появилась надпись"waiting".😁


Так как жпска не была подключена,ждать координат пришлось-бы долго.
1.Запитал Жпску 5 вольтами,подключил pin digital 2 к-ТХ ,и digital 3-Rx.Включил возле окна,подождал,и вдруг появились циферки.😁
Покурив,решил доработать прогу.

#include <NewSoftSerial.h>
#include <TinyGPS.h>
#include <LiquidCrystal.h>
TinyGPS gps;
//Tx, Rx 
NewSoftSerial nss(2, 3);
//Конфигурация линий, куда подключен lcd: RS, E, D4, D5, D6, D7
LiquidCrystal lcd(13, 12, 11, 10, 9, 8);
bool feedgps();
void setup() {
//4800 скорость обмена с GPS приемником
nss.begin(4800);
//16 символов, 2 строки
lcd.begin(16, 2);
lcd.print("waiting");

}
void loop() {
bool newdata = false;
unsigned long start = millis();
long lat, lon;
unsigned long age;
//задержка в секунду между обновлениями координат
while (millis() - start < 1000) {
if (readgps())
newdata = true;
}
if (newdata) {
gps.get_position(&lat, &lon, &age);

lcd.setCursor(0, 0);
lcd.print("lat: ");
lcd.setCursor(5, 0);
lcd.print(lat);
lcd.setCursor(0, 1);
lcd.print("lon: ");
lcd.setCursor(5, 1);
lcd.print(lon);
}
}
bool readgps() {
while (nss.available()) {
int b = nss.read();
//в TinyGPS есть баг, когда не обрабатываются данные с \r и \n
if('\r' != b) {
if (gps.encode(b))
return true;
}
}
return false;
}

Теперь понятней,где широта и долгота.


Пкурив ещё,решил сделать часы,просто ,для пробы.😃

#include <NewSoftSerial.h>
#include <TinyGPS.h>
#include <LiquidCrystal.h>
TinyGPS gps;
//Tx, Rx 
NewSoftSerial nss(2, 3);
//Конфигурация линий, куда подключен lcd: RS, E, D4, D5, D6, D7
LiquidCrystal lcd(13, 12, 11, 10, 9, 8);
bool feedgps();
void setup() {
  //4800 скорость обмена с GPS приемником
  nss.begin(4800);
  //16 символов, 2 строки
  lcd.begin(16, 2);
  lcd.print("waiting");

}
void loop() {
  bool newdata = false;
  unsigned long fix_age, time, date, speed, course;
  long lat, lon;
  unsigned long age;
  //задержка в секунду между обновлениями координат
 {
    if (readgps())
       newdata = true;
  }
  if (newdata) {
    gps.get_datetime(&date, &time, &fix_age);
    lcd.setCursor(0, 0);
    lcd.print("Time ");
    lcd.setCursor(5, 0);
    lcd.print("  ");
    lcd.setCursor(5, 0);
    lcd.print(time /1000000 + 2);  //часы для израеля +2 часа.
    lcd.setCursor(5, 0);
    lcd.print(time /1000000 + 2);  //часы для израеля +2 часа.
    lcd.setCursor(7, 0);
    lcd.print(":");
    lcd.setCursor(8, 0);
    lcd.print((time / 10000) % 100);    //минуты
    lcd.setCursor(10, 0);
    lcd.print(":");
    lcd.setCursor(11, 0);
    lcd.print("  ");
    lcd.setCursor(11, 0);
    lcd.print((time / 100) % 100);    //секунды
    lcd.setCursor(0, 1);
    lcd.print("Date");
    lcd.setCursor(5, 1);
    lcd.print((date % 100)+2000);    //год
    lcd.setCursor(9, 1);
    lcd.print(":");
    lcd.setCursor(10, 1);
    lcd.print("  ");
    lcd.setCursor(10, 1);
    lcd.print((date / 100) % 100);     //месяц
    lcd.setCursor(12, 1);
    lcd.print(":");
    lcd.setCursor(13, 1);
    lcd.print("  ");
    lcd.setCursor(13, 1);
    lcd.print(date / 10000);     //день
  }
}
bool readgps() {
  while (nss.available()) {
    int b = nss.read();
    //в TinyGPS есть баг, когда не обрабатываются данные с \r и \n
    if('\r' != b) {
      if (gps.encode(b))
          return true;
    }
  }
  return false;
}


Правда предвижу косяк,вместо 1 и двух часов ночи будет писать 25-26 часов.:(Но всё равно,доволен своим успехом.Теперь можно тестить и экраны и жпсы.

Сейчас хочу вывести количество спутников,и качество сигнала.Курю мануал.😒И жду совета умных людей.

Квдрокоптеры и всё ,что с ними связано.

Надоело искать по крупицам нужную инфу,и через час выключив компьютер,забыть где нашёлB-).
Вот решил собрать нужныые сылки с заметками в своём дневнике.Ну поехали.-
Понизить тайминг.МВ
Затупление акселя 3200.МВ.
УСТАНОВКА ПИРАТКОПТЕРА. ПК.
Аналоговый горизонт.МВ.
Пока всё…

10X увеличение,в воздухе или куда деть старый камкодер.

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

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

Продлжение следует…

Ну вот наконец запустил O.S. 32MAX

Кто-то скажет тьфу,ну и что 😎 .А у меня и друзей был такой всплеск адреналина.Короче страшно,но весело.
Внимание мой самый первый запуск нитродвижка,слабонервным прошу не смотреть или приготовить пакетики и валидол 😈 . 😂

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

Мои первые полеты на Изе.Multiplex Easy Glider

Наконец нашёл время испытать своего Изю.Ветер был порывистый,и всё как-то наровил самолётик уранить 😊 .
Вот первое видео.
1.

youtube.com/watch?v=z5yuZ48SzzU

youtube.com/watch?v=Swt03NreeMo

Видео показывает стойкость Изи при ударе. :devil:
3.

youtube.com/watch?v=3g40mRiWun8

При последней мягкой посадке,из под капота повалил дым.Сгорела дорожка на спид контроллере,
и одна катушка на движке.Контролер починил и оставил до лучих времён.Движёк ушёл на вечный отдых.
Виновником ЧП оказалась SANVA RD8000 ,точнее её приёмник,который споймал помеху на земле и запустил винт на всю катушку.
Уже заказал безколлекторную систему. :devil: отпишусь при прибытии.