Stories
Slash Boxes
Comments

SoylentNews is people

SoylentNews is powered by your submissions, so send in your scoop. Only 18 submissions in the queue.
posted by Fnord666 on Monday March 04 2019, @01:44AM   Printer-friendly
from the micro-gooey dept.

Microcontrollers are wonderfully useful things, but programming them can be a little daunting if you’re used to the simplicity of compiling for regular PCs. Over time though, this has become easier. Communities have strayed away from assembly code and created higher-level languages such as Micropython, to allow these devices to be programmed in a more accessible manner. Unfortunately, Micropython has historically lacked a decent high-level GUI library. Thankfully, that’s no longer the case, with [amirgon] porting LittlevGL to the platform.

Putting a GUI into a project with a screen seems simple, until one actually gets down to brass tacks. A simple button can consist of a background color, text, and a symbol – and that’s not even considering the use of shading or other visual effects. Having a library to handle the grunt work can massively cut down development time.

[...] There are other approaches to this problem, too – with MyOpenLab being a particularly versatile example.


Original Submission

 
This discussion has been archived. No new comments can be posted.
Display Options Threshold/Breakthrough Mark All as Read Mark All as Unread
The Fine Print: The following comments are owned by whoever posted them. We are not responsible for them in any way.
  • (Score: 0) by Anonymous Coward on Monday March 04 2019, @05:53PM (7 children)

    by Anonymous Coward on Monday March 04 2019, @05:53PM (#809882)

    MicroPython contains provides dictionaries, lists, and many other higher-level data structures out of the box. In C they are not available

    It's twice the size of elua [eluaproject.net] with tables, pattern matching and a clean C API. Why would anybody use a microcontroller in place of a SBC if you're intending to code primarily in an interpreted language?

  • (Score: 2) by janrinok on Monday March 04 2019, @06:21PM (3 children)

    by janrinok (52) Subscriber Badge on Monday March 04 2019, @06:21PM (#809893) Journal

    I use a small microcontroller board that is provided by Pycom (Lopy4 [pycom.io]). Read the specification [pycom.io]. I can program it in MicroPython, Lua or other languages. The cost is €34.00. Please tell me of the SBC that can match that specification for the same price or less.

    • (Score: 0) by Anonymous Coward on Monday March 04 2019, @07:51PM (2 children)

      by Anonymous Coward on Monday March 04 2019, @07:51PM (#809944)

      Please tell me of the SBC that can match that specification for the same price or less.

      Raspberry Pi 3 A+ [ebay.com]

      • (Score: 2) by janrinok on Monday March 04 2019, @08:07PM (1 child)

        by janrinok (52) Subscriber Badge on Monday March 04 2019, @08:07PM (#809950) Journal

        The Raspberry Pi does NOT have LoRa nor SigFox built in, nor does it have most of the specification that I linked to. The WiFi and BLE are significantly less capable. It doesn't have a sleep mode which requires only 25 microamperes but is still capable of responding to interrupts from the GPIO pins. It is possible to run the LoPy4 on lithium batteries for weeks or months without needing recharging. You have read the spec, haven't you? The Raspberry Pi, of which I have 11 at present, is nothing like the same device.

        • (Score: 0) by Anonymous Coward on Monday March 04 2019, @11:03PM

          by Anonymous Coward on Monday March 04 2019, @11:03PM (#810032)

          Never heard of SigFox and I never claimed anything about power consumption which doesn't seem as relevant if you're scripting a UI with python as it would for a datalogger.

          It is possible to run the LoPy4 on lithium batteries for weeks or months without needing recharging.

          Do that on an Arduino nano if you bypass the voltage regulator and you can pick them up for $2 each. Depends on your use case.

          You have read the spec, haven't you?

          Not in depth just skimmed over stuff like Wi-fi and bluetooth. I typically have little use for these on microcontrollers but if I did want something more advanced than a little OLED, I'd employ networking to run the GUI on a phone, tablet or SBC.

  • (Score: 2) by janrinok on Monday March 04 2019, @06:52PM (2 children)

    by janrinok (52) Subscriber Badge on Monday March 04 2019, @06:52PM (#809914) Journal

    code primarily in an interpreted language?

    You are, I think, confusing MicroPython with Python. MicroPython also runs on bare metal in exactly the same way as eLua. If all you are arguing about is the choice of language then that is surely a matter of personal preference assuming that both have the same choice of libraries for the various functions (GPS, LoRa or whatever).

    http://micropython.org/ [micropython.org]:

    MicroPython is a full Python compiler and runtime that runs on the bare-metal. You get an interactive prompt (the REPL) to execute commands immediately, along with the ability to run and import scripts from the built-in filesystem. The REPL has history, tab completion, auto-indent and paste mode for a great user experience.

    MicroPython strives to be as compatible as possible with normal Python (known as CPython) so that if you know Python you already know MicroPython. On the other hand, the more you learn about MicroPython the better you become at Python.

    In addition to implementing a selection of core Python libraries, MicroPython includes modules such as "machine" for accessing low-level hardware.

    'Interpreted'? - I think not.

    • (Score: 0) by Anonymous Coward on Monday March 04 2019, @11:17PM (1 child)

      by Anonymous Coward on Monday March 04 2019, @11:17PM (#810041)

      If all you are arguing about is the choice of language then that is surely a matter of personal preference assuming that both have the same choice of libraries for the various functions

      I've not worked with lua for about 15 years but it was designed to be small and embeddible. I mentioned it in response to your C comment because you get strings, tables, pattern matching and a simple C API. With eLua, I do know you can build without the parser (etc) to reduce binary size. Size seems to be my preference when writing embedded code.

      'Interpreted'? - I think not.

      It is a bytecode interpreter is it not ;P

      • (Score: 2) by janrinok on Tuesday March 05 2019, @08:20AM

        by janrinok (52) Subscriber Badge on Tuesday March 05 2019, @08:20AM (#810178) Journal

        From http://micropython.org/ [micropython.org]

        a native emitter that targets machine code directly rather than the bytecode virtual machine

        However you asked:

        It is a bytecode interpreter is it not ;P

        No. it appears not....