2022年5月16日 星期一

3D 列印成品接合 -- 焊接

參考網址 3D列印物件黏合3D 打印筆:模型黏合

Mister Ngan 的網頁是用 3D 列印筆來接合,但搞電子的使用烙筆最熟練了,當然選擇使用烙筆。而且烙鐵便宜多了,在蝦皮可以買到一支不到台幣100元的溫控烙鐵,可以調適當的溫度,不會把塑膠都燒黑了。而且夠便宜,用壞了再買一支也不會心疼。

網頁介紹的摩擦接合,膠水接合,都可以直接略過,看看就好。

參考影片



其實像機車的側蓋,是用 ABS 製造的,破掉用膠水黏合效不是很好。即使用專用的 ABS 膠水黏合,也要等很久才乾,而且常常黏接效果不佳。用溫控烙鐵,調到240℃ 左右,就可以焊接了。


3D 列印的線架,有點失敗,長度太短,線軸有點卡到。用烙鐵把它截斷,再接一段列印失敗的廢料。



還有廠商出的烙鐵強調在 3D列印上的用途,如 Pro'sKit 寶工 SI-169U 3D 列印修復組烙鐵,功能不少,但稍微貴一點。特色是 15秒快速升溫,一般便宜的烙鐵,可能要等個好幾分鐘才能達到足夠的工作溫度。以下圖片擷取自 Pro'sKit 寶工網站,大家參考一下,烙鐵能用來做什麼。

不過有點懷疑升溫能多快,才 8W 而已。倒是它的烙鐵頭,看能不能弄一套來試試。另外,它的溫度只能維持在 480℃,會不會太高,讓塑膠冒煙,這就不知道了。




2022年5月15日 星期日

改用中文輸入法

 gtk3 改了一堆東西,gcin 無法編譯,我可沒能力修改啊。只好找其他的輸入工具了。

比較了幾種,fcitx 是比較好的,但是倉頡輸入沒辦法看到輸入的字根,只好放棄。

​fictx

https://wiki.gentoo.org/wiki/Fcitx


emerge -av app-i18n/fcitx


export XMODIFIERS="@im=fcitx"

export QT_IM_MODULE=fcitx

export GTK_IM_MODULE=fcitx

您正在 GUI 下執行 Fcitx,但找不到 fcitx-configtool,該套件名稱通常為 fcitx-config-gtx、fcitx-config-gtk3 或 fcitx-configtool。現在將使用預設文字編輯器開啟設定檔。

安裝設定工具

emerge -av app-i18n/fcitx-configtool  

安裝新酷音

emerge -av app-i18n/fcitx-chewing

安裝一堆輸入法,包括倉頡3代和倉頡5代

emerge -av app-i18n/fcitx-table-extra


ibus

https://wiki.gentoo.org/wiki/IBus

 emerge -av app-i18n/ibus

export XMODIFIERS=@im=ibus
export GTK_IM_MODULE=ibus
export QT_IM_MODULE=ibus

ibus-daemon -drx

emerge -av app-i18n/ibus-cangjie

masked
app-i18n/ibus-chewing

注音包含在拼音裡,但是會當掉,以後再來試吧
emerge -av app-i18n/ibus-pinyin

切換至注音,按鍵之後,會出現下面的錯誤,然後就變成英文了
(mousepad:291507): IBUS-WARNING **: 17:03:24.648: Process Key Event failed: GDBus.Error:org.gtk.GDBus.UnmappedGError.Quark._g_2dio_2derror_2dquark.Code18: 這個連線已關閉.

改装這個就可以了
emerge -av app-i18n/ibus-libpinyin

其實要能顯示輸入的字根,必須要另有程式處理。fictx 直接用 table 對應,就無法顯示字根了。而這部分,中國大陸沒在用,也很難溝通的樣子,就沒有人做了。

2022年5月11日 星期三

調整 A4988 步進馬達驅動板的電流上限

