Forums

需要嵌入式系统项目/咨询

开始于 tahir_miriyev 3 years ago6回复最新回复3年前114浏览

嗨,大家好, 

我正在做一个嵌入式系统项目,确切地说是电子棋盘。目前,我正在研究并试图准备我将需要的电子组件清单,并大致了解我应该做什么以及从哪里开始。该项目分为三个主要部分 

1.设计一些PCB,其中集成了传感器,LED,多路复用器,Raspberry Pi,LCD屏幕和其他组件。这些PCB相互连接,在每个PCB上构建的模块之间进行数据交换。它们构成了电子板的骨架。 


2.软件设计(不是从头开始,而是要进行高度改进),尤其是采用了Chess Engine时,我必须对一些新功能进行编程,这些功能将在以后作为电子棋盘作为工作原型来执行。另外,我必须设计一个UI,因为用户在分析LCD屏幕上的内容时必须与按钮进行交互。简而言之,这与在线下棋时在屏幕上看到的内容非常相似,但是版本有了很大的改进。 

3.棋盘本身的设计(产品设计)。

在下面,我写下了我担心的一些问题,如果您能按照我指示的顺序对所有或其中的一些问题有所了解,我将非常感激:

问题1:电子,软件和产品设计都是相互联系的小节,应仔细设计每一节,以确保一切正常运行。但是我不确定应该从哪一部分开始?我应该先设计电子产品,完成所有PCB的设计,然后传递到构建软件,最后设计电路板吗?还是另一种方式?与订单混淆。

问题2:我几乎没有电子学和设计经验,也没有软件工程经验。我应该从嵌入式系统,虚拟PCB原型设计,软件工程等方面的一般教程开始,花上几个月的时间,然后传递我必须解决的特定问题吗?还是我应该面对特定的问题,特别是寻找有关如何解决它们的相关材料?  

问题3:我为该项目获得了一些资金,这只能让我购买一些电子零件。我所坚持的是是对所有PCB进行虚拟原型制作还是购买许多面包板,并尝试人工构建电路,并观察实际情况?我什至不确定我是否可以虚拟化所有东西的原型并看到我想要的精确模拟?我没有虚拟PCB原型设计方面的经验,但是如果那是我必须继续的工作,那么我会学到的。 

问题4:是否可以由我自己(没有团队)在一两年内完成项目? 

问题5:以前有没有人与Chess Engines合作?是否有可能修改引擎并为其添加一堆新属性和功能的想法?还是应该从头开始构建软件?最后,电子棋盘应该运行软件/引擎并执行一些任务。 

非常感谢您的宝贵时间,在此先感谢您! 

祝您发展顺利,期待您的答复。谢谢! 

[-]
回覆者 迈克尔·凯莱特2018年6月18日

不好意思地说,但是您根本无法尝试这个项目真是太疯狂了。如果您对软件工程一无所知,那么自从计算机诞生以来,无数胜任的工程师几乎一直在不断努力,因此您希望如何改进这个主题。

我不确定您正在学习什么课程,但是我认为您的导师需要认真考虑他们的要求。

您主要是向我们介绍您没有经验的事物,反之亦然,您所经历的(或擅长或真正想擅长的)事物-您是否可以利用这些技能制作电子棋盘,以某种方式新颖吗?例如,如果您是一个出色的雕刻家,那么只需购买除棋子之外的所有东西,然后自己雕刻。如果您没有相关技能,请选择其他项目。

MK

[-]
回覆者 tahir_miriyev2018年6月18日

感谢您的答复,凯利特先生, 

我会同意这个项目很艰难的事实。我在这三个小节中都有各自的经验,尤其是具有C,C#和Python的编程技能,SolidWorks和基本电子产品的CAD建模。我刚获得应用数学学位,重点是工程应用(机器人和计算机科学)。去年我已经为这个项目开发了一个4x4的演示版,为期6个月,功能范围更广。但是,我的所有尝试都取得了成功,这与我现在想做的只是规模较小。这个项目不是一项任务,而是我自己的项目,我希望自己或与一个好的团队在接下来的2年(最多3年)内完成。实际上,我想开发的东西不是创新技术上的改进,而是一种设备可以执行的某些附加功能(关于软件部分)。我在Arduino和Raspberry Pi上有自己的业余项目大约2年的经验,我一直在尝试所有实践,而没有进行大规模的认真电路设计,之前制作PCB或构建软件。电子,产品设计和程序设计是我最热衷的东西,我想在这些领域提高自己的技能,只是决定从事一个更严肃的项目。 

