2 Replies Latest reply on Nov 15, 2014 9:53 PM by NovaPrime

    NM Galileo project - Sensors and Robotic Systems


      Post 1:

      I'm planning to use the Galileo board to drive a robotic base, either via USB OTG (On-The-Go) or Bluetooth using an Intel Android phone.


      I'd also like to use the Galileo to try different sensors and transmit data to a phone or computer system.  This could be useful for home application as well as for manufacturing use cases in a factory.


      Finally, I'm planning on investigating voice recognition technology for sending control commands to a robot base.   This could be used for access control or voice-driven robotic applications.


      Anyway, I just got the Galileo board this week and it's been already a lot of fun to explore.  As I'm learning more about the board, I think my plans will probably evolve, like you would expect with any "Maker" project!


      Post 2:

      I’ve tried a few of the Arduino programs and shields that’s I’ve used in the past for fun projects and as expected not all of them worked.  Some of the sketches obviously don’t work since they rely on libraries that are written specifically for the ATmega328 (or for similar processors that the different Arduino boards use) or ARVs in general.  If you look at the libraries you’ll see, for example, that they use ARV interrupt constructs such as sei() and cli().  In any case, what I’ve found matches the documentation on the Intel communities site well.  Here is the site for all of the documentation: https://communities.intel.com/community/makers/documentation/galileodocuments  The document labeled “Intel Galileo Shields List” specifies all the supported shields.  The “Intel Galileo Release Notes” document specifies all the out-of-the-box supported Arduino programs.

      One thing that worked just fine on the Galileo was to connect it to Bluetooth by using a Bluetooth Mate board (I used Bluetooth Mate Silver).  With this board I can now connect to the Galileo boards via Bluetooth and run sketches  that respond to commands that I’m sending to the Galileo.  Since the Galileo has more than one UART, I had to make sure to use Serial1.* calls rather than just Serial.* functions calls.  But after I figured that out, everything worked just as expected.  I need to write a small Android program next to control the board through an Intel phone.  It seems like some Wifi cards also support Bluetooth, so that’s another thing to try out.  Another thing I could try would be to see if a Linux-compatible Wifi adapter via the USB host connector works.

      Oh, also, a colleague pointed out to me that the Galileo doesn’t use OTG, rather it is static USB host, so that’s good to know.

      Post 3:

      I’ve played some more with various sensors and tried a few that use analog signal or communicate over I2C. I like using the I2C communication and it’s really to hook this up on the Galileo since the SDA and SCL pins are dedicated pins on the Galileo board.   Also any serial communication devices over the RX/TX pins seem to work fine. Here are some of the sensors I’ve tried out so far and they work right out of the box:


      • Bluetooth Mate Silver connected over RX/TX pins (as pointed out in the previous post)
      • Analog Microphone Electret MAX446
      • Analog Temperature Sensor TMP36
      • Analog Motion Detection PIR Sensor by Parallax
      • Barometric Pressure and Temperature Sensor MPL115A2 using I2C communications


      I’m going to try another sounds detection sensor and also a gas detection sensor next.


      So, based on my experiments so far, I’m going to try these experiments:


      1) Use Galileo board with sound, motion, and light detector to verify if a room is occupied.  Use WIFI to send  a notification either via email  or web service.  BTW, the same idea could be used to check on the loudness of a pump or by using a gas sensor to check on conditions of fab equipment.

      2) Control a robotic arm via Bluetooth using an Intel phone.  An Android app would send signals to the Galileo which then controls the robot (probably via relays).  Alternatively, I was also going to try to see if I can control the robotic arm via WIFI. Again, some Wifi boards also have Bluetooth capabilities so that’s another option.

      3) Use voice recognition and control to activate a robotic arm or to grant access to an area (e.g. open a door).  This could be done either directly on the Galileo or using an Android phone with a voice recognition/control app.

      4) Using crypto capabilities on the Galileo Linux OS to secure data communications or allow for more secure storage.


      I’m not sure how much I can get working in the time frame allocated, but we’ll see!



      Post 4:

      I’ve tried a few more sensor and they work well with the Galileo board since they use simple analog input communications:


      • DFRobot Analog Gas Sensor (MQ4) (SKU:SEN0129)
      • DFRobot Analog Sound Sensor (SKU DFR0034)


      Also, I’ve tried the N135 wireless card together with some antennas which I bought online (Dual Wi-fi Antenna Kit 5Dbi RP-SMA Antennas and 20cm/8" Hirose U.fl/IPEX to RP-SMA Cables). 


      The example WIFI sketch ConnectWithWPA worked out of the box and let me connect to my home network (just secured with SSID and pwd).

      I have not been able to get the Bluetooth part to work on the N135.


      What worked nicely is to connect to the Linux shell through the WIFI card.  I just connect via PuTTY and use “root” to login.


      What has not worked for me yet is to connect to the serial connector.  I have a USB to serial cable that connects to the Galileo’s serial input connector (the one between the Ethernet connector and the USB client port/connector) but when I connect via PuTTY I don’t get prompted to log in and connect connect.