Difference between revisions of "ECE497 Project - LED Matrix Graduation Cap"

From eLinux.org
Jump to: navigation, search
(User Instructions)
m
 
(44 intermediate revisions by 3 users not shown)
Line 1: Line 1:
[[Category:ECE497 |PL]]
 
 
[[Category:ECE497Fall2018 |PL]]
 
[[Category:ECE497Fall2018 |PL]]
 
{{YoderHead}}
 
{{YoderHead}}
Line 29: Line 28:
 
== Executive Summary ==
 
== Executive Summary ==
  
The project that we are doing involves an LED Matrix and the Beagle Bone. We are putting this matrix inside of a graduation cap. An example can be seen here: [https://imgur.com/gallery/xr0P0].
+
The project that we are doing involves an LED Matrix and the Beagle Bone. We are putting this matrix inside of a graduation cap. An example can be seen here: [https://imgur.com/gallery/xr0P0 https://imgur.com/gallery/xr0P0].
 +
 
 +
Here is the final product just not in the graduation cap yet: [https://www.youtube.com/watch?v=1br--LgNsak&feature=youtu.be https://www.youtube.com/watch?v=1br--LgNsak&feature=youtu.be]
 +
 
 +
This is a video of the final product in the hat with it running: [https://youtu.be/xUwYmPC_k5U https://youtu.be/xUwYmPC_k5U]
 +
 
 +
[[File:Graduation Cap.jpg|frameless]]
  
 
== Packaging ==
 
== Packaging ==
If you have hardware, consider [http://cpprojects.blogspot.com/2013/07/small-build-big-execuition.html Small Build, Big Execuition] for ideas on the final packaging.
+
The final packaged product is the LED matrix with everything wired neatly behind the matrix. There is cardboard to make sure that everything stays in place and supports the cap.
 +
 
 +
The final product looks like this:
 +
 
 +
[[File:Front Side of Final Product.jpg|frameless]]
 +
 
 +
[[File:Back Side LED Matrix.jpg|frameless]]
 +
 
 +
This cap is powered off a power bank that supports more than 2.4 Amps.
  
 
== Installation Instructions ==
 
== Installation Instructions ==
  
Give step by step instructions on how to install your project.
+
<h3>GitHub</h3>
 +
The project is located on GitHub here: [https://github.com/ObbyKing/ece434_linux/tree/master/finalProject https://github.com/ObbyKing/ece434_linux/tree/master/finalProject]
  
* Include your [https://github.com/ github] path as a link like this to the read-only git site:  [https://github.com/MarkAYoder/gitLearn https://github.com/MarkAYoder/gitLearn].  
+
The GitHub has a README on how to install the necessary software for this project.
* Be sure your README.md is includes an up-to-date and clear description of your project so that someone who comes across you git repository can quickly learn what you did and how they can reproduce it.
+
 
* Include a Makefile for your code if using C.
+
<h3>Hardware</h3>
* Include any additional packages installed via '''apt'''. Include '''install.sh''' and '''setup.sh''' files.
+
Here are the links for the specific hardware we used for this project.
* Include kernel mods.
+
 
* If there is extra hardware needed, include links to where it can be obtained.
+
LED Matrix - https://www.adafruit.com/product/1484
 +
 
 +
WIFI Dongle - https://www.amazon.com/gp/product/B003MTTJOY/ref=od_aui_detailpages00?ie=UTF8&psc=1
 +
 
 +
Power Bank - https://www.amazon.com/Portable-Charger-Anker-PowerCore-20100mAh/dp/B00X5RV14Y/ref=sr_1_3?s=electronics&ie=UTF8&qid=1541185514&sr=1-3&keywords=anker+20100mah+portable+charger+powercore+20100
 +
 
 +
Pocket Beagle - https://www.amazon.com/BeagleBone-Beagleboard-PocketBeagle/dp/B07663NS35/ref=sr_1_1?s=electronics&ie=UTF8&qid=1541185560&sr=1-1&keywords=pocketbeagle
 +
 
 +
USB Type A Female Connector - https://www.mouser.com/ProductDetail/CUI/UJ2-AH-4-TH?qs=sGAEpiMZZMulM8LPOQ%252byk%252br6FietFiXB9kYqxJAMIhCTiPAQWqJbLA%3d%3d
 +
 
 +
8 GB micro SD card - https://www.amazon.com/Sandisk-MicroSDHC-Memory-Card-Adapter/dp/B000WH6H1M
  
 
== User Instructions ==
 
== User Instructions ==
  
Once everything is installed, how do you use the program?  Give details here, so if you have a long user manual, link to it here.
+
These are the Schematics and tables to wiring the Pocket Beagle to the matrix.
 +
 
 +
<h3>Graduation Cap Schematic</h3>
 +
[[File:LED Matrix Schematic.jpg|frameless|The final schematic for our LED Matrix]]
 +
<h3>Pocket Scroller Wiring</h3>
 +
This table maps the Pocket Scroller for the Pocket Beagle to the pins on the the Pocket Beagle to eliminate the need for the scroller and reduce space.  
  
 
{| class="wikitable"
 
{| class="wikitable"
 
|-
 
|-
!! BBB !! PocketBeagle
+
!  !! PocketBeagle
 +
|-
 +
| R1 || P2.10
 +
|-
 +
| G1 || P2.8
 +
|-
 +
| B1 || P2.6
 +
|-
 +
| GND|| P2.15
 +
|-
 +
| R2 || P2.4
 +
|-
 +
| G2 || P2.2
 +
|-
 +
| B2 || P2.1
 
|-
 
|-
| R1 || P8_35 [8] || P2.1 [50]
+
| GND || P1.16
 
|-
 
|-
| G1 || P8_36 [80] || P2.2 [59]
+
| || P2.32
 
|-
 
|-
| B1 || P8_37 [78] || P2.3 [23]
+
| || P2.30
 
|-
 
|-
| GND || GND || GND
+
| || P1.31
 
|-
 
|-
| R2 || P8_39 [76] || P2.4 [58]
+
| || P2.34
 
|-
 
|-
| G2 || P8_38 [79] || P2.5 [30]
+
| CLK || P1.33
 
|-
 
|-
| B2 || P8_41 [74] || P2.6 [57]
+
| LAT || P1.36
 
|-
 
|-
| GND || GND || GND
+
| OE  || P1.29
 
|-
 
|-
| A || P8_43 [72] || P2.7 [31]
+
| GND || P1.22
 +
|}
 +
 
 +
Below is the reference to the Pocket Beagle to map to the pins given above.
 +
<h4>Pocket Beagle Pinout</h3>
 +
[[File:GPIO.png|frameless]]
 +
 
 +
<h3>Pocket Beagle USB Type-A Wiring</h3>
 +
[[File:Pocketbeagle-usb-type-a.jpg|frameless|USB Type-A connector to a pocketbeagle]]
 +
{| class="wikitable"
 
|-
 
|-
| B || P8_40 [77] || P2.8 [60]
+
!  !! PocketBeagle
 
|-
 
|-
| C || P8_45 [70] || P2.9 [15]
+
| P1.5 || 5V
 
|-
 
|-
| D || N/A || P2.10 [52]
+
| P1.7 || 5V
 
|-
 
|-
| CLK || P8_44 [73] || P2.11 [14]
+
| P1.9 || USB Type A D-
 
|-
 
|-
| LAT || P8_42 [75] || P2.17 [65]
+
| P1.11 || USB Type A D+
 
|-
 
|-
| OE || P8_46 [71] || P2.19 [27]
+
| P1.13 || GND
 
|-
 
|-
| GND || GND || GND
+
| P1.15 || GND
 
|}
 
|}
  
'''*Note: Bracketed numbers are the GPIO number'''
+
<h3>Setting it up</h3>
 +
These are images of some of the pictures of us testing and setting up the wires for the final assembly.
 +
 
 +
[[File:Confirming Pinout.jpg|frameless]]
 +
[[File:Test setup.jpg|frameless]]
 +
[[File:Y Cable.jpg|frameless]]
  
 
== Highlights ==
 
== Highlights ==
  
Here is where you brag about what your project can do.
+
Our matrix starts on bootup and runs a test sequence. We have successfully put GIFs on the matrix. We will modify the sequence to make it longer when we put it in the final cap.
  
Include a [http://www.youtube.com/ YouTube] demo the audio description.
+
Here is the example of the test sequence: [https://www.youtube.com/watch?v=1br--LgNsak&feature=youtu.be https://www.youtube.com/watch?v=1br--LgNsak&feature=youtu.be]
  
 
== Theory of Operation ==
 
== Theory of Operation ==
  
Give a high level overview of the structure of your software.  Are you using GStreamer?  Show a diagram of the pipeline.  Are you running multiple tasks?  Show what they do and how they interact.
+
[[File:Unnamed0.jpg|frameless]]
  
 
== Work Breakdown ==
 
== Work Breakdown ==
 +
{| class="wikitable"
 +
|-
 +
! Date !! Milestone
 +
|-
 +
| 10/28/2018 || Have Falcon working without PocketScroller Cape
 +
|-
 +
| 11/2/2018 || Have twitter API reading tweets on PocketBeagle
 +
|-
 +
| 11/4/2018 || Have twitter displaying tweets on LED Matrix
 +
|-
 +
| 11/6/2018 || Figure out how to display tweets as well as sequences on LED Matrix. IE Falcon and our handwritten stuff running at the same time.
 +
|-
 +
| 11/9/2018 || Have everything fitted to cardboard so that we can wear it as well matrix and beagle running off of power bank
 +
|-
 +
| 11/12/2018 || Wrap up final documentation
 +
|}
  
List the major tasks in your project and who did what.
+
We tried to get the twitter API to work with Falcon. However, because of a lack of documentation and an unfamiliarity with PHP, we could not get this done. Instead, we tried to get texting to the LED display to work. However, for the same reasons as the twitter API, we also couldn't get this to work! We then tried to get weather to display on the LED Matrix while a sequence was playing, but we also couldn't get this to work! In then end, we're only using a pre-made sequence on our LED Matrix that gets displayed on bootup.
  
Also list here what doesn't work yet and when you think it will be finished and who is finishing it.
+
Devon and Andy both worked together equally for reverse engineering the PocketScroller pin outs.
 +
Devon and Andy worked together equally in assembling the final product.
 +
Devon did all of the work into getting the Wifi to work on the pocket beagle.
 +
Devon and Andy worked partially together on getting twitter to work, however Devon did a majority of the work for twitter.
 +
Andy did all of the work in trying to get Twillio to work.
 +
Devon and Andy worked partially together in getting the weather to display on the pocket beagle, however Andy did a majority of the work for the weather.
 +
Devon made the final test sequence for our LED Matrix.
  
 
== Future Work ==
 
== Future Work ==
  
Suggest addition things that could be done with this project.
+
Twitter API: Figure out how the twitter plugin works with falcon and get it working. You can then display tweets on the LED matrix.
 +
 
 +
Twillio: Figure out how to get Twillio configured with falcon. If this ends up working, you can then text a default number and display "Congratulations RANDOM_NAME!".
 +
 
 +
Accelerometer: Get the Pocketbeagle to work with an accelerometer so that you can have a "sand effect" on your LED Matrix
  
 
== Conclusions ==
 
== Conclusions ==
  
Give some concluding thoughts about the project. Suggest some future additions that could make it even more interesting.
+
Overall the project was interesting and fun to work on. It was difficult to get things working due to information being in forums and no documentation.
 +
 
 +
It was annoying that we couldn't get some of the features we wanted to work. Before graduation we are going to try and get the things we couldn't working.
  
 
== References ==
 
== References ==
Line 116: Line 201:
 
[https://www.cs.sfu.ca/CourseCentral/433/bfraser/other/2015-student-howtos/Adafruit16x32LEDMatrixGuideForBBB.pdf https://www.cs.sfu.ca/CourseCentral/433/bfraser/other/2015-student-howtos/Adafruit16x32LEDMatrixGuideForBBB.pdf]  
 
[https://www.cs.sfu.ca/CourseCentral/433/bfraser/other/2015-student-howtos/Adafruit16x32LEDMatrixGuideForBBB.pdf https://www.cs.sfu.ca/CourseCentral/433/bfraser/other/2015-student-howtos/Adafruit16x32LEDMatrixGuideForBBB.pdf]  
  
 +
https://andrewdai.co/beaglecar/sensors-and-interfaces.html
 +
 +
https://www.teachmemicro.com/pocketbeagle-wifi/
 +
 +
http://falconchristmas.com/forum/index.php/topic,4921.0.html
 +
 +
https://github.com/ObbyKing/ece434_linux/tree/master/finalProject
  
 
{{YoderFoot}}
 
{{YoderFoot}}

Latest revision as of 23:30, 16 April 2021

thumb‎ Embedded Linux Class by Mark A. Yoder


Team members: Devon Adair, Andrew Lund

Grading Template

I'm using the following template to grade. Each slot is 10 points. 0 = Missing, 5=OK, 10=Wow!

00 Executive Summary
00 Installation Instructions 
00 User Instructions
00 Highlights
00 Theory of Operation
00 Work Breakdown
00 Future Work
00 Conclusions
00 Demo
00 Late
Comments: I'm looking forward to seeing this.

Score:  10/100

(Inline Comment)

Executive Summary

The project that we are doing involves an LED Matrix and the Beagle Bone. We are putting this matrix inside of a graduation cap. An example can be seen here: https://imgur.com/gallery/xr0P0.

Here is the final product just not in the graduation cap yet: https://www.youtube.com/watch?v=1br--LgNsak&feature=youtu.be

This is a video of the final product in the hat with it running: https://youtu.be/xUwYmPC_k5U

Graduation Cap.jpg

Packaging

The final packaged product is the LED matrix with everything wired neatly behind the matrix. There is cardboard to make sure that everything stays in place and supports the cap.

The final product looks like this:

Front Side of Final Product.jpg

Back Side LED Matrix.jpg

This cap is powered off a power bank that supports more than 2.4 Amps.

Installation Instructions

GitHub

The project is located on GitHub here: https://github.com/ObbyKing/ece434_linux/tree/master/finalProject

The GitHub has a README on how to install the necessary software for this project.

Hardware

Here are the links for the specific hardware we used for this project.

LED Matrix - https://www.adafruit.com/product/1484

WIFI Dongle - https://www.amazon.com/gp/product/B003MTTJOY/ref=od_aui_detailpages00?ie=UTF8&psc=1

Power Bank - https://www.amazon.com/Portable-Charger-Anker-PowerCore-20100mAh/dp/B00X5RV14Y/ref=sr_1_3?s=electronics&ie=UTF8&qid=1541185514&sr=1-3&keywords=anker+20100mah+portable+charger+powercore+20100

Pocket Beagle - https://www.amazon.com/BeagleBone-Beagleboard-PocketBeagle/dp/B07663NS35/ref=sr_1_1?s=electronics&ie=UTF8&qid=1541185560&sr=1-1&keywords=pocketbeagle

USB Type A Female Connector - https://www.mouser.com/ProductDetail/CUI/UJ2-AH-4-TH?qs=sGAEpiMZZMulM8LPOQ%252byk%252br6FietFiXB9kYqxJAMIhCTiPAQWqJbLA%3d%3d

8 GB micro SD card - https://www.amazon.com/Sandisk-MicroSDHC-Memory-Card-Adapter/dp/B000WH6H1M

User Instructions

These are the Schematics and tables to wiring the Pocket Beagle to the matrix.

Graduation Cap Schematic

The final schematic for our LED Matrix

Pocket Scroller Wiring

This table maps the Pocket Scroller for the Pocket Beagle to the pins on the the Pocket Beagle to eliminate the need for the scroller and reduce space.

PocketBeagle
R1 P2.10
G1 P2.8
B1 P2.6
GND P2.15
R2 P2.4
G2 P2.2
B2 P2.1
GND P1.16
A P2.32
B P2.30
C P1.31
D P2.34
CLK P1.33
LAT P1.36
OE P1.29
GND P1.22

Below is the reference to the Pocket Beagle to map to the pins given above.

Pocket Beagle Pinout

GPIO.png

Pocket Beagle USB Type-A Wiring

USB Type-A connector to a pocketbeagle

PocketBeagle
P1.5 5V
P1.7 5V
P1.9 USB Type A D-
P1.11 USB Type A D+
P1.13 GND
P1.15 GND

Setting it up

These are images of some of the pictures of us testing and setting up the wires for the final assembly.

Confirming Pinout.jpg Test setup.jpg Y Cable.jpg

Highlights

Our matrix starts on bootup and runs a test sequence. We have successfully put GIFs on the matrix. We will modify the sequence to make it longer when we put it in the final cap.

Here is the example of the test sequence: https://www.youtube.com/watch?v=1br--LgNsak&feature=youtu.be

Theory of Operation

Unnamed0.jpg

Work Breakdown

Date Milestone
10/28/2018 Have Falcon working without PocketScroller Cape
11/2/2018 Have twitter API reading tweets on PocketBeagle
11/4/2018 Have twitter displaying tweets on LED Matrix
11/6/2018 Figure out how to display tweets as well as sequences on LED Matrix. IE Falcon and our handwritten stuff running at the same time.
11/9/2018 Have everything fitted to cardboard so that we can wear it as well matrix and beagle running off of power bank
11/12/2018 Wrap up final documentation

We tried to get the twitter API to work with Falcon. However, because of a lack of documentation and an unfamiliarity with PHP, we could not get this done. Instead, we tried to get texting to the LED display to work. However, for the same reasons as the twitter API, we also couldn't get this to work! We then tried to get weather to display on the LED Matrix while a sequence was playing, but we also couldn't get this to work! In then end, we're only using a pre-made sequence on our LED Matrix that gets displayed on bootup.

Devon and Andy both worked together equally for reverse engineering the PocketScroller pin outs. Devon and Andy worked together equally in assembling the final product. Devon did all of the work into getting the Wifi to work on the pocket beagle. Devon and Andy worked partially together on getting twitter to work, however Devon did a majority of the work for twitter. Andy did all of the work in trying to get Twillio to work. Devon and Andy worked partially together in getting the weather to display on the pocket beagle, however Andy did a majority of the work for the weather. Devon made the final test sequence for our LED Matrix.

Future Work

Twitter API: Figure out how the twitter plugin works with falcon and get it working. You can then display tweets on the LED matrix.

Twillio: Figure out how to get Twillio configured with falcon. If this ends up working, you can then text a default number and display "Congratulations RANDOM_NAME!".

Accelerometer: Get the Pocketbeagle to work with an accelerometer so that you can have a "sand effect" on your LED Matrix

Conclusions

Overall the project was interesting and fun to work on. It was difficult to get things working due to information being in forums and no documentation.

It was annoying that we couldn't get some of the features we wanted to work. Before graduation we are going to try and get the things we couldn't working.

References

https://www.cs.sfu.ca/CourseCentral/433/bfraser/other/2015-student-howtos/Adafruit16x32LEDMatrixGuideForBBB.pdf

https://andrewdai.co/beaglecar/sensors-and-interfaces.html

https://www.teachmemicro.com/pocketbeagle-wifi/

http://falconchristmas.com/forum/index.php/topic,4921.0.html

https://github.com/ObbyKing/ece434_linux/tree/master/finalProject




thumb‎ Embedded Linux Class by Mark A. Yoder