소프트웨어 엔지니어가 전자 엔지니어가되는 데 어떤 종류의 프로젝트가 도움이 될 수 있습니까? [닫은]


17

저는 전자 분야에 대한 배경 지식이 거의없는 소프트웨어 개발자이지만, 제가하고있는 작업 (정보 시스템 시스템 개발)과 관련이 있기 때문에 이에 관심이 있습니다. 저는 전자 엔지니어가 아닌 소프트웨어 엔지니어이므로 백그라운드 / 경험은 응용 프로그램 수준 프로그래밍 및 시스템 / 네트워크 프로그래밍과 관련이 있습니다.

Arduino에 대해 유연한 프로젝트 플랫폼으로 들었습니다. 마이크로 컨트롤러 프로그래밍으로 시작하고 블루투스와 같은 다른 주변 장치를 어지럽 힐 수있는 배경 지식을 가진 사람이 전자 엔지니어링에 도움이 될 수있는 프로젝트가 어떤 것인지 궁금합니다. , 지그비, 와이파이, 오디오, 비디오, 나는 모른다 ... 아마도 그들의 과정에서 전자 엔지니어들에게 전형적인 일종의 프로젝트 일 것이다.

요컨대, 내가 찾고있는 것은 소프트웨어 엔지니어가 소프트웨어 수준에서 전자 공학 기술을 개발하는 데 도움이 될 수있는 전형적인 / 인기 종류의 프로젝트 (학계 또는 기타)에 대한 것입니다.


iverilog 백엔드에 대한 기술 매핑 알고리즘 일 수 있습니다.
표준 Sandun

1
555 개의 타이머 프로젝트로 시작하는 것이 좋습니다. 인터넷에는 셀 수없이 많으며 저항, 커패시터 및 경우에 따라 인덕터에 대한 기본 지식을 제공합니다. 마이크로 컨트롤러 프로그래밍 및 유사 그 후 Arduino, PICAXE 또는 흥미로운 플랫폼으로 게임을 시작할 수 있습니다. 그런 다음 흥미롭게 느껴지는 조금 더 큰 프로젝트를 시작하고 용감히 포기하지 마십시오.
AndrejaKo


1
나는 같은 위치에 있고, 나는 단지 하드웨어로 땜질하고 싶었다. Arduino와 장난감 RC 자동차를 가져 와서 연결했습니다. 어떻게 해야할지 모르겠지만 작동하고 훌륭합니다 :) 그렇게 어렵지는 않습니다. 전에 C 줄을 작성하지 않았으며 (C # dev) 여기에 몇 시간 동안 기본적인 실행이있었습니다.
TJHeuvel

어떤 종류의 프로젝트입니까? 전자 프로젝트를 제안합니다.
joeforker

답변:


10

다음은 소프트웨어 개발자가 다루기 어려운 프로젝트에 대한 제안입니다. 모두 어려워 보일지 모르지만 저는 기술 수준을 벗어난 프로젝트를 시도하는 것을 좋아합니다. 그들이 재미 있고 매력적인 프로젝트라면, 학습 과정을 통해 당신을 즐겁게 끌 것입니다. 우리 모두가 도와 주러 왔음을 기억하십시오.


LED 매트릭스

LED Matrix

이것은 전적으로 디지털 프로젝트이지만 LED를 좋아하지 않는 많은 즐거움입니다. ULN2803과 같은 일부 드라이버와 마이크로 컨트롤러가 필요합니다. 시간을 알려주거나 그림을 보여줄 매트릭스를 얻습니다. 16x16 녹색 매트릭스에 Bjork 사진을 보여줄 수있었습니다.


자이로 안정화 폼 평면

폼 평면과 몇 개의 마이크로 에일 론을 얻으십시오 .

Foam plane micro ailerons

또한 아날로그 출력 과 작은 OpAmp를 갖춘 MEMS 자이로가 필요합니다 . 자이로 안정화 고무 밴드 폼 평면을 만들기 위해 모두 함께 혼합하십시오.


로봇

모두 로봇을 좋아합니다. 이와 같은 작은 로봇의 가장 큰 장점은 매우 간단한 것부터 시작하고 (앞으로 운전) 점점 더 많은 기능 (센서 및 의사 결정)을 천천히 추가하여 학습하는 것입니다.

Robot


5

이미 소프트웨어 개발자라면 마이크로 컨트롤러 프로그래밍 그 자체가 실제로 도전이되어서는 안되며, 전자적인 문제는 거의 없습니다. 적어도 다른 유형의 구성 요소를 처리 해야하는 방식이 아니며 무언가를 작동시키기 위해 전압 및 전류를 계산해야합니다.

그러나 마이크로 컨트롤러 키트를 사용하면 제어 할 수 있습니다. 모든 종류의 입력, 디지털 및 아날로그 및 출력으로 작업 할 수 있습니다. 예를 들어
유비쿼터스 온도 조절기 를 사용해보십시오 .

입력
커패시터 및 저항 외에 온도 센서 (어떤 종류), 증폭기, 연산 증폭기 및 트랜지스터에 대한 이해가 필요합니다. Opamp 및 특히 트랜지스터는 기본이며 모든 회로에 사용됩니다.

출력
릴레이를 구동하려면 트랜지스터가 스위치로 작동하는 방식을 알아야합니다 (이것이 가장 이해하기 쉬운 응용 프로그램 임).

마이크로 컨트롤러 개발 보드에는 종종 디스플레이 , LCD 또는 LED가 있거나 디스플레이 모듈에 연결할 수 있습니다. 이는 유용하고 (예 : 디버깅) 재미 있지만 전자 제품을 이해하는 데 도움이되지는 않습니다. LED 매트릭스와 같은 자체 디스플레이를 만들고 소프트웨어 및 하드웨어 관점에서 멀티플렉싱 디스플레이를 구동하는 방법을 배워야합니다.

마이크로 컨트롤러 보드 이외에도 간단한 회로를 만들기위한 대부분의 기본 부품이 포함 된 전자 스타터 키트 가 제공됩니다. 물론 좋은 핸드북 입니다. 전자 예술은 여기에서 엄청나게 인기가 있지만, 마지막으로 보았을 때 업데이트가 예정되어 있습니다.


1
온도 조절기에 문제가 있으면 PID 컨트롤러 구현으로 업그레이드 할 수 있습니다. :)
Nick Johnson

