Hey guys,
I am working on a project in which I will energize a series of electromagnets embedded underneath the surface of a mouse pad at the appropriate time depending on information from a PC to an Arduino, which in turn will energize one or more electromagnets at the appropriate time. The energized electromagnet will attract an iron core that will be placed in the centre of an optical mouse.
Attached below is a simple schematic showing only the circuit for 1 electromagnet (I will have a total of 25 of them placed in a particular orientation on the pad).
Component Data Sheets:
MOSFET: http://www.fairchildsemi.com/ds/BS/BS170.pdf
Diode: http://www.nteinc.com/specs/original/1N4001_07.pdf
Electromagnet: http://www.cn-hcn.com/en/product_show.asp?id=171
As you can see, the electromagnet is rated for 3W at 25N/2.5Kg holding force.
For the PC-to-Arduino stage, I plan on coding some kind of simple GUI on Visual Basic that will transmit real time data to the Ardunio, which I will analyze in the Arduino end and energize the electromagnets accordingly. From there, that energized electromagnet will attract the mouse and the mouse will move to that particular location on the mouse pad.
Questions for you:
1. Are my choices of components good for this electromagnet spec? Does this circuit need any alterations? I could not find the current requirement for them, but I am pretty sure I will be using the 12V supply but I can change this.
2. Is Visual Basic a good choice for the PC end of things to communicate with an Arduino in order to send it real time data? OR maybe I should use Processing since it is specifically designed for arduino?
3. One of the biggest challenges I can see here is not knowing the mouses position on mouse pad at any given time. This means that the proper data can be transmitted on a OnMouseHover command (just an example) in the GUI, which will cause a certain electromagnet to be energized. However, the actual physical mouse position on the pad may be too far from that particular electromagnet and will feel no attractive forces. How can I accommodate for this and somehow map the physical location of the mouse to the virtual location.
I would appreciate further input if I missed anything guys and appreciate all help. Thanks very much.
I am working on a project in which I will energize a series of electromagnets embedded underneath the surface of a mouse pad at the appropriate time depending on information from a PC to an Arduino, which in turn will energize one or more electromagnets at the appropriate time. The energized electromagnet will attract an iron core that will be placed in the centre of an optical mouse.
Attached below is a simple schematic showing only the circuit for 1 electromagnet (I will have a total of 25 of them placed in a particular orientation on the pad).
Component Data Sheets:
MOSFET: http://www.fairchildsemi.com/ds/BS/BS170.pdf
Diode: http://www.nteinc.com/specs/original/1N4001_07.pdf
Electromagnet: http://www.cn-hcn.com/en/product_show.asp?id=171
As you can see, the electromagnet is rated for 3W at 25N/2.5Kg holding force.
For the PC-to-Arduino stage, I plan on coding some kind of simple GUI on Visual Basic that will transmit real time data to the Ardunio, which I will analyze in the Arduino end and energize the electromagnets accordingly. From there, that energized electromagnet will attract the mouse and the mouse will move to that particular location on the mouse pad.
Questions for you:
1. Are my choices of components good for this electromagnet spec? Does this circuit need any alterations? I could not find the current requirement for them, but I am pretty sure I will be using the 12V supply but I can change this.
2. Is Visual Basic a good choice for the PC end of things to communicate with an Arduino in order to send it real time data? OR maybe I should use Processing since it is specifically designed for arduino?
3. One of the biggest challenges I can see here is not knowing the mouses position on mouse pad at any given time. This means that the proper data can be transmitted on a OnMouseHover command (just an example) in the GUI, which will cause a certain electromagnet to be energized. However, the actual physical mouse position on the pad may be too far from that particular electromagnet and will feel no attractive forces. How can I accommodate for this and somehow map the physical location of the mouse to the virtual location.
I would appreciate further input if I missed anything guys and appreciate all help. Thanks very much.
Attachments
-
25.8 KB Views: 33