遊ぶエンジニア http://playing-engineer.com/wordpress ハイブリッド起業について(だんだん読むYoutube化してる) Sun, 12 Jan 2020 15:05:33 +0000 ja hourly 1 https://wordpress.org/?v=5.3.2 http://playing-engineer.com/wordpress/wp-content/uploads/2018/09/cropped-IMG_3264-e1536548800332-32x32.jpg 遊ぶエンジニア http://playing-engineer.com/wordpress 32 32 90418083 M5StickCを時計に http://playing-engineer.com/wordpress/2020/01/12/m5stickc%e3%82%92%e6%99%82%e8%a8%88%e3%81%ab/ http://playing-engineer.com/wordpress/2020/01/12/m5stickc%e3%82%92%e6%99%82%e8%a8%88%e3%81%ab/#respond Sun, 12 Jan 2020 14:45:34 +0000 http://playing-engineer.com/wordpress/?p=16856 IoTとか電子工作がにぎやかな今日このごろです。

とはいえ基本的なところから始めると、いろんなことを学ばねばならず結構ハードルは高いです。

しかし電子機器のほうも人に優しい機器が結構出てきています。

私が「これ、イイね!」と思ったのがこれ。

約5センチx2.5センチx1.5センチの小さい箱でディスプレイ、スイッチ、USB端子が目立ちますね。
AmazonなどでM5Stic Cという名前で2,000円ちょっとで売られています。

いい点ははんだ付けやら手を汚さなくて、これとパソコンだけで遊べる点です。

ちょっとこれで遊んでみたいと思います。

概要

中身はあなどれず、

  • 0.96インチ 80×160 TFTディスプレイ
  • USB Type-C
  • ESP32ベースCPU
  • 4 MBフラッシュ+ 520 K RAM
  • 6軸センサー(MPU6886)
  • 赤色LED
  • 赤外線トランスミッタ
  • マイク
  • 2ボタン、1リセット
  • 2.4 G WiFi
  • 80 mAh LiPoバッテリー
  • 拡張可能なソケット
  • Grove用のポート
  • ウェアラブル&ウォールマウントの周辺パーツ
  • 開発プラットフォーム:Arduino利用可能
  • 旧姓 ESP-32 Pico

です。
もちろん、それほど大きな電源をもっているわけではないので、ポケットに入れる時計にする手順を書いてみたいと思います。

Arduinoの開発環境を利用する

環境作成は定型的な仕事なので、知らない人は詳しく書いてくださっているこちらを御覧ください

なお、Mac Catalinaではうまくいきません。
私がやった対策は、
1. CP210 USBドライバーを最新にする
2. G0とGndを直結して強制的にダウンロードモードでリブートする(ケーブルのない人はゼムピンを曲げたり、ホッチキスの針がちょうどG0とGndに届くのでやってみてください)

Windows環境ではあまり問題は起きません。ハードウェアの開発はWindowsをオススメします。
私もこの記事はMacで書いていますが、内容はWindows10でやっています。

時計のソースコード

時計にするソースはこちらを借用しました。
WristWatch_M5
機能の要約は、

  • バッテリーを電源管理IC AXP192で行っているため電力が小さいながら管理可能でディスプレイには残量がでます。
  • 時計なのでできるだけDeep Sleep状態で動きます。
  • スリープ中は10マイクロアンペア未満しか電力を消費しません。
  • アナログ時計です
  • リセットスイッチで起動します。
  • M5_Home_Buttonを押すとSleepします。
  • 起動中は内蔵の加速度計を使用して、腕につけて腕をあげるとスクリーンランプが自動的にオンになります。
  • 腕を下げると、ライトは自動的にオフになります。
  • 動作から10秒なにもしないとオフになります。

ただ、このソースコードは時間を自分でセットすることになっています。
それはイヤなので、ここからWiFiを利用してNTPサーバーから時間をもってくるようにしました。
起動するたびに時間をもってきます。

さらに、自分の名前が出るようにしました。
ソースコード内の日本語だけ変更すれば動作すると思います。
他はいじっていないので、なにか問題があっても自分で解析してくださいね。

#include <M5StickC.h>
#include <WiFi.h>
#include “time.h”

RTC_TimeTypeDef RTC_TimeStruct;
RTC_DateTypeDef RTC_DateStruct;
// WIFI setup
const char* ssid = “あなたのSSID”;
const char* password = “あなたのパスワード”;
const char* ntpServer = “ntp.jst.mfeed.ad.jp”;
const char* myname =”あなたの名前(英数字)”;
uint8_t led_count = 15;
long brightnessTime, tiltTime = 0, tiltTime2 = 0;
float b, c = 0;
int battery = 0;
float accX = 0;
float accY = 0;
float accZ = 0;
#define TFT_GREY 0x5AEB
float sx = 0, sy = 1, mx = 1, my = 0, hx = -1, hy = 0; // Saved H, M, S x & y multipliers
float sdeg = 0, mdeg = 0, hdeg = 0;
uint16_t osx = 120, osy = 120, omx = 120, omy = 120, ohx = 120, ohy = 120; // Saved H, M, S x & y coords
uint16_t x0 = 0, x1 = 0, yy0 = 0, yy1 = 0;
uint32_t targetTime = 0; // for next 1 second timeout
static uint8_t conv2d(const char* p); // Forward declaration needed for IDE 1.6.x
uint8_t hh, mm, ss, YY, MM, DD, dd;
boolean initial = 1;

void setup() {
//COMMENT next line after first upload
M5.begin();
Wire.begin(32, 33);
pinMode(M5_BUTTON_HOME, INPUT);
pinMode(M5_BUTTON_RST, INPUT);
pinMode(M5_BUTTON_HOME, INPUT_PULLUP);
esp_sleep_enable_ext0_wakeup(GPIO_NUM_37, 0); //1 = High, 0 = Low
//COMMENT next 12 lines after first upload
//hh = conv2d(__TIME__), mm = conv2d(__TIME__ + 3), ss = conv2d(__TIME__ + 6); // Get H, M, S from compile time
// Ntp
WiFi.begin(ssid, password);
while(WiFi.status() != WL_CONNECTED){
delay(500);
}
configTime(9*3600, 0, ntpServer);
struct tm timeInfo;
if (getLocalTime(&timeInfo)){
RTC_TimeTypeDef TimeStruct;
TimeStruct.Hours = timeInfo.tm_hour;
TimeStruct.Minutes = timeInfo.tm_min;
TimeStruct.Seconds = timeInfo.tm_sec;
M5.Rtc.SetTime(&TimeStruct);

RTC_DateTypeDef DateStruct;
DateStruct.WeekDay = timeInfo.tm_wday;
DateStruct.Month = timeInfo.tm_mon + 1;
DateStruct.Date = timeInfo.tm_mday;
DateStruct.Year = timeInfo.tm_year + 1900;
M5.Rtc.SetData(&DateStruct);
}
//disconnect wifi
WiFi.disconnect(true);
WiFi.mode(WIFI_OFF);

//COMMENT UPTO HERE
M5.Rtc.GetTime(&RTC_TimeStruct);
hh = RTC_TimeStruct.Hours;
mm = RTC_TimeStruct.Minutes;
ss = RTC_TimeStruct.Seconds;

M5.Rtc.GetData(&RTC_DateStruct);
YY = RTC_DateStruct.Year;
MM = RTC_DateStruct.Month;
DD = RTC_DateStruct.Date;
dd = RTC_DateStruct.WeekDay;
M5.Lcd.setRotation(3);
M5.Lcd.fillScreen(TFT_GREY);

M5.Lcd.setTextColor(TFT_WHITE, TFT_GREY); // Adding a background colour erases previous text automatically

// Draw clock face
M5.Lcd.fillCircle(40, 40, 40, TFT_BLACK);
M5.Lcd.fillCircle(40, 40, 36, TFT_BLACK);

// Draw 12 lines
for (int i = 0; i < 360; i += 30) {
sx = cos((i – 90) * 0.0174532925);
sy = sin((i – 90) * 0.0174532925);
x0 = sx * 38 + 40;
yy0 = sy * 38 + 40;
x1 = sx * 32 + 40;
yy1 = sy * 32 + 40;

M5.Lcd.drawLine(x0, yy0, x1, yy1, TFT_WHITE);
}

// Draw 60 dots
for (int i = 0; i < 360; i += 6) {
sx = cos((i – 90) * 0.0174532925);
sy = sin((i – 90) * 0.0174532925);
x0 = sx * 34 + 40;
yy0 = sy * 34 + 40;
// Draw minute markers
M5.Lcd.drawPixel(x0, yy0, TFT_WHITE);

// Draw main quadrant dots
if (i == 0 || i == 180) M5.Lcd.fillCircle(x0, yy0, 2, TFT_WHITE);
if (i == 90 || i == 270) M5.Lcd.fillCircle(x0, yy0, 2, TFT_WHITE);
}
M5.Lcd.fillCircle(40, 40, 2, TFT_WHITE);
M5.Lcd.drawCentreString(myname, 120, 260, 2);
targetTime = millis() + 1000;
M5.Axp.ScreenBreath(9);
M5.MPU6886.Init();
}

