Pendengar

Kinanthi: Loh, gak berangkat jumatan to Meg?
Megatruh: Ntar dulu, masih khotbah, nanti aja dekat-dekat dengan sholat.

K: Bisa ya?
M: Lha biasanya gitu

K: Lha kalo semua kayak kamu, pas jumatan bisa saja khotib khotbah sendiri tanpa ada yang mendengarkan.

Princess

Kinanthi: Ngapain Meg, senyum-senyum sendiri?
Megatruh: Halo, KinK: Heh,
M: Habis baca cerita K: Princess and The Pea?
M: Loh?K: Yang kamu pegang itu
M: Eh, iyaK: Kayaknya dongeng anak itu bukan cerita humor deh
M: Memang, tapi ceritanya itu lho, entah mendidik atau gimanaK: Seingatku ada pangeran yang sedang mencari istri
M: Iya, mengundang empat putri dari empat kerajaan yang berbedaK: Trus setelah pesta, keempat putri itu tidur di tumpukan dua puluh kasur…
M: …yang sebelumnya diselipkan sebuah kacang polong untuk masing-masing putriK: Oh iya, dan putri-putri itu tidur nyenyak kecuali satu. Dia tidak bisa tidur karena merasa ada sesuatu yang mengganjal di kasurnya.
M: Nah, bagiku ini lucu. Karena pangeran memilih menikah dengan putri yang tak bisa tidur ini.K: oh
M: Mungkin pesan moralnya adalah seorang putri yang baik akan dapat menemukan ketidaksempurnaan sekecil apapun.K: hm
M: Tapi aku berpikir, ini si putri kok manja banget ya. Sudah untung dapat kasur dua puluh tumpuk. Eh gak bisa tidur gara-gara kacang polong. Seakan tidak mensyukuri sesuatu yang besar.

Kesetimbangan

Dua bulan lalu di dinding kamar mandi mulai ada beberapa serangga seperti laron tetapi berukuran kecil,  sedikit lebih besar dari nyamuk. Semakin hari semakin banyak.

Tidak bisa diusir, disemprot pakai obat nyamuk pun tidak mati. Sampai saya membakar obat nyamuk di dalam kamar mandi pagi hari sebelum ngampus. Sorenya mereka tetap berada pada tempatnya, ckckck.

Sebulan yang lalu, mereka mulai berkurang, malah agak drastis. Tanpa diapa-apakan. Awalnya penasaran, apakah memang mereka pindah tempat atau yang lain. Sudahlah, yang penting mereka berangsur-angsur hilang.

Sampai suatu malam, tengah malam, ketika kebelet pipis. Di kamar mandi sedang ada sekitar lima cicak yang sedang berpesta pora, makan si serangga tadi. 🙂

Sekarang jadi suka senyum kalo lihat cicak-cicak gendut malas-malasan di dinding saat mandi pagi, 🙂

Pulang dari Kampus.

Alfa: Ayah, tadi jatuh pas naik sepeda gajah, berdarah. Ndak mandi, nanti perih.(Sambil menunjukkan jempol kaki yang kulitnya terkelupas) 🙂

Kangen.

Kinanthi: Lama nggak ngobrol ya Meg.Meg: Iya Kin, lha sekarang semua sibuk ngurusi Mukidi.K: (senyum)

Independent Wireless Multitasking LEDs blink using Arduino FreeRTOS

and send the data wirelessly using bluetooth module HC-05. 🙂

http://ift.tt/2bi4MpP.

The code
#include <Arduino_FreeRTOS.h>
#include <SoftwareSerial.h>
SoftwareSerial mySerial(10, 11); // RX, TX

int n = 0;

// define two tasks for Blink & AnalogRead
void TaskBlink( void *pvParameters );
void TaskBlink2( void *pvParameters );
void TaskBlink3( void *pvParameters );
void TaskBlink4( void *pvParameters );
void TaskTadaa( void *pvParameters );

