Updates from September, 2016 Toggle Comment Threads | Keyboard Shortcuts

  • drahfa 5:36 pm on September 10, 2016 Permalink | Reply
    Tags:   

    Adding more decimals to GPS data in Microsoft Arduino Virtual Shield 

    The default number of decimal places for the example named Basic-GPS for the Microsoft Arduino Virtual Shield is 2 decimal places. This means that the accuracy of the GPS position is not accurate by 500m to 700m from the right location.

    The gps.Latitude and gps.Longitude value can be made more accurate by appending the number of desired decimal places as shown in the figure below. What changed from the original code is

    String lat = String(“Lat: “) + String(gps.Latitude);
    String lon = String(“Lon: “) + String(gps.Longitude);

    to,

    String lat = String(“Lat: “) + String(gps.Latitude,6);
    String lon = String(“Lon: “) + String(gps.Longitude,6);

    capture

    The rest of the code are similar to the example, except I use serial.begin(9600) to match with my HC-06 bluetooth baud rate.

    Advertisements
     
  • drahfa 7:16 am on September 4, 2016 Permalink | Reply
    Tags: , internet of things, windows virtual shield   

    Measure distance using ping sensor and display it using Lumia 430 (Windows Virtual Shield) 

    On the next journey of tinkering with Windows Virtual Shield, I combined the use of ping sensor to measure distance and attempted to display the distance using Lumia 430 (Windows Virtual Shield).

    Example codes that got ‘Frankensteined’ in this work are from the Ping Example and Windows Virtual Shield Example. Have a look below and see if you can replicate the same thing.

    Capture1Capture2

     
  • drahfa 3:17 am on September 4, 2016 Permalink | Reply
    Tags: , virtual shield, windows 10   

    Hello World Windows Virtual Shield lessons learned. 

    I have been attempting to run Hello World code using my Windows 10 Phone (Lumia 430, price RM 179) since 4 days ago to no avail. After a while, I have managed to run a successful example from this video:

    Some of the lessons learned:

    Problem: The Windows Virtual Shield app downloaded via Windows Store freeze once the phone and bluetooth connected.
    Solution: See link Download Visual Studio 2015, download the source code of Windows Virtual Shield and deploy the codes to the phone via Visual Studio 2015.

    Problem: Screen remain blank after device connected within Windows Virtual Shield.
    Solution: Use the Arduino code below. I’m suspecting that the function ‘refresh’ will help to re-render the screen hence show the Hello World text on the phone.

    Problem: No data received / shown
    Solution: Make sure the baud rate matched with the bluetooth specification. I’m using JY-MCU BT_BOARD V1.03. Its baud rate is 9600.

     
  • drahfa 7:32 am on May 21, 2014 Permalink | Reply
    Tags:   

    Ceramah Asas Robotik di SMK Padang Kemunting 

    Hari ini saya telah dijemput untuk datang ke SMK Padang Kemunting, Kuala Terengganu untuk menyampaikan ceramah berkenaan Asas Robotik. Seramai 60 orang pelajar di kalangan penuntut Sains Tulen dan Perakaunan hadir. Ceramah ini juga turut dibantu oleh dua orang pelajar pasca-siswazah saya, Ahmad Israr Ihsan Mainong dan Tengku Hafidah Tengku Hussien. Kami mengakhiri ceramah pendek ini dengan memberi peluang kepada para pelajar untuk menerbangkan AR Drone di dalam perpustakaan SMK Padang Kemunting.

    1532158_10152441362779419_5875493955666607925_n

    Penerimaan para pelajar dan guru adalah sangat memberangsangkan. Kami sempat beramah mesra dengan guru Kaunseling, Cikgu Fadhlina, guru Fizik, Cikgu Fauziah dan guru bahasa, Cikgu Aida. Kami difahamkan bahawa Cikgu Fauziah adalah sangat aktif dengan aktiviti pertandingan rekacipta kreatif dan inovatif. Pada tahun lepas, SMK Padang Kemunting berjaya merangkul Johan di pertandingan Sains dengan produk mereka, Kereta Solar.

    Pada tahun hadapan, SMK Padang Kamunting akan menyertai pertandingan robotik, insyaAllah kumpulan penyelidikan kami, Ocean Robotics Group akan memandu pelajar-pelajar ini dan berkongsi kepakaran semoga mereka berjaya di dalam pertandingan ini.

     
  • drahfa 2:56 am on July 18, 2013 Permalink | Reply  

    Testing DFRobot APC220 Radio Communication Module with Arduino Blink Example 

    I got my hands on the APC 220 Communication Module from DFRobot for our robotic fish project [1] .

    In this test, I use the LED Blink example, modded to include the serial port reading. While in the LED Blink example, you can just hook the positive point of LED to Pin 13 and its negative point to ground (GND), while the additional connections for the APC 220 module are as below:

    APC220 Arduino connection

    As shown in the figure, the connections are simple since I just wanted to perform a simple test to see whether the module is working fine:

    APC 220 Arduino Blink

    Below are the codes. You are free to change the serial baud number, I used 57600. Once the codes were uploaded to your Arduino board,

    1. connect everything,
    2. pop in the Serial Monitor on your Arduino IDE console,
    3. choose the respective baud (mine is 57600),
    4. send capital H to the console, observe the LED is turned on,
    5. send other character e.g. i to the console, observe the LED is turned off.

    Happy coding!

    // Modified from Arduino Playground tutorial: http://www.arduino.cc/playground/Learning/Tutorial01
    char val; // variable to receive data from the serial port
    int ledpin = 13; // LED connected to pin 13 (on-board LED)
    
    void setup() {
      pinMode(ledpin, OUTPUT);  // pin 13 (built-in LED) as OUTPUT
      Serial.begin(57600);       // start serial communication at 57600bps 
    }
    void loop() {
      if( Serial.available() )       // if data is available to read
      {
        val = Serial.read();         // read it and store it in 'val'
      }
      if( val == 'H' )               // if 'H' was received
      {
        digitalWrite(ledpin, HIGH);  // turn ON the LED
      } else { 
        digitalWrite(ledpin, LOW);   // otherwise turn it OFF
      }
      delay(100);                    // wait 100ms for next reading
    }

    [1] I have established a research group named Marine Robotics Research Group. Someday I’ll make some write up for it.

     
    • yusuf rahman 4:52 pm on January 3, 2015 Permalink | Reply

      Salam and hi.

      I’m using apc 220 module to control my diy quadcopter (arduino uno board). I use “serial.print” to read the angle and motor speed of my quadcopter and it works as good as it is.

      My problem is I can’t send the data from computer to arduino to control the quadcopter motor speed at the same time. The computer keep reading data from arduino.

      I use acquirelock() function and send the data.

      My question is do I need “delay()” or “break” function so while the arduino keep sending the data, and then stop a while to receive the data from computer and process it without compromising the quadcopter hovering?

      Or if you have any other idea, I’m happy to hear about it.

      • drahfa 6:58 am on January 12, 2015 Permalink | Reply

        Salam Tn Yusuf,

        I believe you are spot on with the delay function since the signal transfer relies on the baud rate. What is the baud rate that you are currently using?
        For the quadcopter application, my I suggest the use of 3DR Radio? It’s a standard for the Arducopter project using APM board.

        Regards,

        Faisal

  • drahfa 1:59 pm on July 2, 2013 Permalink | Reply  

    How to auto takeoff and auto landing an Arducopter 

    I found some resources that discuss on how to auto takeoff and auto landing an ArduCopter. Click here.

    I’m going to try this and update later.

     
  • drahfa 3:41 pm on August 8, 2012 Permalink | Reply
    Tags: , incubator   

    Study Hall, a Thinker-Tinker Incubator 

    via [michaelmassie.com]

     
  • drahfa 11:58 pm on May 23, 2011 Permalink | Reply
    Tags: , flash   

    Arduino and Flash Interface 

    There are 4 main components needed to getting an Arduino to communicate with Flash:

    1. Code to run on the Arduino: This sends data over the USB virtual serial port.
    2. A Serial to Socket Server: This takes data from the serial port and sends it over a network socket. Designed to be used with any client software (Flash etc) and any microcontroller.
    3. A Flash Socket Library: Actionscript code in flash that accepts and interprets the data coming in from the network socket. You can do this yourself, but why? – most people use an existing codebase.
    4. Your Flash Code (and Sample code): You custom actionscript code that does something interesting with the data. Some resources have sample actionscript code so you can learn by example.

     

    NOTE: All of this can also work in reverse – Flash can send data to Arduino.

     

    Additional Resources:

    • Adobe Tutorials For Connecting Flash and Arduino : Adobe Software Evangelist Kevin Hoyt explains in a series of video tutorials the hardware and software stacks needed to connect Arduino with Adobe Flash usingSerProxy. His approach takes advantage of the powerful sockets features of Flash and a Serial-To-Sockets Module called SerProxy.
    • Interfacing Flash and Arduino, from scratch : A complete tutorial from Jean-Philippe CĂŽtĂ© on how to setup a working Flash/Arduino environment using the Arduino IDE, the FTDI driver, the Firmata sketch, as3glue and SerialProxy/TinkerProxy 2.
    • Getting Started with Flash and Arduino : An introductory tutorial written by Mike Chambers that shows how to set up Arduino,TinkerProxy and Flash to communicate with each other. The example code shows how to send and receive information between Flash and Arduino.
    • Getting started with the NETLab Toolkit A video and text that introduces using the NETLab Toolkit to connect Flash to Arduino – no code required.
     
  • drahfa 11:54 pm on May 23, 2011 Permalink | Reply
    Tags: , javascript   

    Arduino.js prototype (JavaScript + Arduino interface) 

    The Hallowe’en season set the theme for this demo, of which I had a larger-scale variant running black lights and floodlamps for a party last weekend. In case it isn’t obvious, this is going to get really nerdy. Ready? Go.

    In brief:

    JavaScript is controlling volume and pan of music (via SoundManager 2) based on live analog data from potentiometers connected to an Arduino device. Canvas-based graphs at left show the data coming in from the pots (ranging from 0-1023); as an example of writing to the device, LED lights respond to music frequencies as reported from JavaScript.

    Nerdier:

    I’ve been tinkering with a JavaScript wrapper for the “AS3Glue” Flash library in order to get a JS-based API for talking to Arduino devices. The JS talks to Flash, which talks to a socket/serial proxy program running on the host computer, which talks to the Arduino device over USB that is running “Standard Firmata” controller code. It’s a slightly Rube Goldberg-esque technology stack in order to pass bits back and forth, but it works. (TODO: Look at using WebSockets, which can eliminate the Flash layer.)

    Analog and digital input pins can use onRecieveData-style event listeners, which is much more efficient than a polling-based approach; thus, you can be notified when a pin goes high or when an analog input changes. (The latter is always shifting slightly due to its nature, of course.)

    Basic spectrum analysis data comes from SoundManager 2, and this is fed into a digital output for blinking one LED roughly in step with the bass line, and another PWM-style output (varying output voltages, thus varying LED brightness) with the rhythm.

    I couldn’t be arsed to really sync the video with the screencast bit, so the LEDs look like they’re blinking a bit out-of-step.

    Setup: Browser-based control, JavaScript <-> Flash 9 <-> Socket/serial proxy (“Processing” IDE running SerialNet example script at 115200 baud) <-> Arduino Uno (USB) device with “Standard Firmata” 2.0 + prototyping breadboard, LEDs etc.

    I am running at an interval of ~25 fps here for updating the LEDs, and the socket/serial proxy + Arduino seem to be able to handle the data rate generated from this without issue.

    A small code example (JavaScript):

    arduino.onAnalogReceiveData = function(pinNumber, value) {
    // we got some data from one of the pots connected to the Arduino
    // and it will be between 0 and 1023
    if (pinNumber === 1) {
    var volume = parseInt(value/1023*100);
    soundManager.setVolume(mySound, volume);
    }
    }

    You can also write to digital output pins.

    // Somewhat-related example: blink an LED on pin 13 using writeDigitalPin()

    function blink(pin, value, delay) {
    arduino.writeDigitalPin(pin, value);
    setTimeout(function() {
    blink(pin, !value, delay); // wait “delay” msec, then repeat
    }, delay);
    }

    blink(13, 1, 1000);

    via: schillmania.com

     

     
c
Compose new post
j
Next post/Next comment
k
Previous post/Previous comment
r
Reply
e
Edit
o
Show/Hide comments
t
Go to top
l
Go to login
h
Show/Hide help
shift + esc
Cancel