Debug: Database connection successful Robotics Education / Science, Technology, and Astronomy / New Mars Forums

New Mars Forums

Official discussion forum of The Mars Society and MarsNews.com

You are not logged in.

Announcement

Announcement: This forum is accepting new registrations via email. Please see Recruiting Topic for additional information. Write newmarsmember[at_symbol]gmail.com.

#1 2021-09-15 18:02:46

tahanson43206
Moderator
Registered: 2018-04-27
Posts: 22,954

Robotics Education

For SpaceNut ... I asked FluxBB if we had any topics with the words "robot*" and "education"

It came up blank so I am offering this topic for posts about opportunities that are now or will become available for individuals to learn about robots at the home study level.

I am NOT promoting any of the products that will (hopefully) show up in this topic.

My intention is to try to make available links to opportunities, and to provide a place for forum members to report on their experiences.

We (forum) are on the verge of embarking upon support of a challenging educational activity involving robotics.

Whether a specific activity happens or not is irrelevant.  Anyone interested in robotics can gain valuable experience with consumer grade products that work with tiny computers (Arduino, Raspberry Pi, etc)

To lead off, I'll post an ad that has been hitting my Internet feed ever since I asked Google what is going on with consumer grade robotics:

There is another ad that includes a video camera in the package.  I'll report that one as soon as it shows up again.

(th)

Offline

Like button can go here

#2 2021-09-15 18:27:39

SpaceNut
Administrator
From: New Hampshire
Registered: 2004-07-22
Posts: 29,760

Re: Robotics Education

Many a high school and other higher levels of education do have after school programs as part of stem out reach that teach about robotics.
The Portsmouth Naval Shipyard does such out reach to high schools to build min submarines from pvc pipe and small motors called sea perch.

fdaf7a35-fc27-42d3-a4ea-5aabfdc77544-Pic_2_-_Angela_Hampson.jpg?width=660&height=442&fit=crop&format=pjpg&auto=webp

navsea_banner_stem.jpg?ver=BWXgLDbvulaoL6446Zwotg%3d%3d

STEM Outreach Program comes full circle at PNSY

https://www.facebook.com/SeacoastSeaPerch/

Offline

Like button can go here

#3 2021-09-15 22:12:16

tahanson43206
Moderator
Registered: 2018-04-27
Posts: 22,954

Re: Robotics Education

Here is the second robot education kit that I've been seeing in the Internet feed:

https://www.banggood.com/Xiao-R-DIY-Sma … 3616dd08fe

This one has a web came mounted in the "head" so the operator can see the work being done remotely.

(th)

Offline

Like button can go here

#4 2025-10-20 15:30:32

tahanson43206
Moderator
Registered: 2018-04-27
Posts: 22,954

Re: Robotics Education

This topic goes back to 2021 ... Void has recently opened another topic about robots, and I am inspired to reopen this one.

I have two robot arm systems available to describe for NewMars members who might be interested in hardware rather than just words about robots (and the occasional picture).

One is a fully constructed robot arm kit that I bought thinking that I would have the energy and time to write software to allow the robot to be controlled by a Sony game controller.  It turned out that the work required is more than I had available.  Everything has been done already. There is information on how to create commands to move the robot arms and components, and there is information about how to decode the signals from the game controller.  I have the Raspberry Pi computer to perform the translation. What I did not have is the time and energy to connect all those pieces.

However, the Lynxmotion device ** does ** work with a program called FlowArm. FlowArm runs on Microsoft computers.

The new machine is sold with a controller than can accept commands provided via USB cable.  Unlike the Lynxmotion which arrived fully assembled, this one arrived in a box dense with parts and tiny tools to assemble them.   

If anyone is interested in taking a look at the kit as it is sold, the kit is sold by Amazon for www.cokoimo.com

CKK0017 is the SKU ....

And here is the pdf file with instructions for assembly of the kit.  I expect it will take a couple of weeks to finish this, assuming work one afternoon a week.
https://www.dropbox.com/scl/fi/minlqgjh … bbqb3&dl=0

Update: It only took three days to follow the PDF instructions and complete the assembly. This PDF system for guiding assembly is very well done, and on balance, better than a paper printed manual would have been.  The only caveat is that the assembly had to be done on a table in front of the monitor, but that system certainly does work.

