Activity
В последнее время начал часто пользоваться трехмерным моделированием.
И конечно без штангеля никак.Все время пользовался обычным ,не электронным калибром , и он вполне устраивал.Обычно работа состоит так.
Измеряется нужный размер штангелем,а потом вводится в программу.
Иногда при вводе происходят ошибки . Например вместо 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)
Вот уж никогда не подумал,что обнавление какой-то прошивки даст положительный результат.Обычно,я придерживаюсь золотого правила,работает,не обнавляй.😁
Но по правде,надоело ждать десятки минут пока Игловский жпс соизволит запуститься.
Решил рескнуть!
Забрёл на эту страничку.Скачал вот этот файлик,и разархививовал.
Подключил ЖПСку через Ардуиновский шнурок,и начал ковырять.
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 -модуль.У меня он такой 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 метр.😁
Жду новой прошвки,в которой будеть высвечиватся скорость.
П.С.Всё делал на свой страх и риск.(И не жалею)😁
Приветствую.Вот решил поработать на Ардуинке.
Маргать светодиодом научился,захотелось подключить что то посерьёзней.
Первое ,что пришло на ум, запустить 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.МВ.
УСТАНОВКА ПИРАТКОПТЕРА. ПК.
Аналоговый горизонт.МВ.
Пока всё…
Подарил мне однажды друг с рем-сервиса мешок разобранных камер.
Поигравшись с объективами,выяснил,что не так страшен чёрт как я о нём представлял.
Например для управления зумом панасоника потребовалось всего две сервы.Одна на зум вторая на фокус.
А вот что пока я смог из этого выжать.Камера вставлялась та что не жалко в воздухе конечно будет стоят на 520твл.,и с фокусом пока не очень для теста бралась микросерва за 50 центов.
Продлжение следует…
Кто-то скажет тьфу,ну и что 😎 .А у меня и друзей был такой всплеск адреналина.Короче страшно,но весело.
Внимание мой самый первый запуск нитродвижка,слабонервным прошу не смотреть или приготовить пакетики и валидол 😈 . 😂
Пока что движёк не откликается на управление от сервы,кажысь где-то есть трещена в прокладке и заглушить движёк очень трудно 😦 ,сейчас над этим работаю.
Наконец нашёл время испытать своего Изю.Ветер был порывистый,и всё как-то наровил самолётик уранить 😊 .
Вот первое видео.
1.
youtube.com/watch?v=z5yuZ48SzzU
youtube.com/watch?v=Swt03NreeMo
Видео показывает стойкость Изи при ударе. :devil:
3.
youtube.com/watch?v=3g40mRiWun8
При последней мягкой посадке,из под капота повалил дым.Сгорела дорожка на спид контроллере,
и одна катушка на движке.Контролер починил и оставил до лучих времён.Движёк ушёл на вечный отдых.
Виновником ЧП оказалась SANVA RD8000 ,точнее её приёмник,который споймал помеху на земле и запустил винт на всю катушку.
Уже заказал безколлекторную систему. :devil: отпишусь при прибытии.
А вот теперь понятно,по каким законам работает РРМ.
e-sky 4CH
SANWA RD8000 PPM
SANWA RD8000 PPM NEGATIV
Интересно то что у e-sky 4CH обнаружились ещё 2 дополнительных канала,и у SANWA RD8000 9 канаов вместо 8.