Loại dự án nào có thể giúp một kỹ sư phần mềm trở thành một kỹ sư điện tử? [đóng cửa]


17

Tôi là một nhà phát triển phần mềm thực tế không có nền tảng điện tử, nhưng tôi muốn tham gia vào việc này vì nó liên quan đến công việc tôi đang làm (phát triển hệ thống thông tin giải trí). Tôi là một kỹ sư phần mềm, không phải là kỹ sư điện tử, vì vậy nền tảng / kinh nghiệm của tôi có liên quan nhiều hơn đến lập trình cấp ứng dụng và có thể là một chút về lập trình hệ thống / mạng.

Tôi đã nghe nói về Arduino như một nền tảng dự án linh hoạt và tôi đã tự hỏi những loại dự án nào có thể giúp ai đó có nền tảng của tôi đào sâu vào kỹ thuật điện tử ... bắt đầu với lập trình vi điều khiển và có thể gây rối với các loại thiết bị ngoại vi khác, chẳng hạn như bluetooth , zigbee, wifi, âm thanh, video, tôi không biết ... có thể là một loại dự án điển hình cho các kỹ sư điện tử trong các khóa học của họ.

Tóm lại, những gì tôi đang tìm kiếm là một loại dự án điển hình / phổ biến (học thuật hoặc cách khác) có thể giúp một kỹ sư phần mềm phát triển một kỹ năng kỹ thuật điện tử được đặt ở cấp độ phần mềm.


có thể là thuật toán ánh xạ công nghệ cho back-end iverilog.
Tiêu chuẩn Sandun

1
Tôi khuyên bạn nên bắt đầu với một số dự án hẹn giờ 555. Có vô số trên Internet và họ sẽ cung cấp cho bạn một số hiểu biết cơ bản về điện trở, tụ điện và trong một số trường hợp cuộn cảm, bạn sẽ cần phải tự làm quen để thực sự biết bạn đang làm gì với những thứ cấp cao hơn như lập trình vi điều khiển và tương tự. Sau đó, bạn có thể bắt đầu chơi với Arduino, PICAXE hoặc bất kỳ nền tảng nào bạn thấy thú vị. Sau đó mạnh dạn bắt đầu làm việc với một dự án lớn hơn một chút bạn thấy thú vị và chắc chắn không từ bỏ trên đường đi.
AndrejaKo