광범위한 전기 및 전자 개념을 통합 한 깔끔한 프로젝트 아이디어. 개별 프로젝트에서이 프로젝트를 수행 한 후에는 동일한 작업을 수행하기 위해 마이크로 컨트롤러로 이동할 수 있으므로 마이크로 컨트롤러의 장단점 (유연성)과 단점 (비교 비용)을
익힐 수 있습니다.

5

PSoC 개발 키트를 받으십시오 . 의 PSoC는 재구성이 디지털 및 아날로그 블록을 포함하는 마이크로 컴퓨터이다. 기본적으로 IDE로 디지털 및 아날로그 회로도를 연결할 수 있습니다. 그런 다음 이러한 회로도는 PSoC 칩 내부에서 구현됩니다.

PSoC Creator

디지털 및 아날로그 회로 설계를 마음껏 즐기면서 동일한 IDE로 작성된 소프트웨어와 결합 할 수 있습니다.


2
이곳은 시작하기 드문 곳입니다. PSoC는 매우 복잡하고 특이한 시스템입니다. 이것을 시작점으로 사용하여 다른 사람들을 성공적으로 훈련 시켰습니까?
Kevin Vermeer

내부가 복잡 할 수도 있지만 사용하는 것이 꿈입니다. 그들은 모든 것이 매끄럽게 통합되도록하는 놀라운 일을 해왔고 많은 훌륭한 튜토리얼 비디오와 문서를 제작했습니다.
Rocketmagnet

1
이러한 모든 주변 장치가 PSoC에 통합되어 있다는 사실은 그 반대입니다. 배우고 싶다면 이러한 시스템을 직접 구축해야합니다.
stevenvh

2
@stevenvh 전혀 아닙니다. 칩 내부의 게이트 배선과 회로도의 게이트 배선의 차이점은 무엇입니까? 개념적으로 동일합니다.
Rocketmagnet

@sandundhammika 문제가 없습니다. 모든 사람들이 이러한 것들에 대한 응용 프로그램을 개발하는 것이 얼마나 큰 즐거움인지 발견해야한다고 생각합니다.
Rocketmagnet

5

Proteus 는 뛰어난 소프트웨어 기반 프로토 타이핑 플랫폼입니다. 언급 된 모든 MCU가 여기에 해당되는 것은 아니지만 대부분을 사용하여 PCB 보드 및 회로도를 구축 할 수 있습니다. 그리고 무엇보다도 소스 코드가 실제 하드웨어에서 실행되는 것처럼 소스 코드를 시뮬레이션 할 수 있습니다!

이 소프트웨어의 가장 좋은 점은 크리스탈, 커패시터, 저항과 같은 변수를 납땜, 디 솔더, 순서없이 변경하고 궁극적으로 프로토 보드 또는 쉴드로 주변을 막을 수 있다는 것입니다. 그것은 완벽하게 모방합니다.

