Introduction: Autonomous Construction Zone - a Robot to Create Floor Plans
My name is Matthew Lomax, and under the direction and supervision of my STEM teacher Mr.Scott Kutz (Westlake High School, OH.), I helped him create this Project Based Instructable to utilize and co-teach in our engineering honors class.
Students will learn to reverse engineer software and build hardware for use with said software, this lesson includes 3 sections: reverse engineering, designing and building, calibration, and tuning. Each section builds upon the previous section. All sections have included tests, a reference design is included.
Groups of four students will use their knowledge of Python and robotics to reverse engineer the software that controls a robot. Students will not be given any information about the intended functionality of the robot, they will have to determine what the software does, how it expects to interact with its environment, and how to build a robot that the software can control.
In the first phase of the lesson, students will be given access to the main board of the robot and the Thonny Python IDE. Students will connect the board to the IDE and begin to take notes on how they think the software works and what they believe each part of the code does.
In the second phase, students will begin the designing and building phase.
Students will be given access to all of the hardware that they will need to build a working robot, with the exception of chassis pieces and wheels.
Students will use fusion360 to design and build a robot from scratch.
In the third and final phase, students will test, tune, and calibrate their robot using any means that they wish. Students will test their robots with paths provided on the included GitHub and when they are satisfied with its performance, they will present their robot to the class with a demo showing the robot in action.
Supplies
materials:
1x chassis
1x suspension
2x wheel
1x markerActuator
1x markerClamp
1x boardHolder
2x nema17 pancake stepper motors
2x servo42c stepper motor driver kits
8x m3x25 bolts
8x m3x5 bolts
4x m4x10 bolts
4x m4 nuts
1x 9g metal gear servo
1x pen spring
1x esp32 devboard
1x generic push switch
1x passive buzzer
1x ssd1306 oled
1x 5v regulator
2x 6 pin header (m)
1x 3 pin header (m)
1x 2 pin header (m)
1x 4 pin header (f)
1x 2 pin header (f)
1x expo dry-erase marker (chiseled tip)
1x 3s 2200mah LiPo batery
1x lipo charger (don't get a cheep one)
1x xt60 male connector
tools:
3d printer
laptop/computer
soldering iron
screwdriver kit
software:
Autodesk fusion360 or similar 3d cad software
Thonny
Step 1: Ohio Technology Standards
Ohio Standards Connection
Content Area/Discipline: technology
Standard: Define and describe technology, including its core concepts of systems, resources, requirements, processes, controls, optimization and trade-offs.
Benchmark: 9-12.DT.1.b. Discuss how a design process builds on the core concepts of technology, including the relationship between systems.
Indicator: Reverse engineer and describe the systems used in a product. Having an innovative and inventive mindset is vital to a design process.
Content Area/Discipline: technology
Standard: Identify a problem and use an engineering design process to solve the problem
Benchmark: 9-12.DT.2.b. Implement, document and present a design process as applied to a particular product, process or problem.
Indicator: Present a design solution to a chosen audience structured by the design process used to develop that solution. Use documentation of this design process as a resource A design process, including alternative solutions, needs to be documented to provide an ongoing record that tracks the progression of a solution from its initial to final stages.
Step 2: Lesson Prep
Build 1 main board per group, have the rest of the hardware ready for day 8, and optionally build the reference robot. bill of materials, main board schematic, and reference design for the robot are all provided in referenceBuildInstructions.pdf.
All files can be found here: https://github.com/Matt2D3/floorPlanRobot
Attachments
Step 3: Day 1: Introduction
Students will split into groups of 4. Students will then be informed that they are starting
a new project where they will be reverse engineering software and building a robot
based on it.
After this, they will be given a pre-test to be taken as a team.
Attachments
Step 4: Day Two: the Basics
Based on the results of the test, students may need to be taught about Python and/or how stepper motors and stepper motor drivers work (this will not be covered in this lesson plan).
Step 5: Day 3: Python Basics
Students will be introduced to the Python IDE Thonny, they will be tasked with creating several basic programs to demonstrate their knowledge of python.
Step 6: Day Four: the Fun Begins
Students will be given the main board for their robot.
The main board should be built as specified in referenceBuildInstructions.pdf
they will be instructed on how to connect it to Thonny.
Students will begin reverse engineering the software and take notes in a
separate document as they learn about the robot software.
Step 7: Day Five Through Seven: Reverse Engineering
students will continue to learn about the software on the robot.
Step 8: Day Eight: Start Designing
Students will be given the motors, batteries, caster bearings, and other supporting hardware (as stated in the reference build instructions). Students will begin modeling the provided parts in Autodesk Fusion360.
Step 9: Day Nine: Figuring Out Where Things Go
Students will arrange the parts that they have modeled into a configuration that they believe will be best for the robot given the knowledge that they have acquired about the software to this point.
Step 10: Day Ten Through 13: Designing the Robot
Students will model the parts that they will need to construct their robotics.
Step 11: Day 14 – 16: I Hope You Have a Lot of 3d Printers
Students will print the parts that they have designed and build the robots.
Step 12: Day 17 – 22: the Fun Stops
Students will calibrate, tune, and test their robot in preparation for the test.
They will do this with four paths provided on GitHub and the software provided on the robot.
Step 13: Day 23-27: Testing Begins
The students are to have the robot run 5 different paths, each path will be graded separately, each path will be scored with the following criteria
accuracy: how recognizable is the final drawing, (1 out of 10)
position error: how close is the robot to the expected end point (1 out of 5)
speed: how fast is the robot compared to the reference design (1 out of 5)
bonus points: did the students find and fix any bugs in the robot software (1 point each)
Step 14: Day 28: Post-test
Students will take the post-test as individuals to show that they have learned about robotics, 3d design, and Python.
Attachments
Step 15: Day 29: What Went Wrong
Have all groups talk to each other about what they have learned about the robot, its software, the best way to design a robot, and how the robots could be better tuned.
Step 16: Ideas for Above or Below Average Studetns
Instruction is differentiated according to learner needs, to help all learners either meet the intent of the specified indicator(s) or, if the indicator is already met, to advance beyond the specified indicator(s).
- if you believe that you have students who may be incapable of completing the full lesson, have said students calibrate the reference design instead of reverse engineering and constructing their own robot.
- If you believe that you have students that are more advanced, have them implement a method of tracking the robot and using that data to increase the accuracy of the robot.
Step 17: Extension
this lesson is meant to teach about autonomous robots. The robot that this lesson is based on is a floor plan drawing robot used in construction to indicate exactly where walls should be built in a building.
Have students research this floor plan robot to come up with ways of making the robot more accurate (these plans do not have to be added to the robot)
https://www.engineering.com/story/meet-dusty-the-robot-that-draws-floor-plans-on-the-floor
if your students are advanced enough, have them come up with a better floor plan robot.
Step 18: Vocab
Vocabulary:
- Stepper motor: a type of motor that moves in discrete steps, commonly used where precision is a necessity
- List: a python data type that stores more than one value
- Import: the keyword used to run the contents of the specified script
- Function: a block of code that once defined, can be called from any point in the program
- While loop: repeatedly runs the code that it contains until its condition is no longer met
- If statement: runs the code that it contains once if its condition is met
- For loop: repeatedly runs code that it contains for each item in the specified list
- pin.value(): used to set a pin high or low or check if a pin is high or low
- Caster wheel: a type of wheel consisting of a wheel on a pivot, can move in any direction
- Caster bearing: a type of wheel that can move in any direction without having to pivot first
Step 19: Homework
Homework and/or Home Connections:
- Students should be encouraged to work on their robot at home.
- Allow students access to the code at home
- Allow students to work on the 3D model at homework
Step 20: A Note on LiPo Safety
If you use lithium batteries, use a smoke stopper when connecting the battery to guard against short circuits. Lithium batteries are only a hazard if you use them incorrectly. Charge batteries after each class, do NOT use a depleted battery to power a robot, the reference design does NOT have over-discharge protection.