Thursday, June 25, 2020

World idea..

World of warcraft, starcraft, science fiction stories all have fictional world.

I have mine for game or novel. Mine is somewhat derived from Zerg of Starcraft lol.

The universe is a living organism. Meaning

The void in Space is filled with liquid cytoplasm
Cytoplasm is again filled with living organisms of endless variety.
All the astronphysical events are results of biological activities in celestial scale. For example,
Black hole forms by enormous pressures created by muscle tissues of celestial size
The bright stars form from giant masses of undistributed nutrients such as hydrogen.
Solid planet-like masses form a single organism that ate the most other organisms.
So these planets are results of competition, or survival of fittest. 
Planetary war is basically megascale biological warfare, and the loser planet gets physically eaten. 
As time goes by, wars evolve into Galactic scale, and into universal scale. 
And it turns out, these wars are all planned and managed by the Overmind
Why? The Overmind eats the winner to assimilate the winning features.
So the Universe is a farm field for winners to be eaten for the further evolution of the Overmind!  
the Overmind is the all-powerful organism that is the winner of the previously completed universal evolution.  

Sunday, May 24, 2020

DIY GoTo system for dobsonian telescope


Hey people, hello from Illinois. (Edit 02162022: Below steps are described in youtube https://www.youtube.com/watch?v=EVcJwujkwUs)

I have an 8 inch Apertura Dobsonian telescope well purchased from High Point Scientific. Then I made a really nice simple method for pointing Dobsonian telescope to astronomical objects like the GOTO system. Using the method I could see 7 objects in ~ 30 minutes (M3,M5,M13,M81,M92, Alcor binary stars, Cyg-61 binary stars) without automation/motorization. All you need to build the tool is a tape measure, a duct tape, digital angle meter, and your phone.  If your telescope points to the right altitude (Y-axis coordinate of your object) and azimuth (X-axis coordinate of your object), then you can see the object. So, method is made of tools for pointing the telescope to the right altitude/azimuth.

Altitude:

The method uses digital angle gauge meter for Altitude. Basically the gauge sits on the telescope reporting the altitude within +- 0.1degree which is really good. Added note: the device has an arch structure at the bottom which helps aligning the device to a pipe. Since telescope tube is basically large pipe, the arch also helps aligning the device to the telescope increasing accuracy. On the surface of the telescope tube, rotate the device back and forth (like rolling a screw cap) until you get a sense that this arch structure and the telescope tube is aligned well. You can feel it with some experience. This step is not a required step. It will work just fine without the step.

Azimuth:

Then I made a website to enable using tape measures on the base of telescope for pointing telescope to the right azimuth.

 I provide screenshots of PPT slides about the system. The mobile website mentioned in the slides is
https://astronomy-dobsonian.s3.us-east-2.amazonaws.com/index.html

(source code)













With this tool, amateur astronomy became so much fun and easy hobby. I go out at weekend nights watching galaxies/clusters/whatever I want. Instead of the arduous work needed for star hopping, I watch them while listening to music, drinking my favorite soda ;)  

Also, stargazing became very social activity. Because the Push-To system finds objects very quickly, I can invite my friends. They can wait 1~2 minutes needed to find the object. I will be really hesitant to invite my friends, if I take more than 5 minutes to find objects using regular manual methods: too much pressure that I need to find it and I would get stress from the fact that my friends are waiting long time.  Due to this, I made more than 10 trips with my friends! 





Wednesday, September 25, 2019

How to make your project to be remembered

In 2013 summer, I presented my hobby project (LED guided piano) at North Carolina Maker Faire. In 2019 summer, I found this project has been presented at the front page of the NCSU Engineering Outreach website. It is likely that this photo has been used as their main landing page more than 6 years, creating so much impact. So this project has outlived all other projects presented during the Maker Faire.

Yeah I am 60% bragging, but I hope to make a point that, presenters of any exhibition should try making their presentations photogenic. If your project is featured in media through photo, the positive social impact (= inspiration) of your project increase by 100,000 fold and your presentation achieve immortality. This makes you happy.

