https://elinux.org/api.php?action=feedcontributions&user=Chris.good&feedformat=atomeLinux.org - User contributions [en]2024-03-29T04:34:25ZUser contributionsMediaWiki 1.31.0https://elinux.org/index.php?title=ECE497_Project_RoverGUI&diff=193448ECE497 Project RoverGUI2012-11-14T07:22:00Z<p>Chris.good: /* Installation Instructions */ fixing git link, again.</p>
<hr />
<div>[[Category:ECE497 |Project]]<br />
{{YoderHead}}<br />
<br />
Team member: [[user:chris.good|Chris Good]] <br />
<br />
== Grading Template ==<br />
I'm using the following template to grade. Each slot is 10 points.<br />
0 = Missing, 5=OK, 10=Wow!<br />
<br />
<pre style="color:red"><br />
00 Executive Summary<br />
00 Installation Instructions <br />
00 User Instructions<br />
00 Highlights<br />
00 Theory of Operation<br />
00 Work Breakdown<br />
00 Future Work<br />
00 Conclusions<br />
00 Demo<br />
00 Late<br />
Comments: I'm looking forward to seeing this.<br />
<br />
Score: 00/100<br />
</pre><br />
<br />
== Executive Summary ==<br />
This project is to create a GUI that could be used to control the rover project found here:[[ECE497_Project_Rover]] The GUI will have two interfaces. The more simple one can control forward, backwards, and turning. The other will be GUI based on the Google Maps API so that users can click waypoints for the rover to travel.<br />
<br />
The curent code will allow the user to place into a file either simple commands or a list of coordinates from the Google Maps API.<br />
<br />
Although in itself this project would likely not be of much use, it will give certain projects a very useful and easy to integrate user interface.<br />
<br />
== Installation Instructions ==<br />
First, ensure node.js is installed by running:<br />
<br />
beagle$ '''opkg install nodejs'''<br />
<br />
Next, the GUI can be downloaded from [[https://github.com/goodca/roverGUI.git https://github.com/goodca/roverGUI.git]]<br />
<br />
No compiling is needed so the GUI is now ready to be used.<br />
<br />
== User Instructions ==<br />
Move to the top level of the directory GUI directory. To run the GUI server, run:<br />
<br />
beagle$ '''node GUI.js'''<br />
<br />
Then, from any networked browser point to:<br />
<br />
beagle$ '''beagle:8081'''<br />
<br />
where ''beagle'' is the IP of the BeagleBone.<br />
The browser will now be pointed to the home screen of the GUI. Either the simple direction GUI or the Google Maps GUI can now be selected by clicking the text of the option you would like to select.<br />
<br />
[[File:RoverGUIHome.PNG]]<br />
<br />
Selecting the simple control option will send you to the simple control GUI.<br />
<br />
[[File:RoverGUISimple.PNG]]<br />
<br />
Clicking on a button will cause create a file in the top directory of the GUI directory called inst.txt that will contain only the text from the button most recently clicked. In this way, the program to be controlled can watch this file and carry out the instruction currently in the file. With some easy modification to the source code more buttons can be created that will add any additional functionality.<br />
<br />
If instead the maps GUI was clicked the following will be displayed<br />
<br />
[[File:RoverGUIMapsStart.PNG]]<br />
<br />
From here you can navigate the map as is likely familiar with Google Maps. However, any time the map registers a single left click a marker will be placed. Every additional marker after the first will place a second marker with a line from the preceding marker. This can continue as long as many times as the user would like markers placed. <br />
<br />
The following is an example of a marker placed on Rose-Hulman's campus, New York City, Chicago, Louisville, and then back to Rose-Hulman.<br />
[[File:RoverGUIMaps.PNG]]<br />
<br />
Once finished, the user can click the "done" button near the top of the page. At this point, the inst.txt file in the GUI directory will be populated with the coordinates of each marker in the order they were clicked. The following is the resulting file from the example map.<br />
<br />
'''(39.4824644923698, -87.32401371002197)<br />
'''(41.88592102814744, -87.626953125)<br />
'''(41.50857729743935, -81.683349609375)<br />
'''(38.27268853598097, -85.75927734375)<br />
'''(39.48246138709902, -87.32401169836521)'''<br />
<br />
== Highlights ==<br />
This GUI is designed to be extremely easy to interface to other programs. If the other program can be created to read a text file of either instructions or coordinates it can likely be made to use this GUI.<br />
<br />
The Google Maps GUI makes it very simple to create a list of GPS coordinates. This would make creating tests much simpler for any testing that makes use of GPS coordinates.<br />
<br />
== Theory of Operation ==<br />
<br />
The server on the BeagleBone is running using node.js. With between the BeagleBone and the browser is handled by node.js and socket.io. The GUI will then use either basic socket.io buttons or the Google Maps API to send instructions to the BeagleBone. The instructions are then saved to a file on the BeagleBone.<br />
<br />
== Work Breakdown ==<br />
<br />
All work was done by Chris Good<br />
<br />
== Future Work ==<br />
<br />
Extra buttons can be easily added to the simple GUI through modifying the source code. These buttons could carry any actions the user intends to have.<br />
<br />
Currently the Maps GUI only reports latitude and longitude coordinates. While this is fine for ground based objects such as the Rover this project was designed to work with, it could be expanded to allow a height coordinate in order to accommodate aerial objects. Further parameters such as travel velocity or a time to stay at a coordinate could also be added.<br />
<br />
== Conclusions ==<br />
This project gives an easy to integrate GUI solution for devices that make use of simple direction commands or gps coordinates for the purpose of way-points.<br />
<br />
{{YoderFoot}}</div>Chris.goodhttps://elinux.org/index.php?title=ECE497_Project_RoverGUI&diff=193442ECE497 Project RoverGUI2012-11-14T07:19:29Z<p>Chris.good: git update again</p>
<hr />
<div>[[Category:ECE497 |Project]]<br />
{{YoderHead}}<br />
<br />
Team member: [[user:chris.good|Chris Good]] <br />
<br />
== Grading Template ==<br />
I'm using the following template to grade. Each slot is 10 points.<br />
0 = Missing, 5=OK, 10=Wow!<br />
<br />
<pre style="color:red"><br />
00 Executive Summary<br />
00 Installation Instructions <br />
00 User Instructions<br />
00 Highlights<br />
00 Theory of Operation<br />
00 Work Breakdown<br />
00 Future Work<br />
00 Conclusions<br />
00 Demo<br />
00 Late<br />
Comments: I'm looking forward to seeing this.<br />
<br />
Score: 00/100<br />
</pre><br />
<br />
== Executive Summary ==<br />
This project is to create a GUI that could be used to control the rover project found here:[[ECE497_Project_Rover]] The GUI will have two interfaces. The more simple one can control forward, backwards, and turning. The other will be GUI based on the Google Maps API so that users can click waypoints for the rover to travel.<br />
<br />
The curent code will allow the user to place into a file either simple commands or a list of coordinates from the Google Maps API.<br />
<br />
Although in itself this project would likely not be of much use, it will give certain projects a very useful and easy to integrate user interface.<br />
<br />
== Installation Instructions ==<br />
First, ensure node.js is installed by running:<br />
<br />
beagle$ '''opkg install nodejs'''<br />
<br />
Next, the GUI can be downloaded from [ https://github.com/goodca/roverGUI.git https://github.com/goodca/roverGUI.git]<br />
<br />
No compiling is needed so the GUI is now ready to be used.<br />
<br />
== User Instructions ==<br />
Move to the top level of the directory GUI directory. To run the GUI server, run:<br />
<br />
beagle$ '''node GUI.js'''<br />
<br />
Then, from any networked browser point to:<br />
<br />
beagle$ '''beagle:8081'''<br />
<br />
where ''beagle'' is the IP of the BeagleBone.<br />
The browser will now be pointed to the home screen of the GUI. Either the simple direction GUI or the Google Maps GUI can now be selected by clicking the text of the option you would like to select.<br />
<br />
[[File:RoverGUIHome.PNG]]<br />
<br />
Selecting the simple control option will send you to the simple control GUI.<br />
<br />
[[File:RoverGUISimple.PNG]]<br />
<br />
Clicking on a button will cause create a file in the top directory of the GUI directory called inst.txt that will contain only the text from the button most recently clicked. In this way, the program to be controlled can watch this file and carry out the instruction currently in the file. With some easy modification to the source code more buttons can be created that will add any additional functionality.<br />
<br />
If instead the maps GUI was clicked the following will be displayed<br />
<br />
[[File:RoverGUIMapsStart.PNG]]<br />
<br />
From here you can navigate the map as is likely familiar with Google Maps. However, any time the map registers a single left click a marker will be placed. Every additional marker after the first will place a second marker with a line from the preceding marker. This can continue as long as many times as the user would like markers placed. <br />
<br />
The following is an example of a marker placed on Rose-Hulman's campus, New York City, Chicago, Louisville, and then back to Rose-Hulman.<br />
[[File:RoverGUIMaps.PNG]]<br />
<br />
Once finished, the user can click the "done" button near the top of the page. At this point, the inst.txt file in the GUI directory will be populated with the coordinates of each marker in the order they were clicked. The following is the resulting file from the example map.<br />
<br />
'''(39.4824644923698, -87.32401371002197)<br />
'''(41.88592102814744, -87.626953125)<br />
'''(41.50857729743935, -81.683349609375)<br />
'''(38.27268853598097, -85.75927734375)<br />
'''(39.48246138709902, -87.32401169836521)'''<br />
<br />
== Highlights ==<br />
This GUI is designed to be extremely easy to interface to other programs. If the other program can be created to read a text file of either instructions or coordinates it can likely be made to use this GUI.<br />
<br />
The Google Maps GUI makes it very simple to create a list of GPS coordinates. This would make creating tests much simpler for any testing that makes use of GPS coordinates.<br />
<br />
== Theory of Operation ==<br />
<br />
The server on the BeagleBone is running using node.js. With between the BeagleBone and the browser is handled by node.js and socket.io. The GUI will then use either basic socket.io buttons or the Google Maps API to send instructions to the BeagleBone. The instructions are then saved to a file on the BeagleBone.<br />
<br />
== Work Breakdown ==<br />
<br />
All work was done by Chris Good<br />
<br />
== Future Work ==<br />
<br />
Extra buttons can be easily added to the simple GUI through modifying the source code. These buttons could carry any actions the user intends to have.<br />
<br />
Currently the Maps GUI only reports latitude and longitude coordinates. While this is fine for ground based objects such as the Rover this project was designed to work with, it could be expanded to allow a height coordinate in order to accommodate aerial objects. Further parameters such as travel velocity or a time to stay at a coordinate could also be added.<br />
<br />
== Conclusions ==<br />
This project gives an easy to integrate GUI solution for devices that make use of simple direction commands or gps coordinates for the purpose of way-points.<br />
<br />
{{YoderFoot}}</div>Chris.goodhttps://elinux.org/index.php?title=ECE497_Project_RoverGUI&diff=193430ECE497 Project RoverGUI2012-11-14T07:09:47Z<p>Chris.good: github link changed</p>
<hr />
<div>[[Category:ECE497 |Project]]<br />
{{YoderHead}}<br />
<br />
Team member: [[user:chris.good|Chris Good]] <br />
<br />
== Grading Template ==<br />
I'm using the following template to grade. Each slot is 10 points.<br />
0 = Missing, 5=OK, 10=Wow!<br />
<br />
<pre style="color:red"><br />
00 Executive Summary<br />
00 Installation Instructions <br />
00 User Instructions<br />
00 Highlights<br />
00 Theory of Operation<br />
00 Work Breakdown<br />
00 Future Work<br />
00 Conclusions<br />
00 Demo<br />
00 Late<br />
Comments: I'm looking forward to seeing this.<br />
<br />
Score: 00/100<br />
</pre><br />
<br />
== Executive Summary ==<br />
This project is to create a GUI that could be used to control the rover project found here:[[ECE497_Project_Rover]] The GUI will have two interfaces. The more simple one can control forward, backwards, and turning. The other will be GUI based on the Google Maps API so that users can click waypoints for the rover to travel.<br />
<br />
The curent code will allow the user to place into a file either simple commands or a list of coordinates from the Google Maps API.<br />
<br />
Although in itself this project would likely not be of much use, it will give certain projects a very useful and easy to integrate user interface.<br />
<br />
== Installation Instructions ==<br />
First, ensure node.js is installed by running:<br />
<br />
beagle$ '''opkg install nodejs'''<br />
<br />
Next, the GUI can be downloaded from [git://github.com/goodca/roverGUI.git git://github.com/goodca/roverGUI.git]<br />
<br />
No compiling is needed so the GUI is now ready to be used.<br />
<br />
== User Instructions ==<br />
Move to the top level of the directory GUI directory. To run the GUI server, run:<br />
<br />
beagle$ '''node GUI.js'''<br />
<br />
Then, from any networked browser point to:<br />
<br />
beagle$ '''beagle:8081'''<br />
<br />
where ''beagle'' is the IP of the BeagleBone.<br />
The browser will now be pointed to the home screen of the GUI. Either the simple direction GUI or the Google Maps GUI can now be selected by clicking the text of the option you would like to select.<br />
<br />
[[File:RoverGUIHome.PNG]]<br />
<br />
Selecting the simple control option will send you to the simple control GUI.<br />
<br />
[[File:RoverGUISimple.PNG]]<br />
<br />
Clicking on a button will cause create a file in the top directory of the GUI directory called inst.txt that will contain only the text from the button most recently clicked. In this way, the program to be controlled can watch this file and carry out the instruction currently in the file. With some easy modification to the source code more buttons can be created that will add any additional functionality.<br />
<br />
If instead the maps GUI was clicked the following will be displayed<br />
<br />
[[File:RoverGUIMapsStart.PNG]]<br />
<br />
From here you can navigate the map as is likely familiar with Google Maps. However, any time the map registers a single left click a marker will be placed. Every additional marker after the first will place a second marker with a line from the preceding marker. This can continue as long as many times as the user would like markers placed. <br />
<br />
The following is an example of a marker placed on Rose-Hulman's campus, New York City, Chicago, Louisville, and then back to Rose-Hulman.<br />
[[File:RoverGUIMaps.PNG]]<br />
<br />
Once finished, the user can click the "done" button near the top of the page. At this point, the inst.txt file in the GUI directory will be populated with the coordinates of each marker in the order they were clicked. The following is the resulting file from the example map.<br />
<br />
'''(39.4824644923698, -87.32401371002197)<br />
'''(41.88592102814744, -87.626953125)<br />
'''(41.50857729743935, -81.683349609375)<br />
'''(38.27268853598097, -85.75927734375)<br />
'''(39.48246138709902, -87.32401169836521)'''<br />
<br />
== Highlights ==<br />
This GUI is designed to be extremely easy to interface to other programs. If the other program can be created to read a text file of either instructions or coordinates it can likely be made to use this GUI.<br />
<br />
The Google Maps GUI makes it very simple to create a list of GPS coordinates. This would make creating tests much simpler for any testing that makes use of GPS coordinates.<br />
<br />
== Theory of Operation ==<br />
<br />
The server on the BeagleBone is running using node.js. With between the BeagleBone and the browser is handled by node.js and socket.io. The GUI will then use either basic socket.io buttons or the Google Maps API to send instructions to the BeagleBone. The instructions are then saved to a file on the BeagleBone.<br />
<br />
== Work Breakdown ==<br />
<br />
All work was done by Chris Good<br />
<br />
== Future Work ==<br />
<br />
Extra buttons can be easily added to the simple GUI through modifying the source code. These buttons could carry any actions the user intends to have.<br />
<br />
Currently the Maps GUI only reports latitude and longitude coordinates. While this is fine for ground based objects such as the Rover this project was designed to work with, it could be expanded to allow a height coordinate in order to accommodate aerial objects. Further parameters such as travel velocity or a time to stay at a coordinate could also be added.<br />
<br />
== Conclusions ==<br />
This project gives an easy to integrate GUI solution for devices that make use of simple direction commands or gps coordinates for the purpose of way-points.<br />
<br />
{{YoderFoot}}</div>Chris.goodhttps://elinux.org/index.php?title=ECE497_Project_RoverGUI&diff=193406ECE497 Project RoverGUI2012-11-14T06:44:21Z<p>Chris.good: highlights, theory of operation, work breakdown, future work, and conclusion</p>
<hr />
<div>[[Category:ECE497 |Project]]<br />
{{YoderHead}}<br />
<br />
Team member: [[user:chris.good|Chris Good]] <br />
<br />
== Grading Template ==<br />
I'm using the following template to grade. Each slot is 10 points.<br />
0 = Missing, 5=OK, 10=Wow!<br />
<br />
<pre style="color:red"><br />
00 Executive Summary<br />
00 Installation Instructions <br />
00 User Instructions<br />
00 Highlights<br />
00 Theory of Operation<br />
00 Work Breakdown<br />
00 Future Work<br />
00 Conclusions<br />
00 Demo<br />
00 Late<br />
Comments: I'm looking forward to seeing this.<br />
<br />
Score: 00/100<br />
</pre><br />
<br />
== Executive Summary ==<br />
This project is to create a GUI that could be used to control the rover project found here:[[ECE497_Project_Rover]] The GUI will have two interfaces. The more simple one can control forward, backwards, and turning. The other will be GUI based on the Google Maps API so that users can click waypoints for the rover to travel.<br />
<br />
The curent code will allow the user to place into a file either simple commands or a list of coordinates from the Google Maps API.<br />
<br />
Although in itself this project would likely not be of much use, it will give certain projects a very useful and easy to integrate user interface.<br />
<br />
== Installation Instructions ==<br />
First, ensure node.js is installed by running:<br />
<br />
beagle$ '''opkg install nodejs'''<br />
<br />
Next, the GUI can be downloaded from [git://github.com/goodca/roverGUI.git here.]<br />
No compiling is needed so the GUI is now ready to be used.<br />
<br />
== User Instructions ==<br />
Move to the top level of the directory GUI directory. To run the GUI server, run:<br />
<br />
beagle$ '''node GUI.js'''<br />
<br />
Then, from any networked browser point to:<br />
<br />
beagle$ '''beagle:8081'''<br />
<br />
where ''beagle'' is the IP of the BeagleBone.<br />
The browser will now be pointed to the home screen of the GUI. Either the simple direction GUI or the Google Maps GUI can now be selected by clicking the text of the option you would like to select.<br />
<br />
[[File:RoverGUIHome.PNG]]<br />
<br />
Selecting the simple control option will send you to the simple control GUI.<br />
<br />
[[File:RoverGUISimple.PNG]]<br />
<br />
Clicking on a button will cause create a file in the top directory of the GUI directory called inst.txt that will contain only the text from the button most recently clicked. In this way, the program to be controlled can watch this file and carry out the instruction currently in the file. With some easy modification to the source code more buttons can be created that will add any additional functionality.<br />
<br />
If instead the maps GUI was clicked the following will be displayed<br />
<br />
[[File:RoverGUIMapsStart.PNG]]<br />
<br />
From here you can navigate the map as is likely familiar with Google Maps. However, any time the map registers a single left click a marker will be placed. Every additional marker after the first will place a second marker with a line from the preceding marker. This can continue as long as many times as the user would like markers placed. <br />
<br />
The following is an example of a marker placed on Rose-Hulman's campus, New York City, Chicago, Louisville, and then back to Rose-Hulman.<br />
[[File:RoverGUIMaps.PNG]]<br />
<br />
Once finished, the user can click the "done" button near the top of the page. At this point, the inst.txt file in the GUI directory will be populated with the coordinates of each marker in the order they were clicked. The following is the resulting file from the example map.<br />
<br />
'''(39.4824644923698, -87.32401371002197)<br />
'''(41.88592102814744, -87.626953125)<br />
'''(41.50857729743935, -81.683349609375)<br />
'''(38.27268853598097, -85.75927734375)<br />
'''(39.48246138709902, -87.32401169836521)'''<br />
<br />
== Highlights ==<br />
This GUI is designed to be extremely easy to interface to other programs. If the other program can be created to read a text file of either instructions or coordinates it can likely be made to use this GUI.<br />
<br />
The Google Maps GUI makes it very simple to create a list of GPS coordinates. This would make creating tests much simpler for any testing that makes use of GPS coordinates.<br />
<br />
== Theory of Operation ==<br />
<br />
The server on the BeagleBone is running using node.js. With between the BeagleBone and the browser is handled by node.js and socket.io. The GUI will then use either basic socket.io buttons or the Google Maps API to send instructions to the BeagleBone. The instructions are then saved to a file on the BeagleBone.<br />
<br />
== Work Breakdown ==<br />
<br />
All work was done by Chris Good<br />
<br />
== Future Work ==<br />
<br />
Extra buttons can be easily added to the simple GUI through modifying the source code. These buttons could carry any actions the user intends to have.<br />
<br />
Currently the Maps GUI only reports latitude and longitude coordinates. While this is fine for ground based objects such as the Rover this project was designed to work with, it could be expanded to allow a height coordinate in order to accommodate aerial objects. Further parameters such as travel velocity or a time to stay at a coordinate could also be added.<br />
<br />
== Conclusions ==<br />
This project gives an easy to integrate GUI solution for devices that make use of simple direction commands or gps coordinates for the purpose of way-points.<br />
<br />
{{YoderFoot}}</div>Chris.goodhttps://elinux.org/index.php?title=File:RoverGUIMapsStart.PNG&diff=193274File:RoverGUIMapsStart.PNG2012-11-14T05:37:59Z<p>Chris.good: This is the maps GUI initial starting point for the RoverGUI project</p>
<hr />
<div>This is the maps GUI initial starting point for the RoverGUI project</div>Chris.goodhttps://elinux.org/index.php?title=File:RoverGUIMaps.PNG&diff=193262File:RoverGUIMaps.PNG2012-11-14T05:36:08Z<p>Chris.good: This is the maps GUI for the RoverGUI project</p>
<hr />
<div>This is the maps GUI for the RoverGUI project</div>Chris.goodhttps://elinux.org/index.php?title=ECE497_Project_RoverGUI&diff=193256ECE497 Project RoverGUI2012-11-14T05:35:26Z<p>Chris.good: additional user use information</p>
<hr />
<div>[[Category:ECE497 |Project]]<br />
{{YoderHead}}<br />
<br />
Team member: [[user:chris.good|Chris Good]] <br />
<br />
== Grading Template ==<br />
I'm using the following template to grade. Each slot is 10 points.<br />
0 = Missing, 5=OK, 10=Wow!<br />
<br />
<pre style="color:red"><br />
00 Executive Summary<br />
00 Installation Instructions <br />
00 User Instructions<br />
00 Highlights<br />
00 Theory of Operation<br />
00 Work Breakdown<br />
00 Future Work<br />
00 Conclusions<br />
00 Demo<br />
00 Late<br />
Comments: I'm looking forward to seeing this.<br />
<br />
Score: 00/100<br />
</pre><br />
<br />
== Executive Summary ==<br />
This project is to create a GUI that could be used to control the rover project found here:[[ECE497_Project_Rover]] The GUI will have two interfaces. The more simple one can control forward, backwards, and turning. The other will be GUI based on the Google Maps API so that users can click waypoints for the rover to travel.<br />
<br />
The curent code will allow the user to place into a file either simple commands or a list of coordinates from the Google Maps API.<br />
<br />
Although in itself this project would likely not be of much use, it will give certain projects a very useful and easy to integrate user interface.<br />
<br />
== Installation Instructions ==<br />
First, ensure node.js is installed by running:<br />
<br />
beagle$ '''opkg install nodejs'''<br />
<br />
Next, the GUI can be downloaded from [git://github.com/goodca/roverGUI.git here.]<br />
No compiling is needed so the GUI is now ready to be used.<br />
<br />
== User Instructions ==<br />
Move to the top level of the directory GUI directory. To run the GUI server, run:<br />
<br />
beagle$ '''node GUI.js'''<br />
<br />
Then, from any networked browser point to:<br />
<br />
beagle$ '''beagle:8081'''<br />
<br />
where ''beagle'' is the IP of the BeagleBone.<br />
The browser will now be pointed to the home screen of the GUI. Either the simple direction GUI or the Google Maps GUI can now be selected by clicking the text of the option you would like to select.<br />
<br />
[[File:RoverGUIHome.PNG]]<br />
<br />
Selecting the simple control option will send you to the simple control GUI.<br />
<br />
[[File:RoverGUISimple.PNG]]<br />
<br />
Clicking on a button will cause create a file in the top directory of the GUI directory called inst.txt that will contain only the text from the button most recently clicked. In this way, the program to be controlled can watch this file and carry out the instruction currently in the file. With some easy modification to the source code more buttons can be created that will add any additional functionality.<br />
'''(39.4824644923698, -87.32401371002197)<br />
'''(41.88592102814744, -87.626953125)<br />
'''(41.50857729743935, -81.683349609375)<br />
'''(38.27268853598097, -85.75927734375)<br />
'''(39.48246138709902, -87.32401169836521)'''<br />
== Highlights ==<br />
The user will be able to go to the location they would like the rover to travel and click on positions. The rover will then travel to these locations in order.<br />
<br />
More to come.<br />
<br />
== Theory of Operation ==<br />
<br />
The server on the BeagleBone is running using socket.io with node.js. The GUI will then use either basic buttons or the Google Maps API to send instructions to the rover. The instructions are then saved to a file that can be read by the BeagleBone. <br />
<br />
== Work Breakdown ==<br />
<br />
All work is done by Chris Good<br />
Future work: <br />
Implement basic control<br />
Implement files to save instructions to<br />
Parse clicks from Google Maps API<br />
<br />
== Future Work ==<br />
<br />
Since the instructions will be saved in a very simple text format file, any number of devices that could make use of simple controls or waypoint data would be potentially able to use this data. Furthermore, it could be modified to send the instructions in another method in order to comply to a device that already exists.<br />
<br />
== Conclusions ==<br />
<br />
This project will give a more natural feeling to controlling the rover project.<br />
<br />
{{YoderFoot}}</div>Chris.goodhttps://elinux.org/index.php?title=File:RoverGUISimple.PNG&diff=193244File:RoverGUISimple.PNG2012-11-14T05:29:55Z<p>Chris.good: This is the simple GUI for the RoverGUI project</p>
<hr />
<div>This is the simple GUI for the RoverGUI project</div>Chris.goodhttps://elinux.org/index.php?title=File:RoverGUIHome.PNG&diff=193238File:RoverGUIHome.PNG2012-11-14T05:25:10Z<p>Chris.good: This is the home screen for the RoverGUI project</p>
<hr />
<div>This is the home screen for the RoverGUI project</div>Chris.goodhttps://elinux.org/index.php?title=ECE497_Project_RoverGUI&diff=193094ECE497 Project RoverGUI2012-11-14T03:41:09Z<p>Chris.good: more content updates</p>
<hr />
<div>[[Category:ECE497 |Project]]<br />
{{YoderHead}}<br />
<br />
Team member: [[user:chris.good|Chris Good]] <br />
<br />
== Grading Template ==<br />
I'm using the following template to grade. Each slot is 10 points.<br />
0 = Missing, 5=OK, 10=Wow!<br />
<br />
<pre style="color:red"><br />
00 Executive Summary<br />
00 Installation Instructions <br />
00 User Instructions<br />
00 Highlights<br />
00 Theory of Operation<br />
00 Work Breakdown<br />
00 Future Work<br />
00 Conclusions<br />
00 Demo<br />
00 Late<br />
Comments: I'm looking forward to seeing this.<br />
<br />
Score: 00/100<br />
</pre><br />
<br />
== Executive Summary ==<br />
This project is to create a GUI that could be used to control the rover project found here:[[ECE497_Project_Rover]] The GUI will have two interfaces. The more simple one can control forward, backwards, and turning. The other will be GUI based on the Google Maps API so that users can click waypoints for the rover to travel.<br />
<br />
The curent code will allow the user to place into a file either simple commands or a list of coordinates from the Google Maps API.<br />
<br />
Although in itself this project would likely not be of much use, it will give certain projects a very useful and easy to integrate user interface.<br />
<br />
== Installation Instructions ==<br />
First, ensure node.js is installed by running:<br />
<br />
beagle$ '''opkg install nodejs'''<br />
<br />
Next, the GUI can be downloaded from [git://github.com/goodca/roverGUI.git here.]<br />
No compiling is needed so the GUI is now ready to be used.<br />
<br />
== User Instructions ==<br />
Move to the top level of the directory GUI directory. To run the GUI server, run:<br />
<br />
beagle$ '''node GUI.js'''<br />
<br />
Then, from any networked browser point to:<br />
<br />
beagle$ '''beagle:8081'''<br />
<br />
where ''beagle'' is the IP of the BeagleBone.<br />
The browser will now be pointed to the home screen of the GUI. Either the simple direction GUI or the Google Maps GUI can now be selected.<br />
Selecting the <br />
== Highlights ==<br />
The user will be able to go to the location they would like the rover to travel and click on positions. The rover will then travel to these locations in order.<br />
<br />
More to come.<br />
<br />
== Theory of Operation ==<br />
<br />
The server on the BeagleBone is running using socket.io with node.js. The GUI will then use either basic buttons or the Google Maps API to send instructions to the rover. The instructions are then saved to a file that can be read by the BeagleBone. <br />
<br />
== Work Breakdown ==<br />
<br />
All work is done by Chris Good<br />
Future work: <br />
Implement basic control<br />
Implement files to save instructions to<br />
Parse clicks from Google Maps API<br />
<br />
== Future Work ==<br />
<br />
Since the instructions will be saved in a very simple text format file, any number of devices that could make use of simple controls or waypoint data would be potentially able to use this data. Furthermore, it could be modified to send the instructions in another method in order to comply to a device that already exists.<br />
<br />
== Conclusions ==<br />
<br />
This project will give a more natural feeling to controlling the rover project.<br />
<br />
{{YoderFoot}}</div>Chris.goodhttps://elinux.org/index.php?title=ECE497_Project_RoverGUI&diff=192950ECE497 Project RoverGUI2012-11-14T01:36:17Z<p>Chris.good: updated git link, some commands</p>
<hr />
<div>[[Category:ECE497 |Project]]<br />
{{YoderHead}}<br />
<br />
Team member: [[user:chris.good|Chris Good]] <br />
<br />
== Grading Template ==<br />
I'm using the following template to grade. Each slot is 10 points.<br />
0 = Missing, 5=OK, 10=Wow!<br />
<br />
<pre style="color:red"><br />
00 Executive Summary<br />
00 Installation Instructions <br />
00 User Instructions<br />
00 Highlights<br />
00 Theory of Operation<br />
00 Work Breakdown<br />
00 Future Work<br />
00 Conclusions<br />
00 Demo<br />
00 Late<br />
Comments: I'm looking forward to seeing this.<br />
<br />
Score: 00/100<br />
</pre><br />
<br />
== Executive Summary ==<br />
This project is to create a GUI that could be used to control the rover project found here:[[ECE497_Project_Rover]] The GUI will have two stages. The more simple one can control simple movement such as forward, backwards, turning, etc. The other will be GUI based on the Google Maps API so that users can click waypoints for the rover to travel.<br />
<br />
Currently a computer networked with the BeagleBone can from a browser go to the bone and select the maps option. Selecting this option will bring up a Google Maps page that has very basic functionality. Currently clicking to select waypoints does nothing.<br />
<br />
== Installation Instructions ==<br />
The GUI can be downloaded from [https://github.com/goodca/roverGUI here.]<br />
Once downloaded move to the top level directory and run:<br />
<br />
beagle$ '''node GUI.js'''<br />
<br />
<br />
Then, from any networked browser point to:<br />
<br />
beagle$ '''beagle:8081'''<br />
<br />
where ''beagle'' is the IP of the BeagleBone.<br />
<br />
== User Instructions ==<br />
<br />
More detailed instructions on use to come.<br />
<br />
== Highlights ==<br />
The user will be able to go to the location they would like the rover to travel and click on positions. The rover will then travel to these locations in order.<br />
<br />
More to come.<br />
<br />
== Theory of Operation ==<br />
<br />
The server on the BeagleBone is running using socket.io with node.js. The GUI will then use either basic buttons or the Google Maps API to send instructions to the rover. The instructions are then saved to a file that can be read by the BeagleBone. <br />
<br />
== Work Breakdown ==<br />
<br />
All work is done by Chris Good<br />
Future work: <br />
Implement basic control<br />
Implement files to save instructions to<br />
Parse clicks from Google Maps API<br />
<br />
== Future Work ==<br />
<br />
Since the instructions will be saved in a very simple text format file, any number of devices that could make use of simple controls or waypoint data would be potentially able to use this data. Furthermore, it could be modified to send the instructions in another method in order to comply to a device that already exists.<br />
<br />
== Conclusions ==<br />
<br />
This project will give a more natural feeling to controlling the rover project.<br />
<br />
{{YoderFoot}}</div>Chris.goodhttps://elinux.org/index.php?title=User:Chris.good&diff=189122User:Chris.good2012-11-06T16:55:04Z<p>Chris.good: fixed where I messed it up</p>
<hr />
<div>I am currently a Computer Engineering senior at Rose-Hulman.<br />
[[Category:ECE497 |Ug]]</div>Chris.goodhttps://elinux.org/index.php?title=User:Chris.good&diff=189116User:Chris.good2012-11-06T16:54:29Z<p>Chris.good: edit of catigory</p>
<hr />
<div>I am currently a Computer Engineering senior at Rose-Hulman.<br />
[[Category:ECE497]| Ug]</div>Chris.goodhttps://elinux.org/index.php?title=EBC_Contributions_and_Project_Status&diff=187526EBC Contributions and Project Status2012-11-03T15:10:14Z<p>Chris.good: change Chris Good's project link</p>
<hr />
<div>[[Category:ECE497 |Contributions]]<br />
{{YoderHead}}<br />
<br />
== Fall 2012 ==<br />
<br />
=== Project Status ===<br />
<br />
Please edit this page and add your project to this list. Copy my [[ECE497 Project Template]] to your own eLinux page and include the title of your project in the name of the page. <br />
<br />
Please make the list alphabetical by family name.<br />
<br />
Take a look at what you and others have contributed.<br />
<br />
{|<br />
|- <br />
! Name<br />
! Contributions<br />
! Project<br />
! git repository<br />
|-<br />
| [[User:atniptw | Tom Atnip]]<br />
| <br />
| [[ECE497 Beagle VNS | Beagle VNS]]<br />
| [https://github.com/atniptw/ atniptw]<br />
|-<br />
| [[User:larmorgs | Greg Larmore]]<br />
| <br />
| [[ECE497 Project Template | My Beagle Project]]<br />
| [https://github.com/larmorgs/ larmorgs]<br />
|-<br />
| [[User:jessebrannon | Jesse Brannon]]<br />
| <br />
| [[ECE497 Project Rover | Rover]]<br />
| [https://github.com/brannojs/ brannojs]<br />
|-<br />
| [[User:Xinyu1991 | Xinyu Cheng]]<br />
| <br />
| [[ECE497 Project Template | My Beagle Project]]<br />
| [https://github.com/xinyu1991]<br />
|-<br />
| [[User:correlbn | Bryan Correll]]<br />
| [[Special:Contributions/correlbn|contrib]]<br />
| [[BeagleBone PRU | BeagleBone PRU]]<br />
| [https://github.com/correlbn/My-Beagle-Project/ Correlbn]<br />
|-<br />
| [[User:draneaw | Alex Drane]]<br />
| <br />
| [[ECE497 draneaw Project | My Beagle Project]]<br />
| [https://github.com/draneaw/My-Beagle-Project draneaw]<br />
|-<br />
| [[User:duganje | Josh Dugan]]<br />
| <br />
| [[ECE497 Project: XBee|XBee]]<br />
| [https://github.com/duganje/ duganje]<br />
|-<br />
| [[User:Geislekj | Kevin Geisler]]<br />
| <br />
| [[ECE497 Beagle VNS | Beagle VNS]]<br />
| [https://github.com/geislekj/ geislekj]<br />
| <br />
|-<br />
| [[User:chris.good | Christopher A Good]]<br />
| [[Special:Contributions/Chris.good|contrib]]<br />
| [[ECE497 Project RoverGUI | RoverGUI]]<br />
| [https://github.com/goodca/ goodca]<br />
| <br />
|-<br />
| [[User:hansenrl | Ross Hansen]]<br />
| [[Special:Contributions/hansenrl|contrib]]<br />
| [[ECE497 Project Rover | Rover]]<br />
| [https://github.com/hansenrl/ Hansenrl]<br />
| <br />
|-<br />
| [[User:jungeml | Michael Junge]]<br />
| [[Special:Contributions/jungeml|contrib]]<br />
| [[ECE497 Project Rover | Rover]]<br />
| [https://github.com/jungeml/ Jungeml]<br />
|-<br />
|<br />
|-<br />
| [[User:Lix | Xia Li]]<br />
| [[Special:Contributions/Lix|contrib]]<br />
| [[ECE497 Lix Project | My Beagle Project]]<br />
| [https://github.com/1984xiali/ xiali]<br />
|-<br />
| [[User:mmoravec | Matthew Moravec]]<br />
| [[Special:Contributions/mmoravec|contrib]]<br />
| [[ECE497 Project: XBee|XBee]]<br />
| [https://github.com/mmoravec/ mmoravec]<br />
|-<br />
| [[User:ngop | Peter Ngo]]<br />
| <br />
| [[ECE497 ngop Project: Beaglebone PRU|Beaglebone PRU]]<br />
| [https://github.com/ngop/ ngop]<br />
|<br />
|-<br />
| [[User:shinnsm|Stephen Shinn]]<br />
| [[Special:Contributions/shinnsm|contrib]]<br />
| [[ECE497 Project: XBee|XBee]]<br />
| [https://github.com/shinnsm shinnsm]<br />
|-<br />
| [[User:Yoder | Mark A. Yoder]]<br />
| [[Special:Contributions/Yoder | contrib]]<br />
| [[ECE497 Project Template | My Beagle Project]]<br />
| [https://github.com/MarkAYoder MarkAYoder]<br />
|-<br />
| [[User:Popenhjc | James Popenhagen]]<br />
| <br />
| [[BeagleBone PRU | BeagleBone PRU]]<br />
| [https://github.com/popenhjc/ popenhjc]<br />
|-<br />
| [[User:Whiteer | Elias White]]<br />
| <br />
| [[ECE497 SLAM via ROS | My Beagle Project]]<br />
| [https://github.com/whiteer whiteer]<br />
|-<br />
| [[User:ruff | Ruffin White]]<br />
| <br />
| [[ECE497 Beagle VNS | Beagle VNS]]<br />
| [https://github.com/ruffsl/ ruffsl]<br />
|<br />
|-<br />
| [[User:Richarsm | Sean Richardson]]<br />
| <br />
| [[ECE497 richarsm Project | My Beagle Project]]<br />
| [https://github.com/seanrich Sean Richardson]<br />
|-<br />
| [[User:Millerap | Andrew Miller]]<br />
|<br />
| [[ECE 497 millerap Project | My Beagle Project]]<br />
| [https://github.com/millerap millerap]<br />
|-| <br />
| [[User:Astroricks | Yue Zhang]]<br />
| <br />
| [[ECE497 Yue Zhang Project | My Beagle Project]]<br />
| [https://github.com/Astroricks/Beagle-Project Yue Zhang]<br />
|-<br />
| [[User:Lobdeljt | John Lobdell]]<br />
| <br />
| [[ECE 497 lobdeljt Project | My Beagle Project]]<br />
| [https://github.com/jtlobdell jtlobdell]<br />
|-<br />
|<br />
|}<br />
<br />
== Winter 2011-2012 ==<br />
<br />
=== Contributions ===<br />
<br />
# [[Special:Contributions/Yuming | Yuming Cao]]<br />
# [[Special:Contributions/Yifei | Yifei Li]]<br />
# [[Special:Contributions/Harrisgw | Greg Harrison]]<br />
# [[Special:Contributions/mac | Jack Ma]]<br />
# [[Special:Contributions/Gemini91 | Guanqun Wang]]<br />
# [[Special:Contributions/Yanj | Mona Yan]]<br />
# [[Special:Contributions/Yoder | Mark A. Yoder]]<br />
# [[Special:Contributions/Yuhasmj | Michael Yuhas]]<br />
# [[Special:Contributions/Ziyi Zhang | Ziyi Zhang]]<br />
# [[Special:Contributions/Zitnikdj | David Zitnik]]<br />
# [[Special:Contributions/Zitnikdj | Alex Drane]]<br />
# [[Special:Contributions/jessebrannon | Jesse Brannon]]<br />
# [[Special:Contributions/larmorgs | Greg Larmore]]<br />
# [[Special:Contributions/jungeml | Michael Junge]]<br />
# [[Special:Contributions/millerap | Andrew Miller]]<br />
# [[Special:Contributions/correlbn | Bryan Correll]]<br />
<br />
=== Project Status ===<br />
<br />
# [[User:Yoder | Mark A. Yoder]], [[ECE497 Project Template | My Beagle Project]]<br />
# [[user:Yanj|Mona Yan]] and [[user:Harrisgw| Greg Harrison]], [[PS EYE QT PROJECT | Playstation Eye Audio with Qt]]<br />
# [[user:Caogecym | Yuming Cao]] and [[user:Ziyi Zhang | Ziyi Zhang]], [[Node.js Weather Station]]<br />
# [[user:Yifei| Yifei Li]] and [[user:Gemini91| Guanqun Wang]], [[ Kinect Project | Play games using Kinect on Beagleboard]]<br />
# [[user:Yuhasmj| Michael J. Yuhas]] and [[user:mac | Jack Ma]], [[ Multiple Partitions via U-boot | Multiple Partitions via U-boot ]]<br />
# [[user:Zitnikdj| David Zitnik]], [[ ECE497 Project: Twitter Java Application | Twitter Java Application ]]<br />
<br />
<br />
{{YoderFoot}}</div>Chris.goodhttps://elinux.org/index.php?title=ECE497_Project_RoverGUI&diff=187376ECE497 Project RoverGUI2012-11-03T04:24:29Z<p>Chris.good: initial actual words</p>
<hr />
<div>[[Category:ECE497 |Project]]<br />
{{YoderHead}}<br />
<br />
Team member: [[user:chris.good|Chris Good]] <br />
<br />
== Executive Summary ==<br />
This project is to create a GUI that could be used to control the rover project found here:[[ECE497_Project_Rover]] The GUI will have two stages. The more simple one can control simple movement such as forward, backwards, turning, etc. The other will be GUI based on the Google Maps API so that users can click waypoints for the rover to travel.<br />
<br />
Currently a computer networked with the BeagleBone can from a browser go to the bone and select the maps option. Selecting this option will bring up a Google Maps page that has very basic functionality. Currently clicking to select waypoints does nothing.<br />
<br />
== Installation Instructions ==<br />
The GUI can be downloaded from here. (github link soon)<br />
Once downloaded move to the top level directory and run:<br />
<br />
beagle$ node GUI.js<br />
<br />
Then, from any networked browser point to:<br />
<br />
beagle:8081<br />
<br />
where beagle is the IP of the BeagleBone<br />
<br />
== User Instructions ==<br />
<br />
More detailed instructions on use to come.<br />
<br />
== Highlights ==<br />
The user will be able to go to the location they would like the rover to travel and click on positions. The rover will then travel to these locations in order.<br />
<br />
More to come.<br />
<br />
== Theory of Operation ==<br />
<br />
The server on the BeagleBone is running using socket.io with node.js. The GUI will then use either basic buttons or the Google Maps API to send instructions to the rover. The instructions are then saved to a file that can be read by the BeagleBone. <br />
<br />
== Work Breakdown ==<br />
<br />
All work is done by Chris Good<br />
Future work: <br />
Implement basic control<br />
Implement files to save instructions to<br />
Parse clicks from Google Maps API<br />
<br />
== Future Work ==<br />
<br />
Since the instructions will be saved in a very simple text format file, any number of devices that could make use of simple controls or waypoint data would be potentially able to use this data. Furthermore, it could be modified to send the instructions in another method in order to comply to a device that already exists.<br />
<br />
== Conclusions ==<br />
<br />
This project will give a more natural feeling to controlling the rover project.<br />
<br />
{{YoderFoot}}</div>Chris.goodhttps://elinux.org/index.php?title=ECE497_Project_Rover&diff=187346ECE497 Project Rover2012-11-03T04:05:30Z<p>Chris.good: Link to GUI placed</p>
<hr />
<div>[[Category:ECE497 |Project]]<br />
{{YoderHead}}<br />
<br />
Team members: [[user:Hansenrl|Ross Hansen]], [[user:jessebrannon|Jesse Brannon]], [[User:jungeml|Michael Junge]] <br />
<br />
== Executive Summary ==<br />
<br />
This project is a BeagleBone implementation of a ground-based rover platform. Through a BeagleBone mounted on an RC car, the user will be able to control the car over WiFi - the user can give commands to drive forward, drive backward, turn left, and turn right. The BeagleBone will also send back helpful information to the user over Wifi, such as GPS location and compass heading. Development time permitting, the user will also be able to guide the rover along a path by defining waypoints for movement.<br />
<br />
Currently, the project is well underway. The RC car has been acquired and reverse-engineered to gain access to the motor electronics, and the BeagleBone GPIO outputs have been interfaced to allow motor control. A WiFi module has been selected and a procedure has been developed to get it working on the BeagleBone (harder than it seems!). Libraries for the GPS sensor and compass have been written and tested. Code for the network communication to control the BeagleBone over WiFi has been written, and the protocol and libraries are currently being developed to add drive command and waypoint functionality.<br />
<br />
In the next week the team hopes to complete the code to drive the rover over the network - this involves polishing the networking code and developing the waypoint/movement management code. The team also needs to implement more features in the GPS library to allow configuration of the GPS location update frequency (it is currently limited to 1 Hz).<br />
<br />
When completed, the project will serve as a neat demonstration of the capabilities of the BeagleBone as a robotics platform. The GPIO output, I2C and serial interfaces, WiFi dongle compatibility, and embedded Linux OS of the BeagleBone provide an excellent platform for mobile robotics development.<br />
<br />
== Installation Instructions ==<br />
<br />
The work-in-progress code for the platform can be found on [https://github.com/brannojs/Senior-Design Github]. The drive base used for the platform was purchased from [http://www.toysrus.com/product/index.jsp?productId=12925248 Toys R Us], and the modifications to access the motor electronics can be accomplished with a dremel tool. Pictures and a detailed explanation will be provided at the end of the project, when the procedure is finalized.<br />
<br />
Currently, the WiFi dongle works best when Ubuntu is flashed to the Bone. Further investigation is underway into the problems present in certain images of Angstrom, and when that investigation is complete the team will decide on which BeagleBone OS to use. Detailed instructions to install the BeagleBone and setup the software will be provided at that time. In general, all of the software needed is provided on the github repository. All custom code is written in C and python, and a Makefile is provided on github.<br />
<br />
== User Instructions ==<br />
The rover will be able to be controlled using a simple browser based interface. Additionally, waypoints will be able to be selected in order by clicking on intended location on an Google map interface.<br />
<br />
As the code is currently in development, UI details are not finalized. These instructions will be updated.<br />
<br />
== Highlights ==<br />
<br />
Coming Soon!<br />
<br />
== Theory of Operation ==<br />
<br />
=== Hardware Interfaces ===<br />
<br />
The BeagleBone is connected to the RC car via 4 GPIO pins and a ground wire. The four GPIO pins control left forward, left reverse, right forward, and right reverse on the tank-style drive base. (Tank-style means that each side is controlled independently, as opposed to a standard car where the user controls whether the car as a whole is moving forward or reverse and turns are accomplished by steering).<br />
<br />
The [https://www.sparkfun.com/products/7915 compass] is connected to the Bone via I2C, and the [https://www.sparkfun.com/products/11466 GPS] is connected to the Bone over UART serial. WiFi is achieved with Adafruit's [http://www.adafruit.com/products/814 USB WiFi Module].<br />
<br />
=== Software ===<br />
<br />
The motors are interfaced with GPIO controls in a C library. Movement, waypoint management, and sensor code are all also implemented as C libraries. Data is sent over WiFi to and from the Bone using TCP sockets in Python; the C libraries are accessed by the Bone in Python using the ctypes Python standard module. Browser controls are based on node.js and Google Maps API.<br />
<br />
More detail regarding the interaction of different parts of the code and important interfaces will be provided as they are finalized.<br />
<br />
== Work Breakdown ==<br />
<br />
A summary of the major development areas and the primary contributor(s) to each subsystem:<br />
<br />
* RC car hardware interfacing and mounting: ''Michael Junge''<br />
* Power subsystem development: ''Michael Junge''<br />
* GPS and Compass sensor interfacing: ''Jesse Brannon''<br />
* Movement and navigation software development: ''Jesse Brannon'', ''Ross Hansen''<br />
* Network communication software development: ''Ross Hansen''<br />
<br />
Tasks completed and in development by each team member:<br />
<br />
'''Michael Junge''' <br />
* Constructed hardware interfaces to compass sensor and drive base electronics<br />
* Investigated WiFi issues on Angstrom - determined that the Angstrom A5 image on BeagleBone A6 hardware is a known working configuration ''**still under invesgitation, completion TBD''<br />
* Soldered and interfaced battery subsystem to power BeagleBone<br />
<br />
'''Jesse Brannon'''<br />
* Researched and purchased compass and GPS sensors<br />
* Wrote libraries to interface to compass and GPS sensor<br />
* Currently coo-developing movement and navigation software ''**to be completed 11/7; code to add waypoints complete as of 10/31''<br />
<br />
'''Ross Hansen'''<br />
* Currently co-developing movement and navigation software ''**to be completed 11/7; code for basic movement complete as of 10/24''<br />
* Developed prototype software for network communication, currently developing more robust network protocol implementation ''**to be completed 11/3; basic prototype code completed 10/31''<br />
<br />
The major remaining tasks to be completed are<br />
<br />
1) Solidify the interface from the networking code to the motor control<br />
<br />
2) Code to manage waypoints and drive the motors based off of waypoint inputs<br />
<br />
3) Improve GPS library to allow for update rate configuration<br />
<br />
Task 1 is absolutely necessary to fulfilling the goals of the project, while tasks 2 and 3 are good features, but not core requirements.<br />
<br />
== Future Work ==<br />
<br />
This project has the possibility to branch into several interesting areas.<br />
* The BeagleBone platform has the processing power for various interesting sensory systems, such as computer vision. The RC car interface and networking platform allows for a variety of interesting applications of sensor systems, where driving decisions are made based off of sensor inputs or sensor data is relayed remotely back to a powerful processing node.<br />
<br />
* A GUI is being developed that could be used to send commands to control the rover. Work on it can be seen here: [[ECE497_Project_RoverGUI]]<br />
<br />
== Conclusions ==<br />
<br />
TBD....<br />
<br />
{{YoderFoot}}</div>Chris.goodhttps://elinux.org/index.php?title=ECE497_Project_Rover&diff=186614ECE497 Project Rover2012-11-02T11:39:32Z<p>Chris.good: Added browser control by Chris information</p>
<hr />
<div>[[Category:ECE497 |Project]]<br />
{{YoderHead}}<br />
<br />
Team members: [[user:Hansenrl|Ross Hansen]], [[user:jessebrannon|Jesse Brannon]], [[User:jungeml|Michael Junge]] <br />
<br />
== Executive Summary ==<br />
<br />
This project is a BeagleBone implementation of a ground-based rover platform. Through a BeagleBone mounted on an RC car, the user will be able to control the car over WiFi - the user can give commands to drive forward, drive backward, turn left, and turn right. The BeagleBone will also send back helpful information to the user over Wifi, such as GPS location and compass heading. Development time permitting, the user will also be able to guide the rover along a path by defining waypoints for movement.<br />
<br />
Currently, the project is well underway. The RC car has been acquired and reverse-engineered to gain access to the motor electronics, and the BeagleBone GPIO outputs have been interfaced to allow motor control. A WiFi module has been selected and a procedure has been developed to get it working on the BeagleBone (harder than it seems!). Libraries for the GPS sensor and compass have been written and tested. Code for the network communication to control the BeagleBone over WiFi has been written, and the protocol and libraries are currently being developed to add drive command and waypoint functionality.<br />
<br />
In the next week the team hopes to complete the code to drive the rover over the network - this involves polishing the networking code and developing the waypoint/movement management code. The team also needs to implement more features in the GPS library to allow configuration of the GPS location update frequency (it is currently limited to 1 Hz).<br />
<br />
When completed, the project will serve as a neat demonstration of the capabilities of the BeagleBone as a robotics platform. The GPIO output, I2C and serial interfaces, WiFi dongle compatibility, and embedded Linux OS of the BeagleBone provide an excellent platform for mobile robotics development.<br />
<br />
== Installation Instructions ==<br />
<br />
The work-in-progress code for the platform can be found on [https://github.com/brannojs/Senior-Design Github]. The drive base used for the platform was purchased from [http://www.toysrus.com/product/index.jsp?productId=12925248 Toys R Us], and the modifications to access the motor electronics can be accomplished with a dremel tool. Pictures and a detailed explanation will be provided at the end of the project, when the procedure is finalized.<br />
<br />
Currently, the WiFi dongle works best when Ubuntu is flashed to the Bone. Further investigation is underway into the problems present in certain images of Angstrom, and when that investigation is complete the team will decide on which BeagleBone OS to use. Detailed instructions to install the BeagleBone and setup the software will be provided at that time. In general, all of the software needed is provided on the github repository. All custom code is written in C and python, and a Makefile is provided on github.<br />
<br />
== User Instructions ==<br />
The rover will be able to be controlled using a simple browser based interface. Additionally, waypoints will be able to be selected in order by clicking on intended location on an Google map interface.<br />
<br />
As the code is currently in development, UI details are not finalized. These instructions will be updated.<br />
<br />
== Highlights ==<br />
<br />
Coming Soon!<br />
<br />
== Theory of Operation ==<br />
<br />
=== Hardware Interfaces ===<br />
<br />
The BeagleBone is connected to the RC car via 4 GPIO pins and a ground wire. The four GPIO pins control left forward, left reverse, right forward, and right reverse on the tank-style drive base. (Tank-style means that each side is controlled independently, as opposed to a standard car where the user controls whether the car as a whole is moving forward or reverse and turns are accomplished by steering).<br />
<br />
The [https://www.sparkfun.com/products/7915 compass] is connected to the Bone via I2C, and the [https://www.sparkfun.com/products/11466 GPS] is connected to the Bone over UART serial. WiFi is achieved with Adafruit's [http://www.adafruit.com/products/814 USB WiFi Module].<br />
<br />
=== Software ===<br />
<br />
The motors are interfaced with GPIO controls in a C library. Movement, waypoint management, and sensor code are all also implemented as C libraries. Data is sent over WiFi to and from the Bone using TCP sockets in Python; the C libraries are accessed by the Bone in Python using the ctypes Python standard module. Browser controls are based on node.js and Google Maps API.<br />
<br />
More detail regarding the interaction of different parts of the code and important interfaces will be provided as they are finalized.<br />
<br />
== Work Breakdown ==<br />
<br />
A summary of the major development areas and the primary contributor(s) to each subsystem:<br />
<br />
* RC car hardware interfacing and mounting: ''Michael Junge''<br />
* Power subsystem development: ''Michael Junge''<br />
* GPS and Compass sensor interfacing: ''Jesse Brannon''<br />
* Movement and navigation software development: ''Jesse Brannon'', ''Ross Hansen''<br />
* Network communication software development: ''Ross Hansen''<br />
<br />
Tasks completed and in development by each team member:<br />
<br />
'''Michael Junge''' <br />
* Constructed hardware interfaces to compass sensor and drive base electronics<br />
* Investigated WiFi issues on Angstrom - determined that the Angstrom A5 image on BeagleBone A6 hardware is a known working configuration ''**still under invesgitation, completion TBD''<br />
* Soldered and interfaced battery subsystem to power BeagleBone<br />
<br />
'''Jesse Brannon'''<br />
* Researched and purchased compass and GPS sensors<br />
* Wrote libraries to interface to compass and GPS sensor<br />
* Currently coo-developing movement and navigation software ''**to be completed 11/7; code to add waypoints complete as of 10/31''<br />
<br />
'''Ross Hansen'''<br />
* Currently co-developing movement and navigation software ''**to be completed 11/7; code for basic movement complete as of 10/24''<br />
* Developed prototype software for network communication, currently developing more robust network protocol implementation ''**to be completed 11/3; basic prototype code completed 10/31''<br />
<br />
'''Chris Good'''<br />
* Currently developing the browser based UI software<br />
<br />
The major remaining tasks to be completed are<br />
<br />
1) Solidify the interface from the networking code to the motor control<br />
<br />
2) Code to manage waypoints and drive the motors based off of waypoint inputs<br />
<br />
3) Improve GPS library to allow for update rate configuration<br />
<br />
Task 1 is absolutely necessary to fulfilling the goals of the project, while tasks 2 and 3 are good features, but not core requirements.<br />
<br />
== Future Work ==<br />
<br />
This project has the possibility to branch into several interesting areas.<br />
* The BeagleBone platform has the processing power for various interesting sensory systems, such as computer vision. The RC car interface and networking platform allows for a variety of interesting applications of sensor systems, where driving decisions are made based off of sensor inputs or sensor data is relayed remotely back to a powerful processing node.<br />
<br />
== Conclusions ==<br />
<br />
TBD....<br />
<br />
{{YoderFoot}}</div>Chris.goodhttps://elinux.org/index.php?title=EBC_Contributions_and_Project_Status&diff=183800EBC Contributions and Project Status2012-10-23T16:26:36Z<p>Chris.good: Changed Chris Good's project page</p>
<hr />
<div>[[Category:ECE497 |Contributions]]<br />
{{YoderHead}}<br />
<br />
== Fall 2012 ==<br />
<br />
=== Project Status ===<br />
<br />
Please edit this page and add your project to this list. Copy my [[ECE497 Project Template]] to your own eLinux page and include the title of your project in the name of the page. <br />
<br />
Please make the list alphabetical by family name.<br />
<br />
Take a look at what you and others have contributed.<br />
<br />
{|<br />
|- <br />
! Name<br />
! Contributions<br />
! Project<br />
! git repository<br />
|-<br />
| [[User:atniptw | Tom Atnip]]<br />
| <br />
| [[ECE497 Beagle VNS | Beagle VNS]]<br />
| [https://github.com/atniptw/ atniptw]<br />
|-<br />
| [[User:larmorgs | Greg Larmore]]<br />
| <br />
| [[ECE497 Project Template | My Beagle Project]]<br />
| [https://github.com/larmorgs/ larmorgs]<br />
|-<br />
| [[User:jessebrannon | Jesse Brannon]]<br />
| <br />
| [[ECE497 Project Template | My Beagle Project]]<br />
| [https://github.com/brannojs/ brannojs]<br />
|-<br />
| [[User:Xinyu1991 | Xinyu Cheng]]<br />
| <br />
| [[ECE497 Project Template | My Beagle Project]]<br />
| [https://github.com/xinyu1991]<br />
|-<br />
| [[User:correlbn | Bryan Correll]]<br />
| [[Special:Contributions/correlbn|contrib]]<br />
| [[BeagleBone PRU | BeagleBone PRU]]<br />
| [https://github.com/correlbn/My-Beagle-Project/ Correlbn]<br />
|-<br />
| [[User:draneaw | Alex Drane]]<br />
| <br />
| [[ECE497 draneaw Project | My Beagle Project]]<br />
| [https://github.com/draneaw/My-Beagle-Project draneaw]<br />
|-<br />
| [[User:duganje | Josh Dugan]]<br />
| <br />
| [[ECE497 Project: XBee|XBee]]<br />
| [https://github.com/duganje/ duganje]<br />
|-<br />
| [[User:Geislekj | Kevin Geisler]]<br />
| <br />
| [[ECE497 Beagle VNS | Beagle VNS]]<br />
| [https://github.com/geislekj/ geislekj]<br />
| <br />
|-<br />
| [[User:chris.good | Christopher A Good]]<br />
| [[Special:Contributions/Chris.good|contrib]]<br />
| [[ECE497 Project AutoPilot | AutoPilot]]<br />
| [https://github.com/goodca/ goodca]<br />
| <br />
|-<br />
| [[User:hansenrl | Ross Hansen]]<br />
| [[Special:Contributions/hansenrl|contrib]]<br />
| [[ECE497 Project AutoPilot | AutoPilot]]<br />
| [https://github.com/hansenrl/ Hansenrl]<br />
| <br />
|-<br />
| [[User:jungeml | Michael Junge]]<br />
| [[Special:Contributions/jungeml|contrib]]<br />
| [[ECE497 Project AutoPilot | AutoPilot]]<br />
| [https://github.com/jungeml/ Jungeml]<br />
|-<br />
|<br />
|-<br />
| [[User:Lix | Xia Li]]<br />
| [[Special:Contributions/Lix|contrib]]<br />
| [[ECE497 Lix Project | My Beagle Project]]<br />
| [https://github.com/1984xiali/ xiali]<br />
|-<br />
| [[User:mmoravec | Matthew Moravec]]<br />
| [[Special:Contributions/mmoravec|contrib]]<br />
| [[ECE497 Project: XBee|XBee]]<br />
| [https://github.com/mmoravec/ mmoravec]<br />
|-<br />
| [[User:ngop | Peter Ngo]]<br />
| <br />
| [[ECE497 ngop Project: Beaglebone PRU|Beaglebone PRU]]<br />
| [https://github.com/ngop/ ngop]<br />
|<br />
|-<br />
| [[User:shinnsm|Stephen Shinn]]<br />
| [[Special:Contributions/shinnsm|contrib]]<br />
| [[ECE497 Project: XBee|XBee]]<br />
| [https://github.com/shinnsm shinnsm]<br />
|-<br />
| [[User:Yoder | Mark A. Yoder]]<br />
| [[Special:Contributions/Yoder | contrib]]<br />
| [[ECE497 Project Template | My Beagle Project]]<br />
| [https://github.com/MarkAYoder MarkAYoder]<br />
|-<br />
| [[User:Popenhjc | James Popenhagen]]<br />
| <br />
| [[BeagleBone PRU | BeagleBone PRU]]<br />
| [https://github.com/popenhjc/ popenhjc]<br />
|-<br />
| [[User:Whiteer | Elias White]]<br />
| <br />
| [[ECE497 whiteer Project | My Beagle Project]]<br />
| [https://github.com/whiteer whiteer]<br />
|-<br />
| [[User:ruff | Ruffin White]]<br />
| <br />
| [[ECE497 Beagle VNS | Beagle VNS]]<br />
| [https://github.com/ruffsl/ ruffsl]<br />
|<br />
|-<br />
| [[User:Richarsm | Sean Richardson]]<br />
| <br />
| [[ECE497 richarsm Project | My Beagle Project]]<br />
| [https://github.com/seanrich Sean Richardson]<br />
|-<br />
| [[User:Millerap | Andrew Miller]]<br />
|<br />
| [[ECE 497 millerap Project | My Beagle Project]]<br />
| [https://github.com/millerap millerap]<br />
|-| <br />
| [[User:Astroricks | Yue Zhang]]<br />
| <br />
| [[ECE497 Yue Zhang Project | My Beagle Project]]<br />
| [https://github.com/Astroricks/Beagle-Project Yue Zhang]<br />
|-<br />
| [[User:Lobdeljt | John Lobdell]]<br />
| <br />
| [[ECE 497 lobdeljt Project | My Beagle Project]]<br />
| [https://github.com/jtlobdell jtlobdell]<br />
|-<br />
|<br />
|}<br />
<br />
== Winter 2011-2012 ==<br />
<br />
=== Contributions ===<br />
<br />
# [[Special:Contributions/Yuming | Yuming Cao]]<br />
# [[Special:Contributions/Yifei | Yifei Li]]<br />
# [[Special:Contributions/Harrisgw | Greg Harrison]]<br />
# [[Special:Contributions/mac | Jack Ma]]<br />
# [[Special:Contributions/Gemini91 | Guanqun Wang]]<br />
# [[Special:Contributions/Yanj | Mona Yan]]<br />
# [[Special:Contributions/Yoder | Mark A. Yoder]]<br />
# [[Special:Contributions/Yuhasmj | Michael Yuhas]]<br />
# [[Special:Contributions/Ziyi Zhang | Ziyi Zhang]]<br />
# [[Special:Contributions/Zitnikdj | David Zitnik]]<br />
# [[Special:Contributions/Zitnikdj | Alex Drane]]<br />
# [[Special:Contributions/jessebrannon | Jesse Brannon]]<br />
# [[Special:Contributions/larmorgs | Greg Larmore]]<br />
# [[Special:Contributions/jungeml | Michael Junge]]<br />
# [[Special:Contributions/millerap | Andrew Miller]]<br />
# [[Special:Contributions/correlbn | Bryan Correll]]<br />
<br />
=== Project Status ===<br />
<br />
# [[User:Yoder | Mark A. Yoder]], [[ECE497 Project Template | My Beagle Project]]<br />
# [[user:Yanj|Mona Yan]] and [[user:Harrisgw| Greg Harrison]], [[PS EYE QT PROJECT | Playstation Eye Audio with Qt]]<br />
# [[user:Caogecym | Yuming Cao]] and [[user:Ziyi Zhang | Ziyi Zhang]], [[Node.js Weather Station]]<br />
# [[user:Yifei| Yifei Li]] and [[user:Gemini91| Guanqun Wang]], [[ Kinect Project | Play games using Kinect on Beagleboard]]<br />
# [[user:Yuhasmj| Michael J. Yuhas]] and [[user:mac | Jack Ma]], [[ Multiple Partitions via U-boot | Multiple Partitions via U-boot ]]<br />
# [[user:Zitnikdj| David Zitnik]], [[ ECE497 Project: Twitter Java Application | Twitter Java Application ]]<br />
<br />
<br />
{{YoderFoot}}</div>Chris.goodhttps://elinux.org/index.php?title=SparkFun:_SoftPot_Variable_Potentiometer&diff=181856SparkFun: SoftPot Variable Potentiometer2012-10-17T06:58:45Z<p>Chris.good: /* Sample C Code */ inserted better header with name</p>
<hr />
<div>[[Category:ECE497]]<br />
[[Category:SparkFun]]<br />
<br />
<pre style="color:red"><br />
Overview: 1, show a picture<br />
Wiring: 1, give specific example. Suggest which pin to connect to AIN. Which header are you using? P8, P9?<br />
Code: 1, make the code loop and continually display the value.<br />
git/Compiles with make: 0, put in git<br />
Demo: 0<br />
Total: 3<br />
Comments: More details are needed. Please supply and I'll regrade.<br />
</pre><br />
<br />
== Overview ==<br />
The softpot is a thin potentiometer that can be used by just touching along the strip. The following is an excerpt from the SparkFun web site:<br />
''These are very thin variable potentiometers. By pressing on various positions along the strip, you vary the resistance.''<br />
[[File:SparkFunSoftPotBreadboard.jpg|200px|thumb|right|SoftPot on breadboard hooked to power and signal line]]<br />
<br />
== Inputs and Outputs ==<br />
The potentiometer has a variable resistance between 100 and 10,000 Ohms that changes linearly with location pressed. When either pin 1 or 3 is connected to ground and the other is connected to VCC the location of the touch can be calculated by reading the voltage on pin 2.<br />
<br />
<br />
== Bone Usage ==<br />
<br />
Hook up pin 1 on the SoftPot to GNDA_ADC (pin 34) and pin 3 on the SoftPot to VDD_ADC(1.8V) (pin 32). Pin 2 on the SoftPot can be connected to any remaining AIN channels. This voltage can then be read as any normal analog in reading.<br />
<br />
== Sample C Code ==<br />
<br />
This code will give a simple readout of the current position the SoftPot is being touched. The value will be printed once every second.<br />
Software AIN3, header P9 pin 37 (hardware AIN2), is being used as the input.<br />
[https://github.com/goodca/ECE497_Repo/tree/master/SoftPot This sample code can be downloaded at this git repository]<br />
<br />
<pre><br />
<br />
/** demonstrates usage of the SoftPot variable potentiometer<br />
* prints percent value once every second<br />
* Author: Christopher Good<br />
*/<br />
<br />
#include <stdio.h><br />
#include <stdlib.h><br />
<br />
int main(int argc, char **argv, char **envp)<br />
{<br />
FILE *fp;<br />
char buf[64];<br />
<br />
//open file<br />
fp = fopen("/sys/devices/platform/omap/tsc/ain3", "r");<br />
if(fp == NULL){<br />
printf("error with opening analog in file\n");<br />
fflush(stdout);<br />
exit(1);<br />
}<br />
while(1){ //will run forever<br />
rewind(fp);<br />
//read value<br />
fgets(buf, 64, fp);<br />
//format for printing<br />
printf("The SoftPot was touched at %d%\n", 101*atoi(buf)/4095); //101 for 0-100<br />
sleep(1); //will update once every second<br />
} <br />
//close file pointer<br />
fclose(fp);<br />
return 0;<br />
}<br />
</pre></div>Chris.goodhttps://elinux.org/index.php?title=SparkFun:_SoftPot_Variable_Potentiometer&diff=181850SparkFun: SoftPot Variable Potentiometer2012-10-17T06:57:34Z<p>Chris.good: /* Sample C Code */ Updated to loop and inserted git repository</p>
<hr />
<div>[[Category:ECE497]]<br />
[[Category:SparkFun]]<br />
<br />
<pre style="color:red"><br />
Overview: 1, show a picture<br />
Wiring: 1, give specific example. Suggest which pin to connect to AIN. Which header are you using? P8, P9?<br />
Code: 1, make the code loop and continually display the value.<br />
git/Compiles with make: 0, put in git<br />
Demo: 0<br />
Total: 3<br />
Comments: More details are needed. Please supply and I'll regrade.<br />
</pre><br />
<br />
== Overview ==<br />
The softpot is a thin potentiometer that can be used by just touching along the strip. The following is an excerpt from the SparkFun web site:<br />
''These are very thin variable potentiometers. By pressing on various positions along the strip, you vary the resistance.''<br />
[[File:SparkFunSoftPotBreadboard.jpg|200px|thumb|right|SoftPot on breadboard hooked to power and signal line]]<br />
<br />
== Inputs and Outputs ==<br />
The potentiometer has a variable resistance between 100 and 10,000 Ohms that changes linearly with location pressed. When either pin 1 or 3 is connected to ground and the other is connected to VCC the location of the touch can be calculated by reading the voltage on pin 2.<br />
<br />
<br />
== Bone Usage ==<br />
<br />
Hook up pin 1 on the SoftPot to GNDA_ADC (pin 34) and pin 3 on the SoftPot to VDD_ADC(1.8V) (pin 32). Pin 2 on the SoftPot can be connected to any remaining AIN channels. This voltage can then be read as any normal analog in reading.<br />
<br />
== Sample C Code ==<br />
<br />
This code will give a simple readout of the current position the SoftPot is being touched. The value will be printed once every second.<br />
Software AIN3, header P9 pin 37 (hardware AIN2), is being used as the input.<br />
[https://github.com/goodca/ECE497_Repo/tree/master/SoftPot This sample code can be downloaded at this git repository]<br />
<br />
<pre><br />
<br />
/** Demonstrates simple usage of the SoftPot variable potentiometer<br />
*/<br />
<br />
#include <stdio.h><br />
#include <stdlib.h><br />
<br />
int main(int argc, char **argv, char **envp)<br />
{<br />
FILE *fp;<br />
char buf[64];<br />
<br />
//open file<br />
fp = fopen("/sys/devices/platform/omap/tsc/ain3", "r");<br />
if(fp == NULL){<br />
printf("error with opening analog in file\n");<br />
fflush(stdout);<br />
exit(1);<br />
}<br />
while(1){ //will run forever<br />
rewind(fp);<br />
//read value<br />
fgets(buf, 64, fp);<br />
//format for printing<br />
printf("The SoftPot was touched at %d%\n", 101*atoi(buf)/4095); //101 for 0-100<br />
sleep(1); //will update once every second<br />
} <br />
//close file pointer<br />
fclose(fp);<br />
return 0;<br />
}<br />
</pre></div>Chris.goodhttps://elinux.org/index.php?title=SparkFun:_SoftPot_Variable_Potentiometer&diff=181796SparkFun: SoftPot Variable Potentiometer2012-10-16T16:34:07Z<p>Chris.good: /* Sample C Code */ more description on pin</p>
<hr />
<div>[[Category:ECE497]]<br />
[[Category:SparkFun]]<br />
<br />
<pre style="color:red"><br />
Overview: 1, show a picture<br />
Wiring: 1, give specific example. Suggest which pin to connect to AIN. Which header are you using? P8, P9?<br />
Code: 1, make the code loop and continually display the value.<br />
git/Compiles with make: 0, put in git<br />
Demo: 0<br />
Total: 3<br />
Comments: More details are needed. Please supply and I'll regrade.<br />
</pre><br />
<br />
== Overview ==<br />
The softpot is a thin potentiometer that can be used by just touching along the strip. The following is an excerpt from the SparkFun web site:<br />
''These are very thin variable potentiometers. By pressing on various positions along the strip, you vary the resistance.''<br />
[[File:SparkFunSoftPotBreadboard.jpg|200px|thumb|right|SoftPot on breadboard hooked to power and signal line]]<br />
<br />
== Inputs and Outputs ==<br />
The potentiometer has a variable resistance between 100 and 10,000 Ohms that changes linearly with location pressed. When either pin 1 or 3 is connected to ground and the other is connected to VCC the location of the touch can be calculated by reading the voltage on pin 2.<br />
<br />
<br />
== Bone Usage ==<br />
<br />
Hook up pin 1 on the SoftPot to GNDA_ADC (pin 34) and pin 3 on the SoftPot to VDD_ADC(1.8V) (pin 32). Pin 2 on the SoftPot can be connected to any remaining AIN channels. This voltage can then be read as any normal analog in reading.<br />
<br />
== Sample C Code ==<br />
<br />
This code will give a simple readout of the current position the SoftPot is being touched. Software AIN3, header P9 pin 37 (hardware AIN2), is being used as the input.<br />
<br />
<pre><br />
<br />
/** Demonstrates simple usage of the SoftPot variable potentiometer<br />
*/<br />
<br />
#include <stdio.h><br />
#include <stdlib.h><br />
<br />
int main(int argc, char **argv, char **envp)<br />
{<br />
FILE *fp;<br />
char buf[64];<br />
<br />
//open file<br />
fp = fopen("/sys/devices/platform/omap/tsc/ain3", "r");<br />
if(fp == NULL){<br />
printf("error with opening analog in file\n");<br />
fflush(stdout);<br />
exit(1);<br />
}<br />
rewind(fp);<br />
//read value<br />
fgets(buf, 64, fp);<br />
//format for printing<br />
printf("The SoftPot was touched at %d%\n", 101*atoi(buf)/4095); //101 for 0-100<br />
//close file pointer<br />
fclose(fp);<br />
return 0;<br />
}<br />
</pre></div>Chris.goodhttps://elinux.org/index.php?title=SparkFun:_SoftPot_Variable_Potentiometer&diff=181760SparkFun: SoftPot Variable Potentiometer2012-10-16T16:18:30Z<p>Chris.good: /* Overview */ added picture</p>
<hr />
<div>[[Category:ECE497]]<br />
[[Category:SparkFun]]<br />
<br />
<pre style="color:red"><br />
Overview: 1, show a picture<br />
Wiring: 1, give specific example. Suggest which pin to connect to AIN. Which header are you using? P8, P9?<br />
Code: 1, make the code loop and continually display the value.<br />
git/Compiles with make: 0, put in git<br />
Demo: 0<br />
Total: 3<br />
Comments: More details are needed. Please supply and I'll regrade.<br />
</pre><br />
<br />
== Overview ==<br />
The softpot is a thin potentiometer that can be used by just touching along the strip. The following is an excerpt from the SparkFun web site:<br />
''These are very thin variable potentiometers. By pressing on various positions along the strip, you vary the resistance.''<br />
[[File:SparkFunSoftPotBreadboard.jpg|200px|thumb|right|SoftPot on breadboard hooked to power and signal line]]<br />
<br />
== Inputs and Outputs ==<br />
The potentiometer has a variable resistance between 100 and 10,000 Ohms that changes linearly with location pressed. When either pin 1 or 3 is connected to ground and the other is connected to VCC the location of the touch can be calculated by reading the voltage on pin 2.<br />
<br />
<br />
== Bone Usage ==<br />
<br />
Hook up pin 1 on the SoftPot to GNDA_ADC (pin 34) and pin 3 on the SoftPot to VDD_ADC(1.8V) (pin 32). Pin 2 on the SoftPot can be connected to any remaining AIN channels. This voltage can then be read as any normal analog in reading.<br />
<br />
== Sample C Code ==<br />
<br />
This code will give a simple readout of the current position the SoftPot is being touched. AIN3, pin 37, is being used as the input.<br />
<br />
<pre><br />
<br />
/** Demonstrates simple usage of the SoftPot variable potentiometer<br />
*/<br />
<br />
#include <stdio.h><br />
#include <stdlib.h><br />
<br />
int main(int argc, char **argv, char **envp)<br />
{<br />
FILE *fp;<br />
char buf[64];<br />
<br />
//open file<br />
fp = fopen("/sys/devices/platform/omap/tsc/ain3", "r");<br />
if(fp == NULL){<br />
printf("error with opening analog in file\n");<br />
fflush(stdout);<br />
exit(1);<br />
}<br />
rewind(fp);<br />
//read value<br />
fgets(buf, 64, fp);<br />
//format for printing<br />
printf("The SoftPot was touched at %d%\n", 101*atoi(buf)/4095); //101 for 0-100<br />
//close file pointer<br />
fclose(fp);<br />
return 0;<br />
}<br />
</pre></div>Chris.goodhttps://elinux.org/index.php?title=SparkFun:_SoftPot_Variable_Potentiometer&diff=181754SparkFun: SoftPot Variable Potentiometer2012-10-16T16:18:16Z<p>Chris.good: /* Bone Usage */ removed picture</p>
<hr />
<div>[[Category:ECE497]]<br />
[[Category:SparkFun]]<br />
<br />
<pre style="color:red"><br />
Overview: 1, show a picture<br />
Wiring: 1, give specific example. Suggest which pin to connect to AIN. Which header are you using? P8, P9?<br />
Code: 1, make the code loop and continually display the value.<br />
git/Compiles with make: 0, put in git<br />
Demo: 0<br />
Total: 3<br />
Comments: More details are needed. Please supply and I'll regrade.<br />
</pre><br />
<br />
== Overview ==<br />
The softpot is a thin potentiometer that can be used by just touching along the strip. The following is an excerpt from the SparkFun web site:<br />
''These are very thin variable potentiometers. By pressing on various positions along the strip, you vary the resistance.''<br />
<br />
<br />
== Inputs and Outputs ==<br />
The potentiometer has a variable resistance between 100 and 10,000 Ohms that changes linearly with location pressed. When either pin 1 or 3 is connected to ground and the other is connected to VCC the location of the touch can be calculated by reading the voltage on pin 2.<br />
<br />
<br />
== Bone Usage ==<br />
<br />
Hook up pin 1 on the SoftPot to GNDA_ADC (pin 34) and pin 3 on the SoftPot to VDD_ADC(1.8V) (pin 32). Pin 2 on the SoftPot can be connected to any remaining AIN channels. This voltage can then be read as any normal analog in reading.<br />
<br />
== Sample C Code ==<br />
<br />
This code will give a simple readout of the current position the SoftPot is being touched. AIN3, pin 37, is being used as the input.<br />
<br />
<pre><br />
<br />
/** Demonstrates simple usage of the SoftPot variable potentiometer<br />
*/<br />
<br />
#include <stdio.h><br />
#include <stdlib.h><br />
<br />
int main(int argc, char **argv, char **envp)<br />
{<br />
FILE *fp;<br />
char buf[64];<br />
<br />
//open file<br />
fp = fopen("/sys/devices/platform/omap/tsc/ain3", "r");<br />
if(fp == NULL){<br />
printf("error with opening analog in file\n");<br />
fflush(stdout);<br />
exit(1);<br />
}<br />
rewind(fp);<br />
//read value<br />
fgets(buf, 64, fp);<br />
//format for printing<br />
printf("The SoftPot was touched at %d%\n", 101*atoi(buf)/4095); //101 for 0-100<br />
//close file pointer<br />
fclose(fp);<br />
return 0;<br />
}<br />
</pre></div>Chris.goodhttps://elinux.org/index.php?title=SparkFun:_SoftPot_Variable_Potentiometer&diff=181748SparkFun: SoftPot Variable Potentiometer2012-10-16T16:17:30Z<p>Chris.good: /* Bone Usage */</p>
<hr />
<div>[[Category:ECE497]]<br />
[[Category:SparkFun]]<br />
<br />
<pre style="color:red"><br />
Overview: 1, show a picture<br />
Wiring: 1, give specific example. Suggest which pin to connect to AIN. Which header are you using? P8, P9?<br />
Code: 1, make the code loop and continually display the value.<br />
git/Compiles with make: 0, put in git<br />
Demo: 0<br />
Total: 3<br />
Comments: More details are needed. Please supply and I'll regrade.<br />
</pre><br />
<br />
== Overview ==<br />
The softpot is a thin potentiometer that can be used by just touching along the strip. The following is an excerpt from the SparkFun web site:<br />
''These are very thin variable potentiometers. By pressing on various positions along the strip, you vary the resistance.''<br />
<br />
<br />
== Inputs and Outputs ==<br />
The potentiometer has a variable resistance between 100 and 10,000 Ohms that changes linearly with location pressed. When either pin 1 or 3 is connected to ground and the other is connected to VCC the location of the touch can be calculated by reading the voltage on pin 2.<br />
<br />
<br />
== Bone Usage ==<br />
<br />
Hook up pin 1 on the SoftPot to GNDA_ADC (pin 34) and pin 3 on the SoftPot to VDD_ADC(1.8V) (pin 32). Pin 2 on the SoftPot can be connected to any remaining AIN channels. This voltage can then be read as any normal analog in reading.<br />
[[File:SparkFunSoftPotBreadboard.jpg|200px|thumb|right|SoftPot on breadboard hooked to power and signal line]]<br />
<br />
== Sample C Code ==<br />
<br />
This code will give a simple readout of the current position the SoftPot is being touched. AIN3, pin 37, is being used as the input.<br />
<br />
<pre><br />
<br />
/** Demonstrates simple usage of the SoftPot variable potentiometer<br />
*/<br />
<br />
#include <stdio.h><br />
#include <stdlib.h><br />
<br />
int main(int argc, char **argv, char **envp)<br />
{<br />
FILE *fp;<br />
char buf[64];<br />
<br />
//open file<br />
fp = fopen("/sys/devices/platform/omap/tsc/ain3", "r");<br />
if(fp == NULL){<br />
printf("error with opening analog in file\n");<br />
fflush(stdout);<br />
exit(1);<br />
}<br />
rewind(fp);<br />
//read value<br />
fgets(buf, 64, fp);<br />
//format for printing<br />
printf("The SoftPot was touched at %d%\n", 101*atoi(buf)/4095); //101 for 0-100<br />
//close file pointer<br />
fclose(fp);<br />
return 0;<br />
}<br />
</pre></div>Chris.goodhttps://elinux.org/index.php?title=File:SparkFunSoftPotBreadboard.jpg&diff=181742File:SparkFunSoftPotBreadboard.jpg2012-10-16T16:14:20Z<p>Chris.good: SparkFun SoftPot on breadboard</p>
<hr />
<div>SparkFun SoftPot on breadboard</div>Chris.goodhttps://elinux.org/index.php?title=SparkFun:_SoftPot_Variable_Potentiometer&diff=174914SparkFun: SoftPot Variable Potentiometer2012-09-28T16:16:36Z<p>Chris.good: moved Sparkfun: SoftPot Variable Potentiometer to SparkFun: SoftPot Variable Potentiometer: Incorrect capitalization</p>
<hr />
<div>[[Category:ECE497]]<br />
[[Category:SparkFun]]<br />
<br />
== Overview ==<br />
The softpot is a thin potentiometer that can be used by just touching along the strip. The following is an excerpt from the SparkFun web site:<br />
''These are very thin variable potentiometers. By pressing on various positions along the strip, you vary the resistance.''<br />
<br />
<br />
== Inputs and Outputs ==<br />
The potentiometer has a variable resistance between 100 and 10,000 Ohms that changes linearly with location pressed. When either pin 1 or 3 is connected to ground and the other is connected to VCC the location of the touch can be calculated by reading the voltage on pin 2.<br />
<br />
<br />
== Bone Usage ==<br />
<br />
Hook up pin 1 on the SoftPot to GNDA_ADC (pin 34) and pin 3 on the SoftPot to VDD_ADC(1.8V) (pin 32). Pin 2 on the SoftPot can be connected to any remaining AIN channels. This voltage can then be read as any normal analog in reading.<br />
<br />
== Sample C Code ==<br />
<br />
This code will give a simple readout of the current position the SoftPot is being touched. AIN3, pin 37, is being used as the input.<br />
<br />
<pre><br />
<br />
/** Demonstrates simple usage of the SoftPot variable potentiometer<br />
*/<br />
<br />
#include <stdio.h><br />
#include <stdlib.h><br />
<br />
int main(int argc, char **argv, char **envp)<br />
{<br />
FILE *fp;<br />
char buf[64];<br />
<br />
//open file<br />
fp = fopen("/sys/devices/platform/omap/tsc/ain3", "r");<br />
if(fp == NULL){<br />
printf("error with opening analog in file\n");<br />
fflush(stdout);<br />
exit(1);<br />
}<br />
rewind(fp);<br />
//read value<br />
fgets(buf, 64, fp);<br />
//format for printing<br />
printf("The SoftPot was touched at %d%\n", 101*atoi(buf)/4095); //101 for 0-100<br />
//close file pointer<br />
fclose(fp);<br />
return 0;<br />
}<br />
</pre></div>Chris.goodhttps://elinux.org/index.php?title=Sparkfun:_SoftPot_Variable_Potentiometer&diff=174920Sparkfun: SoftPot Variable Potentiometer2012-09-28T16:16:36Z<p>Chris.good: moved Sparkfun: SoftPot Variable Potentiometer to SparkFun: SoftPot Variable Potentiometer: Incorrect capitalization</p>
<hr />
<div>#REDIRECT [[SparkFun: SoftPot Variable Potentiometer]]</div>Chris.goodhttps://elinux.org/index.php?title=SparkFun:_SoftPot_Variable_Potentiometer&diff=174614SparkFun: SoftPot Variable Potentiometer2012-09-27T15:51:38Z<p>Chris.good: </p>
<hr />
<div>[[Category:ECE497]]<br />
[[Category:SparkFun]]<br />
<br />
== Overview ==<br />
The softpot is a thin potentiometer that can be used by just touching along the strip. The following is an excerpt from the SparkFun web site:<br />
''These are very thin variable potentiometers. By pressing on various positions along the strip, you vary the resistance.''<br />
<br />
<br />
== Inputs and Outputs ==<br />
The potentiometer has a variable resistance between 100 and 10,000 Ohms that changes linearly with location pressed. When either pin 1 or 3 is connected to ground and the other is connected to VCC the location of the touch can be calculated by reading the voltage on pin 2.<br />
<br />
<br />
== Bone Usage ==<br />
<br />
Hook up pin 1 on the SoftPot to GNDA_ADC (pin 34) and pin 3 on the SoftPot to VDD_ADC(1.8V) (pin 32). Pin 2 on the SoftPot can be connected to any remaining AIN channels. This voltage can then be read as any normal analog in reading.<br />
<br />
== Sample C Code ==<br />
<br />
This code will give a simple readout of the current position the SoftPot is being touched. AIN3, pin 37, is being used as the input.<br />
<br />
<pre><br />
<br />
/** Demonstrates simple usage of the SoftPot variable potentiometer<br />
*/<br />
<br />
#include <stdio.h><br />
#include <stdlib.h><br />
<br />
int main(int argc, char **argv, char **envp)<br />
{<br />
FILE *fp;<br />
char buf[64];<br />
<br />
//open file<br />
fp = fopen("/sys/devices/platform/omap/tsc/ain3", "r");<br />
if(fp == NULL){<br />
printf("error with opening analog in file\n");<br />
fflush(stdout);<br />
exit(1);<br />
}<br />
rewind(fp);<br />
//read value<br />
fgets(buf, 64, fp);<br />
//format for printing<br />
printf("The SoftPot was touched at %d%\n", 101*atoi(buf)/4095); //101 for 0-100<br />
//close file pointer<br />
fclose(fp);<br />
return 0;<br />
}<br />
</pre></div>Chris.goodhttps://elinux.org/index.php?title=SparkFun:_SoftPot_Variable_Potentiometer&diff=174584SparkFun: SoftPot Variable Potentiometer2012-09-27T15:49:56Z<p>Chris.good: </p>
<hr />
<div>[[Category:ECE497]]<br />
[[Category:Sparkfun]]<br />
<br />
== Overview ==<br />
The softpot is a thin potentiometer that can be used by just touching along the strip. The following is an excerpt from the SparkFun web site:<br />
''These are very thin variable potentiometers. By pressing on various positions along the strip, you vary the resistance.''<br />
<br />
<br />
== Inputs and Outputs ==<br />
The potentiometer has a variable resistance between 100 and 10,000 Ohms that changes linearly with location pressed. When either pin 1 or 3 is connected to ground and the other is connected to VCC the location of the touch can be calculated by reading the voltage on pin 2.<br />
<br />
<br />
== Bone Usage ==<br />
<br />
Hook up pin 1 on the SoftPot to GNDA_ADC (pin 34) and pin 3 on the SoftPot to VDD_ADC(1.8V) (pin 32). Pin 2 on the SoftPot can be connected to any remaining AIN channels. This voltage can then be read as any normal analog in reading.<br />
<br />
== Sample C Code ==<br />
<br />
This code will give a simple readout of the current position the SoftPot is being touched. AIN3, pin 37, is being used as the input.<br />
<br />
<pre><br />
<br />
/** Demonstrates simple usage of the SoftPot variable potentiometer<br />
*/<br />
<br />
#include <stdio.h><br />
#include <stdlib.h><br />
<br />
int main(int argc, char **argv, char **envp)<br />
{<br />
FILE *fp;<br />
char buf[64];<br />
<br />
//open file<br />
fp = fopen("/sys/devices/platform/omap/tsc/ain3", "r");<br />
if(fp == NULL){<br />
printf("error with opening analog in file\n");<br />
fflush(stdout);<br />
exit(1);<br />
}<br />
rewind(fp);<br />
//read value<br />
fgets(buf, 64, fp);<br />
//format for printing<br />
printf("The SoftPot was touched at %d%\n", 101*atoi(buf)/4095); //101 for 0-100<br />
//close file pointer<br />
fclose(fp);<br />
return 0;<br />
}<br />
</pre></div>Chris.goodhttps://elinux.org/index.php?title=SparkFun:_SoftPot_Variable_Potentiometer&diff=173852SparkFun: SoftPot Variable Potentiometer2012-09-25T16:16:50Z<p>Chris.good: </p>
<hr />
<div>[[Category:ECE497]]<br />
<br />
== Overview ==<br />
The softpot is a thin potentiometer that can be used by just touching along the strip. The following is an excerpt from the SparkFun web site:<br />
''These are very thin variable potentiometers. By pressing on various positions along the strip, you vary the resistance.''<br />
<br />
<br />
== Inputs and Outputs ==<br />
The potentiometer has a variable resistance between 100 and 10,000 Ohms that changes linearly with location pressed. When either pin 1 or 3 is connected to ground and the other is connected to VCC the location of the touch can be calculated by reading the voltage on pin 2.<br />
<br />
<br />
== Bone Usage ==<br />
<br />
Hook up pin 1 on the SoftPot to GNDA_ADC (pin 34) and pin 3 on the SoftPot to VDD_ADC(1.8V) (pin 32). Pin 2 on the SoftPot can be connected to any remaining AIN channels. This voltage can then be read as any normal analog in reading.<br />
<br />
== Sample C Code ==<br />
<br />
This code will give a simple readout of the current position the SoftPot is being touched. AIN3, pin 37, is being used as the input.<br />
<br />
<pre><br />
<br />
/** Demonstrates simple usage of the SoftPot variable potentiometer<br />
*/<br />
<br />
#include <stdio.h><br />
#include <stdlib.h><br />
<br />
int main(int argc, char **argv, char **envp)<br />
{<br />
FILE *fp;<br />
char buf[64];<br />
<br />
//open file<br />
fp = fopen("/sys/devices/platform/omap/tsc/ain3", "r");<br />
if(fp == NULL){<br />
printf("error with opening analog in file\n");<br />
fflush(stdout);<br />
exit(1);<br />
}<br />
rewind(fp);<br />
//read value<br />
fgets(buf, 64, fp);<br />
//format for printing<br />
printf("The SoftPot was touched at %d%\n", 101*atoi(buf)/4095); //101 for 0-100<br />
//close file pointer<br />
fclose(fp);<br />
return 0;<br />
}<br />
</pre></div>Chris.goodhttps://elinux.org/index.php?title=SparkFun:_SoftPot_Variable_Potentiometer&diff=173840SparkFun: SoftPot Variable Potentiometer2012-09-25T16:03:41Z<p>Chris.good: </p>
<hr />
<div>[[Category:ECE497]]<br />
<br />
== Overview ==<br />
The softpot is a thin potentiometer that can be used by just touching along the strip. The following is an excerpt from the SparkFun web site:<br />
''These are very thin variable potentiometers. By pressing on various positions along the strip, you vary the resistance.''<br />
<br />
<br />
== Inputs and Outputs ==<br />
The potentiometer has a variable resistance between 100 and 10,000 Ohms that changes linearly with location pressed. When either pin 1 or 3 is connected to ground and the other is connected to VCC the location of the touch can be calculated by reading the voltage on pin 2.<br />
<br />
<br />
== Bone Usage ==<br />
<br />
Hook up pin 1 on the SoftPot to GNDA_ADC (pin 34) and pin 3 on the SoftPot to VDD_ADC(1.8V) (pin 32). Pin 2 on the SoftPot can be connected to any remaining AIN channels. This voltage can then be read as any normal analog in reading.<br />
<br />
== Sample C Code ==<br />
<br />
This code will give a simple readout of the current position the SoftPot is being touched. AIN3, pin 37, is being used as the input.<br />
<br />
<pre><br />
<br />
/** Demonstrates simple usage of the SoftPot variable potentiometer<br />
*/<br />
<br />
#include <stdio.h><br />
#include <stdlib.h><br />
<br />
int main(int argc, char **argv, char **envp)<br />
{<br />
FILE *fp;<br />
char buf[64];<br />
<br />
//open file<br />
fp = fopen("/sys/devices/platform/omap/tsc/ain3", "r");<br />
if(fp == NULL){<br />
printf("error with opening analog in file\n");<br />
fflush(stdout);<br />
exit(1);<br />
}<br />
rewind(fp);<br />
//read value<br />
fgets(buf, 64, fp);<br />
//format for printing<br />
printf("The SoftPot was touched at %d\n", 100*atoi(buf)/4095);<br />
//close file pointer<br />
fclose(fp);<br />
return 0;<br />
}<br />
</pre></div>Chris.goodhttps://elinux.org/index.php?title=SparkFun:_SoftPot_Variable_Potentiometer&diff=173666SparkFun: SoftPot Variable Potentiometer2012-09-25T04:11:25Z<p>Chris.good: </p>
<hr />
<div>[[Category:ECE497]]<br />
<br />
== Overview ==<br />
The softpot is a thin potentiometer that can be used by just touching along the strip. The following is an excerpt from the SparkFun web site:<br />
''These are very thin variable potentiometers. By pressing on various positions along the strip, you vary the resistance.''<br />
<br />
<br />
== Inputs and Outputs ==<br />
The potentiometer has a variable resistance between 100 and 10,000 Ohms that changes linearly with location pressed. When either pin 1 or 3 is connected to ground and the other is connected to VCC the location of the touch can be calculated by reading the voltage on pin 2.<br />
<br />
<br />
== Bone Usage ==<br />
<br />
Hook up pin 1 on the SoftPot to GNDA_ADC (pin 34) and pin 3 on the SoftPot to VDD_ADC(1.8V) (pin 32). Pin 2 on the SoftPot can be connected to any remaining AIN channels. This voltage can then be read as any normal analog in reading.<br />
<br />
== Sample C Code ==<br />
<br />
This code will give a simple readout of the current position the SoftPot is being touched.<br />
<br />
<pre><br />
<br />
/** Demonstrates simple usage of the SoftPot variable potentiometer<br />
*/<br />
<br />
#include <stdio.h><br />
#include <stdlib.h><br />
<br />
int main(int argc, char **argv, char **envp)<br />
{<br />
FILE *fp;<br />
char buf[64];<br />
<br />
//open file<br />
fp = fopen("/sys/devices/platform/omap/tsc/ain3", "r");<br />
if(fp == NULL){<br />
printf("error with opening analog in file\n");<br />
fflush(stdout);<br />
exit(1);<br />
}<br />
rewind(fp);<br />
//read value<br />
fgets(buf, 64, fp);<br />
//format for printing<br />
printf("The SoftPot was touched at %d\n", 100*atoi(buf)/4095);<br />
//close file pointer<br />
fclose(fp);<br />
return 0;<br />
}<br />
</pre></div>Chris.goodhttps://elinux.org/index.php?title=SparkFun:_SoftPot_Variable_Potentiometer&diff=172862SparkFun: SoftPot Variable Potentiometer2012-09-24T04:54:50Z<p>Chris.good: Created page with "Category:ECE497 == Overview == The softpot is a thin potentiometer that can be used by just touching along the strip. The following is an excerpt from the SparkFun web site:..."</p>
<hr />
<div>[[Category:ECE497]]<br />
<br />
== Overview ==<br />
The softpot is a thin potentiometer that can be used by just touching along the strip. The following is an excerpt from the SparkFun web site:<br />
''These are very thin variable potentiometers. By pressing on various positions along the strip, you vary the resistance.''<br />
<br />
<br />
== Inputs and Outputs ==<br />
The potentiometer has a variable resistance between 100 and 10,000 Ohms that changes linearly with location pressed. When either pin 1 or 3 is connected to ground and the other is connected to VCC the location of the touch can be calculated by reading the voltage on pin 2.<br />
<br />
<br />
== Bone Usage ==<br />
<br />
Hook up pin 1 on the SoftPot to GNDA_ADC (pin 34) and pin 3 on the SoftPot to VDD_ADC(1.8V) (pin 32). Pin 2 on the SoftPot can be connected to any remaining AIN channels. This voltage can then be read as any normal analog in reading.</div>Chris.goodhttps://elinux.org/index.php?title=EBC_Contributions_and_Project_Status&diff=172856EBC Contributions and Project Status2012-09-24T04:32:04Z<p>Chris.good: </p>
<hr />
<div>[[Category:ECE497 |Contributions]]<br />
{{YoderHead}}<br />
<br />
== Fall 2012 ==<br />
<br />
=== Project Status ===<br />
<br />
Please edit this page and add your project to this list. Copy my [[ECE497 Project Template]] to your own eLinux page and include the title of your project in the name of the page. <br />
<br />
Please make the list alphabetical by family name.<br />
<br />
Take a look at what you and others have contributed.<br />
<br />
{|<br />
|- <br />
! Name<br />
! Contributions<br />
! Project<br />
! git repository<br />
|-<br />
| [[User:atniptw | Tom Atnip]]<br />
| <br />
| [[ECE497 Project Template | My Beagle Project]]<br />
| [https://github.com/atniptw/ atniptw]<br />
|-<br />
| [[User:larmorgs | Greg Larmore]]<br />
| <br />
| [[ECE497 Project Template | My Beagle Project]]<br />
| [https://github.com/larmorgs/ larmorgs]<br />
|-<br />
| [[User:jessebrannon | Jesse Brannon]]<br />
| <br />
| [[ECE497 Project Template | My Beagle Project]]<br />
| [https://github.com/brannojs/ brannojs]<br />
|-<br />
| [[User:Xinyu1991 | Xinyu Cheng]]<br />
| <br />
| [[ECE497 Project Template | My Beagle Project]]<br />
| [https://github.com/xinyu1991]<br />
|-<br />
| [[User:correlbn | Bryan Correll]]<br />
| [[Special:Contributions/correlbn|contrib]]<br />
| [[ECE497 Correlbn Project | My Beagle Project]]<br />
| [https://github.com/correlbn/My-Beagle-Project/ Correlbn]<br />
|-<br />
| [[User:draneaw | Alex Drane]]<br />
| <br />
| [[ECE497 draneaw Project | My Beagle Project]]<br />
| [https://github.com/draneaw/My-Beagle-Project draneaw]<br />
|-<br />
| [[User:duganje | Josh Dugan]]<br />
| <br />
| [[ECE497 duganje Project | My Beagle Project]]<br />
| [https://github.com/duganje/ duganje]<br />
|-<br />
| [[User:Geislekj | Kevin Geisler]]<br />
| <br />
| [[ECE497 Project Template | My Beagle Project]]<br />
| [https://github.com/geislekj/ geislekj]<br />
| <br />
|-<br />
| [[User:chris.good | Christopher A Good]]<br />
| [[Special:Contributions/Chris.good|contrib]]<br />
| [[ECE497 Project Template | My Beagle Project]]<br />
| [https://github.com/goodca/ goodca]<br />
| <br />
|-<br />
| [[User:hansenrl | Ross Hansen]]<br />
| [[Special:Contributions/hansenrl|contrib]]<br />
| [[ECE497 hansenrl Project | My Beagle Project]]<br />
| [https://github.com/hansenrl/ Hansenrl]<br />
| <br />
|-<br />
| [[User:jungeml | Michael Junge]]<br />
| [[Special:Contributions/jungeml|contrib]]<br />
| [[ECE497 jungeml Project | My Beagle Project]]<br />
| [https://github.com/jungeml/ Jungeml]<br />
|-<br />
|<br />
|-<br />
| [[User:Lix | Xia Li]]<br />
| [[Special:Contributions/Lix|contrib]]<br />
| [[ECE497 Lix Project | My Beagle Project]]<br />
| [https://github.com/1984xiali/ xiali]<br />
|-<br />
| [[User:mmoravec | Matthew Moravec]]<br />
| <br />
| [[ECE497 mmoravec Project | My Beagle Project]]<br />
|<br />
|-<br />
| [[User:ngop | Peter Ngo]]<br />
| <br />
| [[ECE497 ngop Project | My Beagle Project]]<br />
| [https://github.com/ngop/ ngop]<br />
|<br />
|-<br />
| [[User:shinnsm|Stephen Shinn]]<br />
| [[Special:Contributions/shinnsm|contrib]]<br />
| Project TBD<br />
| [https://github.com/shinnsm shinnsm]<br />
|-<br />
| [[User:Yoder | Mark A. Yoder]]<br />
| [[Special:Contributions/Yoder | contrib]]<br />
| [[ECE497 Project Template | My Beagle Project]]<br />
| [https://github.com/MarkAYoder MarkAYoder]<br />
|-<br />
| [[User:Popenhjc | James Popenhagen]]<br />
| <br />
| [[ECE497 popenhjc Project | My Beagle Project]]<br />
| [https://github.com/popenhjc/ popenhjc]<br />
|-<br />
| [[User:Whiteer | Elias White]]<br />
| <br />
| [[ECE497 whiteer Project | My Beagle Project]]<br />
| [https://github.com/whiteer whiteer]<br />
|-<br />
| [[User:ruff | Ruffin White]]<br />
| <br />
| [[ECE497 Project Template | My Beagle Project]]<br />
| [https://github.com/ruffsl/ ruffsl]<br />
|<br />
|-<br />
| [[User:Richarsm | Sean Richardson]]<br />
| <br />
| [[ECE497 richarsm Project | My Beagle Project]]<br />
| [https://github.com/seanrich Sean Richardson]<br />
|-<br />
| [[User:Millerap | Andrew Miller]]<br />
|<br />
| [[ECE 497 millerap Project | My Beagle Project]]<br />
| [https://github.com/millerap millerap]<br />
|-| <br />
| [[User:Astroricks | Yue Zhang]]<br />
| <br />
| [[ECE497 Yue Zhang Project | My Beagle Project]]<br />
| [https://github.com/Astroricks/Beagle-Project Yue Zhang]<br />
|-<br />
| [[User:Lobdeljt | John Lobdell]]<br />
| <br />
| [[ECE 497 lobdeljt Project | My Beagle Project]]<br />
| [https://github.com/jtlobdell jtlobdell]<br />
|-<br />
|<br />
|}<br />
<br />
== Winter 2011-2012 ==<br />
<br />
=== Contributions ===<br />
<br />
# [[Special:Contributions/Yuming | Yuming Cao]]<br />
# [[Special:Contributions/Yifei | Yifei Li]]<br />
# [[Special:Contributions/Harrisgw | Greg Harrison]]<br />
# [[Special:Contributions/mac | Jack Ma]]<br />
# [[Special:Contributions/Gemini91 | Guanqun Wang]]<br />
# [[Special:Contributions/Yanj | Mona Yan]]<br />
# [[Special:Contributions/Yoder | Mark A. Yoder]]<br />
# [[Special:Contributions/Yuhasmj | Michael Yuhas]]<br />
# [[Special:Contributions/Ziyi Zhang | Ziyi Zhang]]<br />
# [[Special:Contributions/Zitnikdj | David Zitnik]]<br />
# [[Special:Contributions/Zitnikdj | Alex Drane]]<br />
# [[Special:Contributions/jessebrannon | Jesse Brannon]]<br />
# [[Special:Contributions/larmorgs | Greg Larmore]]<br />
# [[Special:Contributions/jungeml | Michael Junge]]<br />
# [[Special:Contributions/millerap | Andrew Miller]]<br />
# [[Special:Contributions/correlbn | Bryan Correll]]<br />
<br />
=== Project Status ===<br />
<br />
# [[User:Yoder | Mark A. Yoder]], [[ECE497 Project Template | My Beagle Project]]<br />
# [[user:Yanj|Mona Yan]] and [[user:Harrisgw| Greg Harrison]], [[PS EYE QT PROJECT | Playstation Eye Audio with Qt]]<br />
# [[user:Caogecym | Yuming Cao]] and [[user:Ziyi Zhang | Ziyi Zhang]], [[Node.js Weather Station]]<br />
# [[user:Yifei| Yifei Li]] and [[user:Gemini91| Guanqun Wang]], [[ Kinect Project | Play games using Kinect on Beagleboard]]<br />
# [[user:Yuhasmj| Michael J. Yuhas]] and [[user:mac | Jack Ma]], [[ Multiple Partitions via U-boot | Multiple Partitions via U-boot ]]<br />
# [[user:Zitnikdj| David Zitnik]], [[ ECE497 Project: Twitter Java Application | Twitter Java Application ]]<br />
<br />
<br />
{{YoderFoot}}</div>Chris.goodhttps://elinux.org/index.php?title=EBC_Mini_Project_02&diff=169454EBC Mini Project 022012-09-13T16:35:56Z<p>Chris.good: </p>
<hr />
<div>[[Category:ECE497 |Mini02]]<br />
{{YoderHead}}<br />
<br />
Pick one of the senors from the [https://www.sparkfun.com/products/11016 SparkFun Sensor Kit] or from [http://adafruit.com Adafruit] and interface it to the Bone. Create a wiki page describing how to use the sensor.<br />
<br />
Add your name next to the sensor/display you want to use and pick it up from me.<br />
<br />
== Sparkfun ==<br />
<br />
{|<br />
! Name<br />
! Sensor<br />
! Description<br />
|-<br />
| <br />
| HMC5883L - Triple-Axis Magnetometer Breakout Board<br />
| An accurate, simple-to-use digital magnetometer with an I2C interface.<br />
|-<br />
| Ross Hansen<br />
| ADXL335 - Triple-Axis Accelerometer Breakout Board<br />
| Senses acceleration along all three axes, with a range of up to ±3g. Fully analog interface.<br />
ITG-3200<br />
|-<br />
| <br />
| Triple-Axis Gyro Breakout Board<br />
| Senses angular velocity along three axes of rotation. Fully digital interface with a range of up to ±2000°/s.<br />
|-<br />
| <br />
| Large Piezo Vibration Sensor - With Mass<br />
| A flexible film able to sense for vibration, touch, shock, etc. When the film moves back and forth an AC wave is created, with a voltage of up to ±90.<br />
|-<br />
| Mark A. Yoder<br />
| Reed Switch<br />
| Senses magnetic fields, makes for a great non-contact switch.<br />
|-<br />
| Mark A. Yoder<br />
| 0.25" Magnet Square<br />
| Plays nicely with the reed switch. Embed the magnet into stuffed animals or inside a box to create a hidden actuator to the reed switch.<br />
|-<br />
| <br />
| 0.5" Force Sensitive Resistor<br />
| A force sensing resistor with a 0.5" diameter sensing area. Great for sensing pressure (i.e. if it's being squeezed).<br />
|-<br />
| <br />
| PIR Motion Sensor<br />
| Easy-to-use motion detector with an analog interface. Power it with 5-12VDC, and you'll be alerted of any movement.<br />
|-<br />
| <br />
| Ultrasonic Rangefinder - Maxbotix LV-EZ1<br />
| Distance sensor with both analog and RS-232 interfaces, providing sonar range information from 6 to 254 inches.<br />
|-<br />
| <br />
| HIH-4030 Humidity Sensor<br />
| A high precision humidity sensor with an analog output.<br />
|-<br />
| Andrew Miller<br />
| IR Receiver Breakout Board<br />
| An analog interfaced IR receiver, sensitive to a wide range of IR waves. Great for 'listening' to TV remotes.<br />
|-<br />
| <br />
| Mini Photocell<br />
| The photocell will vary its resistance based on how much light it's exposed to. Will vary from 1kΩ in the light to 10kΩ in the dark.<br />
|-<br />
| <br />
| Optical Detector/Phototransistor<br />
| An all-in-one infrared emitter and detector. Ideal for sensing black-to-white transitions or can be used to detect nearby objects.<br />
|-<br />
| Jesse Brannon<br />
| BMP085 Barometric Pressure Sensor<br />
| Low power, high precision barometric pressure sensor with I2C output.<br />
|-<br />
| <br />
| Flex Sensor<br />
| As the sensor is flexed, the resistance across the sensor increases. Useful for sensing motion or positioning<br />
|-<br />
| Chris Good<br />
| SoftPot<br />
| These are very thin variable potentiometers. By pressing on various positions along the strip, you vary the resistance<br />
|}<br />
<br />
== Adafruit ==<br />
<br />
{|<br />
! Name<br />
! Device<br />
! Description<br />
|-<br />
| Matthew Moravec<br />
| [https://www.adafruit.com/products/512 Analog 2-axis Thumb Joystick]<br />
| Analog 2-axis Thumb Joystick with Select Button + Breakout Board<br />
|-<br />
| <br />
| [https://www.adafruit.com/products/377 Rotary Encoder]<br />
| This rotary encoder is a high quality 24-pulse encoder, with detents and a nice feel. This encoder also has a push-button built into it so you can press onto the knob to close a separate switch. One side has a 3 pin connector (ground and two coding pins) and the other side has two pins for a normally-open switch.<br />
|-<br />
| <br />
| [https://www.adafruit.com/products/333 Touch screen (Nintendo DSL digitizer)]<br />
| This resistive touch screen can be used with a stylus or fingertip and is easy to use with a microcontroller. <br />
600 ohms across X pins, 300 ohms across Y pins<br />
4 wire resistive display, on a 0.5mm FPC connector<br />
|-<br />
| <br />
| [https://www.adafruit.com/products/871 Mini 8x8 LED Matrix w/I2C - Yellow]<br />
|<br />
|-<br />
|Mike Junge<br />
|[https://www.adafruit.com/products/959 Mini 8x8 LED Matrix w/I2C - Blue]<br />
|<br />
|-<br />
|<br />
|[https://www.adafruit.com/products/870 Mini 8x8 LED Matrix w/I2C - Red]<br />
|<br />
|-<br />
|Alex Drane<br />
|[https://www.adafruit.com/products/902 Bicolor LED Square Pixel Matrix]<br />
| The matrices use a driver chip that does all the heavy lifting for you: They have a built in clock so they multiplex the display. They use constant-current drivers for ultra-bright, consistent color, 1/16 step display dimming, all via a simple I2C interface.<br />
|-<br />
| <br />
| [https://www.adafruit.com/products/812 Green 7-segment clock display]<br />
| These displays are multiplexed, common-cathode. What that means it that you can use a 74HC595. Sorry, I didn't order the version with i2c.<br />
|-<br />
| <br />
| [https://www.adafruit.com/products/306 Digital Addressable RGB LED]<br />
| These LED strips are fun and glowy. There are 32 RGB LEDs per meter, and you can control each LED individually! We have 5 meters worth!<br />
|-<br />
| <br />
|-<br />
|Xia Li<br />
| [https://www.adafruit.com/products/555 16x24 Red LED Matrix Panel]<br />
| These LED panels take care of all the work of making a big matrix display. Each panel has six 8x8 red matrix modules, for a 16x24 matrix. The panel has a HT1632C chip on the back with does all the multiplexing work for you and has a 3-pin SPI-like serial interface to talk to it and set LEDs on or off (you cannot set the LED to be individually dimmed, as in 'grayscale'). There's a few extras as well, such as being able to change the brightness of the entire display, or blink the entire display at 1 Hz.<br />
|}<br />
<br />
{{YoderFoot}}</div>Chris.goodhttps://elinux.org/index.php?title=EBC_Contributions_and_Project_Status&diff=168674EBC Contributions and Project Status2012-09-11T03:28:46Z<p>Chris.good: </p>
<hr />
<div>[[Category:ECE497 |Contributions]]<br />
{{YoderHead}}<br />
<br />
== Fall 2012 ==<br />
<br />
=== Project Status ===<br />
<br />
Please edit this page and add your project to this list. Copy my [[ECE497 Project Template]] to your own eLinux page and include the title of your project in the name of the page. <br />
<br />
Please make the list alphabetical by family name.<br />
<br />
Take a look at what you and others have contributed.<br />
<br />
{|<br />
|- <br />
! Name<br />
! Contributions<br />
! Project<br />
! git repository<br />
|-<br />
| [[User:atniptw | Tom Atnip]]<br />
| <br />
| [[ECE497 Project Template | My Beagle Project]]<br />
| [https://github.com/atniptw/ atniptw]<br />
|-<br />
| [[User:larmorgs | Greg Larmore]]<br />
| <br />
| [[ECE497 Project Template | My Beagle Project]]<br />
| [https://github.com/larmorgs/ larmorgs]<br />
|-<br />
| [[User:jessebrannon | Jesse Brannon]]<br />
| <br />
| [[ECE497 Project Template | My Beagle Project]]<br />
| <br />
|-<br />
| [[User:Xinyu1991 | Xinyu Cheng]]<br />
| <br />
| [[ECE497 Project Template | My Beagle Project]]<br />
| [https://github.com/xinyu1991]<br />
|-<br />
| [[User:correlbn | Bryan Correll]]<br />
| [[Special:Contributions/correlbn|contrib]]<br />
| [[ECE497 Correlbn Project | My Beagle Project]]<br />
| [https://github.com/correlbn/My-Beagle-Project/ Correlbn]<br />
|-<br />
| [[User:draneaw | Alex Drane]]<br />
| <br />
| [[ECE497 draneaw Project | My Beagle Project]]<br />
| [https://github.com/draneaw/My-Beagle-Project draneaw]<br />
|-<br />
| [[User:duganje | Josh Dugan]]<br />
| <br />
| [[ECE497 duganje Project | My Beagle Project]]<br />
| [https://github.com/duganje/ duganje]<br />
|-<br />
| [[User:Geislekj | Kevin Geisler]]<br />
| <br />
| [[ECE497 Project Template | My Beagle Project]]<br />
| [https://github.com/geislekj/ geislekj]<br />
| <br />
|-<br />
| [[User:chris.good | Christopher A Good]]<br />
| <br />
| [[ECE497 Project Template | My Beagle Project]]<br />
| [https://github.com/goodca/ goodca]<br />
| <br />
|-<br />
| [[User:hansenrl | Ross Hansen]]<br />
| [[Special:Contributions/hansenrl|contrib]]<br />
| [[ECE497 hansenrl Project | My Beagle Project]]<br />
| [https://github.com/hansenrl/ Hansenrl]<br />
| <br />
|-<br />
| [[User:jungeml | Michael Junge]]<br />
| [[Special:Contributions/jungeml|contrib]]<br />
| [[ECE497 jungeml Project | My Beagle Project]]<br />
| [https://github.com/jungeml/ Jungeml]<br />
|-<br />
|<br />
|-<br />
| [[User:Lix | Xia Li]]<br />
| [[Special:Contributions/Lix|contrib]]<br />
| [[ECE497 Lix Project | My Beagle Project]]<br />
| [https://github.com/1984xiali/ xiali]<br />
|-<br />
| [[User:mmoravec | Matthew Moravec]]<br />
| <br />
| [[ECE497 mmoravec Project | My Beagle Project]]<br />
|<br />
|-<br />
| [[User:ngop | Peter Ngo]]<br />
| <br />
| [[ECE497 ngop Project | My Beagle Project]]<br />
| [https://github.com/ngop/ ngop]<br />
|<br />
|-<br />
| [[User:shinnsm|Stephen Shinn]]<br />
| [[Special:Contributions/shinnsm|contrib]]<br />
| Project TBD<br />
| [https://github.com/shinnsm shinnsm]<br />
|-<br />
| [[User:Yoder | Mark A. Yoder]]<br />
| [[Special:Contributions/Yoder | contrib]]<br />
| [[ECE497 Project Template | My Beagle Project]]<br />
| [https://github.com/MarkAYoder MarkAYoder]<br />
|-<br />
| [[User:Popenhjc | James Popenhagen]]<br />
| <br />
| [[ECE497 popenhjc Project | My Beagle Project]]<br />
| [https://github.com/popenhjc/ popenhjc]<br />
|-<br />
| [[User:Whiteer | Elias White]]<br />
| <br />
| [[ECE497 whiteer Project | My Beagle Project]]<br />
| [https://github.com/whiteer whiteer]<br />
|-<br />
| [[User:ruff | Ruffin White]]<br />
| <br />
| [[ECE497 Project Template | My Beagle Project]]<br />
| [https://github.com/ruffsl/ ruffsl]<br />
|<br />
|-<br />
| [[User:Richarsm | Sean Richardson]]<br />
| <br />
| [[ECE497 richarsm Project | My Beagle Project]]<br />
| [https://github.com/seanrich Sean Richardson]<br />
|-<br />
| [[User:Millerap | Andrew Miller]]<br />
|<br />
| [[ECE 497 millerap Project | My Beagle Project]]<br />
| [https://github.com/millerap millerap]<br />
|-| <br />
| [[User:Astroricks | Yue Zhang]]<br />
| <br />
| [[ECE497 Yue Zhang Project | My Beagle Project]]<br />
| [https://github.com/Astroricks/Beagle-Project Yue Zhang]<br />
|-<br />
|}<br />
<br />
== Winter 2011-2012 ==<br />
<br />
=== Contributions ===<br />
<br />
# [[Special:Contributions/Yuming | Yuming Cao]]<br />
# [[Special:Contributions/Yifei | Yifei Li]]<br />
# [[Special:Contributions/Harrisgw | Greg Harrison]]<br />
# [[Special:Contributions/mac | Jack Ma]]<br />
# [[Special:Contributions/Gemini91 | Guanqun Wang]]<br />
# [[Special:Contributions/Yanj | Mona Yan]]<br />
# [[Special:Contributions/Yoder | Mark A. Yoder]]<br />
# [[Special:Contributions/Yuhasmj | Michael Yuhas]]<br />
# [[Special:Contributions/Ziyi Zhang | Ziyi Zhang]]<br />
# [[Special:Contributions/Zitnikdj | David Zitnik]]<br />
# [[Special:Contributions/Zitnikdj | Alex Drane]]<br />
# [[Special:Contributions/jessebrannon | Jesse Brannon]]<br />
# [[Special:Contributions/larmorgs | Greg Larmore]]<br />
# [[Special:Contributions/jungeml | Michael Junge]]<br />
# [[Special:Contributions/millerap | Andrew Miller]]<br />
# [[Special:Contributions/correlbn | Bryan Correll]]<br />
<br />
=== Project Status ===<br />
<br />
# [[User:Yoder | Mark A. Yoder]], [[ECE497 Project Template | My Beagle Project]]<br />
# [[user:Yanj|Mona Yan]] and [[user:Harrisgw| Greg Harrison]], [[PS EYE QT PROJECT | Playstation Eye Audio with Qt]]<br />
# [[user:Caogecym | Yuming Cao]] and [[user:Ziyi Zhang | Ziyi Zhang]], [[Node.js Weather Station]]<br />
# [[user:Yifei| Yifei Li]] and [[user:Gemini91| Guanqun Wang]], [[ Kinect Project | Play games using Kinect on Beagleboard]]<br />
# [[user:Yuhasmj| Michael J. Yuhas]] and [[user:mac | Jack Ma]], [[ Multiple Partitions via U-boot | Multiple Partitions via U-boot ]]<br />
# [[user:Zitnikdj| David Zitnik]], [[ ECE497 Project: Twitter Java Application | Twitter Java Application ]]<br />
<br />
<br />
{{YoderFoot}}</div>Chris.goodhttps://elinux.org/index.php?title=User:Chris.good&diff=166982User:Chris.good2012-09-06T05:34:03Z<p>Chris.good: Created page with "I am currently a senior at Rose-Hulman. Category:ECE497"</p>
<hr />
<div>I am currently a senior at Rose-Hulman.<br />
[[Category:ECE497]]</div>Chris.goodhttps://elinux.org/index.php?title=EBC_Editing_a_Wiki&diff=166430EBC Editing a Wiki2012-09-04T03:33:07Z<p>Chris.good: </p>
<hr />
<div>[[Category:ECE497]]<br />
{{YoderHead}}<br />
<br />
Here is a wiki you can practice editing. Before you can edit it you will have to create an login. Pick something that will make it easy for me to identify you as part of my class. Then just add your name and date on the end of the table.<br />
<br />
You can get help here: [[Help:Contents]].<br />
<br />
If you need help with syntax check out the [[Editing Quickstart Guide|eLinux guide]] or the [http://en.wikipedia.org/wiki/Wikipedia:Cheatsheet Wikipedia Cheatsheet].<br />
<br />
== Fall 2012 ==<br />
<br />
{|<br />
|-<br />
| [[user:Yoder | Mark A. Yoder]]<br />
| 18-July-2012<br />
|-<br />
| [[user:atniptw | Tom Atnip]]<br />
| 20-July-2012<br />
|-<br />
| [[user:Xinyu1991 | Xinyu Cheng]]<br />
| 31-August-2012<br />
|-<br />
| [[user:bssachin45 | B S Sachin]]<br />
| 25-July-2012<br />
|-<br />
| [[user:ruff | Ruffin White]]<br />
| 16-August-2012<br />
|-<br />
| [[user:Popenhjc | James Popenhagen]]<br />
| 30-August-2012<br />
|-<br />
| [[user:mmoravec | Matthew Moravec]]<br />
| 30-August-2012<br />
|-<br />
| [[user:ngop | Peter Ngo]]<br />
| 30-August-2012<br />
|-<br />
| [[user:duganje | Josh Dugan]]<br />
| 30-August-2012<br />
|-<br />
| [[user:hansenrl | Ross Hansen]]<br />
| 30-August-2012<br />
|-<br />
| [[User:shinnsm|Stephen Shinn]]<br />
| 30-August-2012<br />
|-<br />
| [[User:draneaw|Alex Drane]]<br />
| 30-August-2012<br />
|-<br />
| [[User:larmorgs|Greg Larmore]]<br />
| 31-August-2012<br />
|-<br />
| [[User:jessebrannon|Jesse Brannon]]<br />
| 31-August-2012<br />
|-<br />
| [[User:lix|Xia Li]]<br />
| 31-August-2012<br />
|-<br />
| [[User:whiteer|Elias White]]<br />
| 31-August-2012<br />
|-<br />
| [[User:Astroricks|Yue Zhang]]<br />
| 31-August-2012<br />
|-<br />
| [[User:millerap|Andrew Miller]]<br />
| 31-August-2012<br />
|-<br />
| [[user:Geislekj | Kevin Geisler]]<br />
| 1-September-2012<br />
|-<br />
| [[user:chris.good | Christopher A Good]]<br />
| 3-September-2012<br />
|}<br />
<br />
== Winter 2011-2012 ==<br />
<br />
{|<br />
|-<br />
| [[user:Yoder | Mark A. Yoder]]<br />
| 21-Nov-2011<br />
|-<br />
| [[user:Yuming | Yuming Cao]]<br />
| 21-Nov-2011<br />
|-<br />
| [[user:Yuhasmj | Michael Yuhas]]<br />
| 21-Nov-2011<br />
|-<br />
| [[user:Yifei | Yifei Li]]<br />
| 22-Nov-2011<br />
|-<br />
| [[user:Ziyi Zhang | Ziyi Zhang]]<br />
| 24-Nov-2011<br />
|-<br />
|[[user: mac | Jack Ma]]<br />
| 28-Nov-2011<br />
|-<br />
| [[user:Zitnikdj | David Zitnik]]<br />
| 25-Nov-2011<br />
|-<br />
| [[user:Harrisgw | Greg Harrison]]<br />
| 26-Nov-2011<br />
|-<br />
| [[user:Yanj | Mona J Yan]]<br />
| 27-Nov-2011<br />
|-<br />
| [[user:Gemini91 | Guanqun Wang]]<br />
| 28-Nov-2011<br />
|-<br />
| [[user:vsn1985 | Narayanan VS]]<br />
| 28-Nov-2011<br />
|}<br />
<br />
{{YoderFoot}}</div>Chris.goodhttps://elinux.org/index.php?title=EBC_Exercise_02_Out-of-the-Box,_Bone&diff=166286EBC Exercise 02 Out-of-the-Box, Bone2012-09-03T03:52:33Z<p>Chris.good: </p>
<hr />
<div>[[Category:ECE497]]<br />
{{YoderHead}}<br />
<br />
The BeagleBone can do many neat things right out of the box using just the USB cable and SD card that come with it. Before hooking up anything, if you are running Linux or OSX on your host computer, open a terminal at run:<br />
<br />
host$ '''ls /dev/tty* > /tmp/tty'''<br />
<br />
This will record what devices are present on you host computer. Once you plug the bone in it will create a new device. Windows users don't have to do anything here.<br />
<br />
Install the SD card (not the one that says Linux SDK on it) and attach the Bone to a host computer via the USB cable. The little USB connector goes to the Beagle in the connector on the bottom of the board near the Ethernet connector. Connect the large end of the USB cable to a host computer. The host can be either Linux, Mac, or Windows (though if you are doing development, consider running Linux on the host.) I give instructions for each.<br />
<br />
The Beagle, powered via the USB, will boot up. You should initially see two LEDs blinking, near the Ethernet connector. The one labeled '''0''' blinks a heartbeat pattern. LED '''1''' blinks when the SD card is being accessed. After about 30 seconds LED 1 will stop blinking. The Bone is booted.<br />
<br />
Here are some of the things it can do.<br />
<br />
== YouTube Introduction ==<br />
<br />
[http://www.youtube.com/watch?v=z6b4zlh0IrE&feature=bf_next&list=UUf_sAmhBw7Tj7-2ujmLFoQg Here's] a nice overview of the BeagleBone. It shows how to work with it using a Windows host.<br />
<br />
== USB Drive ==<br />
<br />
On your host you will notice a new folder appearing. On Linux and OSX it's call '''BEAGLE_BONE'''. On Windows it's '''Beagle Bone Getting Started'''. Open it up and look around. The '''README.html''' gives lots of information about getting going with the Bone. Look at it in detail after going though this page.<br />
<br />
When you are doing exploring the files, eject the drive (don't select ''SAFELY REMOVE DRIVE''). Once the drive is ejected, the network will start up over the USB.<br />
<br />
== Built in USB to serial adapter ==<br />
<br />
The Beagle xM has a serial port connector on board, but the Bone doesn't. Instead you access the serial port through the USB connector. The trick is figuring out how to access it. <br />
<br />
=== Linux, OSX ===<br />
<br />
Run the following:<br />
host$ '''ls /dev/tty* > /tmp/tty2'''<br />
host$ '''diff /tmp/tty*'''<br />
ttyUSB1<br />
host$ '''screen /dev/''ttyUSB1'' 115200''' (Linux)<br />
host$ '''screen /dev/tty.usb*B 115200''' (OSX)<br />
<br />
The first line lists what devices are out there. The second compares that list to the list made earlier. What appears is the USB to serial device on the Bone. The last line starts a serial port program that attaches to that device. Notice the ''ttyUSB1'' is the same string as returned by the diff command.<br />
<br />
=== Windows ===<br />
To find where the serial port appears in Windows, click on the start menu and search for '''Device Manager''' and run it.<br />
<br />
[[File:Device_Manager.png|300px]]<br />
<br />
Select '''Ports''' and look for USB Serial Port. In my case the port appears at '''COM6'''.<br />
<br />
[[File:Port.png|300px]]<br />
<br />
Start up a [[ECE497_Tips_and_Tricks#Serial_Port serial port]] program and connect. The baud rate is 115200.<br />
<br />
=== Logging in ===<br />
<br />
Hit RETURN and you'll see the following. Login as '''root''' and look around.<br />
<br />
.---O---. <br />
| | .-. o o <br />
| | |-----.-----.-----.| | .----..-----.-----.<br />
| | | __ | ---'| '--.| .-'| | |<br />
| | | | | |--- || --'| | | ' | | | |<br />
'---'---'--'--'--. |-----''----''--' '-----'-'-'-'<br />
-' |<br />
'---' <br />
<br />
The Angstrom Distribution beaglebone ttyO0 <br />
<br />
Angstrom v2012.01-core - Kernel 3.2.5+<br />
<br />
beaglebone login: '''root'''<br />
Last login: Fri Jul 13 01:28:06 UTC 2012 on ttyO0<br />
root@beaglebone:~#<br />
<br />
== Internet Connection ==<br />
<br />
One of the slickest features of the Bone is it's ability to access the Internet through the USB connection. The network connection starts up ''after'' you've ejected the '''BEAGLE_BONE''' drive that appears. Do it now.<br />
<br />
=== Linux ===<br />
After ejecting, run:<br />
<br />
host$ '''ifconfig'''<br />
eth0 Link encap:Ethernet HWaddr 00:18:8b:72:b8:c2 <br />
inet addr:137.112.41.109 Bcast:137.112.41.255 Mask:255.255.255.0<br />
inet6 addr: fe80::218:8bff:fe72:b8c2/64 Scope:Link<br />
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1<br />
RX packets:8481193 errors:0 dropped:0 overruns:0 frame:0<br />
TX packets:1871287 errors:0 dropped:0 overruns:0 carrier:0<br />
collisions:0 txqueuelen:1000 <br />
RX bytes:3172154531 (3.1 GB) TX bytes:203188180 (203.1 MB)<br />
Interrupt:19 <br />
<br />
eth4 Link encap:Ethernet HWaddr d4:94:a1:39:ff:ff <br />
inet addr:192.168.7.1 Bcast:192.168.7.3 Mask:255.255.255.252<br />
inet6 addr: fe80::d694:a1ff:fe39:ffff/64 Scope:Link<br />
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1<br />
RX packets:8 errors:0 dropped:0 overruns:0 frame:0<br />
TX packets:6 errors:0 dropped:0 overruns:0 carrier:0<br />
collisions:0 txqueuelen:1000 <br />
RX bytes:2775 (2.7 KB) TX bytes:1234 (1.2 KB)<br />
<br />
lo Link encap:Local Loopback <br />
inet addr:127.0.0.1 Mask:255.0.0.0<br />
inet6 addr: ::1/128 Scope:Host<br />
UP LOOPBACK RUNNING MTU:16436 Metric:1<br />
RX packets:37315 errors:0 dropped:0 overruns:0 frame:0<br />
TX packets:37315 errors:0 dropped:0 overruns:0 carrier:0<br />
collisions:0 txqueuelen:0 <br />
RX bytes:3665320 (3.6 MB) TX bytes:3665320 (3.6 MB)<br />
You'll see at new network has appear, '''eth4''' in my case. The IP address is '''192.168.7.1'''. There's a good chance the Bone is at '''192.168.7.''2'''''. Try connecting to it.<br />
host$ '''ssh -X 192.168.7.2'''<br />
beagle$ <br />
You are now logged into the Bone through the network. This is much faster than the serial port (.115M vs. 100M) and supports many interesting network things. The only problem is, the Beagle doesn't know how to access the Internet through the host. Get back to the host computer by entering RETURN ~ ^Z. That is, hit RETURN, then ~ (it's up there near the ESC key) and then Ctrl-Z. This gets you back to your host, but leaves the ssh connection running. <br />
<br />
Copy the following lines into a file call '''host.ipForward.sh'''<br />
<br />
<pre><br />
#!/bin/bash<br />
# These are the commands to run on the host to setup IP masquerading so the Beagle<br />
# can access the Internet through the USB connection.<br />
# Inspired by http://thoughtshubham.blogspot.com/2010/03/internet-over-usb-otg-on-beagleboard.html<br />
<br />
if [ $# -eq 0 ] ; then<br />
echo "Usage: $0 interface (such as eth0 or wlan0)"<br />
exit 1<br />
fi<br />
<br />
interface=$1<br />
hostAddr=192.168.7.1<br />
beagleAddr=192.168.7.2<br />
ip_forward=/proc/sys/net/ipv4/ip_forward<br />
<br />
if [ `cat $ip_forward` == 0 ]<br />
then<br />
echo "You need to set IP forwarding. Edit /etc/sysctl.conf using:"<br />
echo "$ sudo gedit /etc/sysctl.conf"<br />
echo "and uncomment the line \"net.ipv4.ip_forward=1\""<br />
echo "to enable forwarding of packets. Then run the following:"<br />
echo "$ sudo sysctl -p"<br />
exit 1<br />
else<br />
echo "IP forwarding is set on host."<br />
fi<br />
# Setup IP masquerading on the host<br />
sudo iptables -t nat -A POSTROUTING -s 192.168.0.0/16 -o $interface -j MASQUERADE<br />
<br />
# Check to see what nameservers the host is using and copy these to the same<br />
# file on the Beagle<br />
# This makes it so you can connect to the Beagle without using your password.<br />
ssh-copy-id root@$beagleAddr<br />
# Save the /etc/resolv.conf on the Beagle in case we mess things up.<br />
ssh root@$beagleAddr "mv -n /etc/resolv.conf /etc/resolv.conf.orig"<br />
# Copy the resolv.conf file to the Beagle. Now the Beagle will use the<br />
# same name servers as the host.<br />
scp /etc/resolv.conf root@$beagleAddr:/etc<br />
# Tell the beagle to use the host as the gateway.<br />
ssh root@$beagleAddr "/sbin/route add default gw $hostAddr"<br />
</pre><br />
<br />
Now run:<br />
host$ '''chmod +x host.ipForward.sh'''<br />
host$ '''./host.ipForward.sh ''eth0'''''<br />
This will give you instructions on how to set up your host and will remotely set up your Beagle.<br />
<br />
Once ./host.ipForward.sh has been run you can:<br />
host$ '''fg'''<br />
ssh -X root@192.168.7.2<br />
(Hit RETURN)<br />
beagle$ '''ping google.com'''<br />
<br />
You should see Google responding. Hit Ctrl-C to stop.<br />
<br />
Congratulations! Your Beagle is now on the network through your host computer.<br />
<br />
=== OSX===<br />
After ejecting<br />
<br />
# go to '''System Preferences''' and select '''Network'''<br />
# You should see '''RNDIS/...Gadget'''. This is the network connection to the Beagle. Select it<br />
# Wait for the IP address '''192.168.7.1''' to appear<br />
# Click '''Show All''' and select '''Sharing'''<br />
# Select '''Internet Sharing'''<br />
# Select '''RNDIS/Ethernet Gadget'''<br />
<br />
In a terminal window connect to the serial port<br />
<br />
host$ '''screen /dev/ttyusb*B 115200'''<br />
beagle$ '''udhcpc -i usb0'''<br />
beagle$ '''ping google.com'''<br />
<br />
This is all nicely shown [http://www.youtube.com/watch?v=Cf9hnscbSK8&feature=youtu.be here] in this silent YouTube movie.<br />
<br />
Congratulations, you now have a connection to the Internet.<br />
<br />
=== Windows ===<br />
I don't have this working yet.<br />
<br />
== On the Network ==<br />
<br />
Once you have your Beagle on the network there are many things you can do. Try these from your host.<br />
<br />
* Point your browser to '''192.168.7.2'''. You'll see a nice slide show about the Beagle<br />
* Point your browser to '''192.168.7.2:3000''' to see the [http://c9.io/ Cloud9 IDE] running on the Beagle<br />
<br />
{{YoderFoot}}</div>Chris.goodhttps://elinux.org/index.php?title=EBC_Contributions_and_Project_Status&diff=166250EBC Contributions and Project Status2012-09-02T17:42:57Z<p>Chris.good: </p>
<hr />
<div>[[Category:ECE497 |Contributions]]<br />
{{YoderHead}}<br />
<br />
== Fall 2012 ==<br />
<br />
=== Project Status ===<br />
<br />
Please edit this page and add your project to this list. Copy my [[ECE497 Project Template]] to your own eLinux page and include the title of your project in the name of the page. <br />
<br />
Please make the list alphabetical by family name.<br />
<br />
Take a look at what you and others have contributed.<br />
<br />
{|<br />
|- <br />
! Name<br />
! Contributions<br />
! Project<br />
! git repository<br />
|-<br />
| [[User:atniptw | Tom Atnip]]<br />
| <br />
| [[ECE497 Project Template | My Beagle Project]]<br />
| <br />
|-<br />
| [[User:larmorgs | Greg Larmore]]<br />
| <br />
| [[ECE497 Project Template | My Beagle Project]]<br />
| <br />
|-<br />
| [[User:jessebrannon | Jesse Brannon]]<br />
| <br />
| [[ECE497 Project Template | My Beagle Project]]<br />
| <br />
|-<br />
| [[User:duganje | Josh Dugan]]<br />
| <br />
| [[ECE497 duganje Project | My Beagle Project]]<br />
| <br />
|-<br />
| [[User:Geislekj | Kevin Geisler]]<br />
| <br />
| [[ECE497 Project Template | My Beagle Project]]<br />
| <br />
|-<br />
| [[User:chris.good | Christopher A Good]]<br />
| <br />
| [[ECE497 Project Template | My Beagle Project]]<br />
| <br />
|-<br />
| [[User:hansenrl | Ross Hansen]]<br />
| <br />
| [[ECE497 hansenrl Project | My Beagle Project]]<br />
| <br />
|-<br />
| [[User:mmoravec | Matthew Moravec]]<br />
| <br />
| [[ECE497 mmoravec Project | My Beagle Project]]<br />
|<br />
|-<br />
| [[User:ngop | Peter Ngo]]<br />
| <br />
| [[ECE497 ngop Project | My Beagle Project]]<br />
|<br />
|-<br />
| [[User:shinnsm|Stephen Shinn]]<br />
| [[Special:Contributions/shinnsm|contrib]]<br />
| Project TBD<br />
| [https://github.com/shinnsm shinnsm]<br />
|-<br />
| [[User:ruff | Ruffin White]]<br />
| <br />
| [[ECE497 ruff Project | My Beagle Project]]<br />
|<br />
|-<br />
| [[User:Yoder | Mark A. Yoder]]<br />
| [[Special:Contributions/Yoder | contrib]]<br />
| [[ECE497 Project Template | My Beagle Project]]<br />
| [https://github.com/MarkAYoder MarkAYoder]<br />
|-<br />
| [[User:Popenhjc | James Popenhagen]]<br />
| <br />
| [[ECE497 popenhjc Project | My Beagle Project]]<br />
|<br />
|-<br />
| [[User:Whiteer | Elias White]]<br />
| <br />
| [[ECE497 whiteer Project | My Beagle Project]]<br />
| <br />
|-<br />
| [[User:Richarsm | Sean Richardson]]<br />
| <br />
| [[ECE497 richarsm Project | My Beagle Project]]<br />
| <br />
|-<br />
| [[User:Millerap | Andrew Miller]]<br />
|<br />
| [[ECE 497 millerap Project | My Beagle Project]]<br />
|<br />
|-<br />
|}<br />
<br />
== Winter 2011-2012 ==<br />
<br />
=== Contributions ===<br />
<br />
# [[Special:Contributions/Yuming | Yuming Cao]]<br />
# [[Special:Contributions/Yifei | Yifei Li]]<br />
# [[Special:Contributions/Harrisgw | Greg Harrison]]<br />
# [[Special:Contributions/mac | Jack Ma]]<br />
# [[Special:Contributions/Gemini91 | Guanqun Wang]]<br />
# [[Special:Contributions/Yanj | Mona Yan]]<br />
# [[Special:Contributions/Yoder | Mark A. Yoder]]<br />
# [[Special:Contributions/Yuhasmj | Michael Yuhas]]<br />
# [[Special:Contributions/Ziyi Zhang | Ziyi Zhang]]<br />
# [[Special:Contributions/Zitnikdj | David Zitnik]]<br />
# [[Special:Contributions/Zitnikdj | Alex Drane]]<br />
# [[Special:Contributions/jessebrannon | Jesse Brannon]]<br />
<br />
=== Project Status ===<br />
<br />
# [[User:Yoder | Mark A. Yoder]], [[ECE497 Project Template | My Beagle Project]]<br />
# [[user:Yanj|Mona Yan]] and [[user:Harrisgw| Greg Harrison]], [[PS EYE QT PROJECT | Playstation Eye Audio with Qt]]<br />
# [[user:Caogecym | Yuming Cao]] and [[user:Ziyi Zhang | Ziyi Zhang]], [[Node.js Weather Station]]<br />
# [[user:Yifei| Yifei Li]] and [[user:Gemini91| Guanqun Wang]], [[ Kinect Project | Play games using Kinect on Beagleboard]]<br />
# [[user:Yuhasmj| Michael J. Yuhas]] and [[user:mac | Jack Ma]], [[ Multiple Partitions via U-boot | Multiple Partitions via U-boot ]]<br />
# [[user:Zitnikdj| David Zitnik]], [[ ECE497 Project: Twitter Java Application | Twitter Java Application ]]<br />
<br />
<br />
{{YoderFoot}}</div>Chris.good