1
Tôi ở vị trí tương tự, tôi chỉ muốn sửa chữa phần cứng. Tôi đã mang một Arduino và một chiếc xe RC đồ chơi, nối chúng lại với nhau. Không biết làm thế nào, nhưng nó hoạt động, và nó tuyệt vời :) Không khó lắm, tôi chưa bao giờ viết một dòng C trước đây (C # dev ở đây), và có vài thứ cơ bản chạy trong vài giờ.
TJHeuvel

Những loại dự án? Tôi sẽ đề nghị một dự án điện tử.
joeforker

Câu trả lời:


10

Dưới đây là một số gợi ý cho các dự án không khó để có được cho một nhà phát triển phần mềm. Tất cả chúng có thể xuất hiện khá khó khăn, nhưng tôi là một fan hâm mộ lớn của các dự án đang cố gắng nằm ngoài bộ kỹ năng của tôi. Nếu chúng là những dự án thú vị, hấp dẫn, chúng sẽ kéo bạn vui vẻ trong suốt quá trình học tập. Và hãy nhớ rằng, tất cả chúng ta đều ở đây để giúp đỡ.


Ma trận LED

Ma trận LED

Đây là một dự án hoàn toàn kỹ thuật số, nhưng rất nhiều niềm vui (những người không thích đèn LED). Bạn sẽ cần một số trình điều khiển như ULN2804 và vi điều khiển. Lấy ma trận để cho biết thời gian, hoặc hiển thị một hình ảnh. Tôi vừa mới có thể hiển thị hình ảnh của Bjork trên ma trận xanh 16x16.


Gyro ổn định mặt phẳng bọt

Nhận một mặt phẳng bọt và một vài dấu phẩy vi mô :

Mặt phẳng bọt vi mạch

Bạn cũng sẽ cần một con quay MEMS với đầu ra tương tự và một số OpAmps nhỏ. Trộn tất cả lại với nhau để tạo ra một mặt phẳng bọt cao su ổn định con quay hồi chuyển.


Robot

Mọi người đều yêu thích một robot. Điều tuyệt vời của một robot nhỏ như thế này là bạn có thể bắt đầu với một thứ cực kỳ đơn giản (chỉ cần lái về phía trước), và từ từ thêm ngày càng nhiều chức năng (Cảm biến và ra quyết định), học mọi lúc.

Robot


5

Nếu bạn đã là một nhà phát triển phần mềm thì bản thân việc lập trình vi điều khiển không phải là một thách thức thực sự và có rất ít điện tử về nó. Ít nhất không phải theo cách mà bạn sẽ phải đối phó với các loại thành phần khác nhau, và phải tính toán về điện áp và dòng điện để làm cho một cái gì đó hoạt động.

Một bộ vi điều khiển có thể giúp bạn có được quyền kiểm soát, mặc dù. Bạn có thể làm việc với tất cả các loại đầu vào, kỹ thuật số và analog và đầu ra.
Hãy thử bộ điều nhiệt phổ biến chẳng hạn.

Đầu vào
Bạn sẽ cần có được sự hiểu biết về cảm biến nhiệt độ (bất kỳ loại nào), bộ khuếch đại, opamp và có thể là bóng bán dẫn, bên cạnh tụ điện và điện trở. Opamp và đặc biệt là bóng bán dẫn là cơ bản, chúng được sử dụng trong mọi mạch.

Đầu ra
Để lái rơle, bạn cần biết cách thức hoạt động của bóng bán dẫn như một công tắc (đó là ứng dụng dễ hiểu nhất).

Các bảng phát triển vi điều khiển thường có màn hình hiển thị trên màn hình, LCD hoặc LED hoặc có thể kết nối với mô-đun hiển thị. Mặc dù điều này rất hữu ích (ví dụ để gỡ lỗi) và thú vị nhưng nó không giúp bạn hiểu về thiết bị điện tử. Bạn sẽ phải tạo màn hình của riêng mình, như ma trận LED và tìm hiểu cách điều khiển màn hình đa kênh, cả từ quan điểm của phần mềm và phần cứng.

Ngoài bảng vi điều khiển, hãy nắm giữ một bộ khởi động điện tử , trong đó có hầu hết các bộ phận cơ bản để tạo ra các mạch đơn giản. Và một cuốn cẩm nang tốt , tất nhiên. Nghệ thuật Điện tử vô cùng nổi tiếng ở đây, mặc dù lần trước tôi đã thấy nó là do một bản cập nhật.


1
Và nếu bạn không thích máy điều nhiệt, bạn có thể nâng cấp để thực hiện bộ điều khiển PID. :)
Nick Johnson

Ý tưởng dự án gọn gàng kết hợp một loạt các khái niệm điện và điện tử. Khi bạn đã thực hiện dự án này trong các thành phần riêng biệt, bạn có thể tìm cách chuyển sang bộ điều khiển vi mô để thực hiện cùng một công việc, và vì vậy hãy tìm hiểu những ưu điểm (tính linh hoạt) và nhược điểm (chi phí so sánh) của bộ điều khiển vi mô
SimonBarker

5

Giữ một bộ phát triển PSoC . Các PSoC là một vi điều khiển, trong đó có khối kỹ thuật số và analog tái cấu hình. Về cơ bản, bạn có thể kết nối sơ đồ kỹ thuật số và tương tự với IDE. Những sơ đồ này sau đó được thực hiện bên trong chip PSoC.

Người tạo PSoC

Bạn có thể chơi với các thiết kế mạch kỹ thuật số và tương tự với nội dung trái tim của bạn và kết hợp tất cả với phần mềm được viết trong cùng một IDE.


2
Đây là một nơi không phổ biến để bắt đầu; PSoC là một hệ thống rất phức tạp và bất thường. Bạn đã đào tạo thành công người khác sử dụng điều này như một điểm khởi đầu?
Kevin Vermeer