What does it mean by 'photogenic'? I don't know exactly but I can share my example. On the Maker Faire day, I randomly brought a lamp to let visitors see the project better. I didn't intend for this but it turns out having plenty of light increase photogenicity very much. For example, the lamp creates a strong light contrast on the face of the girl, resulting in charisma. Also you sense the increased feeling of 'happy atmosphere' because of the light. Also, one NCSU officer approached me the day before the exhibition asking me if I were an NCSU student. On the exhibition day, he brought that red panel with very clearly written title of the work. This red panel creates official feeling inviting attention. When the photographer took the photo from this current angle, the resulting photo combines all of these factors I mentioned above. So decide an angel to be photogenic, and build your attractive factors around it. Importantly, make sure nothing blocks the photographer from recognizing and approaching to that angle.



















You, the makers, were also inspired by somebody. I believe it is your duty to inspire others likewise. Make your presentations photogenic.

By the way, this is another photo from the event. It was taken from my perspective. See things are again brighter on my booth compared to the background because of that lamp. The light creates the warm feeling that grabs attention + make things much more visible.



I think this moment was a highlight of my hobby electronics adventures. I made daughter-father share a fun joyful memory while I had tons of fun building and presenting my hobby work. What more can I ask for ?


Tuesday, January 15, 2019

Live demonstration idea for Arduino and Raspberry Pi class

I had to teach Arduino and Raspberry Pi at a Korean American Science and Engineers Association's annual meeting called Ygnite. While prepping, I thought why not I bring live samples of Arduino and Raspberry Pi. However, given the typical classroom environment, those live samples have to be passed around Students who are seated. Typical samples are complicated shapes and wires, so it is hard to pass around.  

My idea was putting those samples on writing pads. So I installed projects on writing pad, and those projects could be quickly and easily passed around among the 50 students who took the class. Also, the projects are set on A4 paper, so written descriptions could be implemented right next to the individual components of samples for Arduino, Raspberry Pi, and IOIO OTG . Anyways, the samples are shown below. 


Tuesday, September 25, 2018

Sports posture correction robot idea



It is really expensive to hire a sports trainer to learn postures ('forms'). Posture is critical for playing any sports like Tennis, Golf, Baseball, etc.

How about building a robot that teaches you the form. Based on the device below, it should be relatively easy to build a robot like that. On an application, put in sports you want, have the robot measure dimension of your body, put some sensors on the racket, and Go!

It can have you do the optimal posture for any instrument at any number of times until your body remembers.

Or have your robot correct your posture in real time while you play sports. Anyways, future will be fun.

Wednesday, April 25, 2018

Emotional intelligence for hobby electronics



Sometimes, hobby electronics can be frustration and not joyful.. Above is a picture of my hobby workdesk while doing overnight work to complete a hobby project. It was a toil. After the experience, I learned next things to be happy with hobby electronics.

-work with people, as part of a community
-work on small things. I get more joy from completing many small fun things than completing one large difficult thing.

Sunday, March 4, 2018

Command lines for launching a Django-powered web application at amazon web service



As an amateur web developer, ​I needed a blog post that shows how to launch a web site in Amazon Web Service. I made one!

If the commands at the below are followed, a django-powered webpage gets created. After finishing these steps, this app can be a nice starting point for building your web app idea, by adding in your html files and back-end python codes. 

-These commands require you have a completely new unused Ubuntu instance at AWS. Follow this https://aws.amazon.com/getting-started/tutorials/launch-a-virtual-machine/  
  • Choose 'Ubuntu Server 16.04 LTS (HVM), SSD Volume Type - ami-66506c1c' or something like that from Step 1. 
  • For Step 6: Configure Security Group, click add group and choose HTTP. The proceed to the next. For source field, it should be like          0.0.0.0/0, ::/0
  • When you launch ubuntu, you must download and save the pem file for ssh. Also the pem file security should be secure. This means you type in:     chmod 400 your.pem
-You have a linux terminal or anything that allows you to do ssh and sftp. My desktop is ubuntu-powered PC as well. You could use psft or putty for windows (https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html). Below are versions of the involved software/server but maybe not that important. 
-This assumes you know how to do basic vim commands for editing codes. 