// the setup function runs once when you press reset or power the board
void setup() {
   // initialize serial communication at 9600 bits per second:
  mySerial.begin(9600);  

  // Now set up two tasks to run independently.
  xTaskCreate(
    TaskBlink
    ,  (const portCHAR *)”Blink”   // A name just for humans
    ,  128  // Stack size
    ,  NULL
    ,  2  // priority
    ,  NULL );
  xTaskCreate(TaskBlink2,(const portCHAR *)”Blink2″,128, NULL,2,NULL );
  xTaskCreate(TaskBlink3,(const portCHAR *)”Blink3″,128, NULL,2,NULL );
  xTaskCreate(TaskBlink4,(const portCHAR *)”Blink4″,128, NULL,2,NULL );

  xTaskCreate(
    TaskTadaa
    ,  (const portCHAR *) “Tadaa”
    ,  128 // This stack size can be checked & adjusted by reading Highwater
    ,  NULL
    ,  1  // priority
    ,  NULL );

  // Now the task scheduler, which takes over control of scheduling individual tasks, is automatically started.
}

void loop()
{
  // Empty. Things are done in Tasks.
}

/*————————————————–*/
/*———————- Tasks ———————*/
/*————————————————–*/

void TaskBlink(void *pvParameters)  // This is a task.
{
  (void) pvParameters;

  // initialize digital pin 13 as an output.
  pinMode(13, OUTPUT);

  for (;;) // A Task shall never return or exit.
  {
    digitalWrite(13, HIGH);   // turn the LED on (HIGH is the voltage level)
    mySerial.println(“LED 13 Nyala”);
    vTaskDelay( 1000 / portTICK_PERIOD_MS ); // wait for one second
    digitalWrite(13, LOW);    // turn the LED off by making the voltage LOW
    mySerial.println(“LED 13 Padam”);
    vTaskDelay( 1000 / portTICK_PERIOD_MS ); // wait for one second
  }
}
void TaskBlink2(void *pvParameters){
  (void) pvParameters;
  pinMode(2, OUTPUT);
  for (;;) {
    digitalWrite(2, HIGH); vTaskDelay( 2000 / portTICK_PERIOD_MS );mySerial.println(“LED 2 Nyala”);
    digitalWrite(2, LOW);  vTaskDelay( 2000 / portTICK_PERIOD_MS );mySerial.println(“LED 2 Padam”); 
  }
}

void TaskBlink3(void *pvParameters){
  (void) pvParameters;
  pinMode(3, OUTPUT);
  for (;;) {
    digitalWrite(3, HIGH); vTaskDelay( 500 / portTICK_PERIOD_MS );mySerial.println(“LED 3 Nyala”);
    digitalWrite(3, LOW);  vTaskDelay( 1500 / portTICK_PERIOD_MS );mySerial.println(“LED 3 Padam”); 
  }
}

void TaskBlink4(void *pvParameters){
  (void) pvParameters;
  pinMode(4, OUTPUT);
  for (;;) {
    digitalWrite(4, HIGH); vTaskDelay( 500 / portTICK_PERIOD_MS );mySerial.println(“LED 4 Nyala”);
    digitalWrite(4, LOW);  vTaskDelay( 250 / portTICK_PERIOD_MS );mySerial.println(“LED 4 Padam”); 
  }
}

void TaskTadaa(void *pvParameters)  // This is a task.
{
  (void) pvParameters;
  for (;;)
  {
    // read the input on analog pin 0:
    n++;
    if (n>100){n = 0;}
    // print out the value you read:
    mySerial.print(“Tadaa…”);
    mySerial.println(n);
    vTaskDelay(2000/portTICK_PERIOD_MS);// 2 second delay
    // one tick delay (15ms) in between reads for stability
  }
}

Independent LEDs Blinking

 using Arduino FreeRTOS, realtime multi tasking, 🙂

 I programmed LED on pin 2, 3, 4 and 13 to blink at its own time. The advantage of this Arduino FreeRTOS is we don’t have to calculate the timing of each pin in respect of sequential execution. It’s has its own task and schedule, independent of each other.

