<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="FeedCreator 1.8" -->
<?xml-stylesheet href="https://pvela.gatech.edu/classes/lib/exe/css.php?s=feed" type="text/css"?>
<rdf:RDF
    xmlns="http://purl.org/rss/1.0/"
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
    xmlns:dc="http://purl.org/dc/elements/1.1/">
    <channel rdf:about="https://pvela.gatech.edu/classes/feed.php">
        <title>Patricio Vela: Course Wiki - embedded:adventures</title>
        <description></description>
        <link>https://pvela.gatech.edu/classes/</link>
        <image rdf:resource="https://pvela.gatech.edu/classes/lib/exe/fetch.php?media=wiki:dokuwiki.svg" />
       <dc:date>2026-04-17T06:54:33+00:00</dc:date>
        <items>
            <rdf:Seq>
                <rdf:li rdf:resource="https://pvela.gatech.edu/classes/doku.php?id=embedded:adventures:analogimu&amp;rev=1724204335&amp;do=diff"/>
                <rdf:li rdf:resource="https://pvela.gatech.edu/classes/doku.php?id=embedded:adventures:analogio&amp;rev=1724204335&amp;do=diff"/>
                <rdf:li rdf:resource="https://pvela.gatech.edu/classes/doku.php?id=embedded:adventures:bluetooth_module&amp;rev=1724204335&amp;do=diff"/>
                <rdf:li rdf:resource="https://pvela.gatech.edu/classes/doku.php?id=embedded:adventures:digitalio&amp;rev=1724204335&amp;do=diff"/>
                <rdf:li rdf:resource="https://pvela.gatech.edu/classes/doku.php?id=embedded:adventures:driving&amp;rev=1724204335&amp;do=diff"/>
                <rdf:li rdf:resource="https://pvela.gatech.edu/classes/doku.php?id=embedded:adventures:dualpower&amp;rev=1724204335&amp;do=diff"/>
                <rdf:li rdf:resource="https://pvela.gatech.edu/classes/doku.php?id=embedded:adventures:motocontrol&amp;rev=1724204335&amp;do=diff"/>
                <rdf:li rdf:resource="https://pvela.gatech.edu/classes/doku.php?id=embedded:adventures:pots&amp;rev=1724204335&amp;do=diff"/>
                <rdf:li rdf:resource="https://pvela.gatech.edu/classes/doku.php?id=embedded:adventures:quaternions&amp;rev=1724204335&amp;do=diff"/>
                <rdf:li rdf:resource="https://pvela.gatech.edu/classes/doku.php?id=embedded:adventures:rcservo&amp;rev=1724204335&amp;do=diff"/>
                <rdf:li rdf:resource="https://pvela.gatech.edu/classes/doku.php?id=embedded:adventures:timing_interrupts&amp;rev=1724204335&amp;do=diff"/>
                <rdf:li rdf:resource="https://pvela.gatech.edu/classes/doku.php?id=embedded:adventures:xbee&amp;rev=1724204335&amp;do=diff"/>
            </rdf:Seq>
        </items>
    </channel>
    <image rdf:about="https://pvela.gatech.edu/classes/lib/exe/fetch.php?media=wiki:dokuwiki.svg">
        <title>Patricio Vela: Course Wiki</title>
        <link>https://pvela.gatech.edu/classes/</link>
        <url>https://pvela.gatech.edu/classes/lib/exe/fetch.php?media=wiki:dokuwiki.svg</url>
    </image>
    <item rdf:about="https://pvela.gatech.edu/classes/doku.php?id=embedded:adventures:analogimu&amp;rev=1724204335&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-08-21T01:38:55+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>analogimu</title>
        <link>https://pvela.gatech.edu/classes/doku.php?id=embedded:adventures:analogimu&amp;rev=1724204335&amp;do=diff</link>
        <description>The analog IMU stands for inertial measurement unit. The specific chip that we are using is the LSM9DS1 which has an integrated three-axis-accelerometer, a three-axis gyroscope, and a three-axis magnetometer. 