特別注意:測量電壓的時候千萬要小心,不要短路到不該碰到的接點,很可能會造成4988燒毀!!! 若沒把握,可以先貼上絕緣膠帶,只露出測量點。

特別注意:4988的輸出電流,超過 1A 的話,必須加裝散熱片。超過 1.5A,需要再加風扇。即使有安裝散熱片、風扇,限制電流都不可以超過 2A,否則 IC 會燒毀。

首先,要得到基本完整的概念,可以仔細閱讀 Pololu 的 「A4988 Stepper Motor Driver Carrier, Black Edition」pdf 檔,還有 A4988 的 datasheet。另外 reprap 網站的說明 (https://reprap.org/wiki/Sanguinololu) 也是一個很好的開始。

其他參考 網頁,可以看看別人的經驗,再回頭仔細把前述資料看一次,就會更有概念。

  • https://www.hkepc.com/forum/viewthread.php?fid=259&tid=2553842&extra=&page=1
  • http://diy3dprint.blogspot.com/2013/11/4988.html
  • https://all3dp.com/2/vref-calculator-tmc2209-tmc2208-a4988/

A4988 概述

下面的圖檔表示此驅動板的使用示意圖 (擷取自 Pololu 的 pdf 檔)


A4988 控制板上有一個半可調電阻,可以調整步進馬達的限制電流。要知道限制電流多大,最直接的辦法是測量接到步進馬達的電流,但那樣做實在太危險了,可能會把板子或電錶都燒了。比較保險的做法是量可調電阻中間抽頭的電壓值 Vref。

下面的圖檔是此驅動板的電路圖 (擷取自 Pololu 的 pdf 檔)


下圖是 A4988 IC 的方塊圖。


如何設定限制電流

可以看到馬達的電流會流經 Rs,測量 Rs 的壓降即可換算得到馬達線圈的電流。控制流經馬達的電流大小可以達到細步的功能。電流限制 (Current Limit) 的計算,如下面的公式

 IL = Vref / (8*Rs)

Pololu 的板子的 Rs 為 0.05Ω,而大陸的 clone 板子大都是 0.1Ω。SMD 的標示為 R100,可以把 R 看成是小數點,這要讀數就很容易理解了。

要決定多少的限制電流,可以參考 reprap 網站的說明 (https://reprap.org/wiki/Sanguinololu) 

A good starting point for the current is 0.7 times its rated current. This is typically ~1A with the recommended 1.68A NEMA17 motors and that is about the maximum current the Pololu can deliver without a heatsink or a fan. Note that the rated current of a motor is usually that which gives an 80C temperature rise, which is too hot for plastic brackets, hence the reason to under-run them.

假如馬達的額定電流為 1.7A,則工作電流決定為 1.7A *0.7 =1.19A,就設為 1.2A 吧。考慮大家應該都會買 clone 的 A4988板,則 Rs 為 0.1Ω。計算得到 Vref = 1.2A * 0.8 = 0.96V。

不過,後來量出廠的電壓都是 0.66V 左右,最後就都用這個電壓值了,電流為 0.83A,使用起來也都沒有問題。電流小一點,比較安全一點。

驅動馬達的電源和電路板本身用的電源是分開的,Vref 是由直接由電路板的電源和分壓電阻決定的。因此測量 Vref,可以把 A4988 的板子插在主控板上,接上電源來測試,不需接馬達及其他連線。例如,Makerbase 的 MKS. Gen_L V1.0,供應的 Vdd 是 5V,雖然板子使用的電源是 12V。

決定限制電流

在不同地方出現的 0.7,或 70% 是一個容易讓人誤解的地方。

首先所謂的馬達額定電流,例如 1.7A,就是超過這電流馬達就會燒了。並不是馬達工作時要供應這麼大的電流。在 reprap 網站的說明是指,使用額定電流的 70% 是一個不錯的選擇,也是比較安全的。

另外,在 Pololu 的說明提到另一個限制電流的 70%,那是指使用 full step 來控制步進馬達時,兩個 phase 的線圈都會保持在 ON 的狀態,只是極性相同或相反。而流經每個線圈的電流會是限制電流的 70%。所以,這段敘述完全可以忽略,以免搞得更糊塗,除非你要用實際測量線圈電流來調整 Vref。

結論是,你想用多少電流來驅動馬達,就把限制電流設成那個值,如額定電流的 70%。工作電流越大,馬達的力矩越大,反應更快。電流越小,加矩越小,至於會不會造成失步呢? 我推測若是力矩不夠造成的失步,應該不會是偶發性的,而是持續性的。

另外,要考慮 A4988 的工作條件,在未加散熱片或風扇的情況下,驅動板最大能提供約 1A的電流。假如供應到更大的電流,會讓 IC 的溫度達到上升到 80C,塑膠外盒可能會熔化了。A4988 IC 內部有保護電,過熱就會 shutdown 電路,切斷 FET 的輸出,直到不再過熱才會繼續恢復 FET 的輸出。所以,若是 A4988 驅動板太熱,則會造成步進馬達失步。若碰到這情形,解決辦法是降低工作電流,以及加強散熱。

步進馬達的細步控制

一般解釋步進馬達的動作原理,都是指 full-step 運作。兩個 phase 的電流都一樣,只是同相或反相。假如步進馬達一圈分成 200 steps,則每一 full step 為 1.8°。

事實上,可以控制兩個 phase 的電流大小比例,讓轉子停在兩個極性中間不同的位置,就是細步控制。如下是 half-step 控制,可控制的步數多了一倍。

quarter-step 控制,精細度又再加倍。

下圖 是 Eighth-step 控制。

A4988 最多到 Sixteenth-Step Increments,圖太複雜,就不擷圖了。

2022年5月8日 星期日

海外手机号如何注册百度网盘

參考  http://www.xiaohongshu.com/discovery/item/621d440e0000000001025067

最近買了一台 3D列印機的套件,賣家的資料都放在百度網盤,要下載資料只好註冊百度的帳號。在註冊的畫面要輸入手機傳驗證碼,但輸入+886開頭的電話號碼,會說格式錯誤,無法完成註冊。網路上提供的方法都是要在手機裝 App,才能完成大陸地區以外的註冊。可是實在非常不願意在手機裝上大陸的 App,後來不情願的裝了個百度的 App,還是一樣不行,立刻移除。

後來在上述參考網頁的說明,原來用英文版的註冊網頁,就可以選擇不同地區的區碼,順利註冊完成。

英文登入網址 https://login.bce.baidu.com/?lang=en

手機版瀏覽器只能註冊電話號碼登入



電腦版的瀏覽器才能註冊自己選的帳號,然後用手機認證




2022年4月26日 星期二

使用 PHP 上傳檔案,因權限問題無法開啟

參考連結: PHP upload file inherit permissions error using Windows IIS Server

使用 PHP 上傳檔案,用普通使用者的身分開啟檔案,會出現下面的拒絕存取的警告


檢視上傳檔案的安全性內容


檢視上傳資料 $_FILES 的內容如下

Array
(
    [fileToUpload] => Array
        (
            [name] => file_list_20220426_165738.png
            [type] => image/png
            [tmp_name] => C:\Windows\Temp\phpDFFF.tmp
            [error] => 0
            [size] => 38506
        )
)

修改 php.ini 中的 upload_tmp_dir

; Temporary directory for HTTP uploaded files (will use system default if not
; specified).
; http://php.net/upload-tmp-dir
upload_tmp_dir = "c:/temp"

再次上傳,$_FILES 的內容如下

Array
(
    [fileToUpload] => Array
        (
            [name] => file_list_20220426_165738.png
            [type] => image/png
            [tmp_name] => C:\temp\phpA64A.tmp
            [error] => 0
            [size] => 38506
        )

))

現在上傳的檔案就會繼承 C:\temp 目錄的權限,假如權限不對,就再次修改C:\temp 目錄的權限。


2022年4月11日 星期一

FreeCAD 學習

在 Linux 下,可以下載 AppImage,不用安裝即可使用,但需要 fuse 2.X 版。


FreeCAD 用起來不怎麼直覺,應該是說剛碰 3D 建模,完全不知怎麼開始,豆漿的教學有趣又含蓋較廣,算是不錯的學習。

有關的介紹

起步 - 葉老伙阿 的畫出一個正方形



豆漿: Freecad(0.17)第一課:基本草圖製圖與重複技巧(加上導角教學)

影片說明

哈囉~各位觀眾朋友大家好,這裡是豆漿Freecad實例教學時間。
第一課教各位基本草圖繪製和工具應用,多多練習才是王道喔!
如果有任何錯誤請留言給在下知道,或者對下一堂課有什麼建議都可以提出喔!


Freecad(0.17)第二課:螺紋與環繞製圖


影片說明

哈囉~各位觀眾朋友大家好,這裡是豆漿Freecad實例教學時間。
第二課教各位要如何應用螺絲工作臺與環繞製圖技巧,針對圓的教學,多多練習才會熟悉喔!
如果有任何錯誤請留言給在下知道,或者對下一堂課有什麼建議都可以提出喔!


Freecad(0.17)第三課:組立與會遇到的問題


影片說明

哈囉~各位觀眾朋友大家好,這裡是豆漿Freecad實例教學時間。
第三課是教基本的組立,有時候看看製造的Part有沒有問題喔,如果出錯多做幾次摸熟工具,別忘了多練習嚕!
如果有任何錯誤請留言給在下知道,或者對下一堂課有什麼建議都可以提出喔!

FreeCAD斜面体
https://www.bilibili.com/video/BV1ba4y157op/

Freecad tutorial - Knob - Product design #101
https://www.youtube.com/watch?v=37Kzx21wjE8

2022年3月11日 星期五

使用 qmk 建立鍵盤

使用 docker 建立 qmk 的開發環境

參考 Setting Up Your QMK Environment

使用和 Linux 下個人帳號,可以在外部直接編輯修改程式

必須要加上 sudo,才能夠建立 qmk 的

Dockerfile

## ref: https://docs.qmk.fm/#/newbs_getting_started
FROM ubuntu:22.10

# Prerequisites
RUN apt-get -y update && apt-get -y upgrade && apt-get clean
RUN apt-get -y install sudo git python3 python3-pip

# Install the QMK CLI
RUN python3 -m pip install --upgrade pip \
    && python3 -m pip install qmk

# 安裝 QMK 開發需求
RUN apt-get -y install \
        gcc-arm-none-eabi \
        gcc-avr avrdude \
        dfu-util dfu-programmer

# 要安裝,否則會出現錯誤
# fatal error: avr/pgmspace.h: No such file or directory
RUN apt-get -y install  avr-libc

RUN groupadd ajax -g 1000 \
    && useradd  -g 1000 -u 1000 ajax \
    && echo 'ajax:cc1234' | chpasswd  \
    && adduser ajax sudo \
    && usermod -aG sudo ajax \
    && echo '%sudo ALL=(ALL) NOPASSWD:ALL' >> /etc/sudoers \
    && echo '%sudo ALL=(ALL) NOPASSWD:ALL' > /etc/sudoers.d/nopwd

USER ajax
CMD ["/bin/bash"]

經測試,sudo 無效。

要執行 docker,可以建立 docker-compose.yml,或者使用下列命令執行

docker run -it --rm  --user 1000:1000  --name qmk-dev \
 -v `pwd`:/work -v `pwd`:/home/ajax  \
 -w /work \
 qmk-dev   bash


docker-compose.yml

## Teensy development environment

qmk_dev:
  build: .
  working_dir: /work
  volumes:
    - "../qmk_work:/work"
    - "../qmk_work:/home/ajax"
  stdin_open: true
  tty: true
  user: 1000:1000
  entrypoint: /bin/bash

.bashrc

export PS1='\[\033]0;\u@\h:\w\007\]\[\033[01;31m\]qmk_dev@docker\[\033[01;34m\] \w \$\[\033[00m\] '

執行

docker-compose -f docker-compose.yml run --rm qmk_dev

執行 qmk setup

qmk_dev@docker /work $ qmk setup
Ψ Could not find qmk_firmware!
Would you like to clone qmk/qmk_firmware to /home/ajax/qmk_firmware? [y/n] y
Cloning into '/home/ajax/qmk_firmware'...
.....
Ψ QMK home: /home/ajax/qmk_firmware
Ψ Detected Linux.
⚠ Missing or outdated udev rules for 'atmel-dfu' boards. Run 'sudo cp /home/ajax/qmk_firmware/util/udev/50-qmk.rules /etc/udev/rules.d/'.
⚠ Missing or outdated udev rules for 'kiibohd' boards. Run 'sudo cp /home/ajax/qmk_firmware/util/udev/50-qmk.rules /etc/udev/rules.d/'.
⚠ Missing or outdated udev rules for 'stm32' boards. Run 'sudo cp /home/ajax/qmk_firmware/util/udev/50-qmk.rules /etc/udev/rules.d/'.
⚠ Missing or outdated udev rules for 'bootloadhid' boards. Run 'sudo cp /home/ajax/qmk_firmware/util/udev/50-qmk.rules /etc/udev/rules.d/'.
⚠ Missing or outdated udev rules for 'usbasploader' boards. Run 'sudo cp /home/ajax/qmk_firmware/util/udev/50-qmk.rules /etc/udev/rules.d/'.
⚠ Missing or outdated udev rules for 'massdrop' boards. Run 'sudo cp /home/ajax/qmk_firmware/util/udev/50-qmk.rules /etc/udev/rules.d/'.
⚠ Missing or outdated udev rules for 'caterina' boards. Run 'sudo cp /home/ajax/qmk_firmware/util/udev/50-qmk.rules /etc/udev/rules.d/'.
⚠ Missing or outdated udev rules for 'hid-bootloader' boards. Run 'sudo cp /home/ajax/qmk_firmware/util/udev/50-qmk.rules /etc/udev/rules.d/'.
Ψ Git branch: master
Ψ Repo version: 0.16.5
☒ Can't find arm-none-eabi-gcc in your path.
☒ Can't find avrdude in your path.
☒ Can't find dfu-programmer in your path.
☒ Can't find dfu-util in your path.
Would you like to install dependencies? [Y/n] 
......................
Ψ All dependencies are installed.
Ψ Found arm-none-eabi-gcc version 9.2.1
Ψ Found avr-gcc version 5.4.0
Ψ Found avrdude version 6.3-20171130
Ψ Found dfu-util version 0.9
Ψ Found dfu-programmer version 0.6.1
Ψ Submodules are up to date.
Ψ QMK is ready to go, but minor problems were found
qmk_dev@docker /work $ 

測試

qmk_dev@docker /work $ qmk compile -kb clueboard/66/rev3 -km default
Ψ Compiling keymap with make --jobs=1 clueboard/66/rev3:default

QMK Firmware 0.16.5
Making clueboard/66/rev3 with keymap default

avr-gcc (GCC) 5.4.0
.....
Linking: .build/clueboard_66_rev3_default.elf                                                       [OK]
Creating load file for flashing: .build/clueboard_66_rev3_default.hex                               [OK]
Copying clueboard_66_rev3_default.hex to qmk_firmware folder                                        [OK]
Checking file size of clueboard_66_rev3_default.hex                                                 [OK]
 * The firmware size is fine - 27228/28672 (94%, 1444 bytes free)
qmk_dev@docker /work $ 

.... 待續 ....







網誌存檔