void brightnessT() {
M5.MPU6886.getAccelData(&accX, &accY, &accZ);
accX *= 1000;
accY *= 1000;
if ((accX < (0 – 200) && (accX > -900)) && ((accY > 0 – 300) && (accY < 300)))
{
if (millis() > (tiltTime + 500)) {
M5.Axp.ScreenBreath(12);
brightnessTime = millis();
// while (accX < (0 – 500) && ((accY > 0) && (accY < 100)));
}
}
else
tiltTime = millis();
if (brightnessTime < millis() – 2000)
{
M5.Axp.ScreenBreath(7);
brightnessTime = 0;
}
}

void wristWatch() {
if (targetTime < millis()) {
targetTime += 1000;
ss++; // Advance second
if (ss == 60) {
ss = 0;
mm++; // Advance minute
if (mm > 59) {
mm = 0;
hh++; // Advance hour
if (hh > 23) {
hh = 0;
}
}
}
// Pre-compute hand degrees, x & y coords for a fast screen update
sdeg = ss * 6; // 0-59 -> 0-354
mdeg = mm * 6 + sdeg * 0.01666667; // 0-59 -> 0-360 – includes seconds
hdeg = hh * 30 + mdeg * 0.0833333; // 0-11 -> 0-360 – includes minutes and seconds
hx = cos((hdeg – 90) * 0.0174532925);
hy = sin((hdeg – 90) * 0.0174532925);
mx = cos((mdeg – 90) * 0.0174532925);
my = sin((mdeg – 90) * 0.0174532925);
sx = cos((sdeg – 90) * 0.0174532925);
sy = sin((sdeg – 90) * 0.0174532925);

if (ss == 0 || initial) {
initial = 0;
// Erase hour and minute hand positions every minute
M5.Lcd.drawLine(ohx, ohy, 40, 40, TFT_BLACK);
ohx = hx * 15 + 40;
ohy = hy * 15 + 40;
M5.Lcd.drawLine(omx, omy, 40, 40, TFT_BLACK);
omx = mx * 20 + 40;
omy = my * 20 + 40;
}
// Redraw new hand positions, hour and minute hands not erased here to avoid flicker
M5.Lcd.drawLine(osx, osy, 40, 40, TFT_BLACK);
osx = sx * 25 + 40;
osy = sy * 25 + 40;
M5.Lcd.drawLine(osx, osy, 40, 40, TFT_RED);
M5.Lcd.drawLine(ohx, ohy, 40, 40, TFT_WHITE);
M5.Lcd.drawLine(omx, omy, 40, 40, TFT_WHITE);
M5.Lcd.drawLine(osx, osy, 40, 40, TFT_RED);
M5.Lcd.fillCircle(40, 40, 2, TFT_RED);
}
dd = RTC_DateStruct.WeekDay;
weekDay();
Date();
}

void weekDay() {
M5.Lcd.setCursor(110, 12, 2);
M5.Lcd.setTextColor(WHITE, TFT_GREY);
// M5.Lcd.print(dd);
static const char *wd[7] = {“Sun”,”Mon”,”Tue”,”Wed”,”Thr”,”Fri”,”Sat”};
M5.Lcd.print(wd[dd]);
}

void Date() {
M5.Lcd.setCursor(110, 26, 2);
M5.Lcd.setTextColor(WHITE, TFT_GREY);
M5.Lcd.print(MM);
M5.Lcd.print(‘/’);
M5.Lcd.print(DD);
}

void batteryLevel() {
M5.Lcd.setCursor(110, 3, 1);
c = M5.Axp.GetVapsData() * 1.4 / 1000;
b = M5.Axp.GetVbatData() * 1.1 / 1000;
// M5.Lcd.print(b);
battery = ((b – 3.0) / 1.2) * 100;
if (c >= 4.5) {
M5.Lcd.setTextColor(TFT_YELLOW, TFT_GREY);
M5.Lcd.print(“CHG:”);
}
else {
M5.Lcd.setTextColor(TFT_GREEN, TFT_GREY);
M5.Lcd.print(“BAT:”);
}
if (battery > 100)
battery = 100;
else if (battery < 100 && battery > 9)
M5.Lcd.print(” “);
else if (battery < 9)
M5.Lcd.print(” “);
if (battery < 10)
M5.Axp.DeepSleep();
if (digitalRead(M5_BUTTON_HOME) == LOW) {
while (digitalRead(M5_BUTTON_HOME) == LOW);
M5.Axp.DeepSleep(SLEEP_SEC(1));
}
M5.Lcd.print(battery);
M5.Lcd.print(“%”);
}

void batterySaver() {
M5.MPU6886.getAccelData(&accX, &accY, &accZ);
accX *= 1000;
accY *= 1000;
if (!((accX < (0 – 200) && (accX > -900)) && ((accY > 0 – 300) && (accY < 300))))
{
if (millis() > (tiltTime2 + 10000)) {
M5.Axp.DeepSleep();
// while (accX < (0 – 500) && ((accY > 0) && (accY < 100)));
}
}
else
tiltTime2 = millis();
}
void loop() {
brightnessT();
wristWatch();
batteryLevel();
batterySaver();
}

static uint8_t conv2d(const char* p) {
uint8_t v = 0;
if (‘0’ <= *p && *p <= ‘9’)
v = *p – ‘0’;
return 10 * v + *++p – ‘0’;
}

以上です。

]]>
http://playing-engineer.com/wordpress/2020/01/12/m5stickc%e3%82%92%e6%99%82%e8%a8%88%e3%81%ab/feed/ 0 16856
CNCマシンキット(4) http://playing-engineer.com/wordpress/2020/01/08/cnc%e3%83%9e%e3%82%b7%e3%83%b3%e3%82%ad%e3%83%83%e3%83%884/ http://playing-engineer.com/wordpress/2020/01/08/cnc%e3%83%9e%e3%82%b7%e3%83%b3%e3%82%ad%e3%83%83%e3%83%884/#respond Wed, 08 Jan 2020 14:13:02 +0000 http://playing-engineer.com/wordpress/?p=16833 さて、やってみたのですが、トラブルなのか自分の無知なのかわからぬまま、数日、試行錯誤しました。