The chip itself allows us to connect to the mbed chip using either I2C or SPI protocol and gives us access to all 3 measurements at once. We are currently using the I2C protocol because it is much simpler and only requires two wires.</description>
    </item>
    <item rdf:about="https://pvela.gatech.edu/classes/doku.php?id=embedded:adventures:analogio&amp;rev=1724204335&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-08-21T01:38:55+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>analogio</title>
        <link>https://pvela.gatech.edu/classes/doku.php?id=embedded:adventures:analogio&amp;rev=1724204335&amp;do=diff</link>
        <description>Analog Output

There are two means to create analog output.  One is through a digital to analog (D/A) converter, while the other is through a high frequency digital signal.  The latter method is called pulse width modulation (PWM). One form of PWM involves modulating a digital signal at a certain (high) frequency with a variable duty cycle.  If the duty cycle is 0%, then the signal is always off.  If the duty cycle is 100%, then it is always on.  If it is at 50%, then it is a pulse train whose f…</description>
    </item>
    <item rdf:about="https://pvela.gatech.edu/classes/doku.php?id=embedded:adventures:bluetooth_module&amp;rev=1724204335&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-08-21T01:38:55+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>bluetooth_module</title>
        <link>https://pvela.gatech.edu/classes/doku.php?id=embedded:adventures:bluetooth_module&amp;rev=1724204335&amp;do=diff</link>
        <description>The Bluetooth LC-06 Module was used to communicate between an Android phone and the mBed device. 

Since the XBee controller was difficult to use and we were unable to understand its setup, we decided to use this module to create a temporary form of communication to the backhoe construction toy robot.</description>
    </item>
    <item rdf:about="https://pvela.gatech.edu/classes/doku.php?id=embedded:adventures:digitalio&amp;rev=1724204335&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-08-21T01:38:55+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>digitalio</title>
        <link>https://pvela.gatech.edu/classes/doku.php?id=embedded:adventures:digitalio&amp;rev=1724204335&amp;do=diff</link>
        <description>Basic Digital I/O

Doing digital I/O for all modern microcontrollers is pretty easy.  Just set the pin to act as an output and then enable or disable it. More to come soon.

Multiple Digital I/O Lines

Let&#039;s say that you want to output lots of digital lines, way more than there are pins.  In that case, one solution would be to use a serial to parallel converter chip.  The idea is that the microcontroller can output, through a serial line, to a digital chip the bits associated to the digital sign…</description>
    </item>
    <item rdf:about="https://pvela.gatech.edu/classes/doku.php?id=embedded:adventures:driving&amp;rev=1724204335&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-08-21T01:38:55+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>driving</title>
        <link>https://pvela.gatech.edu/classes/doku.php?id=embedded:adventures:driving&amp;rev=1724204335&amp;do=diff</link>
        <description>Drive Class

Once basic actuation of the motors is possible, the typical next step is to create an interface that abstracts the basic functionality so that you can focus on the use of the motors and not on the low-level parts of commanding them.

Since you&#039;ve already figured out how to program things so that the motors move, either via</description>
    </item>
    <item rdf:about="https://pvela.gatech.edu/classes/doku.php?id=embedded:adventures:dualpower&amp;rev=1724204335&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-08-21T01:38:55+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>dualpower</title>
        <link>https://pvela.gatech.edu/classes/doku.php?id=embedded:adventures:dualpower&amp;rev=1724204335&amp;do=diff</link>
        <description>Optoisolators and Dual Supply Circuit Logic

Often, it is the case that one is running digital logic off of a low power device with its own power supply, and must connect to another digital circuit with its own power supply.  The naive approach would be to connect the two grounds together, but that is actually a mistake.  Since voltage is a potential measurement (i.e., it is a difference between the high and low leads), there is no guarantee that the two low leads are actually at the same voltag…</description>
    </item>
    <item rdf:about="https://pvela.gatech.edu/classes/doku.php?id=embedded:adventures:motocontrol&amp;rev=1724204335&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-08-21T01:38:55+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>motocontrol</title>
        <link>https://pvela.gatech.edu/classes/doku.php?id=embedded:adventures:motocontrol&amp;rev=1724204335&amp;do=diff</link>
        <description>DC Motor Controllers