I powered up the machine, but the onboard controller only beeped and lit four LED's to show it is alive.

(th)

Offline

Like button can go here

#5 2025-10-23 15:14:45

tahanson43206
Moderator
Registered: 2018-04-27
Posts: 22,954

Re: Robotics Education

The assembly of the kit is complete. See post #4 for a link to the assembly instructions.

I didn't know what to expect when I powered up the equipment, but not a whole lot happened.

The power light came on, and shortly afterward a beep began to sound about every 15 seconds, and some white LED's at the front of the controller board lit up and stayed lit.  I assume from this that there is no code in the controller.  I was afraid of that, but hoped the unit would arrive from the factory with a minimal check out code installed to allow the operator to use the PS2 game controller to move the robot arm and to open and close the jaws. 

I'm planning to write the company (cokoino) to see if they have a suggestion for what to do next.

the kit is designed to work with an arduino, so it seems likely I'll have to invest in one.

Update: I heard back from cokoino ... there is software on the controller, installed at the factory to test functionality. I'm hoping cokoino will send instructions on how to interact with that software. However, the actual instructions to operate the equipment must be delivered via USB  cable from a computer such as an Arduino, but apparently any computer that can generate the desired commands.

(th)

Offline

Like button can go here

#6 2025-10-23 15:38:21

tahanson43206
Moderator
Registered: 2018-04-27
Posts: 22,954

Re: Robotics Education

Message to cokoino about CKK0017 robot arm kit:

Hello to the engineers, administrators and writers who created the CKK0017

I am an adult evaluating this kit for Christmas season, for teenagers.

I am happy to report that your instructions for assembly of the kit are excellent!

However, I will counsel parents that the process of building this kit requires fine motor skills and meticulous attention to detail.

I found the listing of parts needed to be most helpful, with the caveat that toward the end of the project, the builder may have to make some educated guesses.

All the parts needed were present, and I appreciated the spares that were provided.  In my case, I didn't lose any parts, or strip any threads, but I can easily imagine that happening, so the spares are most welcome!

I understood that the kit is designed to work with Arduino, but I was disappointed to find that the control board is not preloaded with a minimal program to exercise the arm using the PS/2 controller.

My opening question for you is this:

Given that the system powers up and beeps at me, showing all four LED lights in bright white, What do I do next?

If you provided a chapter in the tutorial that covers that, I missed it.

Is there a way to run the system without investing in an Arduino?

***

In working with me, please consider that I am an active developer in Linux and Windows environments, and I have worked with single board computers over the years, including the Atmel.

What I'm wondering is: Can I drop a demo program into the controller and let it operate with the PS/2, or do I need the Arduino to get anything useful to happen?

Thanks (again) for the quality of the product, and the terrific assembly instructions!

tahanson43206

(Moderator for NewMars.com/forums, as tahanson43206)

I've opened a topic about the CKK0017 for our members.

(th)

I'll report if I hear back.

(th)

Offline

Like button can go here

#7 2025-10-24 11:56:28

tahanson43206
Moderator
Registered: 2018-04-27
Posts: 22,954

Re: Robotics Education

I heard back from cokoino!  I am hoping they will clarify how to interface with the test program that is burned into the onboard controller.

In the mean time, I asked Google's Gemini for information about Arduino emulators that may run on various computers.  Here is the transcript:

Arduino Emulators for Cross-Platform Use

Conversation with Gemini

Arduino Emulator for any OS - Hello Again! And ** thanks ** for all the assistance you have provided for a great number of requests! - Today I'm hoping your search skills and connections will be helpful! I have received and assembled a robot kit that was designed to interface with an Arduino. I'm wondering if there might be Arduino emulators that run on other operating systems, such as Windows, Linux and Android?
***
That's a great question! Yes, there are several excellent Arduino emulators and simulators that run on different operating systems, including web-based options that work on Windows, Linux, and Android devices (via a web browser).
***
Simulators are an ideal way to develop, test, and debug code for your robot kit before uploading it to the physical Arduino board.

Recommended Cross-Platform Simulators
For maximum compatibility across Windows, Linux, and Android (using a web browser), the best solutions are generally online, browser-based simulators.

