create every day - 福野泰介の一日一創

レゴテクニックシリーズをIchigoJamと赤外線LEDで制御する(マシン語) / Control Lego Technic by IchigoJam and IR LED

2017/05/06 23:55:00
#IchigoJam #KidsIT #maker #english 

こども大好きロボット、高かったり難しかったりと敷居が高いものをいかに下げるか?
How to lower hurdles about robots?

レゴ テクニックシリーズは、ロボットづくりの肝のひとつ、メカトロニクス版を電子工作でいうブレッドボードのように試行錯誤が自由自在! シンプルなサッカーロボなら10分ほどでつくれてしまいます。 オープンソースハードウェアでもある組立図を見ながらこんな大型クレーンや、ショベルカーまで!
Lego Technic series likes breadboard! It's easy to make everything!

レゴテクニックのマイコン制御!今回このレゴとIchigoJamをつなぎました!以前からマイコンに接続してネコのおもちゃや、iPhoneコントロールラジコンカーバスなどを作っていた頃のコードを再利用!
I connected Lego and IchigoJam using past codes.


こんなIchigoJamのプログラムで動かせます。付属されているリモコンと違って前後7段階に出力調整可能!
You can control the Lego with this program with selectable power 7 levels.

1 P=4 10 A=-P:B=P:GSB100:WAIT30 20 A=-P:B=0:GSB100:WAIT30 30 A=0:B=P:GSB100:WAIT30 40 A=P:B=P:GSB100:WAIT30 50 A=0:B=0:GSB100 99 END


ミニマムなロボットにして実験しましたが、2モーターx4チャンネル、最大8モーターまで制御可能!
This demo robot is very simple. But you can control up to 8 motors! (2 motors x 4ch)


赤外線LEDをGNDとOUT1に挿すだけでOKですが、トランジスタで増幅して飛距離アップ!
It's OK just put in IR-LED GND and OUT1. But a transistor enlarge the power!

こちら上記のプログラムを動かすためのマシン語とサブルーチン
This program drives a IR-LED to control Lego.

