System Thinking


Di dalam keseharian kehidupan kita penuh dengan informasi dan cara kita mengolah informasi yang ada disekitar kita disebut dengan thinking, thinkinglah yang membedakan kita karena setiap orang memiliki cara berpikirnya (thinking) untuk menerima, mengolah dan melakukan apa dengan informasi yang dia dapat.

Mengolah informasi dan mempelajari cara sesuatu bekerja dinamakan system thinking, System thinking dengan kata lain mempelajari sesuatu bekerja dan menjadikannya pengetahuan, menariknya adalah bagaimana orang meresponse segala sesuatu didasari oleh data/informasi sebelumnya yang diterima oleh masing masing orang dan bisa jadi tidak sama setiap orangnya karena memori dan pengalaman orang menghadapi informasi atau how to react terhadap sesuatu berbeda beda, dan kumpulan informasi informasi tersebut adalah yang dinamakan mental models(kumpulan bigdata di masing masing orang a.k.a pengetahuan).

Setiap orang dapat mempelajari system thinking, bagaimana cara kita melihat (perspective), mengkategorikan (distinction),  dan menghubungkan antara key suatu proses (relation) menciptakan suatu system thinking. Dengan system thinking kita bisa melihat sesuatu secara lebih luas, keterkaitan antar setiap things dan fungsi antar things dan bagaimana things bekerja dan membuat suatu things menjadi lebih baik.   Dengan system thingking juga kita bisa menyatukan mental models dari masing masing orang untuk melihat sesuatu dari berbagai perspective dan menyatukan insight insight dari masing masing orang untuk mencapai / membuat sesuatu menjadi lebih baik.

Advertisement

Flask auto reload inside docker


I found this tips when i developed flask inside docker, with this method we can make docker auto reload when change some code or under development

  flaskweb:
    build: ./apps
    container_name: flask-apps
    ports:
      - 7100:7100
    environment:
      PORT: 7100
      FLASK_DEBUG: 1
    restart: always
    volumes: ['./apps:/usr/src/app/'] <-- apps is my flask folder
    depends_on:
      - db

Set static ip at docker-compose


This is how i set static ip at docker-compose

version: '3.7'

services:
    apps:
        image: postgres:12-alpine
        restart: unless-stopped
        networks: 
            apps_default:
                ipv4_address: 172.21.0.2

networks:
    apps_default:  

Make Odoo as service in ubuntu


Save this at /etc/systemd/system/odoo.service

[Unit]
Description=Odoo14
Requires=postgresql.service
After=network.target postgresql.service

[Service]
Type=simple
SyslogIdentifier=odoo14
PermissionsStartOnly=true
User=odoo
Group=odoo
ExecStart=/odoo/odoo-server/odoo-bin -c /etc/odoo-server.conf
StandardOutput=journal+console

[Install]
WantedBy=multi-user.target

Test motor dc encoder 25GA370


Test using arduino mega 2560 and adafruit v1 motor shield this is my code

#include <AFMotor.h>

AF_DCMotor motor(1);
AF_DCMotor motor2(3);
volatile long int encoder_pos = 0;
volatile long int encoder_pos2 = 0;
//The sample code for driving one way motor encoder
const byte encoder0pinA = 18;//A pin -> the interrupt pin 0
const byte encoder0pinB = 31;//B pin -> the digital pin 3


const byte encoder1pinA = 19;//A pin -> the interrupt pin 0
const byte encoder1pinB = 33;//B pin -> the digital pin 3


byte encoder0PinALast;
byte encoder1PinALast;
int duration;//the number of the pulses
boolean Direction;//the rotation direction


void setup()
{
  Serial.begin(115200);//Initialize the serial port
//  EncoderInit();//Initialize the module

  attachInterrupt(digitalPinToInterrupt(encoder0pinA), encoder, RISING);

  attachInterrupt(digitalPinToInterrupt(encoder1pinA), encoder2, RISING);

}

void encoder(){

  if(digitalRead(encoder0pinB) == HIGH){
    encoder_pos++;
  }else{
    encoder_pos--;
  }
}

void encoder2(){

  if(digitalRead(encoder1pinB) == HIGH){
    encoder_pos2++;
  }else{
    encoder_pos2--;
  }
}

void loop()
{
//  motor.run(BACKWARD);
//  motor.setSpeed(40);
////  delay(200);
//
////  motor.run(BACKWARD);
////  motor.setSpeed(150);
////  delay(200);
//
//  motor2.run(FORWARD);
//  motor2.setSpeed(50);
//  delay(200);

//  motor2.run(FORWARD);
//  motor2.setSpeed(150);
//  delay(200);
  
  
  Serial.print("Pulse:");
  Serial.println(duration);
  Serial.print("Encoder pos1:");
  Serial.println(encoder_pos);
  Serial.print("Encoder pos2:");
   Serial.println(encoder_pos2);
  duration = 0;
  delay(1000);

  
  
}

void EncoderInit()
{
  Direction = true;//default -> Forward
  pinMode(encoder0pinB,INPUT);
  attachInterrupt(0, wheelSpeed, CHANGE);
}

void wheelSpeed()
{
  int Lstate = digitalRead(encoder0pinA);
  if((encoder0PinALast == LOW) && Lstate==HIGH)
  {
    int val = digitalRead(encoder0pinB);
    if(val == LOW && Direction)
    {
      Direction = false; //Reverse
    }
    else if(val == HIGH && !Direction)
    {
      Direction = true;  //Forward
    }
  }
  encoder0PinALast = Lstate;

  if(!Direction)  duration++;
  else  duration--;
}

Install cmake from source


Notes howto install cmake from source

Some ros package can’t install because minimum cmake, this is how i do it

#download cmake version here https://cmake.org/files/

wget https://cmake.org/files/v3.8/cmake-3.8.0.tar.gz

#and uncompress package using 

tar xvf  cmake-3.8.0.tar.gz

sudo apt-get install build-essential

sudo ./bootstrap

sudo make 

sudo make install

Alternate remote desktop


I find new tools for remote desktop it is really easy to setup, very usefull for alternatif remote desktop like other vnc, the name of application is nomachine its fast and the instalation really easy

I’m using this app for remote my ros robot, and that’s it

Happy coding and salam ngoprek

Resize jetson nano vnc display


Add this at  /etc/X11/xorg.conf 
Section "Screen"
   Identifier    "Default Screen"
   Monitor       "Configured Monitor"
   Device        "Tegra0"
   SubSection "Display"
       Depth    24
       Virtual 1280 800 # Modify the resolution by editing these values
   EndSubSection
EndSection

I make robot


Siapa yang tidak suka dengan robot, dan project membuat robot ini benar benar menyenangkan :), dan anak2 saya pun suka dengan robot

Dan sudah sejak lama saya ingin punya robot, dan ini ada beberapa dokumentasi saya membuat robot 🙂

ceritanya mau membuat EOD robot
Simple robot kesukaan anak anak dari tempat sampah 🙂
Dancing Bot

Dan untuk melanjutkan project tentang robot ini kali ini saya coba buat versi yang lebih advance, menggunakan Lidar, dan menggunakan ROS (Robot Operating System)

Idenya adalah memanfaatkan cooler yang sudah rusak ini menjadi robot security seperti di axiom di film Wall E kira kira begini penampakannya

Continue reading I make robot