• Welcome to our site! Electro Tech is an online community (with over 170,000 members) who enjoy talking about and building electronic circuits, projects and gadgets. To participate you need to register. Registration is free. Click here to register now.

CONSULTANCY IS NEEDED/ EMBEDDED SYSTEMS PROJECT

Status
Not open for further replies.

Tahir Miriyev

New Member
Hi everyone,

I am doing an embedded systems project, precisely, an electronic chessboard. Currently, I am doing research and trying to prepare the list of electronic components which I will need and to get the general picture of what should I do and where to start from. The project has three main subsections which are

1. design of some PCB's, with sensors, LED's, multiplexers, Raspberry Pi, LCD screen and other components incorporated. These PCB's are interconnected, data exchange happens between modules build onto each PCB. They make up the skeleton of the electronic board.


2. software design (not from scratch, but aimed to be highly improved), in particular, taken some Chess Engine, I have to program a few new capabilities which electronic chessboard will perform later on as a working prototype. Also, I have to design an UI, since a user will have to interact with buttons while analyzing stuff on the LCD screen. In a word, very similar to what one can see on the screen while playing chess online, but much much improved version of that.

3. design of the chessboard itself (product design).

Below I wrote down a few questions I am concerned about, I would be very thankful if you can shed some lights on all or some of them, in the same order I indicated:

Question 1: Electronics, Software and Product Design are all interconnected subsections, one should carefully design each section so that everything performs properly. But I am not sure which part should I start from? Should I design electronics first, finish with all PCB's, then pass to building software and lastly design the board? Or another way around? Confused with an order.

Question 2: I have little experience in electronics and design, and no experience in software engineering at all. Should I start from some general tutorials on Embedded Systems, Virtual PCB Prototyping, Software engineering etc,spend a few months on those, and then pass to specific problems I have to solve on my way? Or should I face the specific problem and particularly look for related materials on how to solve them?

Question 3: I received some funding for the project, which only allows me to buy some electronic components. What I am stuck with is whether to Virtually Prototype all PCB's or buy many breadboards and try to build circuits by hands and see how things work in practice? I am not even sure whether I can virtually prototype everything and see the exact simulation I would like to? I have no experience in Virtual PCB Prototyping, but If that's what I have to go on with, I will learn that.

Question 4: Is it possible to finish the project by myself (without a team) in a year or two?

Question 5: Have anyone worked with Chess Engines before? Any idea on whether it's even possible to modify the engine and add a bunch of new properties and functions to it? Or should I build a software from scratch? In the end, the electronic chess board should run the software/engine and perform some tasks.

I highly appreciate your time, thanks in advance!

Best of luck with your developments, looking forward to your replies. Thank You!
 

MrAl

Well-Known Member
Most Helpful Member
Hello there,

That's a lot of questions for one post. I can offer a few suggestions but that's all i think.

First, what kind of switches/sensors are you going ot use. An example for using 64 switches would be to use a microcontroller to sense switch closures, where you use multiplexing of 8 rows and 8 columns. We can call the columns a through h and rows 1 through 8. So when someone presses square a2 your uC scan makes note of that, and then if they press a4 you know they moved a pawn from a2 to a4, assuming the game starts from standard starting position. If they have the option of starting from Fischer Random then your program has to make note of the piece positions and convey that info to the user. This is done with LEDs along the rank and files, so that one LED lights up at 'a' and one at '2' for square a2 for example. A tone would also go with the pressing action to give the user some audio feedback. The commercial units usually use a membrane style board with momentary contacts.
So this arrangement not only allows your uC to sense what squares have been pressed and in what order, but also to be able to convey piece position placement from the uC system to the user. Thus if the 'computer' makes a move it can tell the user through the board LEDs what piece has been moved.

As to the engine itself, you should probably start from an open software engine and modify that as needed. Chess engines are pretty complicated so it's hard to design a strong play engine from the ground up. That's unless it does not have to be strong. There was one out there some 10 years ago called "GNU Chess" so you might look into that. The source code was written in the C language, so you would have to study that and see what you want to add to it.

Above all you should be aware of all the nuances of the game of chess, such as en passant and castling and pawn promotion, etc. You also have to be prepared for when a user 'takes back' a move, if you allow that, which you should.

Back in the last 1980's sometime i had to interface a chess board with an early type PC computer through the parallel port. However, i did not have to design the chess board itself nor the artwork for that.

The time it takes you to complete this task depends on how much experience you have in the areas of hardware design and software design. It may be possible to find a board already designed that you can start with, and that would save a lot of time. The board requires more care than the rest because the board is the main item that is presented to the user for human interface. That is of course unless you design the whole thing on the computer and then you just have the board appear on screen and the user makes moves via the mouse.
 
Status
Not open for further replies.

Latest threads

EE World Online Articles

Loading
Top