いくつかわかった点があります。

  • Fusion360で工具の定義をしますが、きっちり工具特性を入れないと正しいGコードは出ない。
    私の場合、直径はあわせて長いエンドミルを適当に選んで作ったら、空中で切削加工がはじまってしまいました。
  • Fusion360が作り出すGコードに意味不明なもの(おそらくマシンがサポートしていない)があるけれども、無視して進んでOK
  • マシンのX軸、Y軸も設定に苦労するので、冶具が必要(後述)
  • ケースの追加加工の場合、Gコードのいくつか(リキャリブレーションなど)は省く必要がある。()で囲うとその命令は行われない。
  • やはりプラスチックケースを切削するにはスピンドルの回転が早すぎです。8300rpmを3000回転程度に下げるべき。電動ドリルってだいたい3000回転くらいなんですよ。
    grblはPWMでスピンドルコントロールできるって書いてあるので試します。M3S1000で100%, M3S0で0%らしい。
    どちらにしても回転計がいるので発注。

発注したデジタルタコメーターで測るとM3S1000で8800回転くらい。M3S130で3000回転くらいです。
Sのパラメーターを回転数と理解するのか、PWMの%と理解するかは機器によるようです。

grbl1.1は2017年にリリースされたのですが、ネット上ではgrbl 0.9と情報が混ざっていてつらい。
Gコードについてアテになるところは

 

切削は0.01mmの精度で可能です。できるだけ切削物のX,Y軸が正確になるようにするために、分度器を使ってこのような冶具を作りました。

動きの変なところもあるので、Fusion360が出力したGコードの解析をしてみます。
エンドミルをはじめに置いた場所で動きが変わる理由が知りたいのです。

コマンド 意味
G90 G94 絶対座標 フィードの単位が毎分送り
G17 作業はXY平面
G21 作業単位がミリ
G28 G91 Z0 予め設定していた場所を相対座標でZ0へ移動(リミットスイッチが前提なので”G0 Z20″に変更)
G90 絶対座標系 G28コマンドを出すと置かれるようだ
T2 M6 ツールチェンジコマンドなので不要(取り除く)
S800 M3 ミル回転開始。Sは1000比率。ここでは800/1000少し早いか。
G54 加工用の座標系?
M8 クーラントコマンドらしい。無視
G0 X17.344 Y3.44 位置決め
Z25.2 Zはレーザー用コマンドです
Z20.2 Zはレーザー用コマンドです
Z7.8 Zはレーザー用コマンドです
G1 Z7.5 F720 フィード指定による移動。F値による
X17 342 Y3.432 Z7.433
略————- 略————-
G0 Z25.2 位置決め
M9 クーラント停止(除く)
G28 G91 Z0 あらかじめ設定していた位置へ(ホームがない場合除く)
G90 絶対座標系 G28コマンドを出すと置かれるようだ(除く)
G28 G91 X0 Y0 あらかじめ設定していた位置へ(ホームがない場合除く)
G90 絶対座標系 G28コマンドを出すと置かれるようだ(除く)
M5 スピンドル停止
M30 プログラム終了

最初と最後の部分について、ある程度は手作業で変更ですかねー。

]]>
http://playing-engineer.com/wordpress/2020/01/08/cnc%e3%83%9e%e3%82%b7%e3%83%b3%e3%82%ad%e3%83%83%e3%83%884/feed/ 0 16833
MacでUSBメモリーが認識されない時に http://playing-engineer.com/wordpress/2020/01/05/mac%e3%81%a7usb%e3%83%a1%e3%83%a2%e3%83%aa%e3%83%bc%e3%81%8c%e8%aa%8d%e8%ad%98%e3%81%95%e3%82%8c%e3%81%aa%e3%81%84%e6%99%82%e3%81%ab/ http://playing-engineer.com/wordpress/2020/01/05/mac%e3%81%a7usb%e3%83%a1%e3%83%a2%e3%83%aa%e3%83%bc%e3%81%8c%e8%aa%8d%e8%ad%98%e3%81%95%e3%82%8c%e3%81%aa%e3%81%84%e6%99%82%e3%81%ab/#respond Sun, 05 Jan 2020 09:06:26 +0000 http://playing-engineer.com/wordpress/?p=16828 巷では、次のようなことが推奨されているようです。

  • Macを再起動しろ
  • Finderで「外部ディスク」にチェックは入っているか
  • USBを全部抜いてみろ

あいかわらず巷の一般論はいい加減だな、と思います。
これじゃほとんど解決しない。

もしWindowsやLinuxマシンを持っているのであれば、そこに指してみるべき。
で動いたら、おそらくフォーマットがおかしいのです。

こちらをご覧ください。WindowsもMax OSXもSDカードフォーマッターはいい加減なんですよ。

WindowsもMacもこのユーティリティはセットしておいたほうがいいです。
SDカードがおかしい時には上に書いた巷の対処法より、よほど問題を解決する可能性が高いです。

]]>
http://playing-engineer.com/wordpress/2020/01/05/mac%e3%81%a7usb%e3%83%a1%e3%83%a2%e3%83%aa%e3%83%bc%e3%81%8c%e8%aa%8d%e8%ad%98%e3%81%95%e3%82%8c%e3%81%aa%e3%81%84%e6%99%82%e3%81%ab/feed/ 0 16828
CNCマシンキット(3) http://playing-engineer.com/wordpress/2020/01/02/cnc%e3%83%9e%e3%82%b7%e3%83%b3%e3%82%ad%e3%83%83%e3%83%883/ http://playing-engineer.com/wordpress/2020/01/02/cnc%e3%83%9e%e3%82%b7%e3%83%b3%e3%82%ad%e3%83%83%e3%83%883/#respond Thu, 02 Jan 2020 12:23:41 +0000 http://playing-engineer.com/wordpress/?p=16813 2020年初の投稿です。

2019年末に株式会社VOSTが主催する「CNC入門セミナー」に出てきました。
Fusion 360でモデルを作り、CAMを使ってG-Codeを出力し、CNCミリングマシンを動かすところまで2日間でやりました。

Fusion 360は一ヶ月無料、営利を目的としないなら1年無料、教育用だと無料などかなり無料で試すチャンスがあります。
(調子にのって、WindowsとMacで同時に使おうとしたらダメでしたが。。。)

私は造形をしたいわけではなく、プラケースの加工です。
そういう時でも一旦、らしい形を作って加工したい場所をモデリングします。

ケースのモデリングは単純なので、「Fusion 360 マスターズガイド」の最初の例を見ながらでできました。

そこから「製造」でCAMに入るのですが、セミナー受けていて本当によかったです。「Fusion360操作ガイド CAM」も購入していたのですが、これが最初からドローンを作ろうとか難易度が高すぎて意味がよくわかりませんでした。
このセミナーの教科書は本と同じ著者が作っています。本でいえば、最後に載っているタイヤの例からセミナーは始まりました。

