Robotics vision and control system engineer
Macroware
Automating Automation
Configurations can be easily visualized and controlled by incorporating images, text lines, geometric forms, and dynamic graphics, enabling the identification of mouse actions, including position and clicks and keyboard actions.
Each function comes with a standard value, providing the option to save functions without immediate input. Subsequently, mandatory variables is created with suitable names and can be connected as needed in other functions. Input fields are pre-set with standard values, which can be easily modified if deemed necessary, offering flexibility in customization.
Variables between functions can be effortlessly connected through a dropdown list or, for more advanced integration, by addressing them with <v"Variable"v>. These variables can then be combined in numerous ways, offering a wide range of flexible and powerful combinations for functions input.
Variables containing separated values can be easily accessed directly within a function by utilizing <v"Variable".:0v>, allowing one to retrieve in this case the first value of a variable with distinct values separated by in this case a colon sign : .
Simple arithmetic +-*/ operations can be directly employed within functions. For instance, to add a value to a variable, one can use <s<v"Variable"v>+123m>, showcasing the ease of incorporating basic arithmetic calculations.
The "Option" feature allows users to type '<v' in a text field, prompting a dropdown list of all available variables. Users can then choose the desired variable, press enter, and the correctly formatted variable assignment is automatically inserted into the text field. This streamlines the process of referencing and utilizing variables within the software.
Connect values between concurrently running configs(Threads), the write/read thread memory functions are available. These, similar to standard variables, can be read within functions using the command <r"Address":"SubAddress"r>. With a total of 5 addresses and 2000 subaddresses available, this provides a versatile space comprising 10,000 variable positions. And can ofcourse also be combined with Simple arithmetic and easy access of separated values defined above.
The software packages includes an advanced example of a visualized and controllable environment that can be initiated by simply starting the program and running the designated macro. The configuration is automatically loaded, as specified in the options tab. Users have the possibility to alter and use this configuration according to their preferences and specific needs as one see fit.
not.
The configurations are derived from the development of a drone configuration. While it's evident that peripheral devices need to be connected to the Raspberry Pi for the configurations to function optimally, this example serves as a foundational template for various projects. Importantly, it illustrates how configurations developed in Linux seamlessly translate to other platforms, such as Windows. This interoperability enhances the flexibility and accessibility of Macroware for diverse applications.
Additionally, Macroware software package features a clock configuration named clock.cfg with a touch of psychedelic aesthetics. This serves as a demonstration of how vector functions can easilly be seamlessly incorporated, along with advanced variable manipulation, into text fields. This showcases the software's ability to create visually engaging and dynamic configurations with minimum effort and maximum readability.
Config file execution in Macroware allows you to run configuration files with arguments to and from the program. When utilizing separated input and output, there is no limit to the number of variables that can be referenced. This flexibility ensures efficient and dynamic interaction with configuration files, allowing seamless integration of numerous variables into your Macroware workflows.
Simultaneous execution allows for running multiple configurations concurrently, facilitating efficient multitasking. With the support of multi-core processors, this capability significantly enhances speed and overall performance, offering a seamless and optimized experience.
A CRC check function is available to ensure data consistency during transfers or verification processes. This feature serves as a reliable tool to guarantee the accuracy and integrity of transferred or verified data.
The software has the capability to retrieve camera images from a connected Raspberry Pi camera. It provides the flexibility to manipulate, present, and analyze the images according to the user's preferences and requirements.
Support for Sequent Microsystems hardware: Seamless integration with a range of hardware.
In Macroware, the "Recognize and find patterns on the screen" function empowers you to identify and recognize patterns on your computer screen. This feature includes several capabilities:
Learn Patterns: You can teach Macroware to recognize specific visual patterns on the screen. This involves selecting an area of the screen that contains the pattern you want to identify.
Return Screen Coordinates: Once a pattern is learned, Macroware can provide the screen coordinates (X, Y) of that pattern.
Save to Variable: The obtained screen coordinates can be saved to a variable, allowing you to reference and use these coordinates in subsequent actions.
Mouse Move and Press: With the identified pattern, Macroware can be instructed to move the mouse to that specific area or offset area and perform a mouse press action.
This functionality is particularly useful for automating tasks that involve interacting with specific visual elements on the screen, allowing for precise control and manipulation based on learned patterns.
Facilitate seamless reading and writing of variables or text directly to Excel documents.
Encrypt and decrypt files with up to 256-bit AES encryption standard.
The download package also includes a configuration to convert Time_ms to date and time from Siemens HMI panel log files.
A configuration imitating the classic game Snake is available in the software package. It's important to note that Macroware is not specifically intended for game development and is not optimized for that purpose. However, this configuration serves as a demonstration of the versatility and possibilities that can be achieved with Macroware. The fact that a fully functional version of such a game can be implemented with under a total of 100 instructions showcases the sheer power of Macroware.In addition to the classic Snake game, a fun new version called "Snake Gigantor" is now available!
Introducing also "Snake Gigantor vs. Pacman Family" – an even more advanced and thoroughly enjoyable game. Inspired by classics such as Snake, Pacman, and the Intellivision's retro game, Shark! Shark, this game stands out as a captivating hybrid.
Demonstrating the impressive capabilities achievable with just 170 instructions in MacroWare. Explore the advanced features and witness the potential of this powerful tool.
Function for retrieving keyboard inputs, allowing users to access keyboard keys. This feature enhances interaction possibilities within the software.
function for sending files over networks, expanding the software's capabilities to facilitate efficient file transfers.
To run Macroware, it is essential to have either the Apache or OpenJDK Java package installed on your system. Although these packages are commonly used by other software and propably already installed, but if they are not present, you can download and install Java from the official website:
(www.java.com)
After successfully installing Java, you should be able to run Macroware on your system without any issues.
Enhanced Vision Tools: Expect more extensive vision tools, including Optical Character Recognition (OCR) and advanced object recognition capabilities.
Vision Camera Prototype: A vision camera prototype, built on Raspberry Pi and Sequent Microsystems I/O card, is in the works. While fully functional within Macroware, it's currently in the prototype phase, addressing casing considerations and exploring additional vision functionalities.
OPC Support: Future updates will bring support for OPC (OLE for Process Control), enhancing interoperability with various industrial automation devices and systems.
Raspberry Pi Image Package: Look forward to a complete Raspberry Pi image package, bundled with Macroware software, full camera support, and Sequent Microsystems I/O compatibility, complete with pre-installed drivers for seamless integration.
3D Files for Vision Camera Casing: DIY enthusiasts will appreciate the availability of 3D files, allowing you to 3D print your own vision camera casing. This feature adds a customizable dimension to the hardware component of Macroware's vision capabilities.
In the latest update, Macroware introduces several new functions, enhancing its capabilities. Noteworthy improvements include refined support for Raspberry Pi serial communication and I2C communication, among other enhancements. The version numbering system has been updated to provide clarity on the nature of changes: x.y.z
x (Major Revision): This denotes significant changes that may impact the overall look and feel of the software. It represents a major overhaul of the application.
y (Major Update): Major updates indicate that some old configurations may not function as expected, unless otherwise stated. This signals substantial changes that may affect compatibility.
z (Minor Update): Minor updates focus on bug fixes and the addition of functions. Old configurations should continue to work seamlessly.
Testing of the latest version involved designing a drone using Macroware as the control system, running on a Raspberry Pi. Serial communication was established with an Arduino, responsible for managing motor speed, servo direction, sensors, and more. The drone is part of an ongoing 3D modeling project for a printer and is currently in development. Upon completion, the entire project will be released as a comprehensive DIY (Do-It-Yourself) kit, showcasing the practical applications and capabilities of Macroware in real-world projects.