Nó có thể phức tạp bên trong, nhưng đó là một giấc mơ để sử dụng. Họ đã thực hiện một công việc tuyệt vời là làm cho mọi thứ được tích hợp trơn tru, và tạo ra rất nhiều video hướng dẫn và tài liệu hay.
Rocketmagnet

1
Thực tế là tất cả các thiết bị ngoại vi được tích hợp trong PSoC là một trường hợp chống lại nó. Bạn phải tự xây dựng những hệ thống này nếu bạn muốn học.
stevenvh

2
@stevenvh Không hề. Sự khác biệt giữa nối dây cổng bên trong chip và nối dây cổng trong sơ đồ là gì? Nó giống hệt nhau về mặt khái niệm.
Rocketmagnet

@sandundhammika Không có probs. Tôi nghĩ mọi người nên khám phá những điều thú vị khi phát triển ứng dụng trên những thứ này.
Rocketmagnet

5

Proteus là một nền tảng proptyping điều khiển phần mềm tuyệt vời. Bạn có thể xây dựng các bảng và sơ đồ PCB bằng cách sử dụng hầu hết, nếu không phải tất cả các MCU được đề cập ở đây; Và tốt nhất, bạn có thể mô phỏng mã nguồn của mình như thể nó đang chạy trên phần cứng thực sự!

Điều thú vị nhất của phần mềm này là bạn có thể thay đổi các biến như tinh thể, tụ điện, điện trở mà không cần phải hàn, khử, đặt hàng và chờ đợi để cuối cùng làm hỏng xung quanh bằng bảng proto hoặc tấm chắn. Nó mô phỏng nó hoàn hảo.

Cũng thế; Bạn nhận được các công cụ ảo như dao động .. Bạn có biết một osciliscope tốt có giá bao nhiêu không? Một gia tài! Tất cả được bao gồm với hầu hết các tính năng và công cụ ảo khác.

Nó không miễn phí nhưng giá cả hoàn toàn hợp lý cho lượng thời gian và sự thất vọng mà nó có thể giúp bạn tiết kiệm, thay vì làm hỏng phần cứng thực sự.


Bạn có nhận được để thực hiện các mạch thực sự theo cách này?
Rocketmagnet

Có, tôi tạo mạch của mình trong Proteus, ví dụ attiny 861 với h-Bride và liên kết nó với tệp hex mà AVR Studio biên dịch. Mỗi khi tôi thay đổi nguồn và biên dịch trong AVRStudio, tôi hoạt hình trong Proteus và những thay đổi của tôi là tức thì. Và tôi có thể tạo ra đầu ra từ cô dâu h bằng cách sử dụng một phạm vi, đầu dò hoặc vôn kế với đọc chính xác .. jsut như proto thực sự của tôi. Nó khá tốt
WillyWonka

3

Tôi nghĩ rằng cố gắng học mọi thứ sẽ chỉ dẫn đến nhiều nhầm lẫn và mất thời gian. IMHO bạn nên cố gắng tập trung sự quan tâm của mình: bạn nói rằng bạn cần nó cho các hệ thống thông tin giải trí, phải không?

Một cách tiếp cận có thể là để có được một ý tưởng về một trong những hệ thống đó là gì:

  • Một đơn vị xử lý (có thể là vi điều khiển hoặc máy tính đơn giản);

  • Một số trình điều khiển cho màn hình;

  • Giao diện I / O cho tương tác người dùng;

  • Giao diện giao tiếp (kết nối mạng, giao tiếp với các thiết bị khác ...)

Bất kỳ tên miền phụ nào cũng là một hệ thống hoàn chỉnh có thể được nghiên cứu và thiết kế như một dự án. Một số trong số chúng cũng có thể được chia thành nhiều tên miền phụ ở mức độ trừu tượng thấp hơn và xuống mức thành phần.

