什么样的项目可以帮助软件工程师更像电子工程师?[关闭]


17

我是一名几乎没有电子学背景的软件开发人员,但是我想深入了解它,因为它与我正在做的工作(信息娱乐系统开发)有关。我是软件工程师,而不是电子工程师,所以我的背景/经验与应用程序级编程有关,也许与系统/网络编程有关。

我听说过Arduino是一个灵活的项目平台,我想知道什么样的项目可以帮助我背景的人挖掘电子工程的方法...从微控制器编程开始,也许与其他外围设备(如蓝牙)搞混,zigbee,wifi,音频,视频,我不知道。。。也许这是电子工程师课程期间的典型项目。

总而言之,我正在寻找的是一个典型/受欢迎的项目(学术或其他项目),该项目可以帮助软件工程师开发软件级别的电子工程技能。


可能是到iverilog后端的技术映射算法。
Standard Sandun '04

1
我建议您从一些555计时器项目开始。互联网上有无数的内容,它们将使您对电阻器,电容器以及某些情况下的电感器有一些基本了解,您需要熟悉一下这些知识才能真正知道您对更高级别的东西(例如,与单片机编程类似。之后,您可以开始使用Arduino,PICAXE或您发现有趣的任何平台。然后勇敢地开始从事您发现有趣的更大项目,并确保不要放弃。
AndrejaKo 2012年


1
我处于同一位置,我只是想尝试一下硬件。我带来了一个Arduino和一辆玩具遥控车,将它们连接在一起。不知道如何,但是它有效,而且很棒:)并不是那么困难,我以前从未写过C语言(这里是C#开发人员),并且在几个小时内就完成了一些基本工作。
TJHeuvel

什么样的项目?我建议一个电子项目。
joeforker

Answers:


10

这里有一些项目建议,对于软件开发人员来说并不难。它们看起来都很难,但是我非常喜欢尝试超出我的技能范围的项目。如果它们很有趣,引人入胜的项目,它们将使您快乐地拖拉整个学习过程。请记住,我们都在这里为您提供帮助。


LED矩阵

LED Matrix

这是一个完全数字化的项目,但充满乐趣(谁不喜欢LED)。您将需要一些驱动程序,例如ULN2803和微控制器。获取矩阵以告知时间或显示图片。我刚好可以在16x16绿色矩阵上显示Bjork的图片。


陀螺稳定泡沫飞机

得到一个泡沫飞机和几个微型副翼

Foam plane micro ailerons

您还需要具有模拟输出和一些微型OpAmp 的MEMS陀螺仪。将它们混合在一起,制成陀螺稳定的橡皮筋泡沫飞机。


机器人

每个人都喜欢机器人。像这样的小型机器人的妙处在于,您可以从非常简单的东西开始(只是向前驱动),然后逐渐增加越来越多的功能(传感器和决策制定),并不断学习。

Robot


5

如果您已经是软件开发人员,那么微控制器编程本身就不是真正的挑战,而且几乎没有电子方面的知识。至少不必这样,您不必处理各种类型的组件,而必须对电压和电流进行计算以使某些功能正常工作。

不过,微控制器套件可以帮助您获得控制权。您可以使用各种输入,数字和模拟以及输出。
尝试使用无处不在的恒温器

输入
除了电容器和电阻器之外,您还需要了解温度传感器(任何种类),放大器,运算放大器甚至晶体管。运算放大器,尤其是晶体管是基本的,它们在每个电路中都使用。

输出
要驱动继电器,您需要了解晶体管如何作为开关工作(这是最容易理解的应用程序)。

微控制器开发板通常具有显示它们,LCD或LED,或可以连接到一个显示模块。虽然这很有用(例如,用于调试)并且很有趣,但是它并不能帮助您理解电子设备。您必须制作自己的显示器(例如LED矩阵),并从软件和硬件的角度学习如何驱动多路显示器。

除了微控制器板之外,还拥有一个电子入门套件,该套件包含大多数用于简化电路的基本部件。当然还有一本好手册。电子艺术在这里非常受欢迎,尽管上次我看到它应该进行更新。


1
如果您对恒温器感到厌烦,则可以升级到实施PID控制器。:)
尼克·约翰逊

整洁的项目构想,融合了广泛的电气和电子概念。在分立组件中完成此项目后,您可能希望转向微控制器来完成相同的工作,从而了解微控制器的优缺点(灵活性)和缺点(比较成本)
SimonBarker,2012年

