Nugroho's blog.

Thursday, August 18, 2016

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


Monday, June 13, 2016

Freebsd


 Have you encountered error like this when install kde on FreeBSD?

sysctl: unknown oid 'compat.linux.osrelease'

linuxulator is not (kld)loaded, exiting


 If it's so, then just do like this

#kldload linux


But it tell that no linux module on the system. Well, just install it

cd /usr/src/sys/modules/linux

make install clean


Ehm, there's more error

compat.linux.osrelease: 2.6.16 is not supported freebsd


apparently we have to edit the .conf manually


# printf "compat.linux.osrelease=2.6.18\n" >> /etc/sysctl.conf

# sysctl compat.linux.osrelease=2.6.18

# pkg install emulators/linux_base-c6


OK, back to kde install sequence, :)

# pkg install xorg

# pkg install nvidia-driver

# pkg install virtuoso

# pkg install kde

# pkg install gtk-oxygen-engine

# pkg install kde-gtk-config


Add to /boot/loader.conf:

linux_load="YES"

nvidia_load="YES"

Add to /etc/rc.conf:

dbus_enable="YES"

hald_enable="YES"

kdm4_enable="YES"


Load new kernel modules:

# kldload linux

# kldload nvidia


Create ~/.xinitrc for KDE (just this single line here):

exec /usr/local/kde4/bin/startkde


And we are good to go, :)
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)