Vì vậy, đề nghị của tôi là phá vỡ kiến ​​trúc phức tạp này thành các khối và cố gắng tạo các mạch đơn giản (có thể bắt đầu từ trình điều khiển LED), nhưng sau đó có thể được chèn vào kế hoạch lớn hơn. Bạn sẽ có động lực để làm điều đó, vì nó sẽ là một phần của công việc cuối cùng, và theo cách bạn sẽ tìm hiểu về điện tử.

Chỉ cần quan tâm đến việc nghiên cứu và hiểu những gì bạn đang làm, thay vì dựa vào sơ đồ được tạo sẵn và quy tắc chung.


2

Tôi đã ở trong cùng một vấn đề. Và cuối cùng tôi đã học được rằng không có cách nào ngắn để học điện tử. Bằng đại học có thể giúp bạn.

Nếu không, bạn có thể thử những cuốn sách sau:

Bước 1.

nhập mô tả hình ảnh ở đây

Bước 2.

nhập mô tả hình ảnh ở đây

Cùng với phần mềm NI Multisim .

nhập mô tả hình ảnh ở đây


1

Cũng như một người phát triển phần mềm, bạn là một trong hai nền tảng có sẵn chính.

PHP hay .NET?

Nếu bạn là .NET thì tôi có thể đề nghị với bạn .NET MicroFramework IDE và NetDuino

nhập mô tả hình ảnh ở đây

Có rất nhiều phần cứng khác có sẵn nhưng tôi đề nghị cái này vì giá của nó hợp lý và thiết kế rất giống với Arduino và nhiều loại ván tạo mẫu khác sẽ giúp phát triển sự quen thuộc trên một số bộ dụng cụ.

Cả .NET và PHP đều không có kết nối thực sự với lập trình nhúng nhưng cú pháp PHP rất gần với Cđó là một điều tốt để biết. .NET, thật tuyệt khi ở trong một môi trường quen thuộc và bạn cũng có thể nhận được chứng nhận cho việc này với Microsoft Learning.

Một nền tảng khác mà tôi muốn đề xuất là Atmels AVR XMega , về cơ bản là arduino nhưng mới hơn và có khả năng hơn nhiều.

Phần quan trọng của cả hai anh chàng này là Môi trường phát triển MIỄN PHÍ! Có, Microsoft cung cấp cho bạn Visual Studio miễn phí cho Micro Framework và Atmel có AVR Studio 5 (dựa trên Visual Studio kể từ phiên bản 5)

Bạn cũng cần phải nhận ra capabiliteis của mỗi bộ dev.

nhập mô tả hình ảnh ở đây

Nó dựa trên chip Atmega nhưng họ sử dụng tốc độ xung nhịp thấp (8 mhz, 16 mhz) nhưng hoàn toàn có khả năng thực hiện các bit và bops khác nhau. Đó là một điểm khởi đầu tuyệt vời trong việc học kỹ thuật điện bởi vì nó có IDE miễn phí và một cộng đồng lớn với hàng tấn mã và thư viện. Nếu bạn học từ đây, việc chuyển sang các chip dựa trên AVR khác sẽ dễ dàng hơn về mặt cú pháp và chuyển mã.

Nó rất hạn chế với những gì nó có thể làm, ví dụ, đừng mong đợi chuyển tiếp dữ liệu video qua máy chủ web vi nội bộ sang internet .. Những MCU này không thể xử lý dữ liệu và số lượng việc cần làm cùng một lúc nhưng một khi bạn đạt đến mức đó thì sẽ tốt hơn nếu bước lên .NET hoặc 32Bit AVR.

  • AVR 32

Những kẻ này có thể tự xử lý LCD, video, máy chủ web, Không dây và vô số thứ trong đó. Họ cũng bắt đầu đi nhanh hơn nhiều về tốc độ xử lý. Nhưng trước khi bạn bắt đầu nhìn vào những thứ này, bạn cần nhận ra rằng có một số sản phẩm cũng có chức năng cụ thể .. Chẳng hạn như cảm ứng, giao tiếp không dây, công suất cực thấp, một số được trộn lẫn và phù hợp và điều này cần một quá trình nghiên cứu và phát triển thích hợp đằng sau việc sử dụng Những chàng trai xấu.

  • Dụng cụ Texas