또한; 당신은 Osciliscopes와 같은 가상 도구를 얻습니다. 얼마나 좋은 osciliscope 비용을 알고 있습니까? 운! 거의 모든 다른 기능과 가상 도구에 포함되어 있습니다.

무료는 아니지만 가격은 실제 하드웨어를 엉망으로 만드는 대신 시간과 노력을 절약하는 데 절대적으로 합리적입니다.


이런 식으로 실제 회로를 만들 수 있습니까?
Rocketmagnet

예, Proteus에서 htin-bride를 사용하여 attiny 861과 같은 회로를 만들고 AVR Studio가 컴파일하는 16 진 파일에 연결합니다. 소스를 변경하고 AVRStudio에서 컴파일 할 때마다 Proteus에서 애니메이션이 적용되며 변경 사항이 즉시 적용됩니다. 그리고 정확한 판독 값을 가진 스코프, 프로브 또는 전압계를 사용하여 h-bride에서 출력을 측정 할 수 있습니다. 내 실제 프로토처럼 jsut. 꽤 좋습니다
WillyWonka

3

나는 모든 것을 배우려고 노력하면 많은 혼란과 시간을 낭비하게 될 것이라고 생각합니다. IMHO 당신은 당신의 관심에 집중하려고 노력해야한다 : 당신은 인포테인먼트 시스템에 필요하다고 말했다.

이러한 시스템 중 하나가 무엇인지에 대한 아이디어를 얻는 방법이 있습니다.

  • 프로세싱 유닛 (아마도 마이크로 컨트롤러 또는 간단한 컴퓨터);

  • 디스플레이를위한 일부 드라이버;

  • 사용자 상호 작용을위한 I / O 인터페이스;

  • 통신 인터페이스 (네트워킹, 다른 장치와의 인터페이스 ...)

이러한 하위 도메인은 프로젝트로 연구하고 설계 할 수있는 완벽한 시스템입니다. 이들 중 일부는 더 낮은 수준의 추상화에서 구성 요소 수준으로 더 많은 하위 하위 도메인으로 나눌 수도 있습니다.

따라서이 복잡한 아키텍처를 블록 으로 나누고 간단한 회로 (LED 드라이버에서 시작될 수 있음)를 만들려고하지만 더 큰 계획에 삽입 할 수 있습니다. 최종 작업의 일부가 될 것이며 전자 장치에 대해 배우는 방식이기 때문에 그렇게 할 동기가 있습니다.

미리 만들어진 회로도 및 일반적인 경험 법칙에 의존하는 대신 수행중인 작업을 연구하고 이해하기 만하면됩니다.


2

나는 같은 문제에 있었다. 그리고 결국 전자 공학을 배우는 지름길이 없다는 것을 알게되었습니다. 대학 학위가 도움이 될 수 있습니다.

그렇지 않으면 다음과 같은 책을 시도해 볼 수 있습니다.

1 단계.

여기에 이미지 설명을 입력하십시오

2 단계.

여기에 이미지 설명을 입력하십시오

소프트웨어와 함께 NI Multisim .

여기에 이미지 설명을 입력하십시오


1

소프트웨어 개발자뿐만 아니라 사용 가능한 두 가지 주요 플랫폼 중 하나입니다.

PHP 또는 .NET?

.NET 인 경우 강력하게 제안 할 수 있습니다 .NET MicroFramework IDE와 NetDuino

여기에 이미지 설명을 입력하십시오

사용 가능한 다른 하드웨어가 많이 있지만 가격이 합리적이며 Arduino 및 많은 다른 프로토 타이핑 보드와 디자인이 매우 유사하기 때문에이 키트를 사용하는 것이 좋습니다.

.NET 또는 PHP는 임베디드 프로그래밍에 실제로 연결되어 있지 않지만 PHP 구문은 매우 가깝습니다 C. .NET은 친숙한 환경에 머무르는 것이 좋으며 Microsoft Learning을 통해 이에 대한 인증을받을 수 있습니다.

내가 제안하는 또 다른 플랫폼은 Atmels AVR XMega 이며 기본적으로 arduino이지만 훨씬 더 새롭고 더 능력이 있습니다.

이 두 사람의 중요한 부분은 개발 환경이 무료라는 것입니다! 예, Microsoft는 무료 Visual Studio for Micro Framework를 제공하고 Atmel에는 AVR Studio 5 (Visual Studio 기반 버전 5 기준)가 있습니다

또한 각 개발 키트의 기능을 알아야합니다.

여기에 이미지 설명을 입력하십시오

