Saturday, June 17, 2017

Solusi gps neo 6mv2 arduino tidak berkedip blink tanda mendapat sinyal

Saya baru saja membeli modul gps neo 6mv2 , dan ketika saya selesai solder kemudian pasang ke hardware arduino dengan pemasangan
vcc modul gps - vcc arduino
gnd modul gps- gnd arduino
tx modul gps-- rx software serial arduino (4)
rx modul gps-- tx software serial arduino (3)
alias sambungan serial cross

gps neo 6mv2 arduino
gps neo 6mv2 arduino

hasilnya adalah lampu led pada modul gps neo 6mv2 tidak menyala (berkedip) sama sekali, saya check tidak ada short circuit dan tidak ada keanehan pada board modul gps neo 6mv2 dalam hal ini panas nya board yang mungkin terjadi karena polaritas tegangan input terbalik atau  karena hal lainnya,

karena bingung agak lama ga muncul muncul sinyal atau tanda tanda kehidupan dari modul gps terserbut akhirnya saya memutuskan untuk mencari referensi tentang tidak berkedip nya led pada modul gps

dan saya dapati pernyataan sebagai berikut :

The Neo 6M takes a bit of time to fix when first powered on. If your board is fitted with a small battery it will most probably be flat and will take an hour or two to charge up. It is there to provide charge to the EEPROM and the onboard RTC.
Also check that the leads on the battery are not shorting.
You do not get a valid data sentence out of the GPS until the RTC can sync time.

yang artinya kurang lebih :

Neo 6M membutuhkan sedikit waktu  saat pertama kali dinyalakan. Jika modul gps anda Anda dilengkapi dengan baterai kecil, kemungkinan besar akan memerlukan waktu satu atau dua jam untuk mengisi baterai. untuk memberikan charge ke EEPROM dan onboard RTC.

Juga periksa apakah lead pada baterai tidak shorting (bahasa indonesia nya sih hubung singkat, bahasa slang nya konsleting )

Anda tidak mendapatkan data yang valid keluar dari GPS sampai RTC bisa menyelaraskan waktu.


kesimpulannya adalah modul membutuhkan sedikit waktu untuk pengisian baterai yang terpasang pada modul  gps neo 6mv2

setelah saya on kan beberapa menit akhirnya modul gps neo 6mv2 seolah bangkit dari kematian dan dapat dipergunakan. 

saya menggunakan library software serial dan tinygps untuk mengakses modul gps tersebut 

rangkaian nya adalah sebagai berikut 


Mengakses modul gps NEO6MV2 (Neo 6M) dengan arduino uno

berikut ini sketch nya 


#include <SoftwareSerial.h>
#include <TinyGPS.h>

TinyGPS gps;
SoftwareSerial ss(4, 3);//rx,tx

void setup() {
  Serial.begin(9600);
  ss.begin(9600);
}

void loop()
{
bool newData = false;
  unsigned long chars;
  unsigned short sentences, failed;
    while (ss.available())
    {
      char c = ss.read();
         if (gps.encode(c))
        newData = true;
    }

  if (newData)
  {
    float flat, flon;
    unsigned long age;
    gps.f_get_position(&flat, &flon, &age);
  
    Serial.print("Latitude ");
    Serial.println(flat, 6);
    Serial.println("");

    Serial.print("Longitude ");
    Serial.println(flon, 6);
    Serial.println("");
    Serial.println("");

  }
  }


berikut ini hasil nya 


gps neo 6mv2 arduino
gps neo 6mv2 arduino



Wednesday, June 7, 2017

Membuat jam Analog dengan arduino + TFT LCD 2.4 inch

iseng saja mengoprek di pagi hari kamis 8 juni 2017, membuat mainan baru berupa jam Analog dengan arduino + TFT LCD 2.4 inch  saya menggunakan yang berupa shield jadi tinggal colok ke arduino secara pas tanpa ada masalah sedikit pun... eh ada sih, kaki nya yang kurang pas , sehingga pin TFT LCD sedikit meleset dari lokasi seharusnya dia tertancap di pin arduino uno yang saya pergunakan


Membuat jam Analog dengan arduino + TFT LCD 2.4 inch
Membuat jam Analog dengan arduino + TFT LCD 2.4 inch