--------Ubuntu Version-----------
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 14.04.3 LTS
Release: 14.04
Codename: trusty
--------Python Version---------------
Python 2.7.6 (default, Jun 22 2015, 17:58:13) 
[GCC 4.8.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
--------Apache Version -------------
Server version: Apache/2.4.7 (Ubuntu)
Server built:   Jan 14 2016 17:45:23
--------Django Version---------------
(1, 7, 0, 'final', 0)

----------------------------------------Start. -----------------------------------------------

Line by line, copy each command and paste into the ssh command prompt, and run it by pressing enter. After running, do the same for the next command. Do not copy and paste lines that start with -----------. These lines are for procedure to perform by you.
------ssh into the server. How to do ssh? For windows, learn putty. For Linux or apple PC, type in SSH command. Example SSH command looks like: ssh -i "test.pem" ubuntu@ec2-34-228-36-21.compute-1.amazonaws.com
-----On the ssh window, run the following commands.

sudo apt-get update
sudo apt-get install apache2 
sudo apt-get install libapache2-mod-wsgi
sudo apt-get install python-setuptools
sudo apt install unzip
sudo vim ~/.bashrc

------------ Using vim, put in the following three lines of commands by simple copy and pasting: press keyboard key s, copy+paste the following 3 lines of commands, press the 'ESC' key, and type in :wq! and press enter key. We are going to use vim multiple times  ---------------
alias re="sudo /etc/init.d/apache2 restart"
alias ee="sudo vim /var/log/apache2/error.log"
alias dc="sudo vim /etc/apache2/sites-available/django.conf"
-------------- now continue running commands below--------------------


sudo mkdir /var/src 
wget https://media.djangoproject.com/releases/1.7/Django-1.7.tar.gz
sudo tar xzvf Django-1.7.tar.gz
cd Django-1.7
sudo python setup.py install
cd /home/ubuntu
django-admin.py startproject website
cd website/website
sudo rm wsgi.py
sudo vim wsgi.py

----------------- Using vim,put in the following lines into the file--------------------------

import os,sys

apache_configuration= os.path.dirname(__file__)
project = os.path.dirname(apache_configuration)
workspace = os.path.dirname(project)
sys.path.append(workspace)
sys.path.append(project)

os.environ.setdefault("DJANGO_SETTINGS_MODULE", "website.settings")

from django.core.wsgi import get_wsgi_application
application = get_wsgi_application()


------------------------exit vim . Run the following lines-----------------


cd /etc/apache2/sites-available/
sudo vim django.conf

-----------------Using vim put in the following----------------------
------------------ec2-54-191-40-188.us-west-2.compute.amazonaws.com has to be changed to your ubuntu server's web address ----------------


<VirtualHost *:80>
Alias /static/ /home/ubuntu/website/static/

<Directory /home/ubuntu/website/static/>
Require all granted
</Directory>

WSGIScriptAlias / /home/ubuntu/website/website/wsgi.py

<Directory "/home/ubuntu/website/website">
<Files wsgi.py>
Require all granted
</Files>
</Directory>
</VirtualHost>


------------------exit vim. Run commands below ----------------
sudo a2ensite django.conf
sudo /etc/init.d/apache2 restart
cd ~/website/
python manage.py startapp go



sudo rm ~/website/website/urls.py
sudo vim ~/website/website/urls.py

----Using vim put in the following into your urls.py----------------
from django.conf.urls import patterns, include, url
from django.contrib import admin
from go import views
from django.conf import settings
from django.conf.urls.static import static

urlpatterns = patterns('', 
    url(r'^admin/', include(admin.site.urls)),
    url(r'^$',views.index1),
)+static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)

----------------exit vim  ----------------------
sudo rm  ~/website/go/views.py 
sudo vim ~/website/go/views.py 

--------------------------using vim, PUT ----------------------------
from django.shortcuts import render_to_response
from django.template import RequestContext
from django.http import HttpResponseRedirect
from django.core.urlresolvers import reverse
import random
import re 
from django.http import HttpResponse
def index1(request):
    return render_to_response(
        'bibindex.html',

    )

-------------------exit vim after saving the code----------------------------
sudo vim ~/website/website/settings.py 

-----------------Do not cut and paste the following. Just edit accordingly. The variable ALLOWED_HOSTS, and INSTALLED_APPS  are already in ~/website/website/settings.py  ------------------------------

ALLOWED_HOSTS = ['*']