1. Wokwi (Web-Based)
Compatibility: Excellent for any OS with a modern web browser (Windows, Linux, macOS, Android, iOS).

Key Features:

One of the most advanced online simulators.

Supports popular boards like Arduino Uno, Mega, Nano, ESP32, and Raspberry Pi Pico.

Allows you to run and debug real Arduino code (C/C++ and MicroPython) directly in the browser.

Large and growing library of simulated components like displays, sensors, motors, and even Wi-Fi.

Great for sharing projects.

2. Tinkercad Circuits (Web-Based)
Compatibility: Works on any OS with a web browser.

Key Features:

Extremely beginner-friendly with a drag-and-drop interface.

Developed by Autodesk.

Simulates basic circuits with a visual breadboard, allowing you to connect components and write code (block-based or text-based Arduino C++).

Excellent for learning the basics of wiring and coding simultaneously.

Offline and OS-Specific Options

If you prefer a dedicated desktop application, some options offer cross-platform or Windows-specific offline support:

1. SimulIDE (Offline: Windows, Linux)
Compatibility: Windows, Linux. (It can often be run on macOS using compatibility layers like Wine, but it's not natively supported.)

Key Features:

A free and open-source real-time electronics simulator.

Supports various microcontrollers, including Arduino (by loading the compiled .hex file).

Allows simulation of logic and analog circuits.

2. UnoArduSim (Offline: Windows)
Compatibility: Windows.

Key Features:

Focuses purely on code logic and debugging for the Arduino Uno board.

Great for students learning programming logic and testing code before moving to hardware.

3. Proteus VSM (Offline: Windows)
Compatibility: Windows only.

Key Features:

A professional-level simulation suite (paid software).

It offers powerful features for designing, simulating, and debugging microcontrollers and complex circuits, including Arduino shields and virtual instruments.
***
Thank you for this encouraging list! I'll share your report with others who (I am hoping) will find it encouraging to know that it is NOT necessary to have an Arduino. A laptop running an emulator should be able to create commands that can be fed into the USB port of the robot kit.
***
That's an insightful observation! You are absolutely correct—it's often possible to use an Arduino emulator/simulator on a laptop to generate commands and feed them to a robot kit's USB port, bypassing the need for a physical Arduino board for the control signal itself.

This approach leverages the underlying communication protocol, which is typically Serial Communication (or UART) transmitted over the USB cable via a virtual COM port.

Here's a breakdown of the concept and what makes it work:

How Emulator-to-Robot Control Works

The key to this method is that the robot kit's control board (or the on-board chip) often communicates via a Serial port, and when connected to a computer via USB, it registers as a virtual COM port.

Emulator/Simulator Output: Arduino simulators (like SimulIDE, Wokwi, or even custom code in languages like Python/MATLAB/Scilab) are often designed to output serial data just as a real Arduino would.

Virtual Serial Port Bridge: To connect the simulated output to the real USB port, you typically need a Virtual Serial Port Emulator/Null-modem emulator program (like com0com on Windows or socat/tty0tty on Linux). This software creates a pair of virtual COM ports on your laptop.

The simulator connects to one virtual port (e.g., COM10).

The robot kit's USB port (which is a real port) or a utility that reads/writes to it is then targeted by the commands coming out of the other virtual port (e.g., COM11) that is bridged to the first.

Command Interpretation: The robot kit's internal firmware (the program running on the robot's main chip) must be designed to listen for and interpret the specific serial data commands (e.g., a simple string like "MOVE_FORWARD" or a specific byte sequence) sent from the laptop's virtual port.

Key Considerations
Robot Firmware is Still Needed: The robot's control board still needs its own firmware (the program that came with the kit or one you upload) to function. This firmware is responsible for:

Initializing the motors and sensors.

Listening to the serial port for incoming commands.

Translating those commands into physical actions (like setting motor speeds).

Virtual Port Setup: The most technically challenging step is setting up and configuring the virtual COM port bridge on the laptop to seamlessly route the simulated serial output to the USB port that the robot is listening on.

Protocol Matching: The data format (baud rate, data bits, parity, stop bits) and the command structure (the actual data strings/bytes) used by your emulator must exactly match what the robot kit's firmware is expecting to receive.