Hãy cẩn thận với họ,

Họ cung cấp chip hàng đầu thị trường tuyệt vời mà tuyệt vời khi bạn đọc về chúng. Thật không may, không có IDE miễn phí và chúng có giá hàng ngàn đô la phí giấy phép. Mặc dù, một số sản phẩm như MSP430 có IDE miễn phí nhưng sự phân bổ của mọi thứ là ranh giới với chúng và không rõ ràng. Ngoài ra, học các thư viện cho một số chip TI là một cơn ác mộng tuyệt đối .. Nhưng đó là một thị trường thích hợp và bạn có thể nhận được mức lương tốt ở đây ..

Có rất nhiều devkits ngoài kia, tôi chỉ nói với bạn về một số kinh nghiệm của bản thân tôi khi hình thành Chứng nhận .NET. Tôi đã thực sự bắt đầu với một Arduino Mega256.

Hôm nay tôi đang tạo ra PCB của riêng mình với kích thước 1,5cmx1,5cm chạy các tế bào tiền xu trong tối đa 2 năm bằng cách sử dụng SystemOnChips tuyệt vời của TI. Nhưng phải mất rất nhiều thời gian và kiên nhẫn để đến đó và tôi vẫn cảm thấy mình không biết gì về các hệ thống nhúng ...

Chúc may mắn :-)


10
... Bạn thực sự đề nghị rằng mọi nhà phát triển phần mềm đều sử dụng .NET hoặc PHP?
Nick Johnson

@NickJohnson chiếm đa số .... Chuyển đến nhà cung cấp máy chủ web và bạn có hai lựa chọn loại máy chủ; Windows .NET -OR- Linux LAMP với PHP .. Không chỉ riêng tôi .. Tôi cá là bạn giống như một viên hồng ngọc trên đường ray hay C ++? Tôi biết tôi chỉ tham khảo các công nghệ Web .. nhưng các ứng dụng là như vậy ngày hôm qua .. cho phép theo kịp.
Piotr Kula

Đó là một câu hỏi dễ thương. Kinh nghiệm chuyên môn chính của tôi nằm ở PHP (được viết tốt), nhưng tôi cũng thành thạo Java, C & C ++, Javascript.
dukeofgaming

12
"... các ứng dụng là như vậy ngày hôm qua ..." - Hãy nói điều đó với hàng trăm ngàn nhà phát triển ứng dụng không phải là Web ngoài kia. Thay vì "hãy theo kịp", làm thế nào về "hãy thực tế"? Nếu .NET và PHP là những lựa chọn duy nhất để viết phần mềm, thì tôi sẽ ném PC của mình qua cầu. Các ứng dụng web không phải là ứng dụng duy nhất.
Justin

1
@ppumkin, tôi vẫn mạnh mẽ nghĩ rằng người dùng nên học cách đọc lắp ráp để xem khi nào nó làm điều gì đó ngu ngốc.
Kortuk

1

Câu hỏi của bạn khá rộng, và sẽ có nhiều khả năng tốt. Nếu bạn tập trung nhiều hơn vào mức độ cao hơn về cách làm cho một chiếc máy tính nhỏ tương tác với những thứ vật lý, tôi có thể đề nghị bạn nhìn vào một cái gì đó giống như bộ Lego Mindstorms . Với điều này, bạn có thể xây dựng và lập trình robot. Điều này sẽ ở mức cao của cắm và chơi các cảm biến khác nhau, vv

Ngoài ra còn có một mức độ cơ bản quan trọng hơn của kỹ thuật điện trong đó EE "thật" sẽ thiết kế và chế tạo các cảm biến. Sử dụng một máy tính bảng đơn như Arduino hoặc Netduino và bảng mạch nơi bạn cắm các bộ phận khác nhau như điện trở, đèn LED, vv vào bảng mạch để xây dựng các mạch sẽ gần với mức cơ bản hơn này. Tại thời điểm này, bạn sẽ xử lý các câu hỏi như "tôi nên đặt điện trở giá trị nào nối tiếp với đèn LED để hạn chế dòng điện để đèn led và vi điều khiển của tôi không bị bốc khói?".