INSTALLED_APPS = (
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'go', 

---------------Do not close vim yet. Now cut and paste the following two codes into the code-------------------

TEMPLATE_DIRS= ("/home/ubuntu/website/go/template",'')
STATIC_ROOT = '/home/ubuntu/website/static/'

----------------Now exit vim after saving the code------------------------


mkdir ~/website/go/template/
cd ~/website/go/template/
vim bibindex.html

***********using vim, put ****************
<!DOCTYPE html>
<html>
<body>

<h2>I love yeasts</h2>
<img src="/static/pic_mountain.jpg" alt="Mountain View" style="width:304px;height:228px;">

</body>
</html>
*************exit vim after saving **************
mkdir /home/ubuntu/website/static/
cd /home/ubuntu/website/static/
mv xl_2116_yeast-tp.jpg pic_mountain.jpg
re

--- Now, using your web browser, visit that address you put into that django.conf file (i.e. ec2-34-228-36-21.compute-1.amazonaws.com )



---------Now if you want to proceed to more complicated website,
cd ~
wget https://images.template.net/wp-content/uploads/2014/12/random-login-form.zip
unzip  random-login-form.zip
mv index.html  /home/ubuntu/website/go/template/bibindex.html
re

---------To work with your own index.html file:
exit
cd into your folder that contains index.html
sftp into your server
put index.html
exit
ssh into your server
mv index.html  /home/ubuntu/website/go/template/bibindex.html
re
then go to your website
----------------------------------------------End------------------------------------------
Now go see that web site with the yeast picture. (Sorry I am a yeast biologist). From here you start developing your own django web app!

For Django tutorial, go to Django 1.7 tutorial on the django website to understand the codes above.  
For html tutorial, go to W3 school website. You can totally do jQuary, Javascript and others. 

Thursday, December 4, 2014

Idea fragment for business idea

Someone made a dent on my car. She had to pay for repair. But if someone else totals my car, the first person does not have to pay at all....

This can be a shadow of a bigger and interesting business idea. I am not suggesting the destruction as business idea. But.... I don't know, this idea can be related to something else...

Wikipedia of experimental automations

Create a website collecting user-created contents/ideas/instructables for experimental automation in liquid handling. They should be modularized for maximal scalability+flexibility+'interconnectability ' ......

Sunday, September 28, 2014

Humor recommendation app idea



Make an app containing speech recognition functionality and humor database so that the app can provide real-time recommendation of jokes based on the content of the conversation of the user. You are not funny? There is an app for that!

The database would be: http://grouplens.org/datasets/jester/
The speech recognition functionality would be: http://stackoverflow.com/questions/9625045/speech-recognition-android-app

Tuesday, February 4, 2014

Arduino for Yeast Fermentation


For hobby electronics person like me, arduino is a very fun to play with. Simple coding combines any electronical input and output in any way you want so that  interactive devices can be made. We (hobby electronics people) love the cheap price of it: $25.


I am a student studying yeast fermentation, and we use this device called 'PLC' (Programmabel Logic Circuit, sounds intimidating yeah) to automate parts of the fermentation process. The industry uses this for fermentation processes too. Basically, capture electronical signal from the fermentor indicating its concentration of gas using PLC and send a signal from PLC to control another gas pump to maintain the gas level in the fermentor. This is the photo showing the PLC (the giant monster at the left) next to Arduino, and the fermentor that I use (at the background).  So the machine is much bigger and more expensive (~$500 vs $25). I have been playing around with programming PLC these days..



But you know what? I found you can do the exact same thing with Arduino. Arduino can take industry standard current or voltage signals and send out current and voltage signal in any way you want. The programming is much cleaner and interesting than PLC's. (PLC takes in this 'Ladder Diagram' programming that any programmer might feel very awkward.) So if I were that person in the industry, I would totally consider using arduino for yeast fermentation process development research. With Arduino, it saves you a lot of money (~$500), and it is much more flexible to program.

Since I am nearly the only person in the fermentor lab in an academic institution, I can do whatever heck I want with the fermentor including implementing arduino. Yeah you know what I will be doing next...





Update: Here is my MS thesis using Arduino. See page 24

https://repository.lib.ncsu.edu/bitstream/handle/1840.20/34946/etd.pdf?sequence=1&isAllowed=y

Sunday, October 20, 2013

How to make the LED guided piano teaching device

Hi there, here goes the manual. (Here is more important manual for your life)


First, I made an android app for the LED guided piano. I am sharing the code at a Github. This android app  parses *any* piano MIDI songs and convert the data into data format for driving the IOIO OTG board. https://github.com/kisurb/led_guided_piano


Materials needed:

IOIO OTG
2 Meters of LED Strip (WS 2801 based) 
Your android phone.
Micro USB Type A to Type B cable (For connecting your phone to IOIO OTG)
Soldering Supplies.
Breakable pin header.  (This goes to IOIO OTG and LED Strip. This is actually important)
Lots of short jumper wires (female to female)
5 volt 1A power supply and corresponding power jack
(So power supply powers the IOIO OTG, and IOIO OTG directly powers LED strip)
3M Double Sided Tape  (For attaching your LED strip to Piano)

Three critical notes.
The 2 Meters led strip is cut into three parts. One part for powering 20 black keys, one part for powering 21 white keys, and one part for powering 5 black keys and 15 white keys. This is because IOIO OTG can send only 64 bytes of data which correspond to controlling 21 led lights. So this is the setup. Three strips are controlled simultaneously. 

Second.
The way you attach the LED strip to the white key. Do not set tapes on every single white keys
Third.
For black keys you have to cut the LED strips into pieces of three LED lights and two LED lights to accomodate for distances between the black keys. Also use pin header to connect the LED strip to jumper wires. You do not want to solder the jumper wire directly onto the LED strip because the LED strip can tear easily.


How to connect from IOIO OTG to LED strip:
Solder the pin headers onto the pins of IOIO OTG and LED stip. Connect the headers using female-to-female jumper wires. Here is the setup.

This is the Java code within the android app that tells the IOIO OTG to use pin 1,2 for strip 1,  and pin 4,6 for strip 2, and pin 10,11 for strip 3.

    white= ioio_.openSpiMaster (27,4,6,15 ,Rate.RATE_50K);
    black= ioio_.openSpiMaster (28,1,2,16 ,Rate.RATE_50K);
    three= ioio_.openSpiMaster (29,10,11,17 ,Rate.RATE_50K);

This is the explanation for each input for the above java code.
 spi = ioio.openSpiMaster(misoPin, mosiPin, clkPin, ssPins, Clock rate;

ioio.openSpiMaster does not serve 'null' for the case there is no misoPin or ssPin, so we have to specify misopin or sspin even though they are not used.
pin 27,28,29,15,16,17 are not used.


Monday, October 14, 2013

Use Bacteria for Communication

For security reasons, electromagnetic wave might not be feasible for communication.

Use bacteria. Recombinant technology can put any DNA into bacteria. Write your message into bacteria using DNA, and send the bacteria to the receiver through air, water stream, or dirty surfaces.


Friday, October 4, 2013

LED Guided Piano Playing

I built a piano teacher. I installed LED light on each piano key and turned on and off each of them to show which piano key to press for any given song. (So that any novice should be able to play piano) I don't play piano at all, and this is me playing piano with the help of the device I made. This should not be too hard to build. You will be able to see the instruction manual on how to build this device in 1 or 2 weeks from now. Android app driving the LEDs will be provided as well. As far as I know, no one made this before and I am an amateur, so it had been such a roller coaster ride building this without instruction manuals. But I wanted this device badly enough. It was fun overall. Post your comments here if you have questions.
 

Saturday, May 4, 2013

Cosmetics I Really Want to Build

There is something I would really like to make.
Currently, girls wear beautiful cosmetics. They are wonderful. .. but they are static. Once drawn, it stays there as it is. But wouldn't it be GREAT if it changes? I mean wouldn't it be great if we can 'spray' special LCD material onto human face so that LCD screen on human face can, like a TV, display absolutely dynamic & beautiful art patterns in the form of motion pictures?



 Yes, it is impossible. But as soon as I find such 'sprayable' LCD materials in a distant future, I am going to make cosmetics out of it. For now, maybe I can make just an LCD mask with flexible LCD like this.



I hope they are not too expensive for hobby projects....