http://ift.tt/2b4jwFJ.

#include <Arduino_FreeRTOS.h>

int n = 0;

// define two tasks for Blink & AnalogRead
void TaskBlink( void *pvParameters );
void TaskBlink2( void *pvParameters );
void TaskBlink3( void *pvParameters );
void TaskBlink4( void *pvParameters );
void TaskTadaa( void *pvParameters );

// the setup function runs once when you press reset or power the board
void setup() {
// initialize serial communication at 9600 bits per second:
Serial.begin(9600);

// Now set up two tasks to run independently.
xTaskCreate(
TaskBlink
, (const portCHAR *)"Blink" // A name just for humans
, 128 // Stack size
, NULL
, 2 // priority
, NULL );
xTaskCreate(TaskBlink2,(const portCHAR *)"Blink2",128, NULL,2,NULL );
xTaskCreate(TaskBlink3,(const portCHAR *)"Blink3",128, NULL,2,NULL );
xTaskCreate(TaskBlink4,(const portCHAR *)"Blink4",128, NULL,2,NULL );

xTaskCreate(
TaskTadaa
, (const portCHAR *) "Tadaa"
, 128 // This stack size can be checked & adjusted by reading Highwater
, NULL
, 1 // priority
, NULL );

// Now the task scheduler, which takes over control of scheduling individual tasks, is automatically started.
}

void loop()
{
// Empty. Things are done in Tasks.
}

/*--------------------------------------------------*/
/*---------------------- Tasks ---------------------*/
/*--------------------------------------------------*/

void TaskBlink(void *pvParameters) // This is a task.
{
(void) pvParameters;

// initialize digital pin 13 as an output.
pinMode(13, OUTPUT);

for (;;) // A Task shall never return or exit.
{
digitalWrite(13, HIGH); // turn the LED on (HIGH is the voltage level)
Serial.println("LED 13 Nyala");
vTaskDelay( 1000 / portTICK_PERIOD_MS ); // wait for one second
digitalWrite(13, LOW); // turn the LED off by making the voltage LOW
Serial.println("LED 13 Padam");
vTaskDelay( 1000 / portTICK_PERIOD_MS ); // wait for one second
}
}
void TaskBlink2(void *pvParameters){
(void) pvParameters;
pinMode(2, OUTPUT);
for (;;) {
digitalWrite(2, HIGH); vTaskDelay( 2000 / portTICK_PERIOD_MS );Serial.println("LED 2 Nyala");
digitalWrite(2, LOW); vTaskDelay( 2000 / portTICK_PERIOD_MS );Serial.println("LED 2 Padam");
}
}

void TaskBlink3(void *pvParameters){
(void) pvParameters;
pinMode(3, OUTPUT);
for (;;) {
digitalWrite(3, HIGH); vTaskDelay( 500 / portTICK_PERIOD_MS );Serial.println("LED 3 Nyala");
digitalWrite(3, LOW); vTaskDelay( 1500 / portTICK_PERIOD_MS );Serial.println("LED 3 Padam");
}
}

void TaskBlink4(void *pvParameters){
(void) pvParameters;
pinMode(4, OUTPUT);
for (;;) {
digitalWrite(4, HIGH); vTaskDelay( 500 / portTICK_PERIOD_MS );Serial.println("LED 4 Nyala");
digitalWrite(4, LOW); vTaskDelay( 250 / portTICK_PERIOD_MS );Serial.println("LED 4 Padam");
}
}

void TaskTadaa(void *pvParameters) // This is a task.
{
(void) pvParameters;
for (;;)
{
// read the input on analog pin 0:
n++;
if (n>100){n = 0;}
// print out the value you read:
Serial.print("Tadaa...");
Serial.println(n);
vTaskDelay(2000/portTICK_PERIOD_MS);// 2 second delay
// one tick delay (15ms) in between reads for stability
}
}