私にとって大事なことはたくさんありました。忘備録的に書いておきます。

  • モデルに与えるX軸、Y軸、Z軸がそのままCNCマシンの軸となります。
  • すべての軸はCNCでは相対です。モデルのどこを原点とするかで決まります。通常はモデルの中心の底面が(0,0,0)のようです。
    しかし私はケース加工なので、切削するところの近くにX,Y,Zを置きました。
  • 切削する計画ごとに「負荷制御」を作るようにセミナーでは習いましたが、ほんのちょっと切るならば2D面加工でよかったようです。かように切削の単位でパターンを選びます。
  • X軸、Y軸は切削するものをテーブルに固定して、Fusion 360で設定したところを原点とします。
  • Z軸は工具の取り付けで高さが変わり、厳密に図る必要があります。
  • 私のもっている機械はおよそ8300回転で固定ですが、15000回転から可変できるスピンドルモーターがほしいところです。(レーザーは汎用性に欠けるので使いません。)
  • 本格的に切削するには機器を閉じ込めるケースが必須。削ったものが飛び散るし、うるさい。
  • ささいですが、エンドミルの固定具(コレット)の取り付け方も学びました。
  • 材料によりスピンドルの回転数と、材料の送り速度の決定が重要です。早すぎるとエンドミル(刃先)が折れます。遅いと時間がかかります。
  • 負荷制御で切削した後、ボールミルで等高線、走査線で削るとスムースな仕上がりになる。
  • 木よりMDF(こちらで販売されています

だいたい以上くらいかな。

しかし実際に家でやる場合、マシンのタイプでいろいろと違いが出ます。

例えばセミナーで使ったCNCマシンはZ軸の0を決めるツールがついていましたが、ウチにある中華製マシンにはついていません。

Fusion360はさまざまなマシンにあったGコードを生成してくれます。
中にgrblもありました。

ウチの中華製マシンはgrblを理解して動作します。調べるとGRBLはZ軸設定をサポートしています。

調整の話の前にGRBLをコントロールするパソコンのソフトをずいぶん調べました。
あくまでも個人的な感想なのですが、わかりやすいのはgrbl Controller 3.6でした。スピンドルがボタンを押しても動きません。Feedの数値が最初はセットされない、値の指定がうまくいかないなどのバグがあります。更新が止まっているようなので治らないようです。
他にもCandleも有名でフライスの軌跡が出るのですが、コマンドを手作業で出す方法がわかりませんでした。Fusion 360はシミュレーションできるしね。
bCNCはPython前提なので、私としてはない。
JavaでできたUniversal Gcode Senderもいまいちユーザーインターフェースがわかりにくかった。
というわけで私のおすすめはGrbl Panel画面がgrble controllerに似ていて使いやすいし、Visual Basicで書かれているのでソースもわかりやすそうです。

さて、手動でコマンドを入れることができたとします。
Z軸を測定するためにはこのような道具を使います。

赤いミノムシクリップからの線と、下に置いた金属台からの線がA5に配線されます。
GRBLの仕様でセンサーポートは決まっています。

じんわりz軸をおろし、金属台に触れるとそこを一旦、ゼロとします。
あとは、台の高さを投入すればその高さ分、マイナスの位置にあるということです。

手動のコマンド部分に次のコードを書きます。

G38.2 Z-15 F20

G38.2というのがZ軸を自動測定するコマンドです。
Z-15とはZ軸を現在の位置から-15mmまで接触ポイントを探る、という意味です。
F20は20mm/minという速度指定です。

ゆっくり下ろすと台と金属のエンドミルがショートします。その瞬間、下降は止まりますからエンドミルの先端の位置がわかるというわけです。

さらに

G92 Z20

などというようにいれます。
このZ20は金属台の高さです。
そうすると、金属台を置いた台がz軸の0となります。

エンドミルを上に上げるためには、

G91 G0 Z10

ここでZ10は10mmだけZ軸をあげるということです。
このことからもわかるように、モデルを作成する場合、モデルの底面をZ軸の0としたほうがわかりやすいのです。

私はこういうものを作りました。

四角い金属は20mmの真鍮の立方体です。ホームセンターで買いました。
そこにバナナプラグ用の4mmの穴をあけました。金属加工はめったにやらないのですが、これはうまくいきました。
購入した直後にノギスで測ると19.94mm四方だったのですが、中心にボール盤で穴をあけると20.12mmになりました。
精密な世界っておもしろいですね。

バナナプラグで電線の導通をとっています。

電源を入れるたびに、X軸、Y軸、Z軸の設定は必要なのでマクロにできるならしておいたほうがいいようです。

なお、Z軸の自動検知機能はgrbl0.9ではまともに動きませんでした。1.1では動作しました。
マシンについていたボードが剥き出しで、0.9だったので気に入らず、新たにこういうのを買ってみました。
ファームを書き換えることができないわけじゃなく、コントローラーボードが一枚しかなかったのが不安なんです。ちょっとしたことで飛びそうだもん。
新しいボードはモータードライブICにクーラーフィンとファンまでついてます。
プラグは互換性がありました。

これでCNCを動かす準備ができた、かな?

]]>
http://playing-engineer.com/wordpress/2020/01/02/cnc%e3%83%9e%e3%82%b7%e3%83%b3%e3%82%ad%e3%83%83%e3%83%883/feed/ 0 16813
他者を思いやること http://playing-engineer.com/wordpress/2019/12/27/%e4%bb%96%e8%80%85%e3%82%92%e6%80%9d%e3%81%84%e3%82%84%e3%82%8b%e3%81%93%e3%81%a8/ http://playing-engineer.com/wordpress/2019/12/27/%e4%bb%96%e8%80%85%e3%82%92%e6%80%9d%e3%81%84%e3%82%84%e3%82%8b%e3%81%93%e3%81%a8/#respond Fri, 27 Dec 2019 10:04:05 +0000 http://playing-engineer.com/wordpress/?p=16808 先日、駅前のスーパーで若者にいきなり「おっさん!」呼ばわりをされ、言いがかりをつけられました。
ここ何十年もそういうケンカから遠ざかっていた私はあっけにとられているばかりでした。
理由はわかっていて、彼が駅のエレベーターのボタンを壊れんばかりに叩いているのを見て顔をしかめたからなんです。
で、言いがかり。

しかし起きる現象の意味を考える私は、彼がとても気の毒になりました。

いかにも派遣帰りで3000円くらいのリュックを背負い、1000円カットであろうグサグサなヘアで不健康に太った彼と私は、仕事や人脈で交差することはありえません。

彼のストレスの発散は他人への言いがかりでしか晴らせないのでしょう。

こういうことの起きる理由はわかります。
日本は「知らない人には冷たく、なにをしてもいい」と考えている国です。

例えば

イギリスのチャリティー団体Charities Aid Foundation(CAF)が、人助け、寄付、ボランティアの3項目についての評価を各国別にまとめて発表する世界寄付指数(World Giving Index)。その2018年の調査では日本は144カ国中、128位だった。項目別でみると、

●Helping a stranger(他人を助けたか)が142位!!(つまり下から3番目)
●Donating money(寄付をしたか)が99位
●Volunteering time(ボランティアをしたか)が56位

恐ろしいぐらいに他人に無関心で、冷淡な国民ということになる。

他人の失敗に対するすさまじいネット上のバッシングや渦巻く自己責任論。母親が子供を乗せたベビーカーを一人で持ち、階段を上がっているのに、手を差しのべない人々。お年寄りが目の前に立っていても、スマホに気を取られ、お構いなしに座っている人。もしくは、手を差しのべる人に対して、「余計なお世話」とキレる人……。ことほどさように、日々、ギスギスとした世知辛い話題に満ちあふれ、潤滑油が必要な古い機械のように世の中全体が悲鳴を上げている。

(東大祝辞の核心「日本は世界一冷たい国」より引用)

これを読んでいる人はどうですか?知らない人に冷たくしていませんか?

この問題は難しいのです。ビジネスとは相容れない要素がたくさんあります。
今はボランティア財団で有名なビル・ゲイツだってマイクロソフトの経営者時代はかなり悪辣なことをやっています。

人に優しくあることはバランスなのです。
ビジネスはビジネス。周囲の人とは知っていても知らなくてもあなたを映す鏡。
優しくある人を「偽善だ」とバッシングする人は自分が偽善者なんでしょう。
その気持があるから他人の中に偽善を見るのです。
どういう動機があっても人助けは人助けです。
なにもしないで批判するだけの人間よりは、はるかにマシです。

私も、せめてと時々は寄付をしているがやはり満足いくほどできていませんね。

なぜ他人に優しくなければならないのかというと、先日、日本を訪問してくれたローマ教皇がクリアに説明してくれています。