berikut ini coding (sketch) arduini Membuat jam Analog dengan arduino + TFT LCD 2.4 inch



#include <Adafruit_GFX.h> // Hardware-specific library
#include <MCUFRIEND_kbv.h>
MCUFRIEND_kbv tft;

#define LCD_CS A3
#define LCD_CD A2
#define LCD_WR A1
#define LCD_RD A0
#define LCD_RESET A4

// Agar warna mudah dimengerti (Human Readable color):
#define TFT_BLACK   0x0000
#define TFT_BLUE    0x001F
#define TFT_RED     0xF800
#define TFT_GREEN   0x07E0
#define TFT_CYAN    0x07FF
#define TFT_MAGENTA 0xF81F
#define TFT_YELLOW  0xFFE0
#define TFT_WHITE   0xFFFF
#define TFT_GREY    0x5AEB

//Adafruit_TFTLCD tft(LCD_CS, LCD_CD, LCD_WR, LCD_RD, LCD_RESET);

float sx = 0, sy = 1, mx = 1, my = 0, hx = -1, hy = 0;    // Saved H, M, S x & y multipliers
float sdeg = 0, mdeg = 0, hdeg = 0;
uint16_t osx = 120, osy = 120, omx = 120, omy = 120, ohx = 120, ohy = 120; // Saved H, M, S x & y coords
int16_t x0 = 0, x1 = 0, yy0 = 0, yy1 = 0;
uint32_t targetTime = 0;                    // for next 1 second timeout

uint16_t xpos; // x posisi jam
uint8_t conv2d(const char* p) {
uint8_t v = 0;
  if ('0' <= *p && *p <= '9')
   v = *p - '0';
  return 10 * v + *++p - '0';
}

//Mengambil waktu jam dari waktu Compile/Upload di system Windows
uint8_t hh = conv2d(__TIME__), mm = conv2d(__TIME__ + 3), ss = conv2d(__TIME__ + 6); // mengambil data waktu dari jam Compile-Upload
boolean initial = 1;

void setup(void) {
 
  Serial.begin(9600);
    tft.reset();
    uint16_t identifier = tft.readID();
    Serial.print("ID = 0x");
    Serial.println(identifier, HEX);
    if (identifier == 0xEFEF) identifier = 0x9486;
    tft.begin(identifier);
  // Draw clock face

  xpos = tft.width() / 2; // mencari titik koordinat tengah LCD
  tft.fillCircle(xpos, 120, 118, TFT_GREEN); //warna lingkaran luar
  tft.fillCircle(xpos, 120, 110, TFT_BLACK); //warna jam bagian dalam

  // Draw 12 lines
  for (int i = 0; i < 360; i += 30) {
    sx = cos((i - 90) * 0.0174532925);
    sy = sin((i - 90) * 0.0174532925);
    x0 = sx * 114 + xpos;
    yy0 = sy * 114 + 120;
    x1 = sx * 100 + xpos;
    yy1 = sy * 100 + 120;

    tft.drawLine(x0, yy0, x1, yy1, TFT_YELLOW);//garis penanda angka jam
  }

  // Draw 60 dots
  for (int i = 0; i < 360; i += 6) {
    sx = cos((i - 90) * 0.0174532925);
    sy = sin((i - 90) * 0.0174532925);
    x0 = sx * 102 + xpos;
    yy0 = sy * 102 + 120;
    // Draw minute markers
    tft.drawPixel(x0, yy0, TFT_WHITE); //titik penanda menit

    // Draw main quadrant dots
    if (i == 0 || i == 180) tft.fillCircle(x0, yy0, 2, TFT_WHITE); //penanda 12 dan 6
    if (i == 90 || i == 270) tft.fillCircle(x0, yy0, 2, TFT_WHITE); //penanda 3 dan 9
  }

  tft.fillCircle(xpos, 121, 3, TFT_WHITE);
  targetTime = millis() + 1000;
}