5

掌握PSoC开发套件。所述的PSoC是包含重新配置的数字和模拟模块的微控制器。您基本上可以使用IDE来连接数字和模拟原理图。这些原理图然后在PSoC芯片内部实现。

PSoC Creator

您可以充分利用数字和模拟电路设计,并将其与同一IDE中编写的软件结合使用。


2
这是一个不常见的起点。PSoC是一个非常复杂且异常的系统。您是否以此为起点成功地培训了其他人?
凯文·维米尔

内部可能很复杂,但使用起来却是一个梦想。他们做了出色的工作,使所有内容都能顺利集成,并制作了许多不错的教程视频和文档。
Rocketmagnet 2012年

1
所有这些外设都集成在PSoC中的事实是反对的理由。如果您想学习,则应该自己构建这些系统。
stevenvh 2012年

2
@stevenvh一点也不。芯片内部的栅极布线和原理图中的栅极布线之间有什么区别?在概念上是相同的。
Rocketmagnet 2012年

@sandundhammika没有问题。我认为每个人都应该发现开发基于这些东西的应用程序是一种乐趣。
Rocketmagnet 2012年

5

Proteus是一个出色的软件驱动的原型制作平台。您可以使用大多数(如果不是全部)此处提到的MCU来构建PCB板和原理图;最重要的是,您可以像在自己的真实硬件上运行一样模拟源代码!

这个软件最好的地方是,您可以更改晶体,电容器,电阻器等变量,而无需焊接,拆焊,订购,而不必等到最终被原型板或屏蔽罩弄乱了。它模仿它完美。

也; 您会获得诸如示波器等虚拟工具。.您知道好的示波器的价格是多少?一笔财富!几乎所有其他功能和虚拟工具都包含了它。

它不是免费的,但是它可以节省您的时间和沮丧的价格绝对是合理的,而不必弄乱真正的硬件。


这样可以制作出真实的电路吗?
Rocketmagnet 2012年

是的,我在Proteus中制作电路,例如使用h-bride的attiny 861,并将其链接到AVR Studio编译的十六进制文件。每次更改源代码并在AVRStudio中进行编译时,我都会在Proteus中进行动画处理,并且更改是即时的。而且我可以使用示波器,探头或电压表精确测量h-bride的输出。像我的真实原型一样。非常好
WillyWonka

3

我认为尝试学习所有东西只会导致很多混乱和浪费时间。恕我直言,您应该尝试集中您的兴趣:您说过信息娱乐系统需要它,对吗?

一种方法可能是了解其中一个系统是什么:

  • 处理单元(可能是微控制器或简单的计算机);

  • 某些显示器驱动程序;

  • 用于用户交互的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(基于第5版的Visual Studio)

您还需要实现每个开发套件的功能。

在此处输入图片说明

它基于Atmega芯片,但它们使用低时钟速度的芯片(8mhz,16mhz),但具有完成各种位和跃点的能力。这是学习电气工程的一个很好的起点,因为它具有免费的IDE和庞大的社区,其中包含大量的代码和库。如果您从这里学习,则在语法和代码移植方面将更容易转移到其他基于AVR的芯片上。

它的功能非常有限,例如,不要期望通过内部的微型Web服务器将视频数据中继到Internet。这些MCU不能同时处理数据和要做的事情,但是一旦您达到那个水平,那么最好升级到.NET或32Bit AVR的。

  • AVR 32

这些家伙可以自己处理LCD,视频,Web服务器,无线以及其中的大量负载。它们的处理速度也开始大大提高。但是,在开始研究这些产品之前,您需要意识到有几种产品还具有特定的功能。例如触摸感测,无线通信,超低功耗,有些产品是混搭在一起的,这需要在使用后进行适当的研发过程。这些坏男孩。

  • 德州仪器

小心一点

它们提供了出色的市场领先芯片,当您阅读它们时,它们会很棒。不幸的是,没有免费的IDE,它们需要花费数千美元的许可费。虽然,某些产品(例如MSP430)具有免费的IDE,但分配的内容尚不明确,尚不清楚。此外,学习一些TI芯片的库绝对是一个噩梦。但这是一个小众市场,您可以在这里获得高薪。

