To develop 2 arduino sketches to manage arduino uno and mega as IO boards with serial interface + window rs232 test client

Completed Posted 5 years ago Paid on delivery
Completed Paid on delivery

Job description with correct format is attached.

Required skills:

- arduino IDE + Arduino Uno + Mega

- windows development (vba or java)

Project:

1 - develop arduino uno and mega sketches to communicate with a PC thru the usb/serial port, change pin output status and detects changes on inputs. The pin configurations are predefined as inputs or outputs.

The sketch manages an internal unsigned long counter with resolution of .5 ms (or closest) to date sketch responses when rs232 queried (protocol described below).

The internal counter is based on microcontroller clock => the resolution can not be exactly .5 ms. So the tickreturned value has to be converted in half ms by the PC client.

Ex: tick controller is .4ms. The counter value is 4561231 ticks. So the counter millisecond value is: 4561231 * .4ms

This is an example, .4ms has to be replaced by the microcontroller clock period.

arduino uno:

The pins are configured as digital io as follow using pinout numbering:

- pins 12->13 (PB4->PB5) + 23->28 (PC0->PC5): inputs

- pins 4->6, 11->13 (PD0->PD7) + 14->17 (PB0->PB3): outputs

source & sketch names: [login to view URL] & .hex

arduino mega:

The pins are configured as digital io as follow:

- pins 20,22,36,38,40,42,52,50,54,56,58,60,72,74,76,78,82->97 : 32 inputs

- pins 1, 5, 6, 7, 15->18, 23->26, 19,21,35,37,39,41,51,70,77,75,73,71,59,57,55,53 : 28 outputs

source & sketch names: [login to view URL] & .hex

rs232 protocol(uno and mega):

Setup: 57600, parity none, databits 8, stop bit 1, no handshake ("57600,n,8,1")

- PC -> Arduino:

. change output: S(et),<pin number as described above>,<value: 0x00 means low state, not 0x00 means high state, range 0x00 to 0xFF>

Ex (uno): 0x53 0x2C 0x0B 0x2C 0x0F -> 0x53 is 'S'et, 0x2C is comma separator, 0x0B stands for PD5, 0x0F is not 0x00 so pin state is set to hight

. reset date counter: R(eset)

Ex: 0x52: where 0x52 is 'R'eset. The 4 bytes unsigned long counter are set to 0x00000000

. get pin status: G(et),<pin number, input or output>

Ex (uno): 0x47 0x2C 0x06: where 0x47 is 'G'et, 0x06 stands for PD4

. Arduino response: P(in),<pin number, as described above>,<date: internal 4 byte unsigned long counter>,<value: 0x00 for low state, 0xFF for hight state>

Ex: (uno): 0x50 0x2C 0x06 0x2C 0x52362154 0x2C 0xFF

means: pin 6 (PD4) is in high state (0xFF is not 0x00) at 1379279188 half of ms (or closest half ms tick)

. get date: D(ate)

Ex : 0x44

Response: D,<date: internal 4 byte unsigned long counter>

Ex: 0x44 0x2C 0x52362154

- Arduino -> PC:

. when an input change, then the arduino sends a change message to the PC:

C(hange),<pin number, as described above>,<date: internal 4 byte unsigned long counter>,<value: 0x00 for low state, 0xFF for hight state>

Ex: (uno): 0x43 0x2C 0x0D 0x2C 0x52362154 0x2C 0x00

means: pin 13 changed to low state at 1379279188 half of ms

2 - develop a trivial desktop app to upload sketch on the arduino, send rs232 commands to arduino board, display messages received from the arduino

- GUI: should allow to test above protocol and select Arduino serial port

- upload on the Arduino board the sketch thru a button (if possible, if not we want a very very simple procedure)

Environment - desktop:

- visual basic (2012) or eclipse/oxygen/javafx (prefered)

Environment - Arduino:

- arduino IDE + Arduino Uno + mega

Arduino Electronics JavaFX

Project ID: #18074675

About the project

9 proposals Remote project Active 5 years ago

Awarded to:

poduzov

Hello I'm an electronics engineer with 10+ years of experience including Arduino and Raspberry. Please tell me more about your project. Best regards, Dennis

$244 USD in 5 days
(6 Reviews)
4.6

9 freelancers are bidding on average $239 for this job

ahmedmohamed85

Dear sir I have more than 10 years experience in embedded systems design, and i have the hardware available with me, i read the project description carfully and i can do it perfectly, please message me so that we can More

$200 USD in 3 days
(192 Reviews)
7.2
SPARKtechBD

Real time experience on Arduino UNO/MEGA to build any kind of digital device. I have develop IoT device by using Arduino UNO/MEGA to send sensors data to the web server and Windows controller based hardware system also More

$750 USD in 15 days
(8 Reviews)
5.6
ganapathi92

hi, I'm Ganapathy I have rich experience in Arduino, PIC, ARM has written code in C,C++ and Assembly, Has developed protocol based applications, I can finish this project I would use Pin change interrupt to get Pin More

$100 USD in 7 days
(25 Reviews)
4.3
Kristsp

Hi, I can develop Arduino Uno and Mega sketches according to your description. However, making GUI software for communication and hex upload is out of scope for me. I can suggest serial client software for protocol tes More

$100 USD in 6 days
(6 Reviews)
3.5
NabilHunt

Bonjour, Je suis ingénieur en électronique, ayant travaillé sur plein de projets en systèmes embarqués .... J'ai lu la description de votre projet, et je pouvoir le compléter en 5~6 jours, Cependant, j'ai quelques qu More

$333 USD in 6 days
(4 Reviews)
3.1
maksmusings

Hi, I have 6 years experience in arduino based project development and pc software development and would love to work on this project. Please contact. regards, Ali

$166 USD in 10 days
(0 Reviews)
0.0
MarkGalon

Hi, I am interested on this project and I want to share my expertise with you in this project. I am an electronics engineer and IT programmer with over 15 years of experience. I do design of embedded systems and inter More

$100 USD in 2 days
(0 Reviews)
0.6