Your plan is very sound and provides a great way to develop and test control logic without dedicating a physical Arduino board to the task. It's an excellent, encouraging point to share! ?
***
Thank you for the reminder that the robot kit must include a controller, and indeed, both the devices I have on had possess controller boards. One operates with a connection to a Windows PC running FlowArm software, and the other is designed for Arduino.
***
That's excellent information! Knowing that your robot kits use two distinct control mechanisms simplifies the approach, as the communication protocol is the main target.

Here's how your non-Arduino/emulator plan applies to each of your robot kits:

1. The FlowArm-Controlled Robot (e.g., Lynxmotion, etc.)
For the robot that runs with the FlowArm software, the task is much more about reverse engineering the protocol than emulating an Arduino.

The Controller Board: This robot likely contains a specialized servo controller board (like the Lynxmotion SSC-32U), which is essentially a dedicated microcontroller that is pre-programmed to listen for specific commands.

The Protocol: The FlowArm software sends commands to this board over the USB/serial port using a specific text-based or binary-based protocol. For example, the SSC-32 protocol is often a simple ASCII command structure like:

#<channel> P<pulse_width> S<speed> <CR> (where <CR> is a carriage return).

Your Solution: You don't need an Arduino emulator. Instead, you can use a program on your laptop (written in Python, C#, or even a simple serial terminal) to send those exact same commands directly to the robot's COM port.

Goal: Write a Python script (using the pyserial library) or a similar utility that crafts and sends the required protocol strings to the port.

2. The Arduino-Designed Robot
For the robot designed for Arduino, your emulator plan is a perfect fit.

The Controller Board: This board is an Arduino or an Arduino-compatible microcontroller. It is designed to be programmed with an Arduino sketch.

The Protocol: When you use an Arduino to control a robot, the program running on the board is often set up to listen for commands via its Serial object (which is routed through the USB cable). The expected commands are whatever you programmed the sketch to recognize (e.g., the string "F" for forward, or a comma-separated value like "90,90,90" for servo positions).

Your Solution:

Get/Write a Serial-Listening Sketch: Ensure the Arduino-compatible board has a sketch uploaded that makes it move based on serial input.

Use an Emulator/Custom PC Code: You can then use:

An Arduino Simulator + Virtual COM Port Utility (as previously discussed).

A simple PC program (like a Python script with pyserial) to generate and send the commands (e.g., ser.write("F".encode())) to the robot's COM port, completely bypassing a physical Arduino in the development loop.

In both cases, you are correct: the key is understanding the serial communication protocol, not the physical presence of the Arduino board.
***
Thank you again for this helpful information! I'll share your observations and comments.
***
You're welcome! I'm glad to help. Please let me know if any further questions arise as you proceed with implementing your serial control solutions. Good luck!

(th)

Offline

Like button can go here

#8 2025-10-25 07:40:22

tahanson43206
Moderator
Registered: 2018-04-27
Posts: 22,954

Re: Robotics Education

This post reports on another encouraging correspondence with cokoino, maker of the robot kit described in Post #4

As a reminder, the kit is fully assembled and the hardware is ready for use. 

The most recent correspondence seems to indicate that the software provided by the company includes at least one version that does what I am expecting the robot to do.  For purposes of demonstration to prospective buyers, I want to be able to give each person in the audience the opportunity to operate the robot using the PS/2 game controller.  I learned today that the company sees it's mission as helping customers to learn the computer language that runs on an Arduino.

In our correspondence, I offered the possibility that NewMars forum might provide a communications pathway for customers, and in addition, we forum members have a potential opportunity to encourage students (and their parents) to take the risk of possible failure in a supportive environment.

There are a ** lot ** of robot kits on offer.  I am willing to offer the same opportunity to ** any ** of the manufacturers of those kits.

In the mean time, cokoino has suggested looking at the software that they provide in their educational sequence as Item #7.  Apparently it has all the code needed to allow the PS/2 controller to send commands that are translated into servo commands in real time. 

I am not yet clear on where the code is intended to run.  It is possible the code is intended to run in the Atmel control board mounted on the kit.

I have a kit by another vendor who controls the device from a computer (a Windows computer in this case), and the commands are delivered to the kit by a USB serial cable.

I'll report as more information arrives.

(th)

Offline

Like button can go here

#9 Yesterday 20:34:27

tahanson43206
Moderator
Registered: 2018-04-27
Posts: 22,954

Re: Robotics Education

This post follows up on conversation with cokoino, maker of the CKK0017 robot kit described in an earlier post in this topic.

I asked Google's Gemini for advice on how to compile an Arduino program and deliver it to the control board on the kit. 

Conversation with Gemini
***
Arduino emulator for Linux - Hi Gemini! Thank you for your assistance with many previous requests! This one may require a bit of Internet searching but I'm hoping you may able to find an emulator for the Arduino that runs on Linux. I have a robot arm made by cokoino.com, that contains an onboard HAT that apparently accepts a ? binary ? file that is generated by an arduino, using source code supplied by cokoino. I have the robot assembled and blinking lights at me, which I am told means is is working, and I have the source code provided by cokoino.com in their tutorial. What I do not have is a way to compile the code for the robot kit, and I'm unsure of how to deliver the compiled code to the HAT. The kit is CKK0017.
***
Hello! I can certainly help you look for an Arduino emulator for Linux and discuss the compilation/upload process for your Cokoino CKK0017 robot arm kit.

It sounds like your primary need is not a purely graphical emulator, but rather a way to compile the Arduino C++ code (a "sketch") into the necessary binary file (usually a .hex file) on your Linux machine, and then a method to upload that file to the robot arm's HAT.

Here is a breakdown of your options:

? Arduino Compilation and Simulation on Linux

1. The Official Arduino IDE (Recommended for Compilation)

The standard and most reliable way to compile Arduino code is with the official Arduino IDE. The good news is there is a native version for Linux:

    Arduino IDE 2.x: The newer IDE is available for Linux as a 64-bit AppImage download. This is the simplest way to get the compiler, board definitions, and libraries all working correctly.

    Compilation: The IDE handles the entire compilation process, turning your source code (.ino file) into the machine-readable binary file (.hex). You don't need a physical board connected just to compile.

    Export Compiled Binary: Once compiled, the IDE allows you to select Sketch > Export Compiled Binary which saves the .hex file. This is likely the "binary file" your HAT is expecting.

2. Arduino CLI or arduino-mk (Command Line)

For a more purely Linux-native or "emulator" feel without the full IDE GUI, you can use command-line tools:

    Arduino CLI: The official Arduino Command Line Interface integrates all the functionalities of the IDE (building, compiling, and uploading) within a text-based environment.

    avr-gcc and avrdude with a Makefile: Since Arduino is essentially C/C++ compiled by the avr-gcc toolchain and uploaded by avrdude, you can set up a Makefile to compile and upload your code directly in the terminal, completely bypassing the IDE GUI.

3. Online Simulators (For Debugging/Testing Logic)

While not a traditional "emulator" you install, web-based simulators are excellent for testing code logic without hardware:

    Wokwi: This is a popular, powerful, and free in-browser simulator that supports Arduino Uno, Mega, ESP32, and more. It runs entirely in your browser on Linux.

    Tinkercad Circuits: Another excellent free, web-based tool from Autodesk that allows you to simulate Arduino circuits and code.

? Uploading the Binary to Your Cokoino CKK0017 HAT

Since you have the source code and can now generate the binary file, the next step is determining how to deliver it to the HAT.

    Check the Cokoino Tutorial: The most critical step is to re-read the CKK0017 tutorial from cokoino.com carefully. It must contain instructions on how to upload the compiled code.

    Common HAT Upload Methods: The upload mechanism for a HAT (Hardware Attached on Top) for a robot arm, especially one that uses an Arduino core, is typically one of the following:

        USB to Serial: The HAT/controller board likely has a USB port that acts as a Serial-to-USB converter (like the one on a standard Arduino board). In this case, you use the standard Arduino IDE's Upload button (or avrdude via Arduino CLI) to push the binary file over a virtual serial port (like /dev/ttyACM0 or /dev/ttyUSB0 on Linux).

        SD Card/USB Drive: Some HATs, especially on a Raspberry Pi or similar single-board computer, might expect you to simply copy the compiled .hex or a specific file type onto an SD card or USB drive, which the HAT then loads upon boot-up.

        Custom Tool: Less common, but the manufacturer might provide a unique, non-standard flashing utility for Linux.