Với bộ Lego, bạn chỉ cần cắm các thành phần lại với nhau và họ đã quan tâm đến việc làm cho nó trở thành bằng chứng ngu ngốc.


1
Trên thực tế EE "thực sự" có thể sẽ không sử dụng Ardunio và Breadboard.
Jeanne Pindar

@Jeanne - Đúng, nhưng tất cả chúng ta không thể là Jeri Ellsworth và tạo ra các bóng bán dẫn của riêng mình: youtube.com/watch?v=w_znRopGtbE
JonnyBoats

1

Tôi sẽ đề nghị tập trung vào sự khác biệt giữa phần mềm được viết cho PC so với phần sụn được viết cho các ứng dụng nhúng. Chải lên C. Với nhúng linux trở nên rất phổ biến, sự khác biệt giữa một kỹ sư phần mềm và nhà phát triển phần mềm đang bị thu hẹp nhanh chóng. Dành thời gian để xem một trình điều khiển nhúng nguồn mở.

Tôi sẽ đặt câu hỏi phần nào mong muốn trở nên giống EE hơn vì hai ngành học khá khác biệt. Vâng, có rất nhiều sự chồng chéo, nhưng tập trung vào phía người lái xe và không bị sa lầy vào các chi tiết của thiết bị điện tử.


Anh ấy nói với bạn rằng anh ấy muốn vào điện tử!
stevenvh

Những gì tôi đang đề xuất là một cách tiếp cận từ phần mềm từ trên xuống, thay vì bắt đầu với một sơ đồ và làm việc trở lại từ các chân IO. Điều này có vẻ hợp lý vì tôi diễn giải "kỹ năng kỹ thuật điện tử được đặt ở cấp độ phần mềm" có nghĩa là tập trung vào phát triển phần sụn.
spearson

1

Trước hết, nó thực sự tốt nếu bạn không đến từ nền tảng điện tử, bạn thực sự sẽ không thiết kế Chips phải không?

nhưng nếu bạn định học về điện tử, tôi sẽ khuyên bạn nên tìm hiểu những điều cơ bản trước tiên như Điện trở, Diodes, Transitor, v.v. một bộ sở thích điện tử từ radioshack hoặc bất kỳ nhà cung cấp nào khác sẽ làm .. tiếp theo chuyển sang Vi điều khiển, Arduino sẽ thực hiện nó thực sự đơn giản, nhưng tôi sẽ khuyên bạn nên làm điều gì đó chưa được thực hiện dễ dàng, Arduino thực sự dễ dàng và không gặp nhiều thách thức trước người dùng của nó .. Bắt đầu bằng bộ điều khiển Micro, PIC hoặc 8051, Mua Vi điều khiển, a mã hóa sách và srart bắt đầu với Chương trình LED nhấp nháy ("Thế giới xin chào" trong Bộ phận Điện tử) và như bạn sẽ thấy, không bao giờ bạn sẽ sử dụng Bàn phím ma trận và Màn hình Bảy đoạn để tìm hiểu thêm một số điều cơ bản, sau đó là sự thật hoạt động, kết nối thiết bị của bạn với các IC và mạng cảm biến khác, mạng liên quan đến công việc của bạn ..Ban phát triển của bạn đã có sẵn một số tính năng này và nếu không, bạn luôn có thể mua bầy hoặc bẻ khóa có sẵn một cách dễ dàng, thì tất cả tùy thuộc vào bạn ...

Tôi cũng khuyên bạn nên kiểm tra với Công ty của bạn về Nền tảng mà họ đang sử dụng, điều này sẽ cho bạn một hướng đi về Bộ điều khiển vi mô để tìm hiểu và vì bạn đã là một lập trình viên nên điều này rất dễ thực hiện với bạn và luôn thực hiện các dự án sở thích như Robot và ma trận LED trong số những người khác, điều này sẽ khiến bạn nhớ đến Chủ đề mà bạn sẽ không cảm thấy nhàm chán !!

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.