1

I want to work in HMI domain and have started learning it.

In first stage I want to develop QT GUI based touchscreen application for ARM9 board. Can anyone please suggest how to go for it and any budget ARM9 Dev board with integrated touchscreen lcd for this purpose? I want to use opensource platform as much as possible.

I know I can do it with more ease on an ARM board which support some OS like (say) embedded linux or may be rasberry pi with java or QT based GUI. But I do not want to use OS rather want to develop just a simple touch screen GUI application to (say) turn a LED on the ARM board (without running any OS).

My next step of learning will be using touch screen GUI, Rasberry PI with raspbian, where I have already found numerous resources Online.

Gaurav K
  • 143
  • 6
  • If all you want to do is develop a simple touchscreen app without an OS, then an ARM9 and QT seems rather overkill. Something like a PIC18/24/32, or Cortex M0/M3 would be more than capable of running a reasonably sophisticated touchscreen app. Mentioning what your final goal is might be helpful, I'm assuming is to do more than turn on an LED (?) – Oli Glaser Mar 14 '13 at 08:48
  • @OliGlaser I mentioned LED Flashing as a starting point, I have to build more complex GUI which can control motor speed and take sensor readings, analyze it and display it. – Gaurav K Mar 14 '13 at 08:53
  • And why would you buy a cheap ARM9 dev board if you plan to switch to Raspberry later? Wouldn't be easier to take advantage of the OS and directly start with Raspberry? OSs are made to help the developer, not to make its life harder. – clabacchio Mar 14 '13 at 09:02
  • @clabacchio I want to explore both the options, for low end applications where my interface is simple I would not want to use OS to be overhead on my board resources. You can call it, I want to learn GUI programming both ways so that I can adapt to my actual needs – Gaurav K Mar 14 '13 at 09:06
  • @OliGlaser Could you please provide link to any resource interfacing PIC/18/24/32 or Cortex M3 for touchscreen application. I do have mbed Cortex M3 dev board – Gaurav K Mar 14 '13 at 09:10
  • @GauravK - Okay, I added an answer with some dev board links and basic info. – Oli Glaser Mar 14 '13 at 09:36

1 Answers1

2

If your goal is to explore/learn both midrange and high end options, then grabbing a PIC or Cortex dev board would be a good idea. If you are coming from a high end OS QT/Visual Studio type background, then learning the ropes on a memory/resource limited low level embedded system would certainly be a good idea if you plan to do both.

A PIC32 or Cortex M3/M4 would be capable of a touchscreen motor speed control/display application. The new M4's are especially powerful, I personally use ST's offerings, such as the STM32F4 series (you can get a very cheap and powerful dev board from them - the Discovery F4, ST's Page for the Discovery F4)

Here are some of Microchips Graphic Dev Board offerings, many of which plug into a larger mother board (browse around, there are various main board that have different plugins - I'd go for a PIC32 based one)
Mikroelektronika Olimex and other vendors also offer options, such as this PIC32 TFT range from Mikro and this STM32 M3 based LCD option from Olimex.

Bear in mind that with the ARMs decent IDEs are quite expensive unless you want to try going the open source route which can add a lot of extra learning time on to things (just setting up, before you even start with the firmware side of things)
On the other hand Microchip provide the excellent free MPLABX IDE and free versions of all their complers, so all you need is a programmer such as the PicKit3 or ICD3.

FWIW, I use Raisonance tools for the ARM stuff and the ICD3 for PIC programming/debugging. I'm happy enough with both (the Raisonance tools could be better, but they are cheap in comparison with some of the other options that will set you back a few thousand)

To go with the above a decent book like Programming 32-bit Microcontrollers in C is worth grabbing hold of to get you started. Plus make sure you check out all the App notes and User guides on the Vendors sites too.

EDIT - on the subject of an OS and fridges

I am not an expert on fridges, but it's very likely that many modern fridges do use an OS, just not the type you may have in mind. Microwaves, Dishwashers, Washing Machines, etc - they are all candidates for RTOS based systems.
Many embedded systems use an RTOS (Real Time Operating System) which can range from extremely simple to quite complex - the simplest RTOS is nothing more than a few timed tasks switching between each other at predetermined intervals (the most basic form of threading).
You can add complexity by altering the way in which the tasks are switched and the time is shared, for example you can give the tasks different levels of priority, so a higher priority task can interrupt lower priority one. Then you have messaging and events, and so on. There are different types of scheduling, such as: Cooperative scheduling, Round-robin scheduling, and Preemptive scheduling.
You can keep adding "features" until the RTOS resembles a "real" OS kernel of the type you may be more familiar with. However the point of an RTOS is that is as "real time" as possible, something that an OS like Windows is not good at being.
So for crucial timing control tasks (i.e. applications where incorrect timing may cause real problems or be dangerous - industrial, automotive, etc) an RTOS is very important.

To give you an idea, the most basic RTOS can be written with less than 100 lines of code (number picked out of the air, but it's in the ball park) but the more complex could be many thousands.

Here are a couple of documents on RTOS:

Wiki RTOS
RTOS Fundamentals
Basic concepts for RTOS

I also recall this book - Advanced PIC Microcontroller Projects in C: From USB to RTOS with the PIC 18F Series being quite good on introduction to PIC basics and finishing with a look at RTOS concepts. I'm sure there are other good ones out there too if you have a search on Amazon.
There is also a FreeRTOS PIC32 based book available.

Oli Glaser
  • 54,990
  • 3
  • 76
  • 147
  • Just out curiosity want to know, the touch screen application (say in a high end refrigerator) - do they use an OS for that purpose? I do not think so .. I read somewhere about GE Refrigerator touch screen panel using ARM9. Do u have any idea on this ? I want to learn developing something like that.. – Gaurav K Mar 14 '13 at 10:13
  • I don't know about the particular fridge you mention, but many modern consumer products use RTOS systems. So the (RT)OS is almost a certainty, and I guess if it uses an ARM9 it's for more than just the screen panel, it's likely for the whole fridge. Have a read up on RTOSes, and you can start using them when you get a dev board, there are free RTOSes out there (such as the aptly named [FreeRTOS](http://www.freertos.org/), plus OpenRTOS and others) – Oli Glaser Mar 14 '13 at 10:59