我可能在帖子中不得不提及我的背景,以便人们可以更客观地判断并提供一些实用建议。先生,谢谢您的关注。祝您项目顺利。 

[-]
回覆者 拉斯洛2018年6月18日

你好,

没有任何经验或背景,也许您从简单的事情开始,例如拿一个Arduino板并使某些LED闪烁,然后使用带有简单电路的面包板。

当前的项目将超出您的级别,并且只会使您感到沮丧。

在尝试跑步之前,请先学习走路的知识。

[-]
回覆者 CustomSarge2018年6月18日

嗯,我很欣赏野心,但是工作范围和您的经验水平使这成为一项艰巨的任务。也就是说,这是我要遵循的方式:

>>首先,建议:面包板一切,仅适用于PCB已知功能模块。尽可能地模块化,更简单的功能使调试变得非常容易。不要陷入互连的数量限制中,您可以稍后集成,现在访问更为重要。

>设计和建造显示器。找出驱动和测试的简单方法。设计电路板的图像,还要设计电路板状态的数据格式。在展示设计中使用“主要”产品,他们必须予以批准。

>制定可以记录游戏所有状态的审核跟踪过程。使它可以某种文件格式(可能到USB驱动器)可交换。这是一个游戏功能:查看&从任何点开始重玩游戏。可读的文本格式会占用更多空间,但会受到用户的重视。如果有标准,则采用它。

>将驱动程序进化到您想要的UI中。让不断发展的指南成为您认为UI应该是的样子。

>制作2个UI驱动程序,并开发它们之间的交互方式。与朋友测试,直到看起来不错为止。您现在有了一个电子棋盘。

>向该项目的“主要”展示此原型。与他们一起使用它,并记下哪些地方行不通。实施并重复执行,直到您有一个可供两个人类玩家使用的流畅示例(也是游戏功能)为止。

>现在最困难的部分是:找到国际象棋引擎。 CE将从板状态获取输入,并将输出发布到UI。编写2个界面既艰巨又有趣,请尽情享受这一过程。 CE越开放,其输入/输出至关重要。

>这将花费您多长时间是未知的。我有40多年的经验,这种显示,显示和CE将是最困难的,而且UI也不小。

良好的狩猎-您正在跟踪大型游戏。<<<)))

[-]
回覆者 tahir_miriyev2018年6月18日

非常感谢您提供实用的建议,我发现它们非常有用,并将尝试仔细实施它们。我会尽力的,先生,谢谢!  

[-]
回覆者 mr_bandit2018年6月18日

哇..

首先,我同意其他回应。这将是EE / Embedded / CS 4年制大学课程的高级项目。

如果您对此一无所知,我首先建议您采用“纯”软件方法。创建一个象棋程序将与之交互的库。 (实际上,我将首先使用一个检查程序-同一块板,移动的部件,相同的传感器等)。具体来说,具有创建电路板数据结构,显示数据结构,读取传感器,照亮正方形等功能。这将成为以后与实际硬件的接口。鼠标单击代替手指触摸硬件版本上的正方形。

一旦工作,就可以开始使用硬件了。获取一个arduino工具包和一本好书,并从头开始。亚马逊拥有“ Elegoo EL-KIT-003 UNO项目超级入门套件和Arduino教程”,这是一个合理的起点。还有其他人。

查看hackerspaces.org。在您附近找到一个黑客空间。成为会员。其他成员可以帮助您学习编程和制作硬件。

但是-如果可以,以EE和CS相结合的方式报读一所好的大学。您将学习所需的技能,不仅是完成此项目,而且要拥有成功的职业生涯。