100 N=1<<14|C<<12|B&15<<8|A&15<<4 110 R=15^(N>>12&15)^(N>>8&15)^(N>>4&15) 120 IF PEEK(#700)!=112 GOSUB2000 130 ?USR(#700,N|R):RTN 2000 POKE#700,112,181,114,182,80,35,27,2,1,51,27,4,4,51,1,37,0,38,1,36,228,3,0,240,28,248,78,34,0,240,19,248,0,240,23,248,20,34,0,240 2010 POKE#728,14,248,32,66,2,208,22,34,0,240,9,248,100,8,243,209,0,240,11,248,78,34,0,240,2,248,98,182,112,189,0,181,0,240,14,248,1,58,251,209 2020 POKE#750,0,189,0,181,6,34,29,96,0,240,6,248,30,96,0,240,3,248,1,58,247,209,0,189,155,33,1,57,253,209,112,71 2030 RTN

IchigoJamで使うマシン語の勉強したくなったらこちらもどうぞ!
See also if you want to learn the machine language on IchigoJam.

"asm15 - Assembler for IchigoJam"
BoxHeadRoomさん作のIchigoJam用アセンブラを調整して、赤外線制御プログラムのアセンブルに対応しました。
I modified to assemble the code by BoxHeadRoom.

links
- PawerFunctionsの赤外線解析⑤・・・ - LEGOの機関車○●○ - Yahoo!ブログ
- IchigoJam 用アセンブラ - BoxHeadRoom 別館

椅子IoT リアルタイム座席オープンデータ向け新システム / Chair IoT for Real Time Seat Open Data

2017/05/04 23:55:00
#IchigoJam #maker #IoT #english 

椅子をネットにつないでみました。
I connected the chair to web.

今回は1コあたり400円のWiFiモジュール ESP-WROOM-02 を書き換えなしで使います。 光センサーの代わりに、お菓子IoTで使った圧力センサーを WiFi Shield を使ってIchigoJamに接続。
IchigoJam with $4 WiFi module "ESP8266" and pressure sensor via WiFi Shield.

抵抗を変えると感度が変えられます。
You can modify registors.


ディスプレイでチェックしながら、100Ωをセレクト
I selected 100Ω resistor after checking on the monitor

10 VIDEO3 20 ?ANA(2):WAIT30:CONT

WiFiのアクセスポイントの設定をしておきます。
Set ID/password to the WiFi access point

OK0 UART3,0:OUT5,1:OUT6,1:WAIT300:UART3,2 ?"AT+CWJAP=";CHR$(34);"**SSID**";CHR$(34);",";CHR$(34);"**password**";CHR$(34)


牛乳を乗っけてチェック!3秒置きにスリープから復帰し、値が100変化していたらWiFiを通じてwebサーバーへデータを送ります。
Check with milks! Send a data to web if change the number via WiFi.

100 VIDEO0:B=0 110 N=ANA(2):?N 120 IF ABS(N-B)>100 LED1:WAIT10:LED0:GOSUB@SENDN:B=N 130 WAIT 3*60,0 140 GOTO110 200 @SENDN 210 UART0,0:OUT5,1:OUT6,0:OUT6,1:WAIT300:UART3,0 220 ?"AT+CIPSTART=";CHR$(34);"TCP";CHR$(34);",";CHR$(34);"sabae.club";CHR$(34);",80":WAIT3*60 230 M=1+(N>9)+(N>99)+(N>999)+(N>9999) 240 ?"AT+CIPSEND=";82+M:WAIT30 250 ?"GET /siot/4/?key=********&v="N;" HTTP/1.0" 260 ?"Host: sabae.club 270 ?"User-Agent: IchigoJam 280 ? 290 WAIT180:OUT5,0 300 RTN

*for IchigoJam 1.2b47 / ******** is secret key to write


乾電池で動く省エネ仕様なので、貼り付け設置、簡単!
Easy to deploy because it works by cheap batteries!

合計原価で1500円くらい、通信料なし!でも、WiFi設定が手間。
Total cost about ¥1,500 without monthly fees. But It takes time and effort to set up the WiFi.

お菓子IoT 重量センサーと32x16ドットマトリクスで食べ過ぎ防止 / Diet IoT with pressure sensor and 32x16 matrix LED by IchigoJam x sakura.io

2017/05/03 23:55:00
#IchigoJam #maker #IoT #english 

食べ過ぎて困る!?圧力センサーで測った重さを大きく表示しつつ、重量の変化をサーバーに送る「お菓子IoT」をつくってみました。
Use pressure sensor to diet!


お菓子の量を重さで監視して、変化があったら sakura.io で送信!
Send the number if the weight change.


肝はこの圧力センサーFSR402(500円@秋月電子)
Pressure sensor!


圧力センサーの片方に1kΩの抵抗を介してVCCとアナログ入力へのワイヤー、もう片方をGNDに接続。
Pressure sensor (terminal A, B)
A: --+-- 1kΩ -- VCC
      +-- BTN(ANA)
B: -- GND


32x16ドットマトリクス(500円@共立デジット)はダイナミック点灯が必要。BASICでは速度がでないのでマシン語化!
Machine language is so fast!

32x16 dot matrix LED
VCC - VCC(IchigoJam)
SIN_1 - OUT1
SIN_2 - OUT2
SIN_3 - OUT3
CLOCK - OUT4
LATCH - OUT5
/ENABLE - OUT6
VLED - 5V
GND - GND

こちらお菓子IoTのプログラム (source of Diet IoT) *for IchigoJam 1.2b46

1 '32x16 MATLED driver 100 POKE#700,240,181,10,38,5,0,31,0,0,36,137,176,0,146,118,66,40,0,10,33,184,71,51,0,67,67,93,25,237,0,0,155,129,53,255,53,93,25,4,171,229,80,4,52,5,0,16,44 110 POKE#730,238,209,100,32,5,155,0,147,4,155,1,147,7,155,2,147,6,155,3,147,4,34,82,66,1,33,19,29,153,64,0,37,140,70,128,35,97,70,35,76,27,2,25,64,35,0,0,41 120 POKE#760,0,209,11,0,32,73,33,79,11,128,7,42,52,216,0,155,128,33,155,92,9,2,27,2,30,0,1,155,41,65,155,92,30,67,51,0,11,64,0,208,22,75,59,128,2,155,3,159 130 POKE#790,155,92,191,92,27,2,59,67,11,64,0,208,17,75,20,73,11,128,0,33,19,75,1,53,25,128,28,128,99,70,91,0,156,70,16,45,205,209,0,37,15,73,16,75,1,50,28,128 140 POKE#7C0,12,128,13,128,0,33,25,128,12,42,189,209,1,56,0,40,184,209,28,128,9,176,240,189,0,35,0,33,59,128,4,75,25,128,222,231,255,15,0,0,4,0,1,80,8,0,1,80 150 POKE#7F0,16,0,1,80,32,0,1,80,0,8,1,80,0,4,1,80 RUN:SAVE0 NEW:'Main program 200 N=0:C=100 210 A=1023-ANA() 220 U=USR(#700,A) 230 C=C-1:IF C=0 C=100:IF ABS(N-A)>2 N=A:GSB@SEND:?"SEND";N 240 GOTO210 300 @SEND:POKE#800,32,10,1,76,N,N>>8,0,0,0,0,0,0,103^(N&#FF)^(N>>8),36,0,36:R=I2CR(79,#800,13,#820,3):R=I2CR(79,#80D,3,#820,3):RTN SAVE1 LRUN0

links
- 【共立エレショップ】>> 32×16ドットマトリクスLEDモジュール■限定特価品■
- IchigoJamで32x16ドットマトリクスLEDを制御する - ※個人の感想です (マシン語編)
- さくらインターネットが提供するIoTプラットフォームサービス、sakura.io

大きなLEDをIchigoJamで制御する / Big 7 Seg LED controlled by IchigoJam

2017/05/02 23:55:00
#IchigoJam #maker #KidsIT #english 

まちなかに見る大きな電光掲示板、つくってみたくない?
Do not you want to make a big LED sign at the town?

信号機づくりの次のステップ、大型LEDの制御をしよう!
Let's control a big LED as next step after making a traffic signal.

気をつけて!電圧が高くなると危険度も増すよ!
Be careful! Higher voltage has higher risk of you.

超大型赤色7セグメントLED表示器のデータシートを見ると、光らせるには7.2V(ドット部分だけは3.6V)が必要みたいです(VF)。 12VのACアダプターと抵抗をつないで、光らせてテストしてみましょう。抵抗なしや、抵抗が小さすぎると電流が流れすぎてLEDを壊してしまうので注意!データシートのIFに20mAとあるので (12V-7.2V)/0.02A=240Ω と計算したあたりの抵抗を使います(ドット部分DPは、(12V-3.6V)/0.02A=420Ω)。
You need 7.2V VF to light big 7 seg LED according to the data sheet. Use about 240Ω and 420Ω with a 12V AC adapter.

大きなLEDを制御するにはトランジスタを使います。トランジスタアレイ(TD62004APG)を使うと便利!
Use a transistor to control a LED. Transistor array(TD62004APG) is useful to control many LEDs!

IchigoJamのOUT1〜6とLEDを、7セグLEDのA〜Gへとつなぎます。
Connect OUT1-6 and LED to A-G of 7 seg LED.

OUT1 OK OUT2 OK

ついた? Is it OK?

10 LET[0],#3F,6,#5B,#4F,#66,#6D,#7D,#27,#7F,#6F RUN OK OUT[5] OK

5とついた? Did you get a '5'?

20 OUT RND(64) 30 IF BTN() OUT[RND(10)]:WAIT60 40 WAIT 2 50 GOTO 20

0-9までのサイコロプログラム 10 dice program

20 C=0 30 OUT[C] 40 WAIT 20 50 C=C+1 60 IF C=10 C=0 70 GOTO 30

自動カウンター auto counter


How to divide on IchigoJam Assembly

2017/04/28 23:55:00
#IchigoJam #asm #ARM #english 

About the machine language on IchigoJam, you cant't find how to divide (割り算@ja) on the ARM Cortex-M0 command table. It's right. ARM Cortex-M0 has no commands of division. Instead you can use the function to divide.

IchigoJam BASIC command "USR" pass an address of function to divide as the register R3 after IchigoJam 1.2b31. (IchigoJam-FAN to download the latest version 1.2b45)

asm: R1=3 → 00100 001 [num]
asm: GOTO R3 → 010001110 [R3] 000
BASIC: PRINT 100 / 3 → 33

If you want to use the number as remainder (R1), call it!

[0]=`00100 001<<8 + 3 [1]=`1011010 100000000 [2]=`010001111 0011 000 [3]=`0100011000 001 000 [4]=`1011110 100000000 ?USR(#800,100) 1

asm: R1=3 → 00100 001 [num]
asm: PUSH {LR} → 1011010 100000000
asm: CALL R3 → 010001111 [R3] 000
asm: R0=R1 → 0100011000 [R1] [R0]
asm: POP {PC} → 1011110 100000000
BASIC: PRINT 100 % 3 → 1

Enjoy programming with the simple machine language!

links
- Cortex-M0 ARMマシン語表(抜粋)
-
はじめてのマシン語 - IchigoJamではじめるARMマシン語その1
- IchigoJam-FAN on Facebook

Kosen students will be Kids Programming Mentor!? Cutlery Card version up!

2017/04/25 23:55:00
#IchigoJam #KidsIT #doc #english 

To share the programming skill for all of the Kids, PCN started trials at Fukui Kosen.
I updated the first step of IchigoJam with Cutlery Card.


"Cutlery Field" to put some cards.
(download here "CutleryCard_firststep1-front-ja-rev3.pdf")


I added "IF BTN()" and "GOTO1" to learn 'loop' and 'judge' in computer.


They are 44 candidates of Kids Programming Mentor! (2nd grade of EI, Fukui Kosen)


They built own IchigoJam computers!
It's just beginning! Let's enjoy computing with both hardwares and softwares!

links
- こどもプログラミング教材 Jammy! Programming.KIDS - 日鉄日立システムエンジニアリング株式会社 (original version)
- Let's Compile Your Hand! Real Card Programming for Kids

How to control the Heart shaped LED board by IchigoJam

2017/04/23 23:55:00
#maker #IchigoJam #english 

Electronic making is kind of handicraft. Girls like it also! (ギャル電@ja)

I found a cute kit, so I modified to be more. You can display as pink color using BASIC program to control blue and red 2 color LEDs it has.


This kit includes "Happy Birthday" music IC but didn't use. Keep it another objects.


* red 'x' not use!


connect 5 wires to IchigoJam (* you can select front or back on new ver.)

IchigoJamcolorHeart LED
OUT2 (CN4)yellowR2 bottom
OUT3 (CN4)blueR3 bottom
GND (CN5)blackDC -
5V (CN5)redDC +
SOUND (CN3)greenVT3 top


program it!

10 PWM 2,RND(30) 20 PWM 3,RND(10) 30 BEEP RND(20)+10,5 40 WAIT30 50 GOTO 10

Let's make your own elecronic accessories!

links
- ハート18LED&メロディキット - aitendo (new ver.)
- ハート18LED&メロディキット - aitendo (old ver.)

Gamificate your life! Raspberry Pi x Glass with the neoplug 3D printed attachment

2017/04/22 23:55:00
#print3d #megane #IchigoJam #english 

I tested iPhone x neoplug. We need lighter one. So next I attached Raspbery Pi Zero on the other side of glasses.

How cute! (*I ordered shorter screws)


You can wear Raspberry Pi and small display! (*I need the smaller battery)


Using neoplug, it's very easy to attach and detach the attachment 3D printed!


I installed IchigoJam RPi to Raspberry Pi Zero. So this is a wearable BASIC machine also!


It likes a game on your real life!

10 CLS:?"TIME:";T 20 WAIT60:T=T+1:GOTO10 SAVE0

Let's enjoy programming your life in BASIC!


By the way I enjoyed small NES with neoplug x VUFINE+. (*without sounds)


There are things I mistaken. Failure is a source of success!


You can download this attachment STL data for 3D printers on Thingverse.
"attachment for neoplug x Raspberry Pi Zero by taisukef - Thingiverse"

7seg LED simulator for IchigoJam web by WebAssembly x HTML

2017/04/20 23:55:00
#js #IchigoJam #web #english 

IchigoJam web updated to simulate 7-segment LED.

IchigoJam web by WebAssembly *7seg on right top!
IchigoJam web connects a 7-seg LED on HTML through shared memory on WebAssembly.


"LED(7seg) by PCN Kanazawa / LED(7セグ) by PCN金沢@ja"
7-segment LED is one of very popular electronics parts to build devices.

You can control the 7seg LED very easy.

OUT1,1

"OUT1,1" to light up a top of LED. OUT1-7 connects each LEDs.

OUT127

127 means 1111111(binary). So all 7 LEDs lighted up.


"Janken using 7seg LED"

This is the dice program.

10 LET[0],6,91,79,102,109,125 20 OUT[RND(6)]

This is the count down progrom.

10 LET[0],63,6,91,79,102,109,125,39,127,111 20 FOR I=9 TO 0 STEP -1:OUT[I]:WAIT60:NEXT


Let's make it!

Utilize Data by Everyone! sakura.io board for IchigoJam will release also

2017/04/18 23:55:00
#IchigoJam #IoT #english 

Sakura's IoT Platform beta service became sakura.io released by Sakura Internet.

Utilize Data by Everyone! (from Sakura's slide)
The sakura.io module price is ¥8,000 + ¥60/month!! (with out tax)
LoRa version targets ¥5,000 + ¥20/month or less!!!


3 IchigoJam examples on Sakura's slide
1. capturing and notice system by IchigoJam x sakura.io
2. Real time bus passengers open data system at Sabae
3. Online typing battle system on Kids Venture

We're preparing the board to connect sakura.io and IchigoJam.
I'm looking forward to release!
"さくらインターネット、月額60円から利用できるIoTプラットフォーム「sakura.io」正式提供開始 - クラウド Watch"
IchigoSAKURA IoT car (IoTカー@ja)!?

27 April, you can touch and try sakura.io x IchigoJam in Shinjuku.
"IoTとオープンデータはじめのいっぽ&課題解決型アイデアソン - connpass"

These are new "IchigoJam goods" on SUZURI. (using open data of IchigoJam)

see also
"リスク0から始める商売!5分でできるオリジナルグッズショップ - 欲しいものは、作ればいい「SUZURI」"

Tweet
クリエイティブ・コモンズ・ライセンス
この作品は「Creative Commons — CC BY 4.0」の下に提供されています。
CC BY 福野泰介 - Taisuke Fukuno / @taisukef / high-res profile image