{"id":2935,"date":"2017-07-06T15:34:06","date_gmt":"2017-07-06T22:34:06","guid":{"rendered":"http:\/\/aviral.lab.asu.edu\/?page_id=2935"},"modified":"2020-08-23T03:38:33","modified_gmt":"2020-08-23T03:38:33","slug":"cse325","status":"publish","type":"page","link":"https:\/\/labs.engineering.asu.edu\/mps-lab\/teaching\/cse325\/","title":{"rendered":"CSE 325 &#8211; Embedded Microprocessor Systems"},"content":{"rendered":"\r\n<p class=\"has-text-align-left\"><a href=\"https:\/\/labs.engineering.asu.edu\/mps-lab\/autonomous-car-race\" target=\"_blank\" rel=\"noreferrer noopener\">Announcement of Autonomous Car Race<\/a><\/p>\r\n\r\n\r\n<p><iframe loading=\"lazy\" title=\"The Story of Two Students and a Car\" width=\"500\" height=\"375\" src=\"https:\/\/www.youtube.com\/embed\/_jzJUN-e0hw?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe><\/p>\n\r\n\r\n\r\n<h6 class=\"has-text-align-center wp-block-heading\"><em>Student made video of &#8220;their journey&#8221; in the course<\/em><\/h6>\r\n\r\n\r\n\r\n<h4 class=\"wp-block-heading\"><strong>Overview<\/strong><\/h4>\r\n\r\n\r\n\r\n<p>Embedded Microprocessor Systems are often used to design Cyber-Physical Systems, or robotic systems, in which the computing system interacts with the real world, e.g., an autonomous car. Computers interacting with real-world is very different from the scenario when a computer interacts with another computer. When computers interact with the real world, they\u00a0have to operate in real-time &#8212; their actions cannot be late. A late action may be same as a wrong action (think of delay in the application of brakes in a car). But, computers interacting with real world make all the exciting applications in robotics possible! It is this excitement, and the feeling that I can &#8220;Control Anything&#8221; using an embedded microprocessor system is what the newly redesigned course attempts to instill in students.\u00a0And at the center of this entire course experience is the process of designing and building an autonomous toy car from scratch. And at the end of the course, students race their autonomous cars to participate in a race to win prizes.<\/p>\r\n\r\n\r\n\r\n<h4 class=\"wp-block-heading\"><strong>Main Topics<\/strong><\/h4>\r\n\r\n\r\n\r\n<div class=\"wp-block-image\">\r\n<figure class=\"aligncenter\"><img loading=\"lazy\" decoding=\"async\" width=\"300\" height=\"300\" class=\"wp-image-2995\" src=\"https:\/\/labs.engineering.asu.edu\/mps-lab\/wp-content\/uploads\/sites\/8\/2017\/07\/Main-parts-1-300x300.jpg\" alt=\"\" srcset=\"https:\/\/labs.engineering.asu.edu\/mps-lab\/wp-content\/uploads\/sites\/8\/2017\/07\/Main-parts-1-300x300.jpg 300w, https:\/\/labs.engineering.asu.edu\/mps-lab\/wp-content\/uploads\/sites\/8\/2017\/07\/Main-parts-1-150x150.jpg 150w, https:\/\/labs.engineering.asu.edu\/mps-lab\/wp-content\/uploads\/sites\/8\/2017\/07\/Main-parts-1-400x400.jpg 400w, https:\/\/labs.engineering.asu.edu\/mps-lab\/wp-content\/uploads\/sites\/8\/2017\/07\/Main-parts-1.jpg 576w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/figure>\r\n<\/div>\r\n\r\n\r\n\r\n<p>A cyber-physical system comprises of sensors, actuators and control engine.\u00a0Sensors sense the environment,\u00a0the control engine reads in the sensor values, and decide on how the system should react, and then affect the change through actuators.\u00a0Designing a Cyber-Physical System or\u00a0in simple terms a robotic system requires knowledge in three domains:<\/p>\r\n\r\n\r\n\r\n<p><em>i) H<\/em><em>ow the different\u00a0components of the\u00a0system work?<\/em><strong>:<\/strong>\u00a0A robotic system is built using many different parts, and to be able to successfully and reliably design the system one needs to know how all the parts of the system work. In particular the autonomous toy car in the course is built using batteries, Internal Measurement Unit (IMU), (Light Detection and Ranging system) LIDAR, GPS (Geographical Positioning System), motors etc. The first part of the course deals with understanding how these components work, and how they interface with the software.<\/p>\r\n\r\n\r\n\r\n<p><em>ii) How to write real-time software?:<\/em>\u00a0Real-time software is very differently organized as compared to general-purpose software. The software is often-architected in what is called a time-triggered architecture.\u00a0In this, all the sensing, actuation and compute functionality is written in terms of parallel tasks. These tasks have a repetition frequency, e.g., the task that reads the current GPS coordinates may be run every 0.1 second, and update the variable. The actuation values, e.g., how much to steer may be calculated in multiple steps, but it is written to the final steer variable only once. The actuation tasks will also repeatedly read the value of the actuation variable, and affect the actuator, e.g., motor. The software is designed in a way, so that it becomes easier to analyze the timing of the system, and make sure that the timing is being met or not.<\/p>\r\n\r\n\r\n\r\n<p><em>iii) How to make a system do what you want it to?:<\/em> Just the fact that you can make the steering turn does not mean that you can drive the car. How do you make the car obey a specific trajectory requires you to issue the control signals properly. Control theory studies the fundamentals of how to accurately control a system?, is the control system stable, or it will start oscillating wildly, (for example, if we steer the car too much, then we may never go straight, but always oscillate from one side to another), how good is the control of the system, and ultimately how to design a controller for a system that will be quick and stable.<\/p>\r\n\r\n\r\n\r\n<h4 class=\"wp-block-heading\"><strong>Projects<\/strong><\/h4>\r\n\r\n\r\n\r\n<p>A very important aspect of the course is the projects. In fact, this is a project driven course, in which students are motivated to learn the various concepts in order to build their autonomous car. The build process is divided into 7 projects that build on each other, and eventually, the students have designed an obstacle avoiding, GPS-way-point driven autonomous toy race car. The projects are:<\/p>\r\n\r\n\r\n\r\n<ol class=\"wp-block-list\">\r\n<li>Generate Morse code for text strings on Arduino.<\/li>\r\n<li>Use another Arduino to read the Morse code generated by the first Arduino &#8211; implement it using polling as well as interrupts.<\/li>\r\n<li>Assemble the car, and make it drive a circle and a square.<\/li>\r\n<li>Set the car in any orientation, it should be able to drive towards the north.<\/li>\r\n<li>Navigate to a specified GPS location.<\/li>\r\n<li>Drive with a fence created by GPS coordinates<\/li>\r\n<li>Drive to a GPS location while avoiding obstacles<\/li>\r\n<\/ol>\r\n\r\n\r\n\r\n<h4 class=\"wp-block-heading\"><strong>Learning outcomes<\/strong><\/h4>\r\n\r\n\r\n\r\n<p>Ultimately the main goal of the course is for the students to get the skills and the confidence to build anything. The theme of the course is, therefore &#8220;Control Anything&#8221;. In general terms, students learn the fundamentals of how to design robotic systems. In more technical term, students\u00a0learn how the components of a robotic system,&#8211;different sensors and actuators&#8211; work, they learn how to control them through software, how to correctly write and analyze real-time\u00a0software, and they learn how to analyze\u00a0the stability and responsiveness of a control system.<\/p>\r\n\r\n\r\n\r\n<h4 class=\"wp-block-heading\"><strong>Conclusion<\/strong><\/h4>\r\n\r\n\r\n\r\n<p>Ultimately, it is not from listening to the lectures, but from doing the projects, those students get the confidence &#8212; that they can now build any control system. This autonomously navigating car is not a simple project, and once you do this, building a garage controller, or controlling your Christmas lights are very simple things. And doing that is our dream of Internet-of-Things \u2013 where we will be able to control everything&#8230; from the furniture in the house to the direction of power flow between your solar panels and the national power grid.<\/p>\r\n\r\n\r\n\r\n<h4 class=\"wp-block-heading\">\u00a0<\/h4>\r\n\r\n\r\n\r\n<h4 class=\"wp-block-heading\"><strong>Press Release<\/strong><\/h4>\r\n\r\n\r\n\r\n<p><a href=\"https:\/\/asunow.asu.edu\/20160427-discoveries-engineering-robotic-cars\">https:\/\/asunow.asu.edu\/20160427-discoveries-engineering-robotic-cars<\/a><\/p>\r\n\r\n\r\n\r\n<p><a href=\"http:\/\/www.statepress.com\/article\/2016\/04\/robotics-from-az-new-class-shows-students-how-robots-come-full-circle\">http:\/\/www.statepress.com\/article\/2016\/04\/robotics-from-az-new-class-shows-students-how-robots-come-full-circle<\/a><\/p>\r\n\r\n\r\n\r\n<p><a href=\"https:\/\/ktar.com\/story\/1198941\/arizona-universities-drawing-in-technology-companies\/\">Arizona universities drawing in technology companies<\/a><\/p>\r\n\r\n\r\n\r\n<div class=\"wp-block-image\">\r\n<figure class=\"aligncenter\"><img loading=\"lazy\" decoding=\"async\" width=\"300\" height=\"211\" class=\"wp-image-2991\" src=\"https:\/\/labs.engineering.asu.edu\/mps-lab\/wp-content\/uploads\/sites\/8\/2017\/07\/Horizontal-1-300x211.jpg\" alt=\"\" srcset=\"https:\/\/labs.engineering.asu.edu\/mps-lab\/wp-content\/uploads\/sites\/8\/2017\/07\/Horizontal-1-300x211.jpg 300w, https:\/\/labs.engineering.asu.edu\/mps-lab\/wp-content\/uploads\/sites\/8\/2017\/07\/Horizontal-1-1024x720.jpg 1024w, https:\/\/labs.engineering.asu.edu\/mps-lab\/wp-content\/uploads\/sites\/8\/2017\/07\/Horizontal-1-768x540.jpg 768w, https:\/\/labs.engineering.asu.edu\/mps-lab\/wp-content\/uploads\/sites\/8\/2017\/07\/Horizontal-1.jpg 1317w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/figure>\r\n<\/div>\r\n","protected":false},"excerpt":{"rendered":"<p class=\"mb-2\">Announcement of Autonomous Car Race Student made video of &#8220;their journey&#8221; in the course Overview Embedded Microprocessor Systems are often used to design Cyber-Physical Systems, or robotic systems, in which the computing system interacts with the real world, e.g., an autonomous car. Computers interacting with real-world is very different from the scenario when a computer&#8230;<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":3003,"menu_order":76,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_acf_changed":false,"footnotes":""},"class_list":["post-2935","page","type-page","status-publish","hentry"],"acf":[],"_links":{"self":[{"href":"https:\/\/labs.engineering.asu.edu\/mps-lab\/wp-json\/wp\/v2\/pages\/2935","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/labs.engineering.asu.edu\/mps-lab\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/labs.engineering.asu.edu\/mps-lab\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/labs.engineering.asu.edu\/mps-lab\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/labs.engineering.asu.edu\/mps-lab\/wp-json\/wp\/v2\/comments?post=2935"}],"version-history":[{"count":0,"href":"https:\/\/labs.engineering.asu.edu\/mps-lab\/wp-json\/wp\/v2\/pages\/2935\/revisions"}],"up":[{"embeddable":true,"href":"https:\/\/labs.engineering.asu.edu\/mps-lab\/wp-json\/wp\/v2\/pages\/3003"}],"wp:attachment":[{"href":"https:\/\/labs.engineering.asu.edu\/mps-lab\/wp-json\/wp\/v2\/media?parent=2935"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}