Charlotte Latin 2020 Week 12 Group Assignment

Interface and Application Programming

MIT App Inventor

Card image
  • MIT App Inventor is a web application integrated development environment targeted towards kids.
  • You can quickly make an app in the environment, using its blocks-based tools to create complicated apps.
  • It uses drag and drop blocks for behaviors and specific components.
  • Targeted towards Android phones using either a connected phone or an emulator. It stores your work and keeps track of projects.
  • Upon completing an app, you can package and produce it as a stand-alone application.


Card image
  • A “hardware fiddle” website that lets users create workspaces to communicate with their hardware from software
  • Javascript-based software workspaces
  • Allows users to fork somebody else’s workspace as well
  • Provides a Serial Port JSON Server that can be run locally or remotely on your computer which connects to the serial port of your hardware (ex: Arduino)


Card image
  • A python module that is used as a powerful interfacing tool that uses python for serial port communication.
  • Port is configured for binary transmission (making it universally usable)
  • Can access all port settings through this module
  • Provides (and automatically selects) backends for Python running on Windows, OSX, Linux, BSD (possibly any POSIX compliant system) and IronPython


Card image
  • Simulink is a software that runs with Matlab to allow users to design and simulate their systems without having to write C, C++, or HDL code.
  • Simulink allows collaboration between team members in a multi-domain environment. The simulations created can be shared between collaborators, or to suppliers and clients.
  • The simulations allow reduction in expensive prototypes by enabling the user to test their system under constrained conditions.
  • The software automatically generates C and HDL code that functions in accordance to the model the user creates.
  • The interface encompasses “a graphical editor, customizable block libraries, and solvers for modeling and simulating dynamic systems”


Card image
  • Platform with three major components being the Blynk App, the Blynk Server, and the Blynk libraries
  • The Blynk App allows users to create a simple interface for projects using the simple widgets that can be dragged and dropped
  • The Blynk server allows users to manage communications between a smartphone and hardware. Users can either use the Blynk cloud servers or they can run a private Blynk server locally. It is open source and can handle thousands of devices
  • The Blynk libraries allow users to communicate between the server and process all incoming and outgoing commands
  • Has a wide range of possible connections, including ethernet, wifi, GSM, 2G, 3G, LTE, etc.
  • It has a flexible firmware API, with a choice from C++, JS, Python, or HTTP


Card image
  • wxWidgets is a popular cross-platform library written in c++ for GUI applications
  • It covers a broad range of UI development from window layout to event handling
  • It supports a broad swath of platforms from Linux and Unix variants, MacOS, and Windows.
  • It has many wrappers and bindings written in popular languages such as Python, Perl, or C#.
  • It provides a useful set of features to compliment GUI features such as File IO, Networking, and threading.


Card image
  • Designed with a set of comprehensive tools to bridge the gap between Grasshopper (Rhino plug-in), the Arduino, and many other Input/Output devices.
  • Uses Drag and Drop Programming
  • Gives users a very friendly interface that receives or sends information easily. For example, opening COM ports and sending data to a microcontroller or receiving data from a certain port on that microcontroller. Alleviates the hassle of interfacing with external devices.
  • Prebuilt components allow users to use many popular hardware devices such as the Kinect (Motion detection or tracking) and the Wii Nunchuck.
  • Mostly used to interface with Grasshopper where visual inputs or sensory inputs taken using Firefly can be mapped to a 3D plane inside Rhino.
  • Here is a gallery section that provides many examples of projects integrated with Firefly.