那里有很多devkit,我只是告诉您一些有关.NET认证的经验。我实际上是从Arduino Mega256开始的。

今天,我正在使用TI出色的SystemOnChips制作自己的PCB(小至1.5cmx1.5cm),运行纽扣电池长达2年。但是花了很多时间和耐心才能到达那里,我仍然觉得我对嵌入式系统一无所知...

祝好运 :-)


10
...您是在认真建议每个软件开发人员都使用.NET还是PHP?
尼克·约翰逊

@NickJohnson大多数。...转到Web主机提供商,您有两种服务器类型选择;Windows .NET-或-具有PHP的Linux LAMP。它不仅是我..我敢打赌,您就像是在Rails或C ++上的红宝石?我知道我只引用Web技术..但是昨天的应用程序是如此。
Piotr Kula 2012年

这是一个可爱的问题。我的主要专业经验是(写得很好)PHP,但我也精通Java,C&C ++,Javascript。
dukeofgaming 2012年

12
“ ...应用程序昨天如此……” -告诉成千上万的非Web应用程序开发人员。代替“让我们保持同步”,“让我们成为真实的”怎么样?如果.NET和PHP是编写软件的唯一选择,我将把PC架在一座桥上。Web应用程序不是唯一的应用程序。
贾斯汀(Justin)2012年

1
@ppumkin,我仍然坚决认为用户应该学习阅读汇编,以了解它何时在执行愚蠢的操作。
Kortuk

1

您的问题涉及面很广,会有很多好的可能性。如果您更专注于使小型计算机与物理事物交互的更高层次,那么我建议您看一下诸如Lego Mindstorms kit之类的东西。这样您就可以构建和编程机器人。这将是高度即插即用的各种传感器等。

电气工程还有一个重要的更基础的层次,“真正的” EE将设计和建造传感器。使用像Arduino或Netduino这样的单板计算机和一块面包板,在其中将电阻器,LED等各种组件插入到面包板中,以构建电路,这将更接近这一基本层次。此时,您将面临诸如“我应该与LED串联多少阻值电阻以限制电流,从而使我的led和微控制器不冒烟的问题”。

使用Lego套件,您只需将各个组件连接在一起,它们就变得易于使用。


1
实际上,“真正的” EE可能不会使用Ardunio和面包板。
珍妮·平达

@Jeanne-是的,但是我们不能所有人都是Jeri Ellsworth并制造自己的晶体管:youtube.com/watch?
v=w_znRopGtbE

1

我建议重点关注为PC编写的软件与为嵌入式应用程序编写的固件之间的区别。复习C。随着embeddd linux变得如此流行,固件工程师和软件开发人员之间的差异正在迅速缩小。花一些时间看一看开源嵌入式驱动程序。

由于这两个学科截然不同,因此我会有点想成为一名EE的愿望。是的,这里有很多重叠之处,但是要集中在驾驶员一侧,不要对电子部件的细节感到困惑。


他告诉你他想进入电子领域!
stevenvh 2012年

我建议的是一种自上而下的软件方方法,而不是从原理图开始并从IO引脚开始工作。这似乎是合理的,因为我将“软件级电子工程技能”解释为专注于固件开发。
spearson

1

首先,如果您不是来自电子领域,那真的很好,您真的不会设计芯片吗?

但是,如果您要学习电子学,我建议您首先学习电阻,二极管,晶体管等基础知识。radioshack或其他任何供应商提供的电子学爱好套件都可以。它确实很简单,但是我建议您使用尚未变得简单的东西,Arduino确实非常简单,并且在用户面前没有太多挑战。.从AVR,PIC或8051单片机开始,购买一个微处理器,a从闪烁LED程序(电子学系中的“ Hello World”)开始,进行书本和srart编码,如您所见,您将立即使用矩阵键盘和七段显示器来学习更多基础知识,工作,将您的设备与其他IC和传感器网络接口,这与您的工作有关。您的开发板将已经具有这些功能中的一些功能,如果您不具备这些功能,那么您始终可以轻松购买可购买的书架或突破式护栏,那么一切都取决于您...

我还建议您向您的公司查询有关他们正在使用的平台的信息,这将为您提供有关微控制器学习的指导,并且由于您已经是程序员,因此对您来说应该很容易,并且始终从事诸如机器人之类的爱好项目以及LED矩阵等,这会让您时刻注意不会感到无聊的主题!!

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.