自分たちに聞いてみよう。「私にとって、最悪な貧困とは何か?」「最もいい貧困とは何か?」もし、私たちが正直であるならば、わかるはずだ。最悪な貧困とは孤独であり、愛されていないという感覚であると。この精神的貧困に立ち向かうのは、私たちに求められる責務である。そして、そこに、若い人が果たすべき役割がある。私たちの選択肢、優先順位についての考え方を変えていく必要があるからだ。

それはつまり、私たちにとって最も大切なことは、何を持っているか、何を得られるか、ではなく、誰と(人生を)共有できるかということなのだということに気づくことだ。「何のために生きるのか」ではなく、「誰のために生きるのか」にフォーカスすべきなのだ。自分に問いなさい。「私は何のために生きるのか」ではなく、「誰のために生きるのか」「私は誰と人生を共有するのか」を。

(ローマ教皇が「ゾンビの国・日本」に送った言葉より引用)

俺のほうが頭がいいとばかりに表面的に即座に反論せず、賢者の意見は聞いてよくよく考えたほうがいいです。

世界で最も貧しい大統領で知られたウルグアイのホセ・ムヒカは2012年6月の国連での演説の最後にこう言いました。

発展は幸せの邪魔をしてはならない。
発展は「人類の幸せ」「愛」「子育て」「友達を持つこと」
そして「必要最低限のもので満足する」ためにあるべきものなんです。

なぜなら、それらこそが一番大事な宝物なのだから。
環境のために闘うのなら一番大切なのは、人類の幸せであることを忘れてはなりません。

ホセ・ムヒカはかつては革命運動の戦士でした。彼が人生をかけて考え抜いた結論が、「人の幸せとはなにか」です。

彼は金銭を得る労働のための時間が長くなることをとても嫌っています。

私達は日々、反応する人生を送っており、自分の人生の価値に気づいていません。
もちろん、自分を幸せにすることは大事です。

が、その幸せとはなんでしょうか?

年末、年始に時間があれば考えてみませんか。

その考えが私やあなたの人生を導くのですから。

]]>
http://playing-engineer.com/wordpress/2019/12/27/%e4%bb%96%e8%80%85%e3%82%92%e6%80%9d%e3%81%84%e3%82%84%e3%82%8b%e3%81%93%e3%81%a8/feed/ 0 16808
CNCマシンキット(2) http://playing-engineer.com/wordpress/2019/12/21/cnc%e3%83%9e%e3%82%b7%e3%83%b3%e3%82%ad%e3%83%83%e3%83%882/ http://playing-engineer.com/wordpress/2019/12/21/cnc%e3%83%9e%e3%82%b7%e3%83%b3%e3%82%ad%e3%83%83%e3%83%882/#comments Fri, 20 Dec 2019 15:21:17 +0000 http://playing-engineer.com/wordpress/?p=16801 昨日到着しました。

結構重いし、かさばるのでさっさと組み立てることにしました。

組み立て方はYoutubeと

このウェブサイト中華CNCを参考にはさせていただきましたが、私が入手したモデルは最新のようでネジの構成がかなり単純化されていました。

めっちゃ頑丈。ベースの筐体としてはいいんじゃないでしょうか?そんなにCNCのこと知らない初心者だけど。

あまり組み立てで困ったことはないのですが、コントロール基盤のネジと固定ラックのサイズがまるであわず、写真のように下の二箇所だけで固定しています。人によってはケースに入れたりしているようです。
どうするかはまだ考え中。

それより難儀したのは、ソフトウェアです。

ソフトのアップグレードはよくわかりません。

パソコンからのコントロールソフトはGrbl Controlerを使うようです。

で、このGrbl Controlerが更新が止まっている。ここから3.6.1をダウンロードしました。

でUSBで繋いだら、動いたんだけど動く方向が反対。あれぇ?

いろいろ調べたらGコードで次のようなコマンドを出してx軸、y軸、z軸を設定すればいいらしい。
$3  dir port invert mask:00000000

設定する値は、各ビットがそれぞれの軸に対応します。

Value Mask Invert X Invert Y Invert Z
0 00000000 N N N
1 00000001 Y N N
2 00000010 N Y N
3 00000011 Y Y N
4 00000100 N N Y
5 00000101 Y N Y
6 00000110 N Y Y
7 00000111 Y Y Y

私はX軸とZ軸を反転させたかったので、

$3=2

でした。

*使っていてわかったのですが、いったん$3=0でリセットしてみてから、どの軸を逆転するか見てみたほうがいいです。

コントローラーはこんな感じ。

これArduinoのなんになるんだろ?WoodPeckerは古いようだ。交換の可能性もあるなぁ。

今日はここまで。

]]>
http://playing-engineer.com/wordpress/2019/12/21/cnc%e3%83%9e%e3%82%b7%e3%83%b3%e3%82%ad%e3%83%83%e3%83%882/feed/ 2 16801
起業するなら最初からトップ狙い http://playing-engineer.com/wordpress/2019/12/17/%e8%b5%b7%e6%a5%ad%e3%81%99%e3%82%8b%e3%81%aa%e3%82%89%e6%9c%80%e5%88%9d%e3%81%8b%e3%82%89%e3%83%88%e3%83%83%e3%83%97%e7%8b%99%e3%81%84/ http://playing-engineer.com/wordpress/2019/12/17/%e8%b5%b7%e6%a5%ad%e3%81%99%e3%82%8b%e3%81%aa%e3%82%89%e6%9c%80%e5%88%9d%e3%81%8b%e3%82%89%e3%83%88%e3%83%83%e3%83%97%e7%8b%99%e3%81%84/#respond Tue, 17 Dec 2019 06:22:04 +0000 http://playing-engineer.com/wordpress/?p=16796 いつも書いていますが、なにか自分がお客さんより知っている、マニアであることが起業のネタとなります。

なぜならば、お客さんを超えた目線が「なにがいいのか」「お客がまだ気づいていない問題の解決」などを作り出し、お客さんに「いいね!」と言ってもらえるからです。

これがなにを意味しているかというと「高利益率のビジネス」を最初から想定しているということです。

今までいろんな起業する人を見てきました。
失敗する人、組織には共通点があって、このコアスキルに自信がないんです。

だから「走りながら勉強します」とかふざけたことを言います。
そしてターゲットの顧客が「中小企業」と言うんです。大企業とは言わない。
自信がないんです。

中小企業を相手にする商売って、私はやりません。

なぜならば、例外はもちろんありますが、一般的にはカネ持ってないです。

そしてカネ持っていない人、組織ほど払った相手にタダ働きさせたがります。
(それが儲からない理由なんですけど、中小企業の経営者はわかっていません)

表題に掲げた本の「地味な起業」は理屈ではありそうですが、実際はほとんど市場がありません。

カネもってない中小零細企業は、かんたんなことはなんとか無料でやらせるか自社内でやるのです。

とことんまで買い叩かれます。誰も感謝なんぞしません。

おわかりでしょうか?

ここから必然的にわかることがあります。

Amazonで売れ筋を中国から転売する、中小企業のおこぼれの雑事をやる、というのは誰もがやれそうだというイメージがありますし、実際にカンタンです。

だから競争者が大量にいることに気づいてください。

競争者がいれば値段は下がります。当たり前ですね。

表題にあげた「地味な起業で食っていく」ことはできません。
この本は本当に素人を地獄の一丁目に引きずり込む、トンデモナイ本です。

読んでいて腹がたちました。

信じてやると、ほとんど寝ずに働きまくって、かつかつ年収150万円とかになりかねません。
派遣やったほうがマシ。

似たようなタイトルで「しょぼい起業で食っていく」というのがあります。

この本はぜんぜん違うことを言っています。

