![]() |
теперь пульт не нужен все с тачскрина
https://c.radikal.ru/c21/1901/e5/d760673c9ed0.jpg https://b.radikal.ru/b42/1901/14/ae903a21f5d3.jpg |
А без привязки к ВИНДЕ она будет работать? типа такого http://carformer-lab.ru/katalog/adap...emote-v.2.html
|
Цитата:
дорабатываю приборную панель, что-то привязался я к этому авиагоризонту, просто интересная задачка была, ну пусть живет.. |
Тогда надо и положение закрылок отслеживать:derisive:
|
Цитата:
|
ну да спору нет все класс !! , У ТС работа я так понял такая, А вот надобность авиагоризонта в понятии авиагоризонта в москве и области, да ладно хоть где, когда на машине ну будет установлен, он будет показывать макс 3 гр. это в поперечной оси, другое дело если его замутить в продольной типа угол подъема или спуска НО опять же москва, ладно есль бы у нас, тут вроде как горы Но все равно огромный респект все очень даже зашибись
|
Цитата:
Цитата:
|
тренируюсь с анимацией в дельфи (псевдо.. гиф файлы, после их проигрывания они поочередно гаснут и видим форму, а то статичные формы как-то не интересно..
|
как-то так.. черновые наброски..
|
Обнаружилась проблема, при отладке когда все юсбишники питались напрямую от компа об этом не думал, когда приступил к установке в машину и подключил к хабу с внешним питанием, начались перещелкивания реле, реле которые установлены работают по LOW сигналу, и если ардуина и реле запитываются не от пк то до включения компа происходит разовое перещелкивание как только комп начал запускаться, реле встают на место.
Так же выяснилось что когда задействовано много пинов в ардуине, и блок реле запитан от внешнего источника, вытыкаем питание и юсб из ардуины, и вот оно! она продолжает работать.. откуда-то в ней появляется 2-7, 2-9 в, наверно паразитные токи, выходы на реле были сделаны либо LOW либо Input, т.к. output реле воспринимали тоже как low.., то есть если обрубить ардуину или она сгорит или еще что все реле включаются. выход нашел следующий,все выходы на реле во время включения выдают High, далее через инвертор К155ЛН1 они конвертируются в LOW, ну а если выходы выдают LOW то ничего.. https://c.radikal.ru/c00/1901/36/8e6f3aa256cf.png https://c.radikal.ru/c40/1901/ac/64731695f936.jpg но все таки в случае выхода из строя чего либо, параллельно будут подключены механические кнопки, чтобы в случае отказа чего либо можно было управлять пневмоподушками напрямую но и тут нюанс ели ардуина не отслеживает что машина двигается или в нижнем положении при вращении руля она даст эларм чтобы арки не снести, придется все таки надеяться на ардуину |
Путем подбора разных шрусов был выяснен еще один нюанс при переходе на полный привод, привода от сх7 не подошли, в передней ступице в датчике абс мазды 3 один пропуск, а у сх7 40 зубов, абс не состыковать, были подобраны шрусы от premacy 4wd, которые вставились в редуктор от мазды 6 mps gg и в гранаты от сх7, а гранаты от сх7 вставились в ступицы сх7 которые подошли на рычаги от premacy.
Редуктор mazda 6 gg в который установлен дифференциал с жесткой блокировкой от rx8, на мост от сх7 тоже без сварки и болгарки не встает, разный крепеж передней части редуктора, а взять из японии целиком мост от полно приводной axelы тоже не вариант там редуктор без возможности поставить блокировку да и на акпп она, все-равно колхозить, да не найти их, в обще редутор приколхожен, осталось установить подвесную часть кардана на кузов, без сварочных работ не обойтись, на днище нет никакого крепежа в этом месте https://d.radikal.ru/d28/1901/b3/5d4466ceb7e0.jpg https://a.radikal.ru/a41/1901/d6/5274e4b41d72.jpg https://c.radikal.ru/c00/1901/ae/0c7245dbf8f9.jpg https://a.radikal.ru/a10/1901/b3/c7c380fb92ce.jpg |
Вложений: 1
Цитата:
Это 3AWD?:shok::smile1: |
Это 3AWD?:shok::smile1:[/QUOTE]
ага) это разные версии были awd) |
еще есть проблема которую не решил, в машине 7 ардуин, соответственно 7 юсбишников которые подключены к материнке через хаб который тоже питался от материнки, когда поставил хаб с внешним источником, обнаружилось что при выключении пк в режиме хибернейт, все юсби порты на месте но если отключить акб, хард ресет или просто перезагрузка то юсб иногда переименовываются в хаотичном порядке, например com3 стал com5 и тд, иногда нормально, логики в том что они меняются местами не нашел.. захожу в диспетчер и они все называются ch340, приходится долго искать какой есть какой, как то можно их жестко привязать чтобы com5 например всегда был com5?
|
Цитата:
Может все таки целесообразней поставить 1 ардуину и необходимое количество расширителей портов, а ими уже управлять по I2C. Гораздо стабильнее будет. Да еще и юсб мост у тебя на желудевом ch340. |
А разве проблема в ардуинах сделать запрос-ответ ее типа после открытия всех виртуальных портов? И затем уже софтом компа обращаться к нужной...
|
Цитата:
К безмозглому хабу, к которому подключена пачка ардуин?) Вот это нужно http://www.moxa.com.ua/zone/uport/index.html Либо как Александр подсказал, одну ардуино и кучу плат расширения, это правильный подход. |
Что значит к кому обращаться. Ардуино с USB работает через UART-USB мост.
Комп открывает виртуальный COM порт. В ардуине делаем обработку сообщений от UART с запросом скажем GetType, возвращаем тип хоть в текстовом, хоть в цифровом виде по которому софт на компе и судит уже о том к какому из контроллеров на ардуине подключился. Ничего сложного. |
Цитата:
И вот такой беспорядок творится... |
И что с того? Перед обращением спрашиваем тип? Возвращает не наш - опрашиваем все порты и составляем таблицу соответствия номера COM порта и типа ардуины.
И далее используем ее до момента описанного выше. p.s. Или такой вариант: По USB к компу подключается только одна ардуина, остальные подключаются к ней параллельно сигналам RXD и TXD. При этом TXD каждой активируется только при передаче ответа, в остальное время нога настроена на вход с подтяжкой к питанию. Т.е. слушают все одновременно, а отвечает или исполняет команды только запрашиваемая. |
Лучше бы кусок кода скинул, как там это все определяется.
Какой толк рассуждать теоретически. Теоретически да, можно, а на практике проще купить путевой хаб. |
И действительно, зачем мозг напрягать...
|
спасибо за ответы!
ситуация такая, например возьмем гироскоп, он с достаточно бешеной скоростью шлет данные для плавного вращения изображения, также шлются данные оборотов и скорости, и если представить скетч ардуино, и при тестировании все было на одной меге, то получаем следующее ypr 173.2 012.3 013.2 dav 8 .3 ypr 172.3 012.6 013.1 ypr 170.2 013.2 014.6 dav 8 .3 clim22.0 4 2 3 4 0 1 **** -345.0 0.00 0.0 0000 door 0 0 0 1 0 light 0 0 1 0 1 light1 off door 0 0 0 0 0 **** -345.0 0.00 0.0 0000 light1 on light 0 0 0 0 1 ypr 176.2 011.1 022.1 тут видим что ардуино достаточно не многозадачная и если во время приема мы посылали туда много данных, то между строками ypr (гироскоп) появляется промежуток, тоесть ткнули многораз в тач много чего переключили и получаем баг, стрелка (имадж) дернулась и в дельфи получаем стоп - Out of bounds.. далее понижал скорость передачи данных, не особо спасло, т.к. все стало не адекватно, потом стеклоподьемники - ардуина в двери 16 проводков, пневмоподвеска и датчики высоты - в багажнике, климат и свет отдельная ардуина, движок и кан шина, отдельная ардуина, гироскоп - еще одна, и ще под капотом - читает аналоговые датчики датчик темп, турбины, охл жидкости и тд.. только так это адекватно заработало, ну и с проводами если все в одно место свести то нереально подсоединить |
procedure TMainForm.FormCreate(Sender: TObject);
var height: Integer; begin Form8.Show; //Form16.Show; height := Screen.WorkAreaHeight; height := height div 3 - 90; MainForm.Show; MainForm.height := height; MainForm.SetFocus; ComPort1.Port :='\\.\Com4'; //климат ComPort1.BaudRate :=(br9600); ComPort1.Open; if ComPort1.Open then begin Memo1.Lines.Add('Connected'); //высвечиваем на 3 сек PlaySound('C:\вав\приветствие полное.wav', 0, SND_ASYNC); Form9.Show; Form2.Show; ComPort2.Port := '\\.\Com3'; //гироскоп ComPort2.BaudRate := (br115200); ComPort2.Open; ComPort3.Port :='\\.\Com5'; //окна ComPort3.BaudRate :=(br9600); ComPort3.Open; ComPort4.Port :='\\.\Com6'; //двигатель ComPort4.BaudRate :=(br115200); ComPort4.Open; ComPort5.Port :='\\.\Com7'; //пневма ComPort5.BaudRate :=(br115200); ComPort5.Open; end; если проверять каждую, да можно заставить ее посылать какойто идентификатор и програмно прописать если пришло например 5 то стань ComPort5, а как быть с button например ComPort1.WriteStr('A'); и в каждой кнопке и тд придется кучу условий прописывать и фиг че найдешь.. или с этим как их читать.. они же жестко прописаны.. ComPort2.ReadStr(S, Count); вот и загвоздка, пока придумал решение ардуино нано к которой подпаяно допустим семь ключей и при запуске она ждет чуток потом по очереди врубает питание ардуино 1 ардуино 2.. пояляются сом1 сом2.. но если режим возвращения из сна то прога встает при перетыкании юсбишников |
/ --------- КОМПОРТ Com6 115200 CAN -------------
procedure TMainForm.ComPort4RxChar(Sender: TObject; Count: Integer); // компорт 6, кан шина var S: String; sl1: TStringList; L1 : boolean; begin S := ''; ComPort4.ReadStr(S, Count); // S := S + #13; sl1 := TStringList.Create; // --------- ОТКРЫТИЕ ДВЕРЕЙ, БАГАЖНИКА ------------- if (Pos('door', S) <> 0) then // условие срабатывает на door > 0 // 0 0 0 0 // 0 1 0 0 begin Delete(S, 1, 4); sl1.Delimiter := ' '; sl1.DelimitedText := S; if (sl1[0] = '0') and not (Image39.Visible) then // передняя левая begin Image39.Visible := False; PlaySound('C:\вав\звук вызова.wav', 0, SND_ASYNC); end else begin Image39.Visible := true; PlaySound('C:\вав\климат\открыта левая дверь.wav', 0, SND_ASYNC); end; if (sl1[1] = '0') and not (Image22.Visible) then // передняя правая begin Image22.Visible := False; PlaySound('C:\вав\звук вызова.wav', 0, SND_ASYNC); end else begin Image22.Visible := true; PlaySound('C:\вав\климат\открыта правая дверь.wav', 0, SND_ASYNC); end; if (sl1[2] = '0') and not(Image73.Visible)then // Left Front begin Image73.Visible := False; PlaySound('C:\вав\звук вызова.wav', 0, SND_ASYNC); end else begin Image73.Visible := true; PlaySound('C:\вав\климат\открыта левая дверь.wav', 0, SND_ASYNC); end; if (sl1[3] = '0') and not (Image24.Visible) then // Left Front begin Image24.Visible := False; PlaySound('C:\вав\звук вызова.wav', 0, SND_ASYNC); end else begin Image24.Visible := true; PlaySound('C:\вав\климат\открыта правая дверь.wav', 0, SND_ASYNC); end; sl1.Free; end // --------- Бортовой компьютер ------------- else if (Pos('curr', S) <> 0) then... вот например получаем данные с большой скоростью но если ардуино в этот же ком порт кричит еще много данных то неизбежно прога встает out of bounds... и вращения стрелок подтормаживают, в режиме отладки видно что в лэйбл где жестко прописано условие, попали другие данные, когда разделил задачи между ардуинами, все стало гуд и без сбоев, но вылезла проблема с хаотичным присвоением компортов при запуске win |
Цитата:
Как бы проблема не та, за которую стоит так напрягаться, за неё уже сложили мозг производители качественных хабов. |
Делай все через один компорт...во первых проще и надежней. Если сыпет много данных, до сделай фифо буфер для команд на базе того же TStringList. Причем некоторые старые данные в списке обновляй, так как нужны только последние значения(например обороты двигла, состояние дверей и тд), а некоторые просто добавляй, которые обновляются редко. В список команды добавляй в функции приема с компорта, а чтение команды из списка,удаление ее и реакцию на нее(отображение) осуществляй либо по таймеру (например с интревалом 50мс) либо перекрой функцию Application.Idle, если память не подводит. Или в отдельном потоке TThread.
|
да наверно надо все в один stringlist сыпать,
но попробую сначала этой штуковиной, может проблема в том что было 2 хаба по 4, может решиться.. https://a.radikal.ru/a31/1901/f6/d7e0ed918bd5.jpg |
чето смотрю я на концепты.. отстаем..
https://a.radikal.ru/a15/1901/09/7be126b5e86a.jpg https://d.radikal.ru/d01/1901/48/791a4347a6a7.jpg https://d.radikal.ru/d02/1901/9b/389d3225d902.jpg https://c.radikal.ru/c34/1901/01/ab55d1f83897.jpg надо попробовать.. https://b.radikal.ru/b20/1901/e0/e2a7f7bc48a4.jpg https://a.radikal.ru/a13/1901/ff/80d7b2c9776f.jpg https://d.radikal.ru/d30/1901/07/a731b4ecd8cb.jpg https://d.radikal.ru/d24/1901/b4/033c19d8eea5.jpg https://d.radikal.ru/d08/1901/07/672dcc7736fd.jpg для этого понадобится 2 матрицы типа LTA149B780F https://a.radikal.ru/a14/1901/38/0cec4fc590c1.jpg ну и видюха на 4 канала https://c.radikal.ru/c06/1901/b6/137f5751e95f.jpg https://c.radikal.ru/c08/1901/d5/a06a33e07668.jpg |
БОМБА!
|
Цитата:
Респект, мозг энтузиастов и Кулибинов рулит!!!!!!!!!!!!!!!!!!!!! |
Цитата:
значит будут 2 длинные матрицы 14.9 дюйма, в середине 15.6, и в пепельнице 7 |
|
https://d.radikal.ru/d27/1901/e9/afcbc30574cb.jpg
https://c.radikal.ru/c20/1901/34/b4a3cfb83747.jpg https://b.radikal.ru/b06/1901/9c/344bfc3aba55.jpg https://b.radikal.ru/b39/1901/59/75834144a6e9.jpg https://d.radikal.ru/d30/1901/85/5a9c720c0eed.jpg https://a.radikal.ru/a36/1901/14/503a0da3b4bc.jpg https://d.radikal.ru/d35/1901/56/3c9321fc0f7e.jpg |
пока как-то угловато получается... надо думать..
идеально для такой компоновки подходит панель от jaguar s-type, попробую сварганить.. https://d.radikal.ru/d01/1902/86/6d574f19cdf5.jpg https://c.radikal.ru/c05/1902/cd/1df865ce35d7.jpg |
Из своей квадратной сваять такую как у ягуара?
|
Цитата:
https://d.radikal.ru/d16/1902/6a/58eebe610beb.jpg https://d.radikal.ru/d06/1902/b3/708324b2656a.jpg https://d.radikal.ru/d37/1902/a8/64fb7819dcd2.jpg думаю делать из своей кривоватую с закосом под ягуар не логично по материалам, пена, эпоксидка, гелькоат.. проще уж взять за четыре рубля панель ягуара и заодно с аирбэгом.. |
Проще и дешевле-купить ягуар.
Шучу конечно)) Доделал бы что-то одно, потом бы в процессе дополнял. А то такими темпами мы не увидим ещё лет 5 танцы на пневме) |
мутант получится....
трансформеры чисто курят в сторонке.... |
Часовой пояс GMT +4, время: 18:12. |
Работает на vBulletin® версия 3.8.4.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot