Getting started with the Arxterra software and 3DoT Firmware

Slides:



Advertisements
Similar presentations
Getting Started: Arxterra Control Panel & Android Applications
Advertisements

Lab7: Introduction to Arduino
Welcome to the MIRC & NoName Script Tutorial Created by Buzz & Jet 1/31.
Arxterra: Understanding the Communication Between Arduino and Phone Connection Type: How Connect Phone To Arduino Communication from Phone to Arduino Communication.
CSULB EE400D TECHNICAL DOCUMENTATION ARDUINO/ARXTERRA PROGRAMMING PART II - TELEMETRY.
Operating the JH-15 SDR radio
Introduction to Arduino Prepared by R. Lamond.  “Arduino is an open-source electronics prototyping platform based on flexible, easy- to-use hardware.
1 Introduction to Tool chains. 2 Tool chain for the Sitara Family (but it is true for other ARM based devices as well) A tool chain is a collection of.
Renesas Technology America Inc. 1 M16C/Tiny SKP Tutorial 2 Creating A New Project Using HEW4.
LEGO NXT Robot Programming Introduction to Programming a Lego NXT robot in Java.
CSULB EE400D TECHNICAL DOCUMENTATION ARDUINO/ARXTERRA PROGRAMMING PART I - COMMANDS.
Testing. What is Testing? Definition: exercising a program under controlled conditions and verifying the results Purpose is to detect program defects.
November 2014Prepared by the Computer Lab Montgomery County-Norristown Public Library.
1 I-Logix Professional Services Specialist Rhapsody IDF (Interrupt Driven Framework) CPU External Code RTOS OXF Framework Rhapsody Generated.
© 2008, Renesas Technology America, Inc., All Rights Reserved 1 Purpose  This training course describes how to configure the the C/C++ compiler options.
DELTA TAU Data Systems, Inc. 1 UMAC TurboTurbo PMAC PCIGeo Drive Single Source Machine Control motion logic data Power PMAC Project Management November.
SNORT Tutorial Sreekanth Malladi (modifying original by N. Youngworth)
DTIAtlasBuilder Adrien Kaiser Neuro Image Research and Analysis Laboratories University of North Carolina at Chapel Hill A tool to create an atlas from.
Teacher/Mentor Institute Using easyC Joel Kirkland July 30-31, 2015.
Getting Started The structure of a simple wxWidgets program, Look at where and how a wxWidgets application starts and ends, how to show the main window,
Fall 2005 Using FrontPage to Enhance Blackboard - Darek Sady1 Using FrontPage to Enhance Blackboard 1.Introduction 2.Starting FrontPage 3.Creating Documents.
Renesas Technology America Inc. 1 SKP8CMINI Tutorial 2 Creating A New Project Using HEW.
Extending HTML CPSC 120 Principles of Computer Science April 9, 2012.
Downloading and Installing Autodesk Revit 2016
Topics Sending an Multipart message Storing images Getting confirmation Session tracking using PHP Graphics Input Validators Cookies.
Downloading and Installing Autodesk Inventor Professional 2015 This is a 4 step process 1.Register with the Autodesk Student Community 2.Downloading the.
Renesas Technology America Inc. 1 M16C Seminars Lab 3 Creating Projects Using HEW4 14 March 2005 M16C Seminars Lab 3 Creating Projects Using HEW4 Last.
Renesas Technology America Inc. 1 SKP8CMINI Tutorial 2 Creating A New Project Using HEW.
Arxterra Telemetry Code Example is the Temperature Sensor from ATechTop Here is the setup subroutine of the original code from Sparkfun: #define TRUE 1.
Functions.  Assignment #2 is now due on Wednesday, Nov 25 th  (No Quiz)  Go over the midterm  Backtrack and re-cover the question about tracing the.
GDT Tips and Tricks. GDT Tips and Tricks Doug Evans GDT 2004 International User Conference – Evolving the Legacy July  Tucson, Arizona GDT Tips.
© 2008, Renesas Technology America, Inc., All Rights Reserved 1 Introduction Purpose  This training course demonstrates the Project Generator function.
Multi-Programmer User Guide 1. Contents 1.Product ComponentsProduct Components 2.Software InstallationSoftware Installation 3.Software UseSoftware Use.
Istituto Tecnico Industriale A.Monaco EURLAB Control a Servo Motor If you want to swing an robot arm or … steer a robot you need a special motor (Servo).
Software Troubleshooting Eliminate possible programming and timing errors by stopping all programs ( and ). Use the Executive program terminal and send.
3DoT Technical Documentation
After Construction Name: Per #:.
Arxterra: Understanding the Communication Between Arduino and Phone
Development Environment
Getting Started: Arxterra Control Panel & Application
Simulink Interface Layer (SIL)
Unit 9.1 Learning Objectives Data Access in Code
3DoT Technical Documentation
If you want to swing an robot arm or …
Written by Anthony McNicoll
User-Written Functions
3DoT Technical Documentation
The first change to your project files that is needed is to change the device to the correct FPGA. This is done by going to the Assignments tab on the.
Connect:Direct for UNIX v4.2.x Silent Installation
Over the Air Download Peripheral Device Central Device Slave Master
Microcontroller Applications
Eclipse Navigation & Usage.
3.14 Microscan QX-870 Scanner Configuration
Computer Programming I
Using Excel with Google Maps
Roller Coaster Design Project
Cookies BIS1523 – Lecture 23.
Installing the HI 6600 into the CompactLogix System.
Macrosystems EDDIE: Getting Started + Troubleshooting Tips
Automation and Robotics
Getting Started and working with Pearson myautomotivelab
Creating and Modifying Queries
How to Run a Java Program
Configuring Internet-related services
Programming Micro Controllers
3.1 Iteration Loops For … To … Next 18/01/2019.
Block Programming Hello my name is Stephanie. I have been apart of FIRST for 6 years and have 3 years of programming experience. I am currently a member.
Software Setup & Validation
UNIT 11: RC-SERVOMOTOR CONTROL
Introduction to Arduinos
Presentation transcript:

Getting started with the Arxterra software and 3DoT Firmware By Christopher hirunthanakorn 5/23/16

What does the Arxterra Software and 3DoT Firmware Include? Arduino code that is running on the 3DoT Board. Mission ready out of the box! ArxRobot iPhone and Android App Smartphone app that communicates with the 3DoT Board to control your robot. Can be used as the controller or as the link to the Arxterra Control Panel. Arxterra Control Panel Website that allows users to pilot any robot that is configured in community mode. Has more customization than the ArxRobot App in terms of data that can be received or commands that can be sent.

Arduino IDE Very easy to use and learn. Lots of documentation and examples to look at. Requires some setup for programming the 3DoT Board. https://learn.sparkfun.com/tutorials/pro-micro-- fio-v3-hookup-guide#installing-windows

setup for programming the 3DoT Board. Part 1 Begin by downloading the Robot3DoTBoard located here. Place the Robot3DoTBoard folder into your Arduino library folder. Inside the Robot3DoTBoard folder you will find an “examples” folder. Review the sample projects located inside this folder, for a similar project. Here is the Robot_3DoT_Basic project that comes pre-installed. Place the selected folder in your Arduino project folder and launch the Arduino IDE. Compile your program and verify that it runs without errors.

setup for programming the 3DoT Board. Part 2 Place the Robot3DoTBoard folder into your Arduino library folder. Inside the Robot3DoTBoard folder you will find an “src” folder. Cut and Paste the “Configure.h” file from this folder into your project folder. Again, launch the Arduino IDE and verify that it compiles without errors. When debugging your program set DEBUG and ECHO_COMMANDS to TRUE. Once your code is bug free, to avoid latency errors and minimize bandwidth set values back to FALSE. That’s it! From now on development is done within the user friendly Arduino IDE.

Adding Custom Commands Step 1: Assign new command mnemonics ID numbers. In our example we will be adding 3 custom commands named MOVE, BLINK, and SERVO. The MOVE command mnemonic ID 0x01 is already defined in Configure.h This predefined MOVE command is intercepted and our robot unique code is to be run instead. The next two commands BLINK and SERVO are new and assigned to the first two addresses in the custom command address space 0x40 - 0x5F. Finally, the constant CMD_LIST_SIZE is set to the total number of user defined commands.

Adding Custom Commands Step 2: Register commands by linking IDs to their corresponding command handlers In our example when the MOVE command is intercepted the moveHandler is to be run. In a similar fashion the BLINK command calls the blinkHandler and SERVO the servoHandler. Step 3: Tell 3DoT Robot software about new commands Finally, the onCommand list of commands and associated handlers, are registered with Robot3DoT. That’s it! Now write your command handler as you would any other Arduino script. Don’t worry in the next slide I will show you how.

Writing a Custom Command handler At right, is a test of a SERVO command handler. All command handlers include three parameters. The first parameter, cmd is simply the command id. For our example 0x41. The second parameter, param[]is a list of the parameters needed to implement the command. For our example, only the servo angle is sent. The third parameter, n is the number of parameters sent. For our example only 1.

Command Code Example

Arxterra Firmware – Configure.h The Configure header file has 5 major subsections: Flags Pinouts Command IDs Telemetry IDs Error Codes The Flags settings allow you to configure the code for testing or normal operation. Pinouts are defined for the 3DoT board. They may be modified if the Robot3DoTBoard library is used with another Arduino board, like the Leonardo.

Arxterra Firmware – Configure.h The Configure header file has 5 major subsections: Flags Pinouts Command IDs Telemetry IDs Error Codes The Command IDs listed are predefined. The 32 possible Custom Command IDs 0x40 - 0x5F, may be added to the end of the table based on the unique requirements of your robot.

Arxterra Firmware – Configure.h The Configure header file has 5 major subsections: Flags Pinouts Command IDs Telemetry IDs Error Codes The Telemetry IDs listed are predefined. Custom Telemetry IDs are in development. Until then, repurpose an existing one.

Arxterra Firmware – Configure.h The Configure header file has 5 major subsections: Flags Pinouts Command IDs Telemetry IDs Error Codes There are two (2) types of error messages: Exception Emergency Exceptions originate from the command decoder and indicate a problem with a received command. These “exception” codes are shown at right. Emergencies indicate a more serious problem with the robot. As shown at right, only one type of emergency has been identified.

Adding a Custom Telemetry Channel Step 1: Instantiate Packet In our example we simulate a current sensor wired to MOTOR 2. MOTOR2_CURRENT_ID is defined as 0x02 in Configure.h To simulate the data stream coming from the sensor we will read ATmega32U4 Register OCR4D which controls the duty cycle of MOTOR 2.

Adding a Custom Telemetry Channel Step 2: Modify default values – Optional – Before a packet is created and sent, it is qualified. Specifically, the data in a packet must change by some amount from the previous packet and may not be sent with a period less than some value. In most cases you can leave these values at their default values. Change in Sensor reading of more than +/-2 DN. Sample period > 1 second In the code shown the accuracy of the sensor reading is improved to +/- 1 DN, while the maximum sample period is decreased to 500 msec (frequency increased to 2 Hz).

Adding a Custom Telemetry Channel Step 3: Read sensor and send packet To simulate the data stream coming from the sensor we will read ATmega32U4 Register OCR4D which controls the duty cycle of MOTOR 2. This code segment uses the preprocessor conditional directives #if to make sure that an MCU with a ATmega32U4 or ATmega16U4 is selected under Tools > Board.

Arxterra Firmware continued Arxterra_firmware tab Contains the main loop of the code. Default setup is to check for commands sent and send telemetry back but can be configured according to your robots specifications. Command tab Contains the commanddecoder and commandhandler functions Custom commands and changes to how commands are executed for your robot will be put into the commandhandler function. Pinouts_robot.h and battery_selector tab Contains all of the pin definitions and global variables to be used. Contains the list of command ids and telemetry ids. Any custom commands or telemetry will have their id added here. Telemetry tab Contains the code that collects all of the data that needs to be sent back to the ArxRobot App or Control Panel. Additional Tabs can be added to organize your code appropriately.