今、日本の社会は「社会」が崩壊しています。

地域ではほとんどの人が他人で繋がりがありません。
私は船橋に20年くらい住んでいますが、家族経由以外の知り合いはいません。

家庭内も崩壊していて、各人が勝手に生きているような家庭も多くあります。

だからインターネットに頼らずに地域社会を物理的に作り出したら勝ちだという、すごいアイデアの本です。

この本のような実例を知っています。
私の知り合いは四国の僻地で生まれてはじめてレストランを開業しました。
その地域はそれまでレストランがなく、新聞に載ったほどです。
そうすると、そのレストランはみんなが集まる場所になっています。
お年寄りだって公民館で茶飲んでせんべいかじるより、もう少し贅沢したいのです。

客単価は東京並みです。
でもお客さんは文化を感じたいのか、引きも切らないようです。

ビジネスとは規模が小さいほど、最初から高付加価値を狙うべきで、
牛丼一杯400円のビジネスは大企業だからこそ、できることなのです。

自信がないから単価を下げて、お客は中小企業というのであるならば、そのビジネス計画は見直す必要があります。

 

]]>
http://playing-engineer.com/wordpress/2019/12/17/%e8%b5%b7%e6%a5%ad%e3%81%99%e3%82%8b%e3%81%aa%e3%82%89%e6%9c%80%e5%88%9d%e3%81%8b%e3%82%89%e3%83%88%e3%83%83%e3%83%97%e7%8b%99%e3%81%84/feed/ 0 16796
CNCマシンキット(1) http://playing-engineer.com/wordpress/2019/12/11/cnc%e3%83%9e%e3%82%b7%e3%83%b3%e3%82%ad%e3%83%83%e3%83%881/ http://playing-engineer.com/wordpress/2019/12/11/cnc%e3%83%9e%e3%82%b7%e3%83%b3%e3%82%ad%e3%83%83%e3%83%881/#respond Wed, 11 Dec 2019 05:30:12 +0000 http://playing-engineer.com/wordpress/?p=16776 ボール盤をフライス盤に仕立てるべく、精密テーブルを取り付けてよろこんでいたのもつかの間。
Z軸の作業が必要となりました。

もう人手でコントロールできません。

ボール盤にステッピングモーターを取り付けてCNC化なんてやっている人もいますが、たぶん0.01mmの移動精度は出ないと思います。
一般的にフライス盤などのテーブルを動かすためにはステッピングモーターでネジを回して移動させます。このとき、ネジにはわずかに遊びが必要です。それがなければ回転できません。
で、その遊びがそのまま精度を引き下げます。
しかも取り付ける金具は販売されていませんから、全部自作。
もうCNCフライス盤を作ることが目的になってしまうし、失敗もするでしょうからお金もかかる。

なのでCNCマシンを買うことにしました。

オリジナルマインドの完成品がほしいですが、20万円もするので止めました。
3Dプリンター組み立てて、フライス盤組み立てたのでなんとかなるだろうと楽観的に考えています。

とはいえ機種はたくさんあって、選定はメチャクチャ悩みます。
いろいろ見ていて自分で条件を作りました。

  • 筐体がプラスチックは無理。絶対に金属フレーム
  • レーザーはいらない
  • 手で回せるノブがついていること
  • 金属加工は考えない(やったことない)
  • 20センチ程度までのサイズが対象

中華製のCNCはたいていCNCxxyyという名称で、xxとyyが作業スペースのようです。
でもオールメタルのキットは少なく必然的にCNC1419となりました。
Amazonでもよかったのですが、一万円くらい違うのでのんびりAliexpressから輸入することにしました。

FEDEXの送料込みで34,701円です。

届くまでCNCマシンの研究をします。

こんな本や

こんなウェブサイト
ママさん設計者がやさしく教える「CNCフライス超入門」

で勉強しまーす。

きっと最初に作るものは3Dプリンター用フィラメント台になると思います。

さて、CNCマシンを使うためのソフトはほとんどがWindowsです。
Macはあきらめましょう。できなくはないでしょうけれども、目的はMacを使うことじゃなく、CNCマシンを使うことですから大勢に乗ったほうが余計な苦労をしなくてすみます。

CADですが、Fusion360が絶賛されています。(Mac版もあるようだ)
同時にFusion360はCAMソフトをもっています。
Fusion360の非商用ライセンスはアカウント作ってログインすると英語サイトになります。
そこで、Free版を選ばない限り延々とメニューがループします。

3Dプリンターの場合はできあがったstlファイルを「スライサー」というソフトに食わせます。出力は3Dプリンターを動かすコマンド群です。機種によって違うものでした。

CNCフライスの場合はCAMソフトと呼ばれるプログラムで機器を動かす抽象的なコマンド群(ツールパス)に変換します。そのコードをG-コードに変換し、コントローラーが読んで機器を制御します。

CNCフライスをキットから組み立てる場合、Arduinoベースのコントローラーがポピュラーで通称WoodPeckerと呼ばれています。このボードにモーターの配線をつなぎこむのです。
そこにのせるソフトウェアはgrblがあります。コントロールするパソコンソフトとしてcandleがあるようです。

3Dプリンターは絶対(0,0,0)のポイントをテーブルの端に置きます。
それはマイクロスイッチでアームが届いたことで設定されるのが普通です。

しかしCNCフライスの場合は、テーブル上のどこかを(0,0,0)に設定します。
そのためマイクロスイッチのセンサーはオプションとなります。

積層する3Dプリンターと削るCNCフライスは考え方が微妙に違っていておもしろいです。

ちなみに機器にパソコンをつなぎ放しにするのは不安(たとえばいきなりWindowsアップデートが始まったり、余計なことして信号の送出が止まったら目もあてられない)なので、オフラインコントローラーを買いました。

これは安いのでわざわざ輸入することもないでしょう。
オフラインコントローラーにメモリーカードを差し込んで運用したいと思います。

]]>
http://playing-engineer.com/wordpress/2019/12/11/cnc%e3%83%9e%e3%82%b7%e3%83%b3%e3%82%ad%e3%83%83%e3%83%881/feed/ 0 16776
令和時代の中小企業のIT環境(経営者向け) http://playing-engineer.com/wordpress/2019/12/03/%e4%bb%a4%e5%92%8c%e6%99%82%e4%bb%a3%e3%81%ae%e4%b8%ad%e5%b0%8f%e4%bc%81%e6%a5%ad%e3%81%aeit%e7%92%b0%e5%a2%83/ http://playing-engineer.com/wordpress/2019/12/03/%e4%bb%a4%e5%92%8c%e6%99%82%e4%bb%a3%e3%81%ae%e4%b8%ad%e5%b0%8f%e4%bc%81%e6%a5%ad%e3%81%aeit%e7%92%b0%e5%a2%83/#respond Tue, 03 Dec 2019 08:22:43 +0000 http://playing-engineer.com/wordpress/?p=16755 ITの技術について私自身が30年以上、IT産業でエンジニアをやっていてIT技術の進歩と共に時間をかけて学んでいるので、あまり不便を感じることはありません。

しかし巷で企業をやっている経営者の方はITの活用についてはいつも悩んでいると思います。
私の経験から、現在のベストエフォートを書いておきます。
はっきり言って中小企業にCIOなんぞいらない時代となりました。

私の経験からなので、すべてに通用するとはまったく思っていないことをあらかじめお断りしておきます。

総合ITベンダーに依頼しない

いわゆるSI、サービスや機材を販売している企業は「お客の経営課題」とか「お客によりそう」とか言いますが、嘘です。
どの会社も自社が扱う製品の年間目標があり、それについてあーだこーだと理屈をつけ、お客の不勉強を利用して売り込んでいるにすぎません。そもそも経営なんぞしたこともないサラリーマンがなぜのうのうと経営課題などとほざくのでしょうか。

