raspberry pi gui language - Page 1
Forum section: electronics / general

author: snarkysparky
author_rank: Frequent Contributor
timestamp: September 21, 2019, 06:09:22 pm
content: I will start work developing controller for a machine. It needs a touchscreen and an OS for Ethernet communications.The first take suggests using a raspberry pi but what environment to develop in.The project will outlive me so a primary concern is not have a great number of "magic steps" to modify and build the code.How about Mono running a c# program?I think the company would buy a development environment if available.What is the easiest to get started in and most reliable. And supported down the road.Thanks

author: MarkF
author_rank: Super Contributor
timestamp: September 21, 2019, 06:48:34 pm
content: Where I use to work, we used Qt to develop our programs so that they were executable on both Windows and Linux.It is C/C++ and has support for graphics, GUI's, network TCP/UDP.A quick search shows they now support Raspberry Pi:https://wiki.qt.io/Raspberry_Pi_Beginners_GuideIn our case we were able to use their "(L)GPL v3 license" (so no cost).https://www.qt.io/download

author: snarkysparky
author_rank: Frequent Contributor
timestamp: September 21, 2019, 07:27:44 pm
content: MarkFQt looks awesome. I have two hurdles to overcome.Commercial version 5500/yr may be a non starter.License restrictions for free version may not be acceptable.Thanks for the suggestion. Will propose to this and see what happens.

author: FreddieChopin
author_rank: Regular Contributor
timestamp: September 21, 2019, 07:46:23 pm
content: if size isn't an issue consider using ordinary PC with micro atx board. Slightly larger than R-Pi but vastly more powerful and wont fail because of SD card corruption.

author: rstofer
author_rank: Super Contributor
timestamp: September 21, 2019, 07:57:26 pm
content: Linux is not a real-time operating system so using it for machine control is probably ill-advised. It has other problems, notably crashing the file system if power is interrupted. Do some homework on this! Take your grunt level Pi and run a few things. Let it work for a while. Now, watch the SD LED when you issue a shutdown command (no matter how you do it). All that disk activity that takes a few seconds to complete is buffered data that is probably important. A UPS system can help... Whether the EXT3 type filesystem is an improvement is above my pay grade. I have scrambled enough Pi's to realize this is a real problem.So, you probably need to partition your project into some kind of microcontroller doing the real-time machine work and something else (maybe Raspberry Pi if you can get around the file system issues) doing the high level communication.Python may be practical for implementing the GUI with the available librarieshttps://blog.resellerclub.com/the-6-best-python-gui-frameworks-for-developers/The new Raspberry Pi 4 is a decent desktop machine. You could do all of the development work on a target machine. That's the real advantage of the Pi. Especially the Pi 4... If you partition into a separate control processor, there is every chance that you can develop that code on the Pi 4 as well. Especially if the controller is ARM based. Depending on IO requirement, maybe the Teensy 4.0 is a candidate for a controller. FreeRTOS is probably the real-time system of choice if one becomes necessary.

author: snarkysparky
author_rank: Frequent Contributor
timestamp: September 21, 2019, 08:13:37 pm
content: rstofer.Given the issues with the pi maybe it isn't a good choice.The product will only be a bridge and master controller between two other machines communicating over TCP/IP.Won't be controlling any IO that I know of yet.I have experience with ARM Cortex M0+ I would have to get IP stack and a custom touchscreen controller running though in addition to the control software.Thanks for all the valuable information.

author: Kilrah
author_rank: Unknown
timestamp: September 21, 2019, 09:04:34 pm
content: Quote from: rstofer on September 21, 2019, 07:57:26 pmSeems his purpose is only an HMI, not actual control. Even with a non-RT OS the slowest link is by far the H...I've used multiple pi-based projects where the system was set up to only mount the root FS read-only, so no flash wear or improper shutdown issues.User data if any can be saved to another partition (or multiple as redundant copies) that uses a safe filesystem, or kept on a network server.That may or may not be possible in OP's case.Of course use industrial grade SD cards too.There are also ready-made, simple to develop for HMI solutions out there, some links in here (although they tend not to feature Ethernet...):https://www.eevblog.com/forum/projects/self-contained-(hw-sw)-graphics-module/msg2655792/#msg2655792

author: rstofer
author_rank: Super Contributor
timestamp: September 21, 2019, 10:11:01 pm
content: Quote from: Kilrah on September 21, 2019, 09:04:34 pmThat’s likely. Mechanical limits can be handled outside the controller but often aren’t. My CNC mill handles the limit switches internally. Response time is important.In this case we know nothing about the machine.

author: knapik
author_rank: Regular Contributor
timestamp: September 21, 2019, 11:13:11 pm
content: Quote from: snarkysparky on September 21, 2019, 07:27:44 pmWhy would that be an issue when all you're doing is designing a program using the language?

author: MarkF
author_rank: Super Contributor
timestamp: September 22, 2019, 12:42:50 am
content: Quote from: knapik on September 21, 2019, 11:13:11 pmThe tricky part comes when you try to sell something. What the license allows you to do and what license the customer needs buy in order to use the product. There was a developer part and a run-time (deliverable) part.You really NEED to study their license options and what each is allowed to do. We (i.e. the Navy) started with the commercial version and found we could do what we wanted with the free version.It has been some time, but I believe the commercial license had a limit on the number of developers too.Again, study all their license options!

author: jhpadjustable
author_rank: Frequent Contributor
timestamp: September 22, 2019, 07:08:05 am
content: Tk is free and has bindings for more languages than Qt does.

author: FreddieChopin
author_rank: Regular Contributor
timestamp: September 22, 2019, 07:21:51 am
content: Quote from: jhpadjustable on September 22, 2019, 07:08:05 amIt also looks badder than Windows 98. I helped design UI/UX for plc controlled machine - we used off the shelf standard android tablet and customer was enjoying himself when he interacted with our designed machine because everything was so smooth and pretty. In short leave real time for ugly (realtiem) code and use Android or jailbroken iOS for UX stuff.

author: andersm
author_rank: Super Contributor
timestamp: September 22, 2019, 10:46:00 am
content: Qt4, WxWidgets. Another option is to use a full-screen/kiosk mode web browser.Edit: I'll second Freddie, something running Android is a good option, and is something you see more often.

author: kripton2035
author_rank: Super Contributor
timestamp: September 22, 2019, 12:34:24 pm
content: take a look at Xojo :https://www.xojo.comthe licence for compiling to a raspberry pi is free.you will be amazed how easy it is to create a gui for a Pi...

author: ebclr
author_rank: Super Contributor
timestamp: September 22, 2019, 12:42:50 pm
content: Take a look this may helphttps://wiki.freepascal.org/Lazarus_on_Raspberry_Pi

author: fchk
author_rank: Frequent Contributor
timestamp: September 22, 2019, 06:14:37 pm
content: Just have a look at:https://www.olimex.com/Products/OLinuXino/A64/A64-OLinuXino/open-source-hardwarefor the board andhttps://www.olimex.com/Products/OLinuXino/LCD/LCD-OLinuXino-7/open-source-hardwarefor the display.There is both Linux and Android available for this board.Plus: You get all schematics and layout data for this hardware, so you could build your own versions as long as the processor is available. You don't get it for a Pi, and nobody can actually build a Pi because Broadcom won't sell you the controller chip.