Nugroho's blog.

Thursday, August 18, 2016

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
}
}

Arduino FreeRTOS


(Real Time Operating System).

Multi Tasking on Arduino Nano.

Led Blink and Serial Communication



http://ift.tt/2b30d2l.
#include

int n = 0;

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

// the setup function runs once when you press reset or power the board
void setup() {


// 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(
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)
vTaskDelay( 1000 / portTICK_PERIOD_MS ); // wait for one second
digitalWrite(13, LOW); // turn the LED off by making the voltage LOW
vTaskDelay( 1000 / portTICK_PERIOD_MS ); // wait for one second
}
}

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

// initialize serial communication at 9600 bits per second:
Serial.begin(9600);

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
}
}

Wednesday, August 10, 2016

Can not Detect Arduino Nano on El Capitan?

It because the nano used CH341 usb to serial adapter that will not install because El Capitan enforces kext driver signing.

So, I trace the step from https://tzapu.com/making-ch340-ch341-serial-adapters-work-under-el-capitan-os-x/

...and it works again, :)

To disable kext signing:

- Reboot and press CMD+R immediately after the chime to enter Recovery Mode
- Open Terminal from Recovery mode
- run the command csrutil enable --without kext
- run the command reboot







Monday, August 1, 2016

Old Mechanical Keyboard KPT-102 on iPad



Old Clicky Mechanical Keyboard on iPad, using Arduino as PS/2 to HID signal converter, :)

I use the code from https://gist.github.com/DorianRudolph/ca283dfdfd185bc812b7

But, as I use OSX, I can'n do this

"To make the programs work you need to open the file hardware/arduino/avr/cores/arduino/USBAPI.h located in your Arduino folder and make the Keyboard_::sendReport method public.
"

To do that I open the Finder, go to Applications Folder right click Arduino App, select Show Package Content and adit Keyboard.h at /Applications/Arduino.app/Contents/Java/libraries/Keyboard/src

Update: I tucked the Arduino  Pro Micro inside keyboard, :)


















http://ift.tt/2aIwnlw.

Saturday, July 30, 2016

Upload Sketch of Arduino Pro Micro on Standart IDE



Yup, we could choose Leonardo to upload sketch to Arduino Pro Micro, without Sparkfun addOn.



http://ift.tt/2amv1Lr.

Wednesday, July 13, 2016

Logis


Gendis: Duh, gawat.
Megatruh: kenapa nDhis?
G: Aku di-tag sama pacar baruku.
M: Bagus kan?
G: Masalahnya dia nge-tag aku di akun fb-ku
M: Memangnya kenapa?
G: Lha kan pacarku kan nanti tahu
M: Ya jelas to? Kan yang posting pacarmu sendiri.
G: Bukan, eh, iya, maksudku pacar-pacarku yang lain kan jadi tahu.
M: Walah
G: Memang lupa sih, biasanya kalo habis jadian pasti kubilang jangan nge-tag atau nyebut nama di medsos. Yang ini lupa, hehehe
M: ….

#edisiError

Sunday, July 3, 2016

Kebijakan

Jangan minder misal tak berprestasi akademik
Juga misal tak berprestasi non akademik
Atau cuma jadi pembuat onar
Atau tukang tidur di kelas
Siapa tahu di masa depan nanti
kamu jadi penentu kebijakan
yang ditakuti
sekaligus bikin pusing orang
yang saat ini adalah temanmu
yang paling pandai di kelas





#edisiError


323f (5) amp (1) android (12) apple (7) arduino (18) art (1) assembler (21) astina (4) ATTiny (23) blackberry (4) camera (3) canon (2) cerita (2) computer (106) crazyness (11) debian (1) delphi (39) diary (286) flash (8) fortran (6) freebsd (6) google apps script (8) guitar (2) HTML5 (10) IFTTT (7) Instagram (7) internet (12) iOS (5) iPad (6) iPhone (5) java (1) javascript (1) keynote (2) LaTeX (6) lazarus (1) linux (29) lion (15) mac (28) macbook air (8) macbook pro (3) macOS (1) Math (3) mathematica (1) maverick (6) mazda (4) microcontroler (35) mountain lion (2) music (37) netbook (1) nugnux (6) os x (36) php (1) Physicist (29) Picture (3) programming (189) Python (109) S2 (13) software (7) Soliloquy (125) Ubuntu (5) unix (4) Video (8) wayang (3) yosemite (3)