そして現場の自称「SE(エスイー)」と称する人間は驚くほど無知です。
たいていがベンダーの下請け会社からの派遣です。問い詰めればわかります。
専門家の証明でもなんでもないNTTコムのITパスポート試験とかシスアドなんていう恥ずかしい試験のパスを売り物にしてしまう体たらくです。
最近のデバイス、iPhoneやAndroidについては何も知らないでしょう。これらはそういう業者をとおさないソフトウェア流通ですから。
そんなアマチュアにお金を払ってはいけません。

つまり、いわゆる総合ベンダーはあなたの会社に最適な提案をするほどものを知らないし、まともなスキルのもとにサービスを売っているわけでもなんでもないです。あなたの会社の無知を利用してお金を稼いでいるにすぎません。

少し話が脱線しますが、コンピューターのハードウェアの計算機構には十進演算と浮動小数点演算があります。十進演算は基本的に桁落ちしません。
しかし浮動小数点演算は2進数で計算するので桁落ちします。100億円単位の金額計算は十進演算で行わねばならないというのは、コンピューターの入門編なのですが、知らない自称エンジニアは大量にいて、桁落ちするとソフトウェアベンダーに文句を言うことしか知らないのがIT業界です。

ほとんど何も知らないのに、お客には「知ってます」と嘘をついて商売しているのが、この業界は普通だということなのです。
だからコンサルティング会社のほうがアテになるのです。彼らは地頭はとてもいいですし、オリジナルの英語のマニュアルやドキュメントを読んだり書いたりできますから。
もし、あなたの会社が500人前後以下くらいなのに、自社にサーバーを建てさせられていたら、あなたの会社は騙されている確率が非常に高いです。

密かにそのベンダーをクビにするプロジェクトを経営者が起こすべきです。
以下はどうすればいいかの話です。

他社にはない自社固有の業務を明らかにする

過去数十年、IT業界で働いてきてお客の意見を聞いてはいけないと思うことがあります。
「この作業の仕方についてウチは特殊で、こうしないと仕事がまわらない」
このセリフを散々聞かされました。
しかし、転職すらしたことがない社員がなぜ「ウチは特殊」と言い切れるのでしょうか?
端的にいえばお金の動きは税法に縛られており、会計士、税理士はその専門家です。
彼らが理解不能な決算は法的に認められません。
どこの会社もバリエーションはあれ、業界標準的な方法はすでに成立しています。
お客(サラリーマン)は特殊だと主張することで身の安全を確保してきたにすぎません。

とはいえ、特殊なビジネスがあるがゆえに儲かっている仕事はあることでしょう。
製品に組み込んでいることもあります。
そういう仕事は自社開発してシステム化するべきです。
なぜならば自社開発したほうがSIerにぶん投げるより絶対に安いし、よいものができるからです。

理由を説明します。
なにごとも他社に依頼する場合、契約書を伴います。
契約書にはやるべきことと対価が明記されます。
つまり要件があいまいなシステムは本来契約不能なのです。
あいまいなものは社員にやらせるしかないということはわかると思います。
にもかかわらず契約に応じる企業があるとすると、どれだけ請求される(ぼったくられる)でしょうか? ひょっとしたら1人月が3人月になるかもしれません。
もしくは契約して差し出すエンジニアに「最悪3人分働いて死んでこい」と言っていることと同じになりかねません。

規模を問わず、まともな企業だったら内製化したほうが安いし、そのシステムの成否は社員なら同じ船に乗っているのです。
可能な限り頑張るのが普通のサラリーマンです。
過去、お客さんの中で、エクセルのVBAで作りました、Accessで作りました、という個人の努力をさんざん見てきました。
プログラマーとは決して特別な人ではありません。
たとえばERP(企業の基幹システムパッケージ)の会社ではプログラマーを公認会計士にしようとはしません。
公認会計士にプログラムを教えるほうがはるかに短期間でよいコンサルタントになるのです。
ですから、業務を知っている人間をプログラマーに育てるカネを出したほうが安いし、目的を達成できるのです。
私自身、世の中にこんなにプログラマーが増えるとは思ってもいませんでした。それくらいコモディティ化しています。
システム面での難しいプログラム、たとえばデバイスドライバーの開発においてもコンサルタントを初期のフェーズでは雇い、後は自社開発が正しい道です。

実際、ソフトウェアベンダーのコンサルタントは新製品の最初のうちはSIerに雇われますが、だんだんお声がかからなくなるのです。SIerは仕入れはそうやって絞り、お客に向かってはずーっと「むつかしいからウチにまかせろ」と二枚舌を使っています。

また話が脱線しますが、若い頃の私はメインフレームのオペレーティングシステムのプログラマーでした。今もアプリケーション(業務)ソフトを書くことがあります。
オペレーティング・システムプログラムとアプリケーションプログラムは性格がまったく違います。
オペレーティング・システムプログラムは複雑ですがデータの項目は少ないのです。(データ数ではない、データ項目)
アプリケーションは単純な計算が多いですが、データの項目が莫大に多いのです。
プログラマーといえども、専門性があることを知ってください。ただし、言語にこだわるプログラマーはヘボプログラマーです。

そして今は自社システムをAmazonのAWSやMicrosoft Azureといったクラウドサービスに置くのが普通です。
自前でサーバーかかえて、運用要員なんて雇いません。
その費用でどれだけのサーバーを借りることができることか。しかもAmazonやMicrosoftには運用の本物のプロがいます。
彼らは何千社、何万社というシステムを預かっているのです。一社のシステムだけをふうふう言って素人運用しているところより安く、すぐれたサービスを提供しています。
現在スマホでゲームが流行っています。あのゲームのサーバーはほぼすべてAmazonのAWSで動いています。
そういう信頼性です。

そして一般的な業務については次の説で語ります。

すべてのサービスはクラウドを利用する、そのために

今はほとんどのサービスがクラウドで存在します。クラウドの利点はいくつかあります。

  • 今の世の中の標準的な機能で自動的にアップデートされる
  • 外部とカンタンに共有できる(典型例が会計ソフト)
  • 自社保有のハードウェア機器が必要ない
  • したがって固定資産をもたなくてよい
  • サブスクリプションという月々の安い支払いでよいから財務に負担がかからない

どれも自社保有では無理な話です。最大のメリットは他社と比べて遜色のない標準的な仕事の仕方になる点です。
井の中の蛙、夜郎自大的な仕事をしている時代ではありません。
自前で持つのとどれくらい、費用対効果が違うか計算するべきです。

プライベートクラウドとは自社でサーバーを並べる話で、ハイブリッドクラウドとは自社のサーバーを存続させるためのお客を錯覚させるための用語です。
イマドキはほとんどの企業でサーバーを必要としません。

どういう環境になるか?

そうすると会社にはネットワークとパソコンだけになるはずです。動いているOSはWindows10でしょう。
したがって、
ネットワークはNTTに管理してもらう。パソコンはDELLから買うというのが必勝パターンです。

NTTは電話時代からネットワークの専門家です。素人ほどNTTをバカにしますが、NTTに勤めていた経験のある私からするとメニュー化(これをやると決めた)されたことについては、NTTは全力で取り組みます。そしてユーザーを大量にかかえていますから、割安なのです。
NTTの回線に付随するサービスの利用は自社でサーバーを建てるよりも相当に安いです。
たとえばメールサービスなどについて計算するといいでしょう。

DELLはパソコンを売ることと専門家としてのサービスはきっちり提供する会社です。「なんでもやります」とかいい加減なことを言わない会社です。この会社も決めたことはきっちりやってくれます。

