My new uC project required a continuous rotation motor, knowing that a servo motor can be modified to allow it to rotate continuously, I performed the modification on a 9g servo.
Wednesday, November 10, 2010
Servos modified for continuous rotation
My new uC project required a continuous rotation motor, knowing that a servo motor can be modified to allow it to rotate continuously, I performed the modification on a 9g servo.
Thursday, March 18, 2010
3d animation: circular hatch mechanism
Monday, March 15, 2010
Applescript to process multiple video files with ffmpeg
This code is an Applescript intended to be used along with folder actions to batch convert files dropped in a folder using ffmpeg.
(*
Convert MPG files in a folder to h264 using ffmpeg (ffmpegx).
March 2010 Fp www.designeddrawnmade.blogspot.com
Requires ffmpegX to exist in /Applications/ffmpegX_0.0.9y/ffmpegX.app
Derived from Apple sample code, etc.
*)
property done_foldername : "Done"
property extension_list : {"mpeg", "mpg", "MPG", "MPEG"}
on adding folder items to this_folder after receiving these_items
tell application "Finder"
if not (exists folder done_foldername of this_folder) then
make new folder at this_folder with properties {name:done_foldername}
end if
end tell
try
repeat with i from 1 to number of items in these_items
set this_item to item i of these_items
set ff_Path to "/Applications/ffmpegX_0.0.9y/ffmpegX.app//Contents/Resources/" as string
set this_item_posix to the POSIX path of this_item
set pathOnly to path_only(this_item_posix)
set name_wExt to remove_path(this_item_posix)
set nameOnly to remove_extension(name_wExt)
set file_extension to get_extension(this_item)
set temp_filename to pathOnly & "Done/" & nameOnly
set temp_filename to quoted form of temp_filename
set this_item_posix_q to quoted form of this_item_posix
if file_extension is not in the extension_list then
do shell script "cp " & this_item_posix_q & " " & pathOnly & "Done/"
set finalfile to pathOnly & "Done/" & name_wExt
change_dates(this_item, finalfile)
do shell script "rm " & this_item_posix_q
else
-- display dialog "variables" & return & return & pathOnly & return & nameOnly & return & file_extension & return & temp_filename & return & name_wExt
do shell script ff_Path & "ffmpeg -i " & this_item_posix_q & " -an -f yuv4mpegpipe - | " & ff_Path & "x264 -v --no-cabac -b 0 --qpmin 22 --qpmax 51 -B 5100 --me hex --threads 2 --level 13 --fps 30000/1001 -o " & temp_filename & ".ff.video.mp4 - 640x480 "
do shell script ff_Path & "ffmpeg -i " & temp_filename & ".ff.video.mp4 -i " & this_item_posix_q & " -y -vn -f mp4 -acodec aac -ab 128 -ar 44100 -ac 2 -map 1.0:0.0 " & temp_filename & ".ff.audio.mp4 "
do shell script ff_Path & "mp4box -add " & temp_filename & ".ff.video.mp4 -add " & temp_filename & ".ff.audio.mp4 -new " & temp_filename & ".ff.mp4"
do shell script "rm " & temp_filename & ".ff.video.mp4 && rm " & temp_filename & ".ff.audio.mp4"
set finalfile to pathOnly & "Done/" & nameOnly & ".ff.mp4"
change_dates(this_item, finalfile)
end if
end repeat
end try
end adding folder items to
on get_extension(this_item)
tell application "Finder" to set file_extension to the name extension of this_item
end get_extension
on remove_path(this_name)
repeat while this_name contains "/"
set x to the offset of "/" in this_name
set this_name to (text (x + 1) thru -1 of this_name)
end repeat
return this_name
end remove_path
on path_only(this_name)
if this_name contains "/" then
set this_name to (the reverse of every character of this_name) as string
set x to the offset of "/" in this_name
set this_name to (text (x) thru -1 of this_name)
set this_name to (the reverse of every character of this_name) as string
end if
return this_name
end path_only
on remove_extension(this_name)
if this_name contains "." then
set this_name to (the reverse of every character of this_name) as string
set x to the offset of "." in this_name
set this_name to (text (x + 1) thru -1 of this_name)
set this_name to (the reverse of every character of this_name) as string
end if
return this_name
end remove_extension
on change_dates(oldfile, file_)
tell application "Finder" to set old_date to the creation date of file oldfile
set {year:y, month:m, day:d, hours:hh, minutes:mm} to (old_date)
set old_date to y * 100000000 + m * 1000000 + d * 10000 + hh * 100 + mm
set old_date_string to remove_scientific(old_date)
set file_ to POSIX path of file_
do shell script "touch -t " & old_date_string & " " & quoted form of file_
end change_dates
on remove_scientific(this_number)
set this_number to this_number as string
if this_number contains "E" then
set this_number to (the reverse of every character of this_number) as string
set x to the offset of "E" in this_number
set this_number to (text (x + 1) thru -1 of this_number)
set this_number to (the reverse of every character of this_number) as string
end if
if this_number contains "." then
set this_number to (the reverse of every character of this_number) as string
set y to the offset of "." in this_number
set timepartA to (text (y + 1) thru -1 of this_number)
set this_number to (the reverse of every character of this_number) as string
set z to the offset of "." in this_number
set timepartB to (text (z + 1) thru -1 of this_number)
end if
set new_number to timepartA & timepartB
return new_number
end remove_scientific
Monday, March 1, 2010
Chrome Mirrors and glass rendering
Friday, February 19, 2010
Wednesday, February 17, 2010
Sensors
Tuesday, February 9, 2010
Ten LED Sequencer
Monday, February 1, 2010
Friday, January 29, 2010
Saturday, January 9, 2010
"Space-duino" Arduino compatible board
Friday, January 8, 2010
Thursday, January 7, 2010
Makerbot electronics kit
The Makerbot kit that will control "Mallet CNC" has arrived. Three stepper motor drivers, one extruder controller and one Reprap motherboard are the main components, also included are 6 opto-endstops that need to be put together. There are three ribbon cables to connect the motor drivers to the motherboard, which means that all those other connectors will need more cables in order to hook them up.
Monday, January 4, 2010
Mallet CNC scale model
At 22% of it's final size, a scale model of the "Mallet CNC" was made from laser cut parts. This is a key part of the design process, it showed any assembly issues that are just not possible to see on the computer screen. Several changes have been made to the problematic shapes and it has now been given the green light for a full scale version.