Hạng B2
25/7/12
129
107
43
Bác chủ cho em hỏi:
1. Làm cách nào biết được trên xe thiết bị/bộ phận nào có connect vào CAN bus (hay là một CAN node)? Xe em Sò đời 2012, khi bấm khóa cửa từ xa thấy cửa lock (dĩ nhiên :), đèn trong xe mờ dần rồi tắt, đèn ngoài nếu có thì sau khoảng 10s cũng tắt. Vì nhiều thứ diễn ra cùng lúc như vậy có thể đoán là mấy thiết bị đó (lock cửa, đèn trần, đèn ngoài cũng được điều khiển bằng relay có kết nối với CAN bus không? Em nghĩ mấy cái này là không được document nên phải đoán và test. Bác có cách nào test chính xác hơn không?
2. Em nghĩ tới làm ứng dụng điều khiển các thiết bị trên xe có kết nối CAN bus. Nếu vậy thôi thì mình nên viết ứng dụng thẳng trên đầu DVD chạy WinCE luôn thì tiện hơn phải gắn thêm cái RPi phải không ạ?
3. Nếu một công tắc (ví dụ như lên kính hoặc gập gương) chưa kết nối bus thì có module nào giúp các thiết bị đó kết nối không?

Em hỏi các câu hỏi trên thì chắc bác cũng biết là em muốn điều khiển mọi thứ từ đầu DVD trung tâm. Một trong những ứng dụng là tự động lock cửa khi xe chạy tới vận tốc nào đó bây giờ có thể làm bằng phần mềm chứ không phải phần cứng như hiện giờ.
 
Hạng B2
4/8/14
264
291
63
Hà nội
tranhchuthap.vn
Bác chủ cho em hỏi:
1. Làm cách nào biết được trên xe thiết bị/bộ phận nào có connect vào CAN bus (hay là một CAN node)? Xe em Sò đời 2012, khi bấm khóa cửa từ xa thấy cửa lock (dĩ nhiên :), đèn trong xe mờ dần rồi tắt, đèn ngoài nếu có thì sau khoảng 10s cũng tắt. Vì nhiều thứ diễn ra cùng lúc như vậy có thể đoán là mấy thiết bị đó (lock cửa, đèn trần, đèn ngoài cũng được điều khiển bằng relay có kết nối với CAN bus không? Em nghĩ mấy cái này là không được document nên phải đoán và test. Bác có cách nào test chính xác hơn không?
2. Em nghĩ tới làm ứng dụng điều khiển các thiết bị trên xe có kết nối CAN bus. Nếu vậy thôi thì mình nên viết ứng dụng thẳng trên đầu DVD chạy WinCE luôn thì tiện hơn phải gắn thêm cái RPi phải không ạ?
3. Nếu một công tắc (ví dụ như lên kính hoặc gập gương) chưa kết nối bus thì có module nào giúp các thiết bị đó kết nối không?

Em hỏi các câu hỏi trên thì chắc bác cũng biết là em muốn điều khiển mọi thứ từ đầu DVD trung tâm. Một trong những ứng dụng là tự động lock cửa khi xe chạy tới vận tốc nào đó bây giờ có thể làm bằng phần mềm chứ không phải phần cứng như hiện giờ.
1. Để biết một bộ phận nào đó có kết nối vào CAN hay không, nếu không có quyển Factory Serivce Manual (Thường viết tắt là FSM) thì có thể dùng phương pháp thử bằng cách: Kết nối máy tính hoặc máy tính bảng với mạng CAN (có thể dùng ODBII usb hoặc bluetooth), sau đó dùng các phần mềm có tính năng cansniffer để theo dõi (ICANBUS chạy trên Linux là một ví dụ của phần mềm dạng này), nhiều phần mềm có tính năng record (ghi lại) các thông điệp đang diễn ra trên mạng CAN, sau đó nó cho phép Replay (phát lại đoạn thông điệp đó). Như vậy hãy bật tính năng record, thực hiện việc cần kiểm tra như khóa cửa chẳng hạn rồi bấm dừng ghi và bấm nút Replay. Nếu thấy cửa khóa thì có nghĩa chức năng đó của xe đã được kết nối mạng CAN và có sẵn mô đun điều khiển hoàn chỉnh (hoặc gọi nó là một node) thì việc cụ muốn điều khiển qua phần mềm là chuyện của lập trình thôi ạ. Có thể chạy trực tiếp từ DVD hoặc điện thoại hoặc máy tính hoặc RPI.... cái đó do lập trình viên tự chọn. Nếu không dùng phần mềm có tính năng replay thì có thể dùng các phần mềm chỉ có tính năng đơn thuần terminal để gõ lại một cách thủ công các lệnh canbus đó , nếu xe tác động có nghĩa là lệnh đó chuẩn rồi và xe có đáp ứng có lệnh này.
2. Vì sao cháu nói đến việc chạy trên RPI thay vì trên DVD? vì RPI ngoài cái việc viết mã rất dễ với các mã nguồn mở như Python thì nó còn làm các nhiệm vụ khác như chơi nhạc, phim trên xe cực mạnh với việc hỗ trợ gần như tất cả các định dạng và độ lớn của tập tin; Cụ chỉ quan tâm vài tính năng liên quan đến canbus thì có thể chạy ứng dụng wince nếu cụ có khả năng lập trình. Các DVD nguyên bản hoặc hàng sản xuất chuyên dùng cho xe có kết nối canbus thì có thể làm được việc này trên wince. Nhưng tài liệu với mã nguồn đóng như vậy khó kiếm lắm. Nói thêm về mã nguồn mở như Python để thấy rằng nó dễ thế nào vì trình độ nghiệp dư đến mức thượng thừa của Gà (hoàn toàn không biết gì về lập trình trước đó ngoài cái bài tập giải phương trình bậc 2 trên pascal) mà cháu vẫn có thể viết mã nhận các nút trên vô lăng để điều khiển Raspberry Pi chạy XBMC thì cụ có thể thấy rằng với các cụ có kiến thức chút đỉnh về lập trình có thể dễ dàng thế nào với việc phát triển ứng dụng.
3. Nếu một thiết bị chưa có mô đun cho CANBUS và muốn độ điều khiển dạng này thì có nhiều cách để làm. Ví dụ như dùng bo mạch phát triển dạng CAN/LIN Bus Development Kit có bán sẵn khá nhiều, đó là bo mạch có khả năng lập trình, có sẵn giao tiếp nối với xe hoặc đơn giản và rẻ nhất là dùng ngay Raspberry Pi kết hợp với ODB II để giao tiếp với xe. Tín hiệu được ODB II chuyển về Raspberry Pi sẽ được lập trình để đưa các lệnh điều khiển ra các chân GPIO của Raspberry Pi . Tín hiệu này hoàn toàn có thể điều khiển vào các công tắc cơ bình thường của xe (giả dụ dùng chân GPIO điều khiển rơ le, tiếp điểm của rowle đấu song song với công tắc cơ là một ví dụ điển hình ở cấp độ cơ bản nhất về điện)

Nói thêm về xe Hàn vì phần này cụ không hỏi. Các xe hàn với DVD nguyên bản tiếng Hàn nó có cổng USB liên hệ trực tiếp với wince, đó là một lợi thế cực lớn nếu dùng Python cho wince và giao tiếp canbus qua cổng này . Việc lập trình lại trở lên dễ dàng như đang lập trình trên Raspberry Pi. Tất nhiên DVD của nó cũng đã có liên hệ canbus nhưng việc lập trình trên đó cháu không biết.
Hy vọng với trả lời này sẽ làm cụ sáng tỏ một vài điều để phát triển đc các ứng dụng cho anh em công đồng ô tô việt nam
 
Chỉnh sửa cuối:
  • Like
Reactions: alovend
Hạng C
2/9/11
699
254
63
Bài hay quá nhưng hóng làm xong rồi copy source :)

CAN bus em nghe đồn cũng lạc hậu rồi và sắp bị thay thế
 
Hạng B2
25/7/12
129
107
43
1. Để biết một bộ phận nào đó có kết nối vào CAN hay không, nếu không có quyển Factory Serivce Manual (Thường viết tắt là FSM) thì có thể dùng phương pháp thử bằng cách: Kết nối máy tính hoặc máy tính bảng với mạng CAN (có thể dùng ODBII usb hoặc bluetooth), sau đó dùng các phần mềm có tính năng cansniffer để theo dõi (ICANBUS chạy trên Linux là một ví dụ của phần mềm dạng này), nhiều phần mềm có tính năng record (ghi lại) các thông điệp đang diễn ra trên mạng CAN, sau đó nó cho phép Replay (phát lại đoạn thông điệp đó). Như vậy hãy bật tính năng record, thực hiện việc cần kiểm tra như khóa cửa chẳng hạn rồi bấm dừng ghi và bấm nút Replay. Nếu thấy cửa khóa thì có nghĩa chức năng đó của xe đã được kết nối mạng CAN và có sẵn mô đun điều khiển hoàn chỉnh (hoặc gọi nó là một node) thì việc cụ muốn điều khiển qua phần mềm là chuyện của lập trình thôi ạ. Có thể chạy trực tiếp từ DVD hoặc điện thoại hoặc máy tính hoặc RPI.... cái đó do lập trình viên tự chọn. Nếu không dùng phần mềm có tính năng replay thì có thể dùng các phần mềm chỉ có tính năng đơn thuần terminal để gõ lại một cách thủ công các lệnh canbus đó , nếu xe tác động có nghĩa là lệnh đó chuẩn rồi và xe có đáp ứng có lệnh này.
2. Vì sao cháu nói đến việc chạy trên RPI thay vì trên DVD? vì RPI ngoài cái việc viết mã rất dễ với các mã nguồn mở như Python thì nó còn làm các nhiệm vụ khác như chơi nhạc, phim trên xe cực mạnh với việc hỗ trợ gần như tất cả các định dạng và độ lớn của tập tin; Cụ chỉ quan tâm vài tính năng liên quan đến canbus thì có thể chạy ứng dụng wince nếu cụ có khả năng lập trình. Các DVD nguyên bản hoặc hàng sản xuất chuyên dùng cho xe có kết nối canbus thì có thể làm được việc này trên wince. Nhưng tài liệu với mã nguồn đóng như vậy khó kiếm lắm. Nói thêm về mã nguồn mở như Python để thấy rằng nó dễ thế nào vì trình độ nghiệp dư đến mức thượng thừa của Gà (hoàn toàn không biết gì về lập trình trước đó ngoài cái bài tập giải phương trình bậc 2 trên pascal) mà cháu vẫn có thể viết mã nhận các nút trên vô lăng để điều khiển Raspberry Pi chạy XBMC thì cụ có thể thấy rằng với các cụ có kiến thức chút đỉnh về lập trình có thể dễ dàng thế nào với việc phát triển ứng dụng.
3. Nếu một thiết bị chưa có mô đun cho CANBUS và muốn độ điều khiển dạng này thì có nhiều cách để làm. Ví dụ như dùng bo mạch phát triển dạng CAN/LIN Bus Development Kit có bán sẵn khá nhiều, đó là bo mạch có khả năng lập trình, có sẵn giao tiếp nối với xe hoặc đơn giản và rẻ nhất là dùng ngay Raspberry Pi kết hợp với ODB II để giao tiếp với xe. Tín hiệu được ODB II chuyển về Raspberry Pi sẽ được lập trình để đưa các lệnh điều khiển ra các chân GPIO của Raspberry Pi . Tín hiệu này hoàn toàn có thể điều khiển vào các công tắc cơ bình thường của xe (giả dụ dùng chân GPIO điều khiển rơ le, tiếp điểm của rowle đấu song song với công tắc cơ là một ví dụ điển hình ở cấp độ cơ bản nhất về điện)

Nói thêm về xe Hàn vì phần này cụ không hỏi. Các xe hàn với DVD nguyên bản tiếng Hàn nó có cổng USB liên hệ trực tiếp với wince, đó là một lợi thế cực lớn nếu dùng Python cho wince và giao tiếp canbus qua cổng này . Việc lập trình lại trở lên dễ dàng như đang lập trình trên Raspberry Pi. Tất nhiên DVD của nó cũng đã có liên hệ canbus nhưng việc lập trình trên đó cháu không biết.
Hy vọng với trả lời này sẽ làm cụ sáng tỏ một vài điều để phát triển đc các ứng dụng cho anh em công đồng ô tô việt nam

Cám ơn bác đã khai phá nhiều thứ cho em bắt đầu. Em cũng có ít đam mê mày mò từ bé nhưng tứ tuần rồi thời gian cho kiếm cơm lại nhiều hơn :3danbanh:
Đúng như bác nói tìm thư viện lập trình CAN BUS trên WinCE cũng không dễ. Nhưng em cũng cố đi theo hướng này với 2 mục đích:
1. Tận dụng đầu DVD sẵn có. Nếu đầu DVD giúp em thực hiện các chức năng điều khiển thiết bị thông qua CANBUS thì em ko cần tới RPi.
2. Nếu đầu DVD sẵn có không đáp ứng được nhu cầu thì có thể dùng CANBUS để DVD và RPi giao tiếp với nhau cũng là cái hay. Ví dụ như khi các phím cứng trên DVD được nhấn thì sự kiện này sẽ được gởi lên CANBUS. Khi đó RPi bắt sự kiện này và thực hiện chức năng tương ứng thay cho đầu DVD. Hoặc ngay cả tọa độ khi màn hình cảm ứng được nhấn được gởi từ DVD qua RPi cũng là một cách giúp cho RPi sử dụng màn hình cảm ứng của DVD mà không cần phải đụng chạm phần cứng.

Nếu bác nào có tài liệu liên quan đến việc lập trình CANBUS trên DVD share cho em tham khảo.
Nói thật tới giờ này em vẫn chưa thể kết nối vào CANBUS bằng terminal trên laptop thông qua cái OBD 2 bluetooth (tuy nhiên em có thể kết nối với app trên Android) để read bus. Bác có thể cho em biết bác đã kết nối dùng cái terminal nào với thông số ra sao không ạ?
Em cũng đã đặt mua RPi 2 và dàn 8 relay trên ebay với mục đích điều khiển các thiết bị chưa kết nối CANBUS như bác đề xuất. Có kết quả gì em báo bác.
 
Tập Lái
5/7/16
1
0
1
35
- Bài viết rất hay, mình cũng đang nghiên cứu các sản phẩm này. Bạn ngochoangimsat có bài viết rất chuyên sâu. Mình đang thắc mắc là tại sao bạn không làm ra một sản phẩm nào đó để đưa ra thị trường, không cho hàng Trung cộng tràn vào thị trường mình. Cho mình xin số điện thoại để mình trao đổi một chút về các sản phẩm trên. Gửi thông tin vào mail: [email protected] để mình liên lạc nhé.
 
Hạng B2
4/8/14
264
291
63
Hà nội
tranhchuthap.vn
- Bài viết rất hay, mình cũng đang nghiên cứu các sản phẩm này. Bạn ngochoangimsat có bài viết rất chuyên sâu. Mình đang thắc mắc là tại sao bạn không làm ra một sản phẩm nào đó để đưa ra thị trường, không cho hàng Trung cộng tràn vào thị trường mình. Cho mình xin số điện thoại để mình trao đổi một chút về các sản phẩm trên. Gửi thông tin vào mail: [email protected] để mình liên lạc nhé.
Một nghề thì sống đống nghề thì chết ạ. Cháu ko có theo nghề này ạ. Sở thích bất chợt từng giai đoạn thôi ạ. Nếu cụ đi theo hướng này cần mua phần mềm CAN Monitor Pro của Đức (hoặc các phần mềm khác tương đương như CANHacker V2.00.02) để đọc và phân tích các bản tin CAN, nó cho phép lọc được các bản tin đang quan tâm trong mạng một cách dễ dàng để theo dõi. Việc xử lý thông tin sau khi nhận được thế nào thì phụ thuộc và ý muốn và năng lực của lập trình viên là chúng ta. Cháu không theo học kỹ thuật điện tử (đặc biệt là lập trình vi xử lý) và tin học lập trình nên không đi vào con đường này để sống được
 
Chỉnh sửa cuối:
Hạng B2
4/8/14
264
291
63
Hà nội
tranhchuthap.vn
Cám ơn bác đã khai phá nhiều thứ cho em bắt đầu. Em cũng có ít đam mê mày mò từ bé nhưng tứ tuần rồi thời gian cho kiếm cơm lại nhiều hơn :3danbanh:
Đúng như bác nói tìm thư viện lập trình CAN BUS trên WinCE cũng không dễ. Nhưng em cũng cố đi theo hướng này với 2 mục đích:
1. Tận dụng đầu DVD sẵn có. Nếu đầu DVD giúp em thực hiện các chức năng điều khiển thiết bị thông qua CANBUS thì em ko cần tới RPi.
2. Nếu đầu DVD sẵn có không đáp ứng được nhu cầu thì có thể dùng CANBUS để DVD và RPi giao tiếp với nhau cũng là cái hay. Ví dụ như khi các phím cứng trên DVD được nhấn thì sự kiện này sẽ được gởi lên CANBUS. Khi đó RPi bắt sự kiện này và thực hiện chức năng tương ứng thay cho đầu DVD. Hoặc ngay cả tọa độ khi màn hình cảm ứng được nhấn được gởi từ DVD qua RPi cũng là một cách giúp cho RPi sử dụng màn hình cảm ứng của DVD mà không cần phải đụng chạm phần cứng.

Nếu bác nào có tài liệu liên quan đến việc lập trình CANBUS trên DVD share cho em tham khảo.
Nói thật tới giờ này em vẫn chưa thể kết nối vào CANBUS bằng terminal trên laptop thông qua cái OBD 2 bluetooth (tuy nhiên em có thể kết nối với app trên Android) để read bus. Bác có thể cho em biết bác đã kết nối dùng cái terminal nào với thông số ra sao không ạ?
Em cũng đã đặt mua RPi 2 và dàn 8 relay trên ebay với mục đích điều khiển các thiết bị chưa kết nối CANBUS như bác đề xuất. Có kết quả gì em báo bác.

Putty.exe là một phần mềm miễn phí, nhỏ gọn và cực kỳ mạnh mẽ mà cụ có thể tiếp cận. Chỉ cần bật nó lên, tích vào ô serial và chọn cổng COM đang giao tiếp giữa PC và ODBII cũng như Speed chọn đúng là cụ làm mọi việc trên màn hình Putty được. Đọc qua bài này của cháu để biết cách tìm cổng COM cũng như Speed cho cái của cụ và nạp vào Putty. Mặc dù bài đó viết về vấn đề khác nhưng cũng gần tương tự cho trường hợp của cụ

https://www.otofun.net/threads/huong-dan-cai-dat-usb-3g-cho-dau-dvd-android.1060964/
 
  • Like
Reactions: Trần Anh Đức