ITについて、その場限りのイエスマンで専門家不在の御用聞きがほしいのか、結果を出すプロがほしいのか、よく考えてみるべきでしょう。

残るはオペレーティングシステム(OS)の管理です。

専門家は一本釣りする

中小企業の場合、「俺はMacを使ってるんだけど」は用途に限って許すべきです。言い換えるとそういう人は標準PCのWindowsと特定用途向けMacの二台を与えます。
会社のオフィスで使うツールは統一しなければいけません。

Windows10は世の中でもっとも広く使われているOSだけに自称専門家がピンからキリまでいます。
そこであの手この手で現場で「できる専門家」を見つけます。
ピンキリでいるので、できる専門家でも料金は比較的安いのです。
クズを雇わないように。
ランサーズで仕事を出してみたり、DELLに紹介してもらうなど、あの手この手でひとり自社の環境をしっているWindowsの専門家を雇いましょう。
これは社員ではだめです。

しばしば中小企業の経営者が自社のパソコン管理に「マイクロソフトオフィスを使える程度」の若者をIT担当にしてしまいますが、その人はITについては素人でデスクワーカーです。Windowsネットワーク、Active Directory、Share Point、場合によっては複雑怪奇なエクスチェンジサーバーなどのWindowsのインフラとしての機能は別のジャンルです。
だからこそ、いろんな会社の面倒を見ている専門家が必要なのです。
専門家にいまどきメーラーはなにがオススメなのか、聞いてみるべきです。
複雑怪奇なOUTLOOKがいいのか、ダサダサのBecky!がいいのか? (どちらも今時ではないです)

そういう人とパーコールや月次の契約を結んでおいて、社内のユーザーがチョンボして環境を壊したり(そういう時にユーザーは100%「私はなにもしていない」と言います。人間は弱いものです。)した時の救援に来てもらうのです。
そして外部の人を使うことでパソコンの運用の費用がはっきりします。

後は総務部でやっていける

社員がちょっとした質問をNTTに投げる習慣、NTTがわからなければトラブルシューティングが「できる専門家」かDELLを呼ぶ、というワークフローが完成すれば,中小企業の総務部は知識を保つ必要がなくIT環境を運営できるのです。

この私の助言で少なくとも数社、うまくIT環境は驚くほどの低コストで回っています。
IoTなどの動向が気になるなら、さくらインターネットの動向だけでわかります。この会社は社長自身がエンジニアの会社です。
ベンチマーク企業を見つけましょう。

]]>
http://playing-engineer.com/wordpress/2019/12/03/%e4%bb%a4%e5%92%8c%e6%99%82%e4%bb%a3%e3%81%ae%e4%b8%ad%e5%b0%8f%e4%bc%81%e6%a5%ad%e3%81%aeit%e7%92%b0%e5%a2%83/feed/ 0 16755
Kindle Oasisに買い替えた、が http://playing-engineer.com/wordpress/2019/12/01/kindle-oasis%e3%81%ab%e8%b2%b7%e3%81%84%e6%9b%bf%e3%81%88%e3%81%9f/ http://playing-engineer.com/wordpress/2019/12/01/kindle-oasis%e3%81%ab%e8%b2%b7%e3%81%84%e6%9b%bf%e3%81%88%e3%81%9f/#respond Sat, 30 Nov 2019 15:40:56 +0000 http://playing-engineer.com/wordpress/?p=16744 4年ぶりにKindle端末を買い替えました。
私がKindle PaperWhiteを購入したのは、このブログによると2015年8月らしい(Kindle Paperwhite)。

紙の本があって、タブレットがあって、電子ブックリーダーがあります。
私は紙の本はしまい込むと存在すら忘れてしまうこと、思い出しても取り出すことが億劫なこと、紙がだんだん黄ばんで劣化することから、すべてPDFにしています。一万円を超える本も活かすためにはPDF。

なぜKindle端末か

タブレットにKindleアプリを入れて使ってきましたが、いくつか欠点があります。

  • 重い
  • カラー液晶は目が疲れる
  • 電力はかなり使うので電源がなくなるとなにもできなくなる

なので電子ブックリーダーにお金を使う意味があると思っています。

それなのにいつしかKindle Paperwhiteは使われず、タブレットのKindleアプリでKindleで購入した本を読んでいたのだけれども、「なんで俺、Kindleデバイス使わないんだっけ?」と思い起こすと、やっぱり「画面が小さい、動作がとろい、オススメ本の紹介がうざい」ということに苛立ちを感じていたようです。

で、Kindle Oasisっていうのを見ると画面が7インチになり、防水になってる。
Kindle Oasisはアイキャッチャーの写真にもあるとおり、お風呂での使用を想定しているようです!
それからページ送りボタンもついてる!
とりあえずポチりました。

で、いじっていて気づいたのはソフトウェアもかなり改善されている点。
自炊したPDFを持ち込んでみたんだけど、以前、Paperwhiteでやった時には余白がやたらとできてしまい、いろんなフリーソフトで余白を取り、大きさを調整する必要がありました。
それがめんどくさいので余白を減らしてくれるタブレットのアプリで読んでいました。

しかし今回読み込ませると、ぎりぎりまで余白は取り去ってくれます。
ただし、ページの端などにスキャナーの関係で影の線やゴミが写ってしまっていると調整はうまくいきません。
余白のゴミを取りたいだけならMacユーザーはプレビューで可能です。

すると私のもっているPDFは問題なく読めます。ヤッター!これからKindleのデジタル本も自炊PDFも持って歩けるぞ。
これ、私のような人間にはすごく便利でPICのようなマイクロプロセッサのデータシートとかPythonのシンタックスを書いた本とかを参照しながら、プログラム書いたり回路図書けるってことなんです。

もちろん処理速度も満足いく速度です。こうでなくっちゃ。

これはいいですね。

実際、目に優しい。疲れにくいです。
以前のPaperWhiteより明るさ調整が簡単なことと画面が大きいことに助けられています。
50歳をすぎたら、Oasisです!

容量は8GB,広告付きを買いました。
だってタブレットからテザリングすればどこでもアクセスできるから、そんなに容量が大きくなくても困らないですからね。iPhoneとかだっていつも最小限のメモリーの機種で済ませてます。

だが、しかし、

iPhoneのkindleじゃなきゃできないこともあります。

それが本の読み上げ機能。

もともとiPhoneもAndroidも身障者にも親切にできていて、画面を読み上げてくれる機能があります。
kindle appはその機能に対応していて、オーディオで本を聞くことができます。

間違いがちなのはAudibleと混同してしまうこと。ここで言っている機能はAudibleは関係ないです。
たいていのKindle本はオーディオで聞くことができます。

親切な人が手順を書いてくれているので、どうぞ。(
Amazon Echoいらず? スマホでKindle本の音声読み上げが便利!iPhoneでもAndroidでも )

もっとも致命的な点もあって、Kindleアプリをずっと画面に表示していないとダメ。
まぁ、それでもスマホ見ながらあらゆる場所を歩いているバカよりはマシでしょう。スマホを見ている状況じゃない時は音で聞けるってのは短時間なら悪くない機能です。

audible

実はAudibleが出たばかりの時に半年ほど試しました。もちろん品質は声優がしっかり読んでいるので素晴らしいです。
上で紹介した棒読みはまだまだ改善の余地があります。
しかし、本って一度読むと後は結構。必要なところを探して読み直すことが私の場合は多く、それがAudibleでは無理。
Audibleはあまり本を読まない人や視覚障害者にはいいと思いますが、私にはあわなかったな。

]]>
http://playing-engineer.com/wordpress/2019/12/01/kindle-oasis%e3%81%ab%e8%b2%b7%e3%81%84%e6%9b%bf%e3%81%88%e3%81%9f/feed/ 0 16744