void loop() {
  if (targetTime < millis()) {
    targetTime = millis() + 1000;
    ss++;              // Advance second
    if (ss == 60) {
      ss = 0;
      mm++;            // Advance minute
      if (mm > 59) {
        mm = 0;
        hh++;          // Advance hour
        if (hh > 23) {
          hh = 0;
        }
      }
    }

    // Pre-compute hand degrees, x & y coords for a fast screen update
    sdeg = ss * 6;                     // 0-59 -> 0-354
    mdeg = mm * 6 + sdeg * 0.01666667; // 0-59 -> 0-360 - includes seconds, but these increments are not used
    hdeg = hh * 30 + mdeg * 0.0833333; // 0-11 -> 0-360 - includes minutes and seconds, but these increments are not used
    hx = cos((hdeg - 90) * 0.0174532925);
    hy = sin((hdeg - 90) * 0.0174532925);
    mx = cos((mdeg - 90) * 0.0174532925);
    my = sin((mdeg - 90) * 0.0174532925);
    sx = cos((sdeg - 90) * 0.0174532925);
    sy = sin((sdeg - 90) * 0.0174532925);

    if (ss == 0 || initial) {
      initial = 0;
      // Erase hour and minute hand positions every minute
      tft.drawLine(ohx, ohy, xpos, 121, TFT_BLACK);
      ohx = hx * 62 + xpos + 1;
      ohy = hy * 62 + 121;
      tft.drawLine(omx, omy, xpos, 121, TFT_BLACK);
      omx = mx * 84 + xpos;
      omy = my * 84 + 121;
    }

    // Redraw new hand positions, hour and minute hands not erased here to avoid flicker
    tft.drawLine(osx, osy, xpos, 121, TFT_BLACK);
    osx = sx * 90 + xpos + 1;
    osy = sy * 90 + 121;
    tft.drawLine(osx, osy, xpos, 121, TFT_RED);
    tft.drawLine(ohx, ohy, xpos, 121, TFT_WHITE);
    tft.drawLine(omx, omy, xpos, 121, TFT_WHITE);
    tft.drawLine(osx, osy, xpos, 121, TFT_RED);

    tft.fillCircle(xpos, 121, 3, TFT_RED);

    // Draw text at position xpos,260 using fonts 4
  // Only font numbers 2,4,6,7 are valid. Font 6 only contains characters [space] 0 1 2 3 4 5 6 7 8 9 : . a p m
  // Font 7 is a 7 segment font and only contains characters [space] 0 1 2 3 4 5 6 7 8 9 : .
  tft.fillRect(xpos-5, 200,12,10,TFT_BLACK);
  tft.setCursor(xpos-5, 200);
  tft.setTextSize(1);
  tft.print(ss);
  }
}


dan hasil nya sebagai berikut :
video  jam Analog dengan arduino + TFT LCD 2.4 inch  1






Friday, June 2, 2017

Solusi Try 'bossac.exe -h' or 'bossac.exe --help' for more information pada arduino 1.6.8 (solved)

Pada saat menggunakan  arduino Due dengan tujuan mengejar sampling rate pembacaan ADC + pengiriman data serial ke PC, saya mengalami errror sebagai berikut ketika proses upload sketch ke board arduino :


Sketch uses 26,524 bytes (5%) of program storage space. Maximum is 524,288 bytes.
bossac.exe: extra arguments found
Try 'bossac.exe -h' or 'bossac.exe --help' for more information

bossac.exe: extra arguments found
bossac.exe: extra arguments found

setelah baca literatur sana sini, artikel demi artikel ternyata saya malah makin kebingunan untuk menemukan solusi mengatasi pesan eror  Try 'bossac.exe -h' or 'bossac.exe --help' for more information pada arduino 1.6.8

akhirnya saya bertanya kepada seorang teman yang menurut saya lebih memiliki pengalaman dalam hal ini, akhirnya saya mendapat jawaban, bahwa Solusi Try 'bossac.exe -h' or 'bossac.exe --help' for more information pada arduino 1.6.8 adalah dengan meng-upgrade version arduino IDE nya minimal ke 1.6.9

dan akhir nya masalah saya terselesaikan , tinggal menggunakan software tersebut untuk mengerjakan proyek berbasis arduino DUE, semoga sampling rate tercapai . selamat berkarya


 
Design by Free WordPress Themes | Bloggerized by Lasantha - Premium Blogger Themes | Hot Sonakshi Sinha, Car Price in India