To drive motors using a microprocessor requires converting low-power digital logic into high current voltage signals to actual motors.  Usually some kind of intermediate chip or circuit is required to do that, especially if the motor should turn in both directions.  There are three chips that we&#039;ve worked with.  They are: half h-bridges, full h-bridges, motor controllers/drivers, and RC-PPM servomotor controllers.</description>
    </item>
    <item rdf:about="https://pvela.gatech.edu/classes/doku.php?id=embedded:adventures:pots&amp;rev=1724204335&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-08-21T01:38:55+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>pots</title>
        <link>https://pvela.gatech.edu/classes/doku.php?id=embedded:adventures:pots&amp;rev=1724204335&amp;do=diff</link>
        <description>Servos can be controlled directly by using a potentiometer or variable resistor. That is, turning the potentiometer clockwise will make the servo turn clockwise, and vice versa (or the opposite, depending on your code). This works by the mBed reading the value of the potentiometer as an input, then outputting a signal to the servo depending on the value it read in.</description>
    </item>
    <item rdf:about="https://pvela.gatech.edu/classes/doku.php?id=embedded:adventures:quaternions&amp;rev=1724204335&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-08-21T01:38:55+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>quaternions</title>
        <link>https://pvela.gatech.edu/classes/doku.php?id=embedded:adventures:quaternions&amp;rev=1724204335&amp;do=diff</link>
        <description>Quaternions are an alternative way to express three-dimensional angles.
Essentially, q = w + xi + yj + zk, with q being the quaternion.

Euler angles are your standard X, Y, and Z planes, and transforms in those planes occur just as you would expect them to.</description>
    </item>
    <item rdf:about="https://pvela.gatech.edu/classes/doku.php?id=embedded:adventures:rcservo&amp;rev=1724204335&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-08-21T01:38:55+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>rcservo</title>
        <link>https://pvela.gatech.edu/classes/doku.php?id=embedded:adventures:rcservo&amp;rev=1724204335&amp;do=diff</link>
        <description>RC Servomotor Control

RC servomotors use a form of PPM (pulse position signaling) signalling to communicate the desired motor angle.  PPM itself is an instance of PWM (pulse width modulation) signalling where the pulse high time has specific meaning. Furthermore, there is usually a minimum low time at the start of the signal frame so that the receiving end can reset itself and decode the new command.</description>
    </item>
    <item rdf:about="https://pvela.gatech.edu/classes/doku.php?id=embedded:adventures:timing_interrupts&amp;rev=1724204335&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-08-21T01:38:55+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>timing_interrupts</title>
        <link>https://pvela.gatech.edu/classes/doku.php?id=embedded:adventures:timing_interrupts&amp;rev=1724204335&amp;do=diff</link>
        <description>Interrupts are used to run a specific function in the background. The way it works is that the interrupt uses takes control of the processor and performs its respective task and then returns control back to regular operations. 

For example, imagine you have a girlfriend and a friend. The girlfriend has higher priority and is listed under the interrupt where as the friend has normal priority and is a part of the regular processor&#039;s work. So a practical example of this interrupt working is if you…</description>
    </item>
    <item rdf:about="https://pvela.gatech.edu/classes/doku.php?id=embedded:adventures:xbee&amp;rev=1724204335&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-08-21T01:38:55+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>xbee</title>
        <link>https://pvela.gatech.edu/classes/doku.php?id=embedded:adventures:xbee&amp;rev=1724204335&amp;do=diff</link>
        <description>The XBee devices are radio modules that allow two modules to communicate with each other. The objective for Terrabots is to establish a network of robots and have them communicate with each other for coordination purposes.

The best way to go about understanding Xbee is to look up the Sparkfun documentation, obtain two Explorer modules, which allow for direct USB-to-XBee interfacing. This is possible with the download of XCTU, software made by the creators of XBee for the purpose of interfacing …</description>
    </item>
</rdf:RDF>