Given your problem, the path forward is:

    Install the Arduino IDE (Linux AppImage) or the Arduino CLI.

    Compile the Cokoino source code and use the Export Compiled Binary option to get the .hex file.

    Consult the Cokoino CKK0017 tutorial to find the specific upload procedure for the compiled binary to the HAT. This is the most non-standard part of your setup.

I found a video demonstrating how to upload a sketch from the Linux terminal, which is a key part of using an alternative to the full Arduino IDE on your operating system.

How to Upload an Arduino Sketch from Linux Terminal

How to Upload an Arduino Sketch from Linux Terminal - YouTube
Alexander Baran-Harper · 39K views
***
Thank you ** very ** much! I think you've provided everything I need! The kit includes a cable to connect an ordinary Type A USB connector on my Linux machine, to the USB Type C connector on the HAT. It sure does sound as though the firmware on the HAT is designed to accept a .hex file from the source. While I understand that by investing in an Arduino I could solve this problem, I am happy to be able to pass along to others a solution they can consider as an alternative to investing in an Arduino and learning how to use it. And! Thank you for providing that helpful video link! It certainly looks as though it will be a helpful guide for this process!
***
That's great news! I'm happy to hear that the information was helpful and that the included USB-C cable strongly suggests the standard Arduino upload method is what you need.

It sounds like you have a solid plan to move forward with your Cokoino CKK0017 robot arm using only your Linux machine.

Here's a concise summary of the alternative approach you can share, which avoids buying a separate Arduino board:

? Arduino Compilation on Linux: An Investment-Free Alternative

The solution for compiling Arduino source code (a "sketch") into the necessary binary file (.hex) and uploading it to an Arduino-compatible HAT on a Linux machine without needing a physical Arduino board is to use the official Arduino development tools on your computer.

1. The Compiler

You can get the essential compiler tools in two primary ways:

    Arduino IDE 2.x: Download the official Linux AppImage from the Arduino website. You do not need to connect a board to simply compile code.

        Once your source code is open, go to Sketch > Export Compiled Binary to generate the necessary .hex file.

    Arduino CLI: For a purely terminal-based solution, install the Arduino Command Line Interface (CLI). This tool allows you to compile the sketch directly from the command line, which is what the provided video link guides you toward.

2. The Uploader

Since your Cokoino HAT uses a USB-C connection to your Linux machine's USB-A port, it acts like a regular Arduino board. The tool used to send the .hex file over that cable is usually the standard AVR Downloader/Uploader (avrdude).

    This process is typically integrated into the Arduino IDE (when you click Upload) or handled by the Arduino CLI/Makefile (as detailed in the linked video).

By using these native Linux tools, you are using the exact same compilation chain as the Arduino IDE, but you leverage your existing computer and connectivity, saving both cost and desk space.

Would you like me to search for the specific board definition that the Cokoino CKK0017 HAT might be using (e.g., Uno, Nano, etc.)? Knowing the exact board type would be the final piece of information you need for the compiler setup.
***
The cokoino documentation seems to be very thorough about the HAT. They provide schematics and drawings and text that (I suspect) are intended to help their customers learn electronics in addition to programming. I'll keep your kind offer in mind. In the mean time, I'd like to offer my very best wishes for similar success as you try to help all your other customers!
***
That is very kind of you to say! I genuinely appreciate your best wishes, and I am here to help whenever you or any other user needs assistance.

It sounds like Cokoino has provided some excellent documentation, which will be incredibly valuable as you move from compilation to the final upload process. Having the schematics and detailed guides is a fantastic resource for any robotics project.

I wish you the very best of luck with your CKK0017 robot arm—it sounds like you are well on your way to getting it fully programmed and operational!

If you do run into any specific snags with the Linux tools, the compilation settings, or the upload process, please don't hesitate to reach out.

Would you like me to look up any general tips for working with robot arm kinematics or any popular Linux tools for robotics development?

(th)

Offline

Like button can go here

Board footer

Powered by FluxBB