tag:blogger.com,1999:blog-35123024483836232822024-03-14T12:37:39.396-07:00Tim's PC ApplicationsTimhttp://www.blogger.com/profile/07225153872191471067noreply@blogger.comBlogger5125tag:blogger.com,1999:blog-3512302448383623282.post-56405359982529208882023-10-30T08:13:00.004-07:002023-10-31T03:36:35.695-07:00Tim's Digital Video Device Viewer<p></p>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/a/AVvXsEiMedJAe1Y6tE70HRoTkx2fTYX8Zg0Vdb71QQClaHMxNnCyPCMucMoavcN6NwkFCAUB31VqoRlhTO39qwTDYt9baCD1CLa0btC8fDTtJspWE-0X7sujcOjjTWgxz7zw-goViwwB0TbR1H_R1mu2RWnuhNPBZcUGDyGqACGYfdBI6xV1Prx2LyeY1OF-NDaK" style="margin-left: 1em; margin-right: 1em;"><img alt="" data-original-height="1000" data-original-width="1200" height="167" src="https://blogger.googleusercontent.com/img/a/AVvXsEiMedJAe1Y6tE70HRoTkx2fTYX8Zg0Vdb71QQClaHMxNnCyPCMucMoavcN6NwkFCAUB31VqoRlhTO39qwTDYt9baCD1CLa0btC8fDTtJspWE-0X7sujcOjjTWgxz7zw-goViwwB0TbR1H_R1mu2RWnuhNPBZcUGDyGqACGYfdBI6xV1Prx2LyeY1OF-NDaK=w200-h167" width="200" /></a>
</div>
I have a cheep USB Microscope.
<div>I think mine is just 100X.</div>
<div>I have seen some advertised at 1000X and 1600X.</div>
<div>
There are many out there I believe most may have the same image sensor with
just different lenses.
</div>
<div>
<p></p>
<p>
Finding the right software to view what is seen by the Microscope can often
be hard to find, and one that does what I want it to do.
</p>
<p>So I decided to make my own Application.</p>
<p></p>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/a/AVvXsEiMFUDsJlzm27e4TTJKNS64uotWrSgKJXwiRPKy3LsD2A02Oe2SXRozHPJmC1UMpSLG6u2vKTdJdcmnbcQzymJPW8foGzX-m_yEU_LrQ_xubJ0Kd_yhmz6p19Mbcw07K5XhVSTDwj3mZ1ui1f9ysXq1lY_9y-SjeoILFTXiVCce4bkbaVOFG7vWEyyIAZFK" style="margin-left: 1em; margin-right: 1em;"><img alt="" data-original-height="1000" data-original-width="1200" height="533" src="https://blogger.googleusercontent.com/img/a/AVvXsEiMFUDsJlzm27e4TTJKNS64uotWrSgKJXwiRPKy3LsD2A02Oe2SXRozHPJmC1UMpSLG6u2vKTdJdcmnbcQzymJPW8foGzX-m_yEU_LrQ_xubJ0Kd_yhmz6p19Mbcw07K5XhVSTDwj3mZ1ui1f9ysXq1lY_9y-SjeoILFTXiVCce4bkbaVOFG7vWEyyIAZFK=w640-h533" width="640" /></a>
</div>
<br />The Application can be downloaded here:
<a href="https://drive.google.com/file/d/1CK2NKfbRgImByhe7rOaMLWXuuy_k5jte/view?usp=sharing" target="_blank">Tim's Video Device Viewer.zip</a><br />Unzip and run setup.
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/a/AVvXsEhU0uwv3_FaZjpqn0Hb8QXzHV1r-eZWSUJub-49A3cHH4jsE-LJmSE0gGaHz14tfeqVahHrEiTVfM2hEKjzxMKJvbobW-xZf_7DamjKKsTeiLAmkx3NokRmIKfNm0hRa-Md6AacwC8Bkcll24enu__X5OkqEFjuOjxQ8hHJWIVB3MLaMLEWh6ni1C8P7g-i" style="margin-left: 1em; margin-right: 1em;"><img alt="" data-original-height="409" data-original-width="499" height="262" src="https://blogger.googleusercontent.com/img/a/AVvXsEhU0uwv3_FaZjpqn0Hb8QXzHV1r-eZWSUJub-49A3cHH4jsE-LJmSE0gGaHz14tfeqVahHrEiTVfM2hEKjzxMKJvbobW-xZf_7DamjKKsTeiLAmkx3NokRmIKfNm0hRa-Md6AacwC8Bkcll24enu__X5OkqEFjuOjxQ8hHJWIVB3MLaMLEWh6ni1C8P7g-i=w320-h262" width="320" /></a>
</div>
</div>
<div><br /></div>
<div>
The Camera Settings are the settings of the Device.<br />They are not
adjustments to the image received.
</div>
<div>
<p></p>
<p></p>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/a/AVvXsEhdaTdy72rOIKI1ZmXwanv4eEn8Ho88zaSsl_bssKx-9WkUNJdyDYULkXWrZqr0qBnNlYPaenqijFUd3_4fpHCUPEA6STFLSvruOY66A-VuND--4vxFh5i8jklDIj9sm7hDOMN3eEPYKvj03IJNaRaf0xAWnR5TDw3Rv2HlyJKSa9J82ZQN4_mVk33Ayku9" style="margin-left: 1em; margin-right: 1em;"><img alt="" data-original-height="1000" data-original-width="1200" height="533" src="https://blogger.googleusercontent.com/img/a/AVvXsEhdaTdy72rOIKI1ZmXwanv4eEn8Ho88zaSsl_bssKx-9WkUNJdyDYULkXWrZqr0qBnNlYPaenqijFUd3_4fpHCUPEA6STFLSvruOY66A-VuND--4vxFh5i8jklDIj9sm7hDOMN3eEPYKvj03IJNaRaf0xAWnR5TDw3Rv2HlyJKSa9J82ZQN4_mVk33Ayku9=w640-h533" width="640" /></a>
</div>
<br />
<div>It has a Take Photo button.</div>
<div>This saves the current image to disk.</div>
<div><br /></div>
<div>
It has Start Video button.<br />This starts recording video, click it again
stops the recording.
</div>
<div>
The recording is a bit basic, higher resolutions tend to get the framerate
wrong, I need to work this out.
</div>
<div>I didn't really make it for recording video though.</div>
<div><br /></div>
<div>The path to which the Photo and video can be set.<br /></div>
<div><br /></div>
<div>Also I have added some overlays.</div>
<div>
These are just some lines to make it look cool more professional haha.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/a/AVvXsEiV2mduah5iarT6l5Ev0zBQGfgiq7J0vJ58THtBpr4DmW6FyuO69zvA3qT6im8z9njMSMWuqOYd9tZBJXRd-oKvBUaC101hJx02SBQLYcY-I-H81QNj0tVj2SRdeKhhejNbc8keg6rBT0dPLojBv54HxEk_WR6SvtbmQZrrl4yHdoqxjRuA8UsHoDrsKc2U" style="margin-left: 1em; margin-right: 1em;"><br /><img data-original-height="1000" data-original-width="1200" height="533" src="https://blogger.googleusercontent.com/img/a/AVvXsEiV2mduah5iarT6l5Ev0zBQGfgiq7J0vJ58THtBpr4DmW6FyuO69zvA3qT6im8z9njMSMWuqOYd9tZBJXRd-oKvBUaC101hJx02SBQLYcY-I-H81QNj0tVj2SRdeKhhejNbc8keg6rBT0dPLojBv54HxEk_WR6SvtbmQZrrl4yHdoqxjRuA8UsHoDrsKc2U=w640-h533" width="640" /></a>
</div>
<p></p>
<div class="separator" style="clear: both; text-align: center;">
<iframe allowfullscreen="" class="BLOG_video_class" height="491" src="https://www.youtube.com/embed/Sdi41UmoQtk" width="654" youtube-src-id="Sdi41UmoQtk"></iframe>
</div>
<br />
<p><br /></p>
<p><br /></p>
<p><br /></p>
<p><br /></p>
<p><br /></p>
<p><br /></p>
<p><br /></p>
<p><br /></p>
<p><br /></p>
</div>
</div>
Timhttp://www.blogger.com/profile/07225153872191471067noreply@blogger.com0tag:blogger.com,1999:blog-3512302448383623282.post-67624671171803659272020-05-20T05:50:00.002-07:002021-05-20T12:12:38.110-07:00Tim's ESP32 Cam Viewer<div style="text-align: center;">
<br />
</div>
<div style="text-align: center;">
<br />This is a little application I wrote, so that I could view images from
my ESP 32 Cam breakout board.
</div>
<div style="text-align: center;">
<br />
</div>
<div style="text-align: center;">
<a
href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgZFxsspPgWUNXoU511_BgHwhOIt8nb4N5JaRv0xZSNnbwsUz7Ib6pMCoiSwfZnwLBc1hpVmsX_gQR-edvWrzasjSNnc4bBRP9I33YTZvGSkGnBS6_w7nMpM9vCZ9m5ZuoCneC3JYq1cbpp/s1600/ESP32-CAM+front.png"
><img
border="0"
src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgZFxsspPgWUNXoU511_BgHwhOIt8nb4N5JaRv0xZSNnbwsUz7Ib6pMCoiSwfZnwLBc1hpVmsX_gQR-edvWrzasjSNnc4bBRP9I33YTZvGSkGnBS6_w7nMpM9vCZ9m5ZuoCneC3JYq1cbpp/s200/ESP32-CAM+front.png"
/></a>
<a
href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgG3VHq2ItO5cCBPjLzHt-IE8-7KWne5mrLmxiskPIDReFu6wQFwiGLQDoJZ1yZcEXItmPRpkYWsmLhhdk-G7eZUYTtDcHppfw8v45RMjdWj_KNDDwacKV_qsGkLMgPZgWYi912cIZKYrF7/s1600/ESP32-CAM+back.png"
><img
border="0"
src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgG3VHq2ItO5cCBPjLzHt-IE8-7KWne5mrLmxiskPIDReFu6wQFwiGLQDoJZ1yZcEXItmPRpkYWsmLhhdk-G7eZUYTtDcHppfw8v45RMjdWj_KNDDwacKV_qsGkLMgPZgWYi912cIZKYrF7/s200/ESP32-CAM+back.png"
/></a>
</div>
<div style="text-align: center;">
<br />
</div>
<div style="text-align: center;">
<a href="https://drive.google.com/open?id=1OL4-66sptYrIISHwI-hEM-34LoZwMIh0"
>ESP32_CAM_Viewer.zip</a
>
</div>
<div style="text-align: center;">
<a
href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgY9v4jpa_396nggc1GPmHkC2_wS5HCSwfJ-Cp35YPyQVKAWaLeAOI7gJjF9y1hdqft0UNMkwd2jqfRFgrzJr_twKu3g-nnDLf9ir6SBW31CdA7JZj0vSM3qXL1K509CVJxjC04eV4IQK8s/s1600/ESP32_CAM_Viewer.png"
><img
border="0"
height="454"
src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgY9v4jpa_396nggc1GPmHkC2_wS5HCSwfJ-Cp35YPyQVKAWaLeAOI7gJjF9y1hdqft0UNMkwd2jqfRFgrzJr_twKu3g-nnDLf9ir6SBW31CdA7JZj0vSM3qXL1K509CVJxjC04eV4IQK8s/s640/ESP32_CAM_Viewer.png"
width="640"
/></a>
</div>
<div style="text-align: center;">
<br />
</div>
<div style="text-align: center;">
<a
href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiChcfMlpsGKCiJBzFhaDylQ9AYgvFaEd5H5aV_5yOSgCZPC4f2Vtorffy067yJqg8u22kDh6LSZtv_M_G7ZSXwKZMA_WNJpilsY80ZJW5jr8C8yP3HGdHkvJxElCJa3P3wqINfEPyD6F_d/s1600/ESP32_CAM_Viewer+settings.png"
><img
border="0"
height="221"
src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiChcfMlpsGKCiJBzFhaDylQ9AYgvFaEd5H5aV_5yOSgCZPC4f2Vtorffy067yJqg8u22kDh6LSZtv_M_G7ZSXwKZMA_WNJpilsY80ZJW5jr8C8yP3HGdHkvJxElCJa3P3wqINfEPyD6F_d/s400/ESP32_CAM_Viewer+settings.png"
width="400"
/></a>
</div>
<div style="text-align: center;">
<br />
</div>
<div style="text-align: center;">
It works with ESP32-CAM module, programmed with Arduino IDE, with ESP32
libraries installed.
</div>
<div style="text-align: center;">
<br />
</div>
<div style="text-align: center;">I installed the Camera Web Server</div>
<div class="separator" style="clear: both; text-align: center;">
<a
href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjg2ZW9_JkOIbpfviSayOv33Gn6XA_6bkVV5D_BPBjKELDbDsJO6bIGCVEXDg582qwsJ-eXpNb3Vs4X9iycXCNFEeJyOn76gZk0fy9a_DmoZwuPJny8ZbP72Eid8ch44wlnEmxow3r_4-mN/s1600/Arduino+IDE.png"
style="margin-left: 1em; margin-right: 1em;"
><img
border="0"
data-original-height="1010"
data-original-width="1317"
height="490"
src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjg2ZW9_JkOIbpfviSayOv33Gn6XA_6bkVV5D_BPBjKELDbDsJO6bIGCVEXDg582qwsJ-eXpNb3Vs4X9iycXCNFEeJyOn76gZk0fy9a_DmoZwuPJny8ZbP72Eid8ch44wlnEmxow3r_4-mN/s640/Arduino+IDE.png"
width="640"
/></a>
</div>
<div style="text-align: center;">
<br />
</div>
<div style="text-align: center;">
I created it so that I could use it like a web cam in my videos.
</div>
<div style="text-align: center;">Here is an example:</div>
<div class="separator" style="clear: both; text-align: center;">
<iframe
allowfullscreen=""
class="YOUTUBE-iframe-video"
data-thumbnail-src="https://i.ytimg.com/vi/OVZtuLbm9SU/0.jpg"
frameborder="0"
height="360"
src="https://www.youtube.com/embed/OVZtuLbm9SU?feature=player_embedded"
width="640"
></iframe>
</div>
<div style="text-align: center;">
<br />
</div>
<div style="text-align: center;">
<br />
</div>
<div style="text-align: center;">
<br />
</div>
<div style="text-align: center;">
<br />
</div>
<div style="text-align: center;"><br /><br /><br /><br /><br /></div>
<div style="text-align: center;">
<br />
</div>
Timhttp://www.blogger.com/profile/07225153872191471067noreply@blogger.com0tag:blogger.com,1999:blog-3512302448383623282.post-63925793487328094912020-05-15T12:31:00.000-07:002020-05-15T12:37:14.615-07:00Tim's Serial Monitor<div style="text-align: center;">
<br /></div>
<div style="text-align: center;">
<br /></div>
<div style="text-align: center;">
Some times I didn't want to load up the Arduino IDE or MS Visual Studio to view the output from one of my Arduino projects.</div>
<div style="text-align: center;">
So I made this little Serial monitor to view the data.</div>
<div style="text-align: center;">
<br /></div>
<div style="text-align: center;">
<a href="https://drive.google.com/open?id=1e4JMPJSVuBQNTWzeVdr-nXA6nfqkF2q7" target="_blank">Tims_Serial_Plotter.zip</a></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgCwNleTZTKvKIok_X4XK7HkvHdnaIcznRHBvlObE_rCnTLfGG0A4hUmIURE46eKvJW6FO6CnYEZZSvYzz_SZOVXs56Cpn6-l3kT_j8Uj9qc7OLT_0JPxQgyTs_aAn2qT-nHtRFYJBv9PjC/s1600/Serial_Plotter_Plot.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="577" data-original-width="991" height="372" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgCwNleTZTKvKIok_X4XK7HkvHdnaIcznRHBvlObE_rCnTLfGG0A4hUmIURE46eKvJW6FO6CnYEZZSvYzz_SZOVXs56Cpn6-l3kT_j8Uj9qc7OLT_0JPxQgyTs_aAn2qT-nHtRFYJBv9PjC/s640/Serial_Plotter_Plot.png" width="640" /></a></div>
<div style="text-align: center;">
<br /></div>
<div style="text-align: center;">
I original wrote it to test and program my Bluetooth devices.<br />
Its very handy for sending/testing commands to my Bluetooth controlled projects</div>
<div style="text-align: center;">
(It cant handle very fast data, I'm no pro at programming, I need to learn a little more for it to cope with very fast data.)</div>
<div style="text-align: center;">
<br />
If you want to know more. ask. </div>
Timhttp://www.blogger.com/profile/07225153872191471067noreply@blogger.com2tag:blogger.com,1999:blog-3512302448383623282.post-20744084132520111132020-05-15T12:11:00.004-07:002022-11-08T06:24:33.992-08:00Tim's Image Pixel Editor<br />
<div>
<br />
</div>
<div>
<br />
</div>
<div>
This is a little application I made to edit and create Images and fonts for
the small displays used by the Arduino.
</div>
<div>
<br />
</div>
<div>
Like the small Mono (Black and White) OLED 0.96 inch 128 x 64 pixels I2C
connection.
</div>
<div class="separator" style="clear: both; text-align: center;">
<a
href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjbns0TpvPeBPM6hiU9r4AMjcPuoUYkhGuG2d57BmGdTJ6eY992boKqThEEEopPmVcMC0GW3pwitK1J8uMQUmGQOgjAs-OWaW6VC-t4c6esT5X1JAe2H-Y_mrEMrzJTwRPsYcw-xVhWErIa/s1600/OLED.png"
style="margin-left: 1em; margin-right: 1em;"
><img
border="0"
data-original-height="1241"
data-original-width="1314"
height="188"
src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjbns0TpvPeBPM6hiU9r4AMjcPuoUYkhGuG2d57BmGdTJ6eY992boKqThEEEopPmVcMC0GW3pwitK1J8uMQUmGQOgjAs-OWaW6VC-t4c6esT5X1JAe2H-Y_mrEMrzJTwRPsYcw-xVhWErIa/s200/OLED.png"
width="200" /></a
><a
href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj6viEOu5FuqcoVZ7yi5XA1YE5GhlcpNY4c32FtvlmYt0VveWC9MngqJrsjtR6v9z1tGFi333hwQxdVQet9SIz_Xm_bI9SpTNAGL91gpVkOaD2gWTDBv4PMMK4H9ee0paQYYHNt5i3pq_Ed/s1600/OLED.png"
style="margin-left: 1em; margin-right: 1em;"
><img
border="0"
data-original-height="1334"
data-original-width="1528"
height="174"
src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj6viEOu5FuqcoVZ7yi5XA1YE5GhlcpNY4c32FtvlmYt0VveWC9MngqJrsjtR6v9z1tGFi333hwQxdVQet9SIz_Xm_bI9SpTNAGL91gpVkOaD2gWTDBv4PMMK4H9ee0paQYYHNt5i3pq_Ed/s200/OLED.png"
width="200"
/></a>
</div>
<div class="separator" style="clear: both; text-align: center;">
<br />
</div>
<div class="separator" style="clear: both; text-align: center;">
<br />
</div>
<div class="separator" style="clear: both; text-align: center;">
<a
href="https://drive.google.com/open?id=1iCcUQ11FazkCMvAuuEOBnLBya0cbOY00"
target="_blank"
>Tims_B_W_Screen_Image_Editor.zip</a
> Version 1.0.0.25
</div>
<div class="separator" style="clear: both; text-align: center;">
<a
href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiD2hv-eMdRXgPWGsHZB6BYMMqoqPW1xza6WwpJUQ-dC6q6VQabca-9m18WHRseyYtBnCA-jHD-kT_9SyNtHAJt-FPz8GYZ0jTvgd204tYrdc2L0bbspPum9n9rSsKxpje5v61j6SKDMccK/s1600/Tims_B_W_Screen_Image_Editor.png"
style="margin-left: 1em; margin-right: 1em;"
><img
border="0"
data-original-height="601"
data-original-width="1153"
height="332"
src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiD2hv-eMdRXgPWGsHZB6BYMMqoqPW1xza6WwpJUQ-dC6q6VQabca-9m18WHRseyYtBnCA-jHD-kT_9SyNtHAJt-FPz8GYZ0jTvgd204tYrdc2L0bbspPum9n9rSsKxpje5v61j6SKDMccK/s640/Tims_B_W_Screen_Image_Editor.png"
width="640"
/></a>
</div>
<div class="separator" style="clear: both; text-align: center;">
<br />
</div>
<div style="text-align: center;">
I wrote this to create the binary arrays used in Arduino code to show graphics
and text on the small screens.
</div>
<div style="text-align: center;">
<br />
</div>
<div style="text-align: center;">
It will also read those bit and bytes found in code.
</div>
<div style="text-align: center;">
<br />
</div>
<div style="text-align: center;">Done a video.</div>
<div class="separator" style="clear: both; text-align: center;">
<iframe
allowfullscreen=""
class="BLOG_video_class"
height="360"
src="https://www.youtube.com/embed/H5X4DWUE0NA"
width="640"
youtube-src-id="H5X4DWUE0NA"
></iframe>
</div>
<br />
<div style="text-align: center;"><br /></div>
<div style="text-align: center;">
<br />
</div>
Timhttp://www.blogger.com/profile/07225153872191471067noreply@blogger.com3tag:blogger.com,1999:blog-3512302448383623282.post-47356454999574783042020-05-15T10:54:00.002-07:002020-09-19T10:08:06.165-07:00Tims PCA 9685 Controller<script src="https://cdn.jsdelivr.net/gh/google/code-prettify@master/loader/run_prettify.js?lang=vb&skin=sunburst">
//<![CDATA[
//]]>
</script>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj3vq54XUYhXJZPoKwx-wmviRJLTSvvklnERNkU7N4UBJn05aE0KQlPrl1NhmlwAL2Y20GPiWdO80EgoBn7HqUZssZ-fDQ5qeEJfeJdO4qYMOhv2v-zeZjWuOBE9PLZL3BEPJOsSkp3teO7/" style="margin-left: 1em; margin-right: 1em;"></a></div>
<div>
<br /></div>
<div style="text-align: center;">
This is a little application I made to control Servo and LED via the PCA9685 LED controller chip.</div>
<div>
<br /></div>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj3vq54XUYhXJZPoKwx-wmviRJLTSvvklnERNkU7N4UBJn05aE0KQlPrl1NhmlwAL2Y20GPiWdO80EgoBn7HqUZssZ-fDQ5qeEJfeJdO4qYMOhv2v-zeZjWuOBE9PLZL3BEPJOsSkp3teO7/" style="color: #0066cc; font-family: Times New Roman; font-size: 16px; font-style: normal; font-variant: normal; font-weight: 400; letter-spacing: normal; margin-left: auto; margin-right: auto; orphans: 2; text-align: center; text-decoration: underline; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px;"><img border="0" data-original-height="1367" data-original-width="3236" height="270" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj3vq54XUYhXJZPoKwx-wmviRJLTSvvklnERNkU7N4UBJn05aE0KQlPrl1NhmlwAL2Y20GPiWdO80EgoBn7HqUZssZ-fDQ5qeEJfeJdO4qYMOhv2v-zeZjWuOBE9PLZL3BEPJOsSkp3teO7/w640-h270/PCA9685+16x+Servo+Driver.png" width="640" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">PCA9685 16x Servo Driver</td></tr>
</tbody></table>
<div style="text-align: center;">
<b></b><i></i><u></u><sub></sub><sup></sup><strike></strike><br /></div>
<div style="text-align: center;">
<br /></div>
<div style="text-align: center;">
<a href="https://drive.google.com/file/d/1oVNN0d4eN6NiO2mBfU_Uc30aRuDH89zs/view?usp=sharing" target="_blank">Tims_PCA_9685_Controller.zip</a></div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div style="text-align: center;">
With this application, it is possible to control 64 PCA9685 devices, each with 16 servo or LED attached.</div>
<div style="text-align: center;">
A total of 1024 items (Servo/LED).</div>
<div style="text-align: center;">
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgQ8Vg94E7gR9mZHc2IQ7q6B_LxGmUT_jRgoolL9yFysEwjCZZiYPrkTW0pZBPPbMhseYTyZH1M1bVM5Dr1k_EKCq1tzPy9t1qXCUXXSwsNizWFqe2IZC9q3ZZAIZTv_8_MdskyIraUpvTb/s1600/Tims_PCA9685_Controller.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="593" data-original-width="1286" height="294" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgQ8Vg94E7gR9mZHc2IQ7q6B_LxGmUT_jRgoolL9yFysEwjCZZiYPrkTW0pZBPPbMhseYTyZH1M1bVM5Dr1k_EKCq1tzPy9t1qXCUXXSwsNizWFqe2IZC9q3ZZAIZTv_8_MdskyIraUpvTb/s640/Tims_PCA9685_Controller.png" width="640" /></a></div>
<br /></div>
<div style="text-align: center;">
The devices need to be connected to an Arduino, communicating via I2C.</div>
<div style="text-align: center;">
The Arduino requires the firmware installing that is included in the <a href="https://drive.google.com/file/d/1oVNN0d4eN6NiO2mBfU_Uc30aRuDH89zs/view?usp=sharing" target="_blank">Tims_PCA_9685_Controller.zip</a></div>
<div style="text-align: center;">
With the Application you can run scripts of pre determined positions of all the Servo/LED connected.</div>
<div style="text-align: center;">
If you have more than one PCA9685, you can quickly switch between them.</div>
<div style="text-align: center;">
<br /></div>
<div style="text-align: center;">
There are some setting where you can adjust the Min, Max and Centre of each Servo.</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgiqVlZ4E8jpLEN-6dXdAcIvFVOXVcL9fvhxuF1ZAbdWMaK5qlB-_It1mv2yaJwcu8AEmr0eIJ9scFHwX42NUgHY8vxbrJt7s6_lU2-MP6CLV5U1OWtShNTrQ0bhDtavdDs_URFKhCHFoZ3/s1600/Tims_16x_Servo_Controller_Settings.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1090" data-original-width="1580" height="275" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgiqVlZ4E8jpLEN-6dXdAcIvFVOXVcL9fvhxuF1ZAbdWMaK5qlB-_It1mv2yaJwcu8AEmr0eIJ9scFHwX42NUgHY8vxbrJt7s6_lU2-MP6CLV5U1OWtShNTrQ0bhDtavdDs_URFKhCHFoZ3/s400/Tims_16x_Servo_Controller_Settings.png" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
In <a href="https://drive.google.com/file/d/1oVNN0d4eN6NiO2mBfU_Uc30aRuDH89zs/view?usp=sharing" target="_blank">Tims_PCA_9685_Controller.zip</a> there is a little program called XLoader.</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjDWCfXHNH201RBma8ugyDuFGAknzYTKKKttoeLjcZIgdRlHIYHhtVOd26PlxTtfCrrwbHkEH6so8f031it65Cx7bzHnsDYUEQwpQoyQVxM-D3kJ0PrN4IjQfYUa5b1mzboNDxOGWnP-Gl8/s1600/XLoader.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="209" data-original-width="205" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjDWCfXHNH201RBma8ugyDuFGAknzYTKKKttoeLjcZIgdRlHIYHhtVOd26PlxTtfCrrwbHkEH6so8f031it65Cx7bzHnsDYUEQwpQoyQVxM-D3kJ0PrN4IjQfYUa5b1mzboNDxOGWnP-Gl8/s1600/XLoader.png" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
Just choose the HEX file to Upload:</div>
<div class="separator" style="clear: both; text-align: center;">
Tims_PCA9685_16_LED_Servo_Controller_UNO.hex is for the Arduino UNO.</div>
<div class="separator" style="clear: both; text-align: center;">
Tims_PCA9685_16_LED_Servo_Controller_NANO.hex is for the Arduino NANO.</div>
<div class="separator" style="clear: both; text-align: center;">
Tims_PCA9685_16_LED_Servo_Controller_NANO_Old.hex is for the Arduino NANO with Old Bootloader.</div>
<div class="separator" style="clear: both; text-align: center;">
Select which Arduino you are uploading to.</div>
<div class="separator" style="clear: both; text-align: center;">
Select the port it is connected to.</div>
<div class="separator" style="clear: both; text-align: center;">
Click Upload.</div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
Here is a demonstration of controlling Servo</div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div style="text-align: center;">
<iframe allowfullscreen="" class="YOUTUBE-iframe-video" data-thumbnail-src="https://i.ytimg.com/vi/OVZtuLbm9SU/0.jpg" frameborder="0" height="266" src="https://www.youtube.com/embed/OVZtuLbm9SU?feature=player_embedded" width="320"></iframe></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
Here is a demonstration of controlling LED.</div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div style="text-align: center;">
<iframe allowfullscreen="" class="YOUTUBE-iframe-video" data-thumbnail-src="https://i.ytimg.com/vi/Aeak4egQhK8/0.jpg" frameborder="0" height="266" src="https://www.youtube.com/embed/Aeak4egQhK8?feature=player_embedded" width="320"></iframe></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div style="text-align: center;">
<br /></div>
<div style="text-align: center;">
I have done a version 2, version 2 allows for controlling both LED and Servo on the same PCA9685 breakout board.</div>
<div style="text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg-PIsofLrF77-VdBCukhmwS77WnCuUHjc2_H8IsVxYjHQixocGNj8gP9Bjbj-NBJw-lO5xIbZoEoriPu7H6ZBXXBf49MwWTmonpoVTEYjXRwqaIPmJr0irpgx8q6sXcI4gugMGz5ymhHzd/s1600/Tims_PCA9685_Controller_Ver_2.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="593" data-original-width="1386" height="272" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg-PIsofLrF77-VdBCukhmwS77WnCuUHjc2_H8IsVxYjHQixocGNj8gP9Bjbj-NBJw-lO5xIbZoEoriPu7H6ZBXXBf49MwWTmonpoVTEYjXRwqaIPmJr0irpgx8q6sXcI4gugMGz5ymhHzd/s640/Tims_PCA9685_Controller_Ver_2.png" width="640" /></a></div>
<div style="text-align: center;">
<br /></div>
<div style="text-align: center;">
Also has a Pre-Set window, where you can have 20 pre-sets stored and values and re-send them at a click of a button..</div>
<div style="text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg_dZXS2qkgqnct19zCnRi-S4AtX2EaLS9nsZPfFLOmty3XmSQYevGUhU7IcSs3laRWb3qgapJ9lYwO3262ZVk5GeYK_nnGgV1TUHuEq4HsYlhlUo12AMZIHpSON2TebIOxm8N1iGhfYef9/s1600/Tims_PCA9685_Controller_Ver_2_Presets.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="693" data-original-width="486" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg_dZXS2qkgqnct19zCnRi-S4AtX2EaLS9nsZPfFLOmty3XmSQYevGUhU7IcSs3laRWb3qgapJ9lYwO3262ZVk5GeYK_nnGgV1TUHuEq4HsYlhlUo12AMZIHpSON2TebIOxm8N1iGhfYef9/s400/Tims_PCA9685_Controller_Ver_2_Presets.png" width="280" /></a></div>
<div style="text-align: center;">
<br /></div>
<div style="text-align: center;">
This window can be resized to suit your own preferences.</div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://drive.google.com/file/d/1oVNN0d4eN6NiO2mBfU_Uc30aRuDH89zs/view?usp=sharing" target="_blank">Version 2 download</a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
The current version is: 2.0.0.11 (firm updated at 2.0.0.8)</div>
<div class="separator" style="clear: both; text-align: center;">
If you install this version 2 over a previous version 2 under 2.0.0.5</div>
<div class="separator" style="clear: both; text-align: center;">
you will need to load default pre-sets, the file is included in the zip.</div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
I had to change a few things in the original pre-sets code so that; when a pre-set is sent, it also moves the sliders to the settings sent.</div>
<div class="separator" style="clear: both; text-align: center;">
This is so adjustments can be made from known setups.</div>
<div class="separator" style="clear: both; text-align: center;">
The file it saves settings to is just a basic rtf text file.</div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
I am currently working on a project, that uses servo and LED, and I am altering the tool as needed to help me with the project.</div>
<div class="separator" style="clear: both; text-align: center;">
If I think other things will help, I will update it.</div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
I will add more about it if I am asked.</div>
<div class="separator" style="clear: both; text-align: center;">
If you like it let me know.</div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div style="text-align: left;">
<br />
<br />
<br />
<br />
<br />
Using you own application, to communicate with the Arduino:</div>
<br />
I use Visual Basic.<br /> I send data like this:<br />
<pre class="prettyprint">
If OKtoSendData And SerialPort1.IsOpen Then
OKtoSendData = False
SerialPort1.Write(New Byte() {86,
BitConverter.GetBytes(Value_00)(0), BitConverter.GetBytes(Value_00)(1),
BitConverter.GetBytes(Value_01)(0), BitConverter.GetBytes(Value_01)(1),
BitConverter.GetBytes(Value_02)(0), BitConverter.GetBytes(Value_02)(1),
BitConverter.GetBytes(Value_03)(0), BitConverter.GetBytes(Value_03)(1),
BitConverter.GetBytes(Value_04)(0), BitConverter.GetBytes(Value_04)(1),
BitConverter.GetBytes(Value_05)(0), BitConverter.GetBytes(Value_05)(1),
BitConverter.GetBytes(Value_06)(0), BitConverter.GetBytes(Value_06)(1),
BitConverter.GetBytes(Value_07)(0), BitConverter.GetBytes(Value_07)(1),
BitConverter.GetBytes(Value_08)(0), BitConverter.GetBytes(Value_08)(1),
BitConverter.GetBytes(Value_09)(0), BitConverter.GetBytes(Value_09)(1),
BitConverter.GetBytes(Value_10)(0), BitConverter.GetBytes(Value_10)(1),
BitConverter.GetBytes(Value_11)(0), BitConverter.GetBytes(Value_11)(1),
BitConverter.GetBytes(Value_12)(0), BitConverter.GetBytes(Value_12)(1),
BitConverter.GetBytes(Value_13)(0), BitConverter.GetBytes(Value_13)(1),
BitConverter.GetBytes(Value_14)(0), BitConverter.GetBytes(Value_14)(1),
BitConverter.GetBytes(Value_15)(0), BitConverter.GetBytes(Value_15)(1),
13, 10
}, 0, 35)
}
Threading.Thread.Sleep(100) 'wait a little for comunication to end.
End If
</pre>
The above:<br /> 86 = ASCII for V.<br /> BitConverter splits the values(16bit) in the array(16) into two bytes(8bit).<br /> 13 = ASCII for Carriage Return.<br /> 10 = ASCII for Line Feed.<br /><br /> As you are only turning on or off, your values will be 0 or 4095 <br /> To change to a different PCA I send the address-64 and the frequency I want it set at.<br /> My basic code looks like this:<br />
<pre class="prettyprint">
If OKtoSendData And SerialPort1.IsOpen Then
OKtoSendData = False
Dim frequencyBit0 As Byte = BitConverter.GetBytes(Convert.ToInt16(My.Settings.Frequency_NumericUpDown))(0)
Dim frequencyBit1 As Byte = BitConverter.GetBytes(Convert.ToInt16(My.Settings.Frequency_NumericUpDown))(1)
My.Settings.DeviceAddress = DeviceAddress
SerialPort1.Write(New Byte() {65,
DeviceAddress,
frequencyBit0, frequencyBit1,
13, 10}, 0, 5)
End If
</pre>
65 = ASCII for A.<br /> DeviceAddress is only 1 byte as I have reduced the value by 64.<br /> frequency needs to be split into two bytes.<br /> 13 = ASCII for Carriage Return.<br /> 10 = ASCII for Line Feed.<br /> <br /> It has to be bytes (8 bit values) you send.<br /> V or A followed by numbers wont work, that would just be send as text values.<br /> <br /> So for example:<br /> To send command to change PCA at address 64 and set frequency to 1000 Hz, would need the following:<br /> <br /> ASCII A = 65, to let Arduino know its an address change. (ASCII for V would let Arduino know 16(32) values are coming)<br /> Address = 64 - 64 = 0<br /> frequency = 1000, split this 16 bit value in to 2 8 bit values, LSB and MSB.<br /> 1000 16bit binary = 0000 0011 1110 1000.<br /> LSB = 1110 1000 = 232<br /> MSB = 0000 0011 = 3<br /> A carriage return and line feed. 13 and 10.<br /> <br /> So sent would be: 65 0 232 3 13 10<br /> <br /> Your app must send it as bytes not text.<br /> <br /> When Arduino receives a correct command it will confirm it in normal ASCII text, also Arduino will send an "ok".<br /> When your app. receives an "ok" from Arduino, your app. knows that it can send another command.<br /> <br /> An example of sending values would be:<br /> As my script shows it: V 4095 4095 0 0 0 0 0 0 0 0 0 0 0 0 0 0<br /> as it is sent in bytes: 86 255 15 255 15 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 13 10<br /> <br /> <br />
<div style="text-align: center;">
<br /></div>
Timhttp://www.blogger.com/profile/07225153872191471067noreply@blogger.com22