{"id":410,"date":"2019-03-31T13:28:25","date_gmt":"2019-03-31T13:28:25","guid":{"rendered":"https:\/\/commons.princeton.edu\/epics\/?page_id=410"},"modified":"2019-05-06T22:13:24","modified_gmt":"2019-05-06T22:13:24","slug":"legoca","status":"publish","type":"page","link":"https:\/\/commons.princeton.edu\/epics\/about-2\/2019-2\/legoca\/","title":{"rendered":"Lego NXT Drawbot"},"content":{"rendered":"<div class=\"wpb-content-wrapper\"><p>[vc_row][vc_column][vc_zigzag el_border_width=&#8221;8&#8243; css=&#8221;.vc_custom_1553988634650{margin-bottom: 20px !important;}&#8221;][vc_column_text]<\/p>\n<h3>Students<\/h3>\n<p>[\/vc_column_text][vc_row_inner][vc_column_inner width=&#8221;1\/6&#8243;][vc_single_image image=&#8221;956&#8243; img_size=&#8221;medium&#8221; css=&#8221;.vc_custom_1557180331618{margin-bottom: 0px !important;border-bottom-width: 0px !important;}&#8221;][vc_column_text]Nick Veo<br \/>\nORFE, 2019[\/vc_column_text][\/vc_column_inner][vc_column_inner width=&#8221;1\/6&#8243;][vc_single_image image=&#8221;957&#8243; img_size=&#8221;medium&#8221; css=&#8221;.vc_custom_1557180312610{margin-bottom: 0px !important;border-bottom-width: 0px !important;}&#8221;][vc_column_text]Spencer Anton<br \/>\nEconomics, 2019[\/vc_column_text][\/vc_column_inner][vc_column_inner width=&#8221;1\/6&#8243;][vc_single_image image=&#8221;955&#8243; img_size=&#8221;medium&#8221; css=&#8221;.vc_custom_1557180322363{margin-bottom: 0px !important;border-bottom-width: 0px !important;}&#8221;][vc_column_text]Liam Glass<br \/>\nPolitics, 2019[\/vc_column_text][\/vc_column_inner][vc_column_inner width=&#8221;1\/6&#8243;][\/vc_column_inner][vc_column_inner width=&#8221;1\/3&#8243;][\/vc_column_inner][\/vc_row_inner][vc_zigzag el_border_width=&#8221;8&#8243; css=&#8221;.vc_custom_1553988638130{margin-bottom: 20px !important;}&#8221;][vc_column_text]<\/p>\n<h3>Project Description<\/h3>\n<p>Our project is a lego NXT car that we adapted to draw specific letters and images. In addition to the Lego parts that make up the car, we 3D printed a modified ring clamp that serves as a pen holder at the front of the car (we have found that Expo markers have been the most effective in this regard). We had to print several models of this ring clamp so as to arrive at the most effective size in relation to the car. We also added mechanism that moves marker up and down. In addition, we added a weight to make sure the front wheel was consistently on the floor because the new car design was intentionally &#8216;top-heavy.&#8217; We designed the car to be top-heavy in order to decrease the turning radius. In order to make the car move in accordance with our prerogatives, we programmed the NXT brick using Mindstorm\u2019s NXT Application. Given the dated nature of this software, it required some creative unpacking to successfully execute the data transfer from the computer to the NXT car. Our goals were ultimately to program the car to write \u201cLITTMAN.&#8221; Included in this report are flow charts that depict the code that was used within the Mindstorm NXT Application in order to make the car write \u201cLITTMAN.&#8221; We had originally intended to write entire phrases such as the University honor code, however, due to the outdated nature of the Mindstorm NXT hardware, the group discovered that memory constraints make this impossible. While we believe that our Drawbot is unique, the group&#8217;s primary original contribution is the Mindstorm code, depicted in the flow charts below.[\/vc_column_text][vc_zigzag el_border_width=&#8221;8&#8243; css=&#8221;.vc_custom_1553988641874{margin-bottom: 20px !important;}&#8221;][vc_column_text]<\/p>\n<h3>Technical Background<\/h3>\n<p>[\/vc_column_text][vc_row_inner][vc_column_inner][vc_column_text]LEGO Mindstorms NXT is a robotics branch of the brick making company LEGO. LEGO created NXT as an educational project to help teach students of all ages to program. Since programming is seemingly unapproachable to those that have never coded before LEGO Mindstorms created a pseudo-programming language that relies on a series of interlocking code chunks. Each code chunk is visually attached to a virtual LEGO connector on screen in the LEGO Mindstorms NXT programming application. Each chunk represents a single action in the NXT programming language. The code is downloaded onto the NXT brick and interpreted into actions. The brick is attached to the top of our LEGO vehicle. The brick has 7 ports that actions can be applied to. They are labeled A,B,C,1,2,3,4. A programmable item can be plugged into each of the three ports. Programmable items include motors, distance sensors, sound sensors, speakers, etc. Once programmable items are plugged into a port, they can respond to the code from the Mindstorms computer application. So, if port A contains a motor, the programming language can be configured to move motor A in one of two rotational directions. Additionally, the number of rotations, rotating time, and rotational intensity can be specified. An example of the technical in action of our vehicle is the dual motor system. The left motor on the vehicle is plugged into port B and the right motor is plugged into port C. If we would like for the car to move forward, we can program both ports B and C to move forward 3 axel rotations in the forward direction. This would appear as a \u201cMovement\u201d code chunk with ports B and C specified as \u201cBC\u201d in the top right corner.[\/vc_column_text][vc_column_text]<em>\u201cLego Mindstorms.\u201d Wikipedia, Wikimedia Foundation, 18 Feb. 2019, en.wikipedia.org\/wiki\/Lego_Mindstorms.<\/em><br \/>\n<em>\u201cNXT Software.\u201d Mindstorms, LEGO, www.lego.com\/en-us\/mindstorms\/downloads\/nxt-software-download.<\/em>[\/vc_column_text][\/vc_column_inner][\/vc_row_inner][vc_zigzag color=&#8221;black&#8221; el_border_width=&#8221;8&#8243; css=&#8221;.vc_custom_1553988646466{margin-bottom: 20px !important;}&#8221;][vc_column_text]<\/p>\n<h3>Design Drawings<\/h3>\n<p>[\/vc_column_text][vc_media_grid grid_id=&#8221;vc_gid:1557180791462-ea36d456-7c55-10&#8243; include=&#8221;959,960,961&#8243;][vc_zigzag css=&#8221;.vc_custom_1553988654467{margin-bottom: 20px !important;}&#8221;][vc_column_text]<\/p>\n<h3>Fabrication Process<\/h3>\n<p>[\/vc_column_text][vc_row_inner][vc_column_inner][vc_column_text]<\/p>\n<div id=\"bannerR\">\n<div id=\"div-gpt-ad-1474537762122-3\" data-google-query-id=\"CJ3tvPmBq-ECFQJ6wQodrYYMtQ\">\n<div id=\"google_ads_iframe_\/15188745\/Lipsum-Unit4_0__container__\">The group began by assembling the Drawbot using LEGO pieces found in the EPICS lab from 2006. This assembly ultimately involved attaching two motorized wheels as well as a third motor for lifting the pen\/marker to a base consisting primarily of the LEGO NXT Mindstorm brick, which the group coded in order make the car write the word, &#8220;LITTMAN.&#8221; Our first model was extremely wide-bodied; the brick was positioned vertically and directly between the two motorized wheels. At the front of the car, we placed a modified ring clamp that the group 3D printed that would function as the pen holder. After deliberating between several writing instruments, we discovered that Expo markers were the most effective since we tested the car primarily on surfaces where we needed to erase marks. The group had to print several models of the modified ring clamp so as to arrive at the most effective size in relation to the car. After some testing, we then decided to redistribute the weight of the car by moving the brick further back. This was done in order to change the center of mass and turning radius. We also added weight to the front wheel in order to make sure that it would stay on the ground during high velocity turns and reduce drag. The group then decided to add sensors to the car in order to understand the boundaries of the surface which we were working on and perceive walls. After further testing, we repositioned the brick horizontally in order to make the car\u2019s body more narrow. The group also added a third motor at this point in order to lift the pen and write letters that were not connected. We arrived at our final model by shifting the brick even further back in order to further reduce the car\u2019s turning radius. The flow charts depicting the NXT code have been organized by shape. One shape corresponds to pen movements, one corresponds to driving forward\/backwards, and another corresponds to turning. Actions are connected by arrows, similar to the LEGO links in the NXT software. This forms the design of our original contribution. Most of the difficulties that the group encountered stemmed from the outdated nature of the NXT hardware and general engineering issues. These included the brick&#8217;s memory constraints (limiting the number of letters we could draw) as well as the fact that movements varied significantly based on the battery power of the car and the surface upon which it was moving. While we did not ultimately accomplish the group&#8217;s original objective (i.e. writing the honor code), the group is proud of the work we put in which totals over 50 hours this semester alone. Per Mauricio&#8217;s request, all pictures and videos of the fabrication process as well as final project pictures and videos will be sent directly via email. Therefore, we are resubmitting our headshots as the files as a filler. Please disregard the photos and see the google drive.<\/div>\n<\/div>\n<\/div>\n<p>[\/vc_column_text][\/vc_column_inner][\/vc_row_inner][vc_media_grid grid_id=&#8221;vc_gid:1557180791463-9a2ecbc6-ee1c-0&#8243; include=&#8221;962,963,964,967,968,969,970,971,973&#8243;][vc_zigzag css=&#8221;.vc_custom_1553988664868{margin-bottom: 20px !important;}&#8221;][vc_column_text]<\/p>\n<h3>Final Result<\/h3>\n<p>[\/vc_column_text][vc_row_inner][vc_column_inner width=&#8221;1\/2&#8243;][vc_video link=&#8221;https:\/\/youtu.be\/Pc5Goc4C9jk&#8221;][\/vc_column_inner][vc_column_inner width=&#8221;1\/2&#8243;][vc_video link=&#8221;https:\/\/youtu.be\/8U_UaXydKJc&#8221;][\/vc_column_inner][\/vc_row_inner][vc_row_inner][vc_column_inner width=&#8221;1\/2&#8243;][vc_video link=&#8221;https:\/\/youtu.be\/OjJ5_OYpOEk&#8221;][\/vc_column_inner][vc_column_inner width=&#8221;1\/2&#8243;][vc_video link=&#8221;https:\/\/youtu.be\/0WzDDms1tt8&#8243;][\/vc_column_inner][\/vc_row_inner][\/vc_column][\/vc_row]<\/p>\n<\/div>","protected":false},"excerpt":{"rendered":"<p>[vc_row][vc_column][vc_zigzag el_border_width=&#8221;8&#8243; css=&#8221;.vc_custom_1553988634650{margin-bottom: 20px !important;}&#8221;][vc_column_text] Students [\/vc_column_text][vc_row_inner][vc_column_inner width=&#8221;1\/6&#8243;][vc_single_image image=&#8221;956&#8243; img_size=&#8221;medium&#8221; css=&#8221;.vc_custom_1557180331618{margin-bottom: 0px !important;border-bottom-width: 0px !important;}&#8221;][vc_column_text]Nick Veo ORFE, 2019[\/vc_column_text][\/vc_column_inner][vc_column_inner width=&#8221;1\/6&#8243;][vc_single_image image=&#8221;957&#8243; img_size=&#8221;medium&#8221; css=&#8221;.vc_custom_1557180312610{margin-bottom: 0px !important;border-bottom-width: 0px !important;}&#8221;][vc_column_text]Spencer Anton Economics, 2019[\/vc_column_text][\/vc_column_inner][vc_column_inner width=&#8221;1\/6&#8243;][vc_single_image&hellip; <a class=\"read-more\" href=\"https:\/\/commons.princeton.edu\/epics\/about-2\/2019-2\/legoca\/\" title=\"Lego NXT Drawbot\"><i class=\"fa fa-arrow-right\"><\/i><\/a><\/p>\n","protected":false},"author":1379,"featured_media":963,"parent":212,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"categories":[12],"tags":[],"class_list":["post-410","page","type-page","status-publish","has-post-thumbnail","hentry","category-12"],"_links":{"self":[{"href":"https:\/\/commons.princeton.edu\/epics\/wp-json\/wp\/v2\/pages\/410","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/commons.princeton.edu\/epics\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/commons.princeton.edu\/epics\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/commons.princeton.edu\/epics\/wp-json\/wp\/v2\/users\/1379"}],"replies":[{"embeddable":true,"href":"https:\/\/commons.princeton.edu\/epics\/wp-json\/wp\/v2\/comments?post=410"}],"version-history":[{"count":4,"href":"https:\/\/commons.princeton.edu\/epics\/wp-json\/wp\/v2\/pages\/410\/revisions"}],"predecessor-version":[{"id":976,"href":"https:\/\/commons.princeton.edu\/epics\/wp-json\/wp\/v2\/pages\/410\/revisions\/976"}],"up":[{"embeddable":true,"href":"https:\/\/commons.princeton.edu\/epics\/wp-json\/wp\/v2\/pages\/212"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/commons.princeton.edu\/epics\/wp-json\/wp\/v2\/media\/963"}],"wp:attachment":[{"href":"https:\/\/commons.princeton.edu\/epics\/wp-json\/wp\/v2\/media?parent=410"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/commons.princeton.edu\/epics\/wp-json\/wp\/v2\/categories?post=410"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/commons.princeton.edu\/epics\/wp-json\/wp\/v2\/tags?post=410"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}