Спаял кнопки по схеме и проверил тестером. Проверил на печати выдавленный текст в 3D модели. Осталось дождаться последнюю деталь, окончательно смоделировать корпус и написать программу для ардуино (прогу не долго писать, на днях начну и закончу). PS Много лет искал возможность превращать в AutoCAD обычный текст в объёмный 3D текст. Думал, что это невозможно, нигде информации нет. Оказывается, что решение проблемы было всегда со мной - в лицензионной версии AutoCAD это стандартная, но вручную устанавливаемая функция ;) В пиратских версиях AutoCAD её нет. Не уверен в том, что она есть в 2015-2018 и более новых версиях автокад. Функция была настолько малоизвестна, что ей никто не пользовался. Она присутствует отдельно на лицензионных дисках автокад версий 2000-2013.
В смысле превратить обычный текст в объёмную 3D модель для того чтобы её можно было сложить/вычесть с другой моделью. Слева простой текст. Справа его копия, но уже выдавленная по оси Z и представляющая собой 3D модель.
Спаял всю электронику, осталось выключатель припаять и выводы на батарею. Теперь займусь написанием прошивки, моделированием и печатью корпуса. К зиме успею :)
--- Сообщения объединены, 24 май 2018, Оригинальное время сообщения: 24 май 2018 --- А что за паяльник?
Газовый паяльник. Удобство в том, что можно паять где угодно, не привязан к розетке. Но если много паять, то баллон газа с собой надо брать, у этого паяльника одна заправка это примерно 45-50 минут работы. Им и термоусадку сажать можно и паять, регулировка температуры подачей газа. Давно уже электрические не использую. Только газ надо дорогой покупать. Иначе сопло забьётся очень быстро и придётся новый паяльник покупать (сопло не сменное, микронных размеров).
Что за чудо функция? Пиратские AutoCAD'ы ни чем не отличаются от лицензии, всё пиратство только в обходе регистрации. С давних времен и по настоящий момент, с помощью Express Tools можно делать как показано на видео
Оффтоп (Move your mouse to the spoiler area to reveal the content) А это видео к чему здесь? Ни к ИК, ни к смартфонам, ни к практическому моделированию... вроде отношения не имеет. Идея красивая, но не более. А функция в экспресс тулз работает криво. Если бы вы действительно ей пользовались, то узнали бы, что некоторые буквы функция при разрывании превращает в самопересекающиеся полилинии, а такие полилинии невозможно выдавить в объём. А так этих способа как минимум два. Один работает с полигонами и сам автоматически их вытягивает на указанное расстояние, НО работает только с латиницей и цифрами. Другие кодировки(языки) не поддерживаются. Второй из экспресс тулз, делит на полилинии криво, часть приходится дорабатывать вручную(напильником :)) т.к. могут получаться самопересекающиеся полилинии и при их вытягивании получите ошибку от автокад "невозможно выдавить самопересекающуюся фигуру". Но работает с любым текстом.
Написал код прошивки контроллера частями (модулями) и отладил каждый модуль по отдельности. По итогам отладки обнаружилось, что 2 из 18 кнопок клавиатуры не совсем верно работают (возможно перегрел при пайке или флюс внутрь зашёл при промывке в спирте). Заменил кнопки на новые. На текущий момент электроника работает и проверена. Прошивка написана отдельными блоками и проверена в работе. Осталось объединить блоки прошивки в общую рабочую прошивку, далее прошить прошивку, завершить модель корпуса и собрать ИК пульт. К зиме успею ;) PS В другой теме собрался сделать приёмник для вечешника при выносе в натуру. Заранее опционально там запроектирую возможность подключения ИК приёмника к базе и передачи команд с этого ИК пульта (или с штатного ИК пульта Sokkia). Стрелками ИК пульта команды типа: - вверх = дальше - вниз = ближе - налево = налево - направо = направо ... далее цифрами число с ИК пульта PPS И нашёл ещё одну электросхему клавиатуры на которой можно собрать пульт. Схема раза в 3 проще (без диодов и резисторов), одна прошивка позволит работать с любой из этих схем, НО упрощённая схема может глючить в местах сильных электропомех (из-за наводок). Для себя оставлю сложную, но если кому интересно, то могу выложить простую, хотя, чего тут выкладывать, достаточно посмотреть на схему подключения показанную ранее с ардуино и убрать из неё диоды с резисторами (оставить только 8 проводов от клавиатуры к ардуино).
Упрощённая схема. Собираемая из заводских компонентов. Справа ИК светодиод. Слева диод режима NUM. Плата UNO для примера (в конструкторе нет Nano :) ). Лучше использовать Nano, она раз в 20 меньше. Батарея 9В тоже для примера, у меня будут микробатарейки на 12В (меньше Кроны раз в 5). Два резистора в пределах 300 Ом (+-50 Ом).
Оффтоп (Move your mouse to the spoiler area to reveal the content) я покупал газовый но как то слишком опасно иногда. да и пьезорозжига нет. вот юсб и в портативную зарядку воткнул это нормально
Оффтоп (Move your mouse to the spoiler area to reveal the content) У меня и машина на газу... не вижу никакой опасности. Народ с газовыми зажигалками в кармане ходит - караул! ;)
Оффтоп (Move your mouse to the spoiler area to reveal the content) да понятно что и лезвия можно сьесть аккуратно и не пораниться. Вы пользовались паяльником на жалах хакко т12? земля и небо после 900 серии (не про медные речь) Я просто как то в машине штаны газовым подпалил. после этого убрал в долгий ящик
Прошивку написал, электроника вся собрана. Работа проверена и отлажена. Со светодиодом состояния NUM похоже переборщил :) он слишком яркий, пока так оставлю, посмотрю на солнце. Осталось сделать модель корпуса, распечатать и собрать пульт.
Сделал половину корпуса. Снизу корпуса щель, во второй половине будет ответный зуб. Верхняя часть крепится двумя винтами М3 (металлические спецгайки в пластике уже стоят). Заканчиваю проектирование второй половины. К зиме успею :)
Собрал, работает. К зиме успел (она тут как раз начинается, +6 уже на улице:) ). Идею формы задней стенки взял с пульта какого-то дорогого музыкального центра, там это для того чтобы пульт из рук не выпадал сделано было. От аккумулятора 9В 400мА время автономной работы получилось около 20 часов (или часов 10 на морозе), можно его увеличить в пять раз (отпаяв одну детальку с ардуино, но пока лень). Светодиод - ЗВЕРЬ :) Учитывая то, что я его ослабил чуток. На солнце самое то. Габариты были указаны ранее, я в них уложился. Пульт легко помещается в карман рубашки. Подключение к портам по предыдущему моему сообщению. Код прошивки для ардуино (Наведите курсор, чтобы раскрыть содержимое) Код прошивки для ардуино (раскрыть) Код прошивки для ардуино (свернуть) Используется стандартная библиотека для работы с ИК датчиком, а также библиотека для клавиатуры от amperka.ru Код: // подключаем библиотеку работы с ИК диодом(передатчиком) #include <IRremote.h> // основная // Коды ИК пульта Sokkia, протокол NEC: // F1 : 12700FF // F2 : 127807F // F3 : 12740BF // F4 : 127C03F // FUNC : 12720DF // SFT : 127A05F // ESC : 127609F // BS : 127E01F // MEAS : 127906F // A : 12730CF // B / 7 : 127B04F // C / 8: 127708F // D / 9 : 127F00F // E : 12708F7 // F / 4 : 1278877 // G / 5: 12748B7 // H / 6 : 127C837 // I : 12728D7 // J / 1 : 127A857 // K / 2 : 1276897 // L / 3 : 127E817 // M : 12718E7 // N / 0 : 1279867 // O/ . : 12758A7 // P / +- : 127D827 // Q : 12738C7 // R / вверх : 127B847 // S : 1277887 // ENTER : 127F807 // T / налево : 12702FD // U / вниз : 127827D // V / направо : 12742BD // W : 127C23D // X : 12722DD // Y : 127A25D // Z : 127629D // A/N(буквы/цифры) : 127E21D // подключаем библиотеку для работы с матричной клавиатурой #include <AmperkaKB.h> // создаём объект для работы с матричной клавиатурой // указывая номера arduino подключенные к шлейфу клавиатуры // начиная с первого вывода шлейфа AmperkaKB KB(12, 11, 10, 9, 8, 7, 6, 4); // для работы с ИК диодом IRsend irsend; // состояние режима NUM клавиатуры boolean NUM; void setup() { // указываем тип клавиатуры KB.begin(KB4x4); // второй необзятельный параметр: // время длительного зажатия кнопки // по умолчанию 2000, изменим на 5000 мс // KB.begin(KB4x4, 5000); pinMode(13, OUTPUT); // этот блок из 4-х строк не обязателен // служит только для проверки запуска программы. Один раз моргает светодиод на плате digitalWrite(13, HIGH); // включает светодиод delay(100); // ждет 0,1 секунду digitalWrite(13, LOW); // выключает светодиод pinMode(5, OUTPUT); if (NUM == 1) { digitalWrite(5, HIGH); } if (NUM == 0) { digitalWrite(5, LOW); } } void loop() { // считывание данных с клавиатуры KB.read(); // опеределяем клик кнопки if (KB.justPressed()) { // ЗДЕСЬ УСЛОВИЕ NUM диода if (NUM == 0){ if (KB.getNum == 0){ // вывод пароля прибора на ИК порт for (int i = 0; i < 2; i++) { irsend.sendNEC(0x127A05F, 32); // SFTх2 delay(50); } irsend.sendNEC(0x127A857, 32); // 1 delay(50); irsend.sendNEC(0x127A857, 32); // 1 delay(50); for (int i = 0; i < 2; i++) { irsend.sendNEC(0x1276897, 32); // 2 два раза delay(50); } irsend.sendNEC(0x127A857, 32); // 1 delay(50); irsend.sendNEC(0x127A857, 32); // 1 delay(50); irsend.sendNEC(0x127F807, 32); // Enter delay(50); }else if (KB.getNum == 1){ irsend.sendNEC(0x127609F, 32); // ESC delay(50); }else if (KB.getNum == 2){ irsend.sendNEC(0x127906F, 32); // MEAS delay(50); }else if (KB.getNum == 3){ irsend.sendNEC(0x12700FF, 32); // F1 delay(50); }else if (KB.getNum == 4){ irsend.sendNEC(0x127C03F, 32); // F4 delay(50); }else if (KB.getNum == 5){ irsend.sendNEC(0x127807F, 32); // F2 delay(50); }else if (KB.getNum == 6){ irsend.sendNEC(0x127B847, 32); // стрелка вверх delay(50); }else if (KB.getNum == 7){ irsend.sendNEC(0x12702FD, 32); // стрелка влево delay(50); }else if (KB.getNum == 8){ irsend.sendNEC(0x127827D, 32); // стрелка вниз delay(50); }else if (KB.getNum == 9){ irsend.sendNEC(0x12742BD, 32); // стрелка вправо delay(50); }else if (KB.getNum == 10){ irsend.sendNEC(0x12740BF, 32); // F3 delay(50); }else if (KB.getNum == 11){ irsend.sendNEC(0x127F807, 32); // Enter delay(50); }else if (KB.getNum == 12){ irsend.sendNEC(0x12720DF, 32); // FUNC delay(50); }else if (KB.getNum == 13){ // NUM if (NUM) { NUM=0; digitalWrite(5, LOW); }else { NUM=1; digitalWrite(5, HIGH); } delay(50); }else if (KB.getNum == 14){ irsend.sendNEC(0x127A05F, 32); // SFT delay(50); }else { // (KB.getNum == 15) irsend.sendNEC(0x127F807, 32); // Enter delay(50); } }else { if (KB.getNum == 0){ // вывод пароля прибора на ИК порт for (int i = 0; i < 2; i++) { irsend.sendNEC(0x127A05F, 32); // SFTх2 delay(50); } irsend.sendNEC(0x127A857, 32); // 1 delay(50); irsend.sendNEC(0x127A857, 32); // 1 delay(50); for (int i = 0; i < 2; i++) { irsend.sendNEC(0x1276897, 32); // 2 два раза delay(50); } irsend.sendNEC(0x127A857, 32); // 1 delay(50); irsend.sendNEC(0x127A857, 32); // 1 delay(50); irsend.sendNEC(0x127F807, 32); // Enter delay(50); }else if (KB.getNum == 1){ irsend.sendNEC(0x127D827, 32); // +- delay(50); }else if (KB.getNum == 2){ irsend.sendNEC(0x127E01F, 32); // BS delay(50); }else if (KB.getNum == 3){ irsend.sendNEC(0x127B04F, 32); // 7 delay(50); }else if (KB.getNum == 4){ irsend.sendNEC(0x127F00F, 32); // 9 delay(50); }else if (KB.getNum == 5){ irsend.sendNEC(0x1278877, 32); // 4 delay(50); }else if (KB.getNum == 6){ irsend.sendNEC(0x12748B7, 32); // 5 delay(50); }else if (KB.getNum == 7){ irsend.sendNEC(0x127A857, 32); // 1 delay(50); }else if (KB.getNum == 8){ irsend.sendNEC(0x1276897, 32); // 2 delay(50); }else if (KB.getNum == 9){ irsend.sendNEC(0x127E817, 32); // 3 delay(50); }else if (KB.getNum == 10){ irsend.sendNEC(0x127708F, 32); // 8 delay(50); }else if (KB.getNum == 11){ irsend.sendNEC(0x127C837, 32); // 6 delay(50); }else if (KB.getNum == 12){ irsend.sendNEC(0x1279867, 32); // 0 (ноль) delay(50); }else if (KB.getNum == 13){ // NUM if (NUM) { NUM=0; digitalWrite(5, LOW); }else { NUM=1; digitalWrite(5, HIGH); } delay(50); }else if (KB.getNum == 14){ irsend.sendNEC(0x12758A7, 32); // (десятичная точка) delay(50); }else { // (KB.getNum == 15) irsend.sendNEC(0x127F807, 32); // Enter delay(50); } } } } --- Сообщения объединены, 2 июн 2018, Оригинальное время сообщения: 2 июн 2018 --- Забыл добавить. Кнопку подключил в разрыв плюсового провода аккумулятора и вывел сбоку корпуса (на фото виден). Нечего энергию потреблять когда пульт не используется. Ну и в коде прошивки на кнопку ввода пароля следует заменить пароль на тот, который в вашем приборе :)