Sophie's Murmur
2022年9月11日 星期日
2022年1月17日 星期一
安裝ROS來玩玩
在VirtualBox上安裝ubuntu 20.04.3 desktop VM
安裝英文版
安裝ROS
Ubuntu系統對應ROS系統
Ubuntu版本 | ros版本 |
---|---|
Ubuntu 20.04 | noetic |
Ubuntu18.04 | melodic |
Ubuntu16.04 | kinetic |
Ubuntu14.04 | indigo |
2022年1月3日 星期一
Timer Camera F
m5stack 下載
外部操作
- 按住側面(底部)按鈕約 2 秒鐘即可開機
- 要關閉電源,請在右上方前面的小圓孔中按重置(使用迴文針)
- 通過 USB 充電
開始
https://docs.m5stack.com/en/quick_start/timer_cam/cameratool
- 安裝FTDI driver,串列傳輸(透過USB)才會正常
- 安裝CameraTools 測試相機
index.html檔案在camera_index.h的index_ov3660_html_gz陣列
要用CyberChef 編解碼
要用CyberChef 編解碼
模組規格
Chip is ESP32D0WDQ6 (revision 1) Features: WiFi, BT, Dual Core, 240MHz
鏡頭規格
model | max resolution | color type | output format | Len Size |
---|---|---|---|---|
OV2640 | 1600 x 1200 | color | YUV(422/420)/YCbCr422 RGB565/555 8-bit compressed data 8/10-bit Raw RGB data | 1/4" |
OV3660 | 2048 x 1536 | color | raw RGB data RGB565/555/444 CCIR656 YCbCr422 compression | 1/5" |
回復出廠程式(CameraTools 才能連)
esptool.exe --chip esp32 --port COM4: --baud 1500000 write_flash -z 0x1000 firmware.bin
esp32-cam沒辦法用micropython init camera
使用MicroPython來開發
下載M5Burner燒錄韌體
把拍攝的照片丟雲端
使用M5Burner燒錄下面這個韌體,按get token就可得到雲端網址
2019年2月16日 星期六
3x3x4 Rubik's Cube (魔術方塊)
第一步 完成第三層
1.完成第三層的中心塊
上下中心塊交換 F2
2.再做角塊
第二步 完成第二層
1.完成角塊
角塊順時鐘轉 R2 U R2 U' R2 y' R2 U' R2 U R2
2013年3月21日 星期四
擴增實境(Augmented Reality)
Augmented Reality(AR:擴增實境) 簡單來說 就是擴增真實的情境
把虛擬的物件融合在真實的情境中
1. 車載導航的AR功能: http://www.youtube.com/watch?v=WXbH0DNcUxY
利用GPS得到位置資訊加到攝影影像上,是不是更有FU
2.想買傢俱,不知買來合不合適, 先擺擺看
(要有tag做為比例尺及定位功能)
http://www.youtube.com/watch?v=s0XxKcYj_lE
3.紙本目錄看起來比較舒服, 但有時缺乏3D感覺及操控性
http://www.youtube.com/watch?v=zPfUN4ffssU
ARToolKit-擴增實境開發工具
http://www.hitl.washington.edu/artoolkit/
2013年3月20日 星期三
Hitec HSR-8498HB 數位伺服(Digital Servo)
Robonova's Wiki: http://mablresearch.rit.edu/wiki/index.php/Robonova
1. MR-C3024控制器
Atmega128 微控制器+ RoboBASIC程式直譯器(Interpreter)
功能應就像BASIC Stamp (Atmega128 + BASIC)
或 Arduino ((ATMEGA 8–328) + C)一樣
功能應就像BASIC Stamp (Atmega128 + BASIC)
或 Arduino ((ATMEGA 8–328) + C)一樣
2. HSR-8498HB servos(伺服馬達)
=Atmel ATmega8 微控制器+直流馬達+馬達驅動電路
直流馬達(resistance of 4.4 ohms): 1.35A at 6 Volts, or 1.7A at 7.4 Volts
300:1 的齒輪組
馬達驅動電路: IRF7389 MOSFET
控制介面: 雙向控制, 可以串聯多個servos(daisy chained)
接到外面的一條控制訊號線透過兩個NPN電晶體連到微控制器的Port D0和Port D1腳位(也是UART的 TX 和RX腳位) , 達到雙向的功能 (參考datasheet的第3頁電路圖)
Port B0/ICP 也連接到UART RX腳位, 可以利用ATmega8的PWM模式測量脈寬
Hitec HMI Interface(介面)
提供三種模式 (標準模式,擴充模式及雙向串列介面模式)
直流馬達(resistance of 4.4 ohms): 1.35A at 6 Volts, or 1.7A at 7.4 Volts
300:1 的齒輪組
馬達驅動電路: IRF7389 MOSFET
控制介面: 雙向控制, 可以串聯多個servos(daisy chained)
接到外面的一條控制訊號線透過兩個NPN電晶體連到微控制器的Port D0和Port D1腳位(也是UART的 TX 和RX腳位) , 達到雙向的功能 (參考datasheet的第3頁電路圖)
Port B0/ICP 也連接到UART RX腳位, 可以利用ATmega8的PWM模式測量脈寬
Hitec HMI Interface(介面)
提供三種模式 (標準模式,擴充模式及雙向串列介面模式)
透過上述Servo內部ATmega8測量的外部送來的脈寬來決定進入那種模式
a.標準模式: Standard Pulse servo mode compatible with radio control servos
就是一般的輸出控制
脈寬範圍為550 to 2450 us(Pulse width 550 to 2450 Microseconds = Standard Pulse Mode)
此範圍內馬達轉動的角度
轉動角度的公式為Servo Angle (degrees) = (Pulse Width (•S) – 1500) / 10
b.擴充模式: Extended Pulse mode to add position feedback and change settings
位置回饋及改變設定
脈寬範圍為50 to 200 us(Pulse width 50 to 200 Microseconds = Extended Pulse Mode)
b.1 位置回饋
如下圖, 當連接Servo的外部控制器(Controller)送出50us(A)的脈波,然後拉低2-20us等候
Servo內部控制器辨識(B)
若Servo內部控制器辨識這是擴充模式的脈寬設定, 就會拉低125us表示它認得了(C)
然後Servo內部控制器就會送出550 to 2450 us代表目前馬達轉動的角度(D)
再來Servo內部控制器拉低250us等外部控制器回應(E)
外部控制器再拉低結束讀取的程序(F)
以上動作就像I2C一樣,兩控制器通訊是靠對方拉低訊號表示回應, 因此, 此訊號線
一定要有提升電阻(pull-up)做為預設狀態
b.2 改變設定
如b.1 , 當連接Servo的外部控制器(Controller)送出100us/150us/200us(A)的脈波,
可以分別設定Servo內部的三個參數, 如PID控制的P增益/D增益及dead band參數
(待下回分解)
2013年3月17日 星期日
在Visual C++ 2010中使用OpenCV 2.4.4-入門操作篇
refer http://stackoverflow.com/questions/7011238/opencv-2-3-c-visual-studio-2010
作業系統為Windows XP SP3
1.下載OpenCV解壓縮在C:\opencv下
2.在Visual C++建立一個主控台應用程式的專案
3. 新增一個C++原始檔案
儲存為main.cpp, 內容如下-
#include <stdio.h>
#include <cv.h>
#include <highgui.h>
int main(int argc, char* argv[])
{
char filename[]="./debug/Sunset.jpg";
IplImage* img = cvLoadImage(filename, CV_LOAD_IMAGE_UNCHANGED);
if (!img)
{
return -1;
}
cvNamedWindow("display", CV_WINDOW_AUTOSIZE);
cvShowImage("display", img );
cvWaitKey(0);
return 0;
}
4.用加入現有項目把.cpp檔加到專案
5.在Visual C++選單 專案->屬性 或 按(Alt+F7)新增標頭檔路徑
C:\opencv\build\include\opencv
C:\opencv\build\include\opencv2
C:\opencv\build\include
6. 在Visual C++選單 專案>屬性 或 按(Alt+F7)新增程式庫路徑
C:\opencv\build\x86\vc10\lib
7. 在這個專案中用到的程式庫, 必須新增兩個輸入的程式庫
C:\opencv\build\x86\vc10\lib\opencv_core244.lib
C:\opencv\build\x86\vc10\lib\opencv_highgui244.lib
8. Visual C++選單 建置>建置方案 或按 F7
9. 系統必須將OpenCV的DLL檔路徑設定到PATH,才能執行
C:\opencv\build\x86\vc10\bin
這要修改windows的PATH設定
可以改用簡單的方法, 就是將用到的DLL檔連同圖片檔copy到專案的debug目錄下
作業系統為Windows XP SP3
1.下載OpenCV解壓縮在C:\opencv下
2.在Visual C++建立一個主控台應用程式的專案
3. 新增一個C++原始檔案
儲存為main.cpp, 內容如下-
#include <stdio.h>
#include <cv.h>
#include <highgui.h>
int main(int argc, char* argv[])
{
char filename[]="./debug/Sunset.jpg";
IplImage* img = cvLoadImage(filename, CV_LOAD_IMAGE_UNCHANGED);
if (!img)
{
return -1;
}
cvNamedWindow("display", CV_WINDOW_AUTOSIZE);
cvShowImage("display", img );
cvWaitKey(0);
return 0;
}
4.用加入現有項目把.cpp檔加到專案
5.在Visual C++選單 專案->屬性 或 按(Alt+F7)新增標頭檔路徑
C:\opencv\build\include\opencv
C:\opencv\build\include\opencv2
C:\opencv\build\include
C:\opencv\build\x86\vc10\lib
7. 在這個專案中用到的程式庫, 必須新增兩個輸入的程式庫
C:\opencv\build\x86\vc10\lib\opencv_core244.lib
C:\opencv\build\x86\vc10\lib\opencv_highgui244.lib
8. Visual C++選單 建置>建置方案 或按 F7
9. 系統必須將OpenCV的DLL檔路徑設定到PATH,才能執行
C:\opencv\build\x86\vc10\bin
這要修改windows的PATH設定
可以改用簡單的方法, 就是將用到的DLL檔連同圖片檔copy到專案的debug目錄下
10. 可以執行了!!
訂閱:
文章 (Atom)