Atmega 칩을 기반으로하지만 낮은 클럭 속도 칩 (8mhz, 16mhz)을 사용하지만 다양한 비트 및 doing을 수행 할 수 있습니다. 무료 IDE와 수많은 코드 및 라이브러리가있는 대규모 커뮤니티를 보유하고 있기 때문에 전기 공학 학습의 출발점입니다. 여기서 배우면 구문 및 코드 포팅 측면에서 다른 AVR 기반 칩으로 이동하는 것이 더 쉬울 것입니다.

내부 마이크로 웹 서버를 통해 인터넷으로 비디오 데이터를 릴레이하지 않을 것으로 예상되는 것과 같이 수행 할 수있는 작업에 매우 제한적입니다.이 MCU는 데이터와 작업량을 동시에 처리 할 수는 없습니다. 그 수준에 도달하면 .NET 또는 32Bit AVR로 올라가는 것이 좋습니다.

  • AVR 32

이 사람들은 LCD, 비디오, 웹 서버, 무선 및 그 안에 많은 것들을 스스로 처리 할 수 ​​있습니다. 또한 처리 속도가 훨씬 빨라지기 시작합니다. 그러나 이러한 기능을 살펴보기 전에 특정 기능을 수행하는 몇 가지 제품이 있다는 사실을 알아야합니다. 터치 감지, 무선 통신, 초 저전력, 일부가 혼합되어 일치하므로 사용에 대한 적절한 연구 개발 프로세스가 필요합니다. 이 나쁜 소년들.

  • 텍사스 인스트루먼트

그들에게 매우 조심하십시오

그들은 당신이 그것에 대해 읽을 때 놀라운 환상적인 시장 선두 칩을 제공합니다. 불행히도 무료 IDE가 없으며 라이센스 비용이 수천 달러입니다. MSP430 과 같은 일부 제품은 에는 무료 IDE가 있지만 모든 제품과 경계가 있고 명확하지 않습니다. 또한 일부 TI 칩의 라이브러리를 배우는 것은 절대적인 악몽입니다. ​​그러나 틈새 시장이며 여기서 좋은 월급을받을 수 있습니다.

거기에는 많은 devkit이 있습니다. 나는 .NET 인증에서 오는 내 경험 중 일부에 대해서만 이야기했습니다. 나는 실제로 Arduino Mega256으로 시작했습니다.

오늘 저는 TI의 놀라운 SystemOnChips를 사용하여 최대 2 년 동안 코인 셀을 실행하는 1.5cmx1.5cm 크기의 작은 PCB를 만들고 있습니다. 그러나 거기에 도착하는 데 시간과 인내심이 필요했지만 임베디드 시스템에 대해 아무것도 모른다고 생각합니다 ...

행운을 빕니다 :-)


10
... 모든 소프트웨어 개발자가 .NET 또는 PHP를 사용하도록 진지하게 제안하고 있습니까?
Nick Johnson

@NickJohnson 다수 .... 웹 호스트 공급자로 이동하면 두 가지 서버 유형을 선택할 수 있습니다. PHP가 포함 된 Windows .NET-또는-Linux LAMP .. 저만이 아닙니다. 난 당신이 레일 위의 루비 나 C ++ 같은 것입니까? 나는 단지 웹 기술만을 참조하고 있다는 것을 알고있다. 그러나 응용 프로그램은 어제 그렇게한다.
Piotr Kula

귀여운 질문이었습니다. 저의 주요 전문 경력은 (잘 작성된) PHP에 있지만 Java, C & C ++, Javascript에도 능숙합니다.
dukeofgaming

12
"... 어제 응용 프로그램이 너무나 ..." -수십만 명의 비 웹 응용 프로그램 개발자에게 이야기하십시오. "보자"대신에 "진짜가되자"는 어떻습니까? .NET과 PHP가 소프트웨어 작성을위한 유일한 선택이라면, PC를 다리 위에 던질 것입니다. 웹 응용 프로그램 만이 유일한 응용 프로그램은 아닙니다.
Justin ᚅᚔᚈᚄᚒᚔ

1
@ppumkin, 나는 여전히 사용자가 어리석은 일을 할 때 어셈블리를 읽는 법을 배워야한다고 강력하게 생각합니다.
Kortuk

1

귀하의 질문은 다소 광범위하며 많은 가능성이 있습니다. 작은 컴퓨터가 실제 물건과 상호 작용하는 방법에 대해 더 집중하고 있다면, Lego Mindstorms 키트 와 같은 것을 제안 해 보시기 바랍니다 . 이를 통해 로봇을 구축하고 프로그래밍 할 수 있습니다. 이것은 높은 수준의 플러그 앤 플레이이며 다양한 센서 등을 재생합니다.

또한 "진정한"EE가 센서를 설계하고 구축 할 수있는보다 기본적인 전기 공학이 중요합니다. Arduino 또는 Netduino와 같은 단일 보드 컴퓨터와 회로 기판을 구성하기 위해 저항, LED 등과 같은 다양한 구성 요소를 브레드 보드에 연결하는 브레드 보드를 사용하면 이보다 기본적인 수준에 가깝습니다. 이 시점에서 "내 LED와 마이크로 컨트롤러가 연기에 걸리지 않도록 전류를 제한하기 위해 LED와 직렬로 연결해야하는 값 저항은 무엇입니까?"와 같은 질문을 처리하게됩니다.

레고 키트를 사용하면 구성 요소를 함께 연결하기 만하면 멍청한 증거가됩니다.


1
실제로 "진정한"EE는 아마도 Ardunio와 브레드 보드를 사용하지 않을 것입니다.
Jeanne Pindar

@Jeanne-맞습니다. 그러나 우리 모두 Jeri Ellsworth가되어서 우리만의 트랜지스터를 만들 수는 없습니다. youtube.com/watch?v=w_znRopGtbE
JonnyBoats

1

PC 용으로 작성된 소프트웨어와 임베디드 응용 프로그램 용으로 작성된 펌웨어의 차이점에 중점을 둘 것을 제안합니다. C에서 솔선하십시오. embeddd linux가 널리 보급됨에 따라 펌웨어 엔지니어와 소프트웨어 개발자의 차이가 급격히 줄어들고 있습니다. 오픈 소스 임베디드 드라이버를 보면서 시간을 보내십시오.

나는 두 학문이 상당히 다르기 때문에 EE처럼되고 싶은 욕구에 대해 다소 의문을 제기 할 것입니다. 예, 겹치는 부분이 많지만 운전자쪽에 초점을 맞추고 전자 장치의 세부 사항에 얽매이지 않습니다.


그는 전자 제품에 들어가고 싶다고 말합니다!
stevenvh

내가 제안하는 것은 회로도에서 시작하여 IO 핀에서 다시 작업하는 것이 아니라 하향식 소프트웨어 측 접근 방식입니다. "소프트웨어 수준에서 설정된 전자 공학 기술"을 펌웨어 개발에 중점을 둔 것으로 해석하기 때문에 이것은 합리적인 것 같습니다.
피어슨

1

당신이 전자 배경을 가지고 있지 않다면, 우선 정말 괜찮습니다. 당신은 정말로 디자인하지 않을 것입니다 칩은 당신입니까?

그러나 전자 장치를 배우려면 먼저 저항, 다이오드, 트랜지스터 등과 같은 기본 사항을 먼저 확인하십시오. radioshack 또는 다른 공급 업체의 전자 제품 취미 키트는 다음과 같습니다. 다음으로 마이크로 컨트롤러로 이동하면 Arduino가 만들 것입니다. 정말 간단하지만, 당신은 이미 쉽게 만들어지지 않은 무언가로 갈 것을 조언하고 싶습니다. Arduino는 정말 쉽고 사용자에게 많은 도전을하지 않습니다. AVR, PIC 또는 8051 마이크로 컨트롤러에 의해 시작, 마이크로 컨트롤러 구입, 깜박 거리는 LED 프로그램 (전자 부서의 "Hello World")으로 시작하는 책과 스 라트 코딩을 보시 겠지만, 곧 매트릭스 키패드와 Seven Segment Display를 사용하여 더 많은 기본 사항을 배울 수 있습니다. 업무와 관련하여 다른 IC 및 센서 네트워크와 장치를 인터페이스합니다.개발 보드에는 이미 이러한 기능 중 일부가있을 수 있으며, 항상 쉴드 또는 브레이크 아웃 보라 드를 쉽게 구입할 수 있다면 모두 귀하에게 달려 있습니다 ...

나는 또한 당신이 그들이 사용하는 플랫폼에 대해 회사에 확인하도록 조언 할 것입니다. 이것은 당신에게 마이크로 컨트롤러에 대해 배울 방향을 줄 것입니다. 당신은 이미 프로그래머이기 때문에 이것은 당신에게 정말 쉬운 것으로 입증되고 항상 로봇과 같은 취미 프로젝트를해야합니다 그리고 다른 것들 중에서 LED 매트릭스, 이것은 당신이 지루하지 않을 주제에 대해 당신을 염두에 둘 것입니다!

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.