2015年10月17日 星期六

電機 電車 電動車 網站 自造者 Electric Vehicle EV Motor Controllers Motor Controller Assembly Directions website

Electric Vehicle EV Motor Controllers Motor Controller Assembly Directions

一個 電動車 自造者 的 資料 分享 網站

Paul & Sabrina’s EV Stuff!

Motor Controller Assembly Directions

Here is the link: P&S motor controller assembly directions Updated April 15, 2011



Welcome to PaulandSabrinasEVstuff.com Electric Motor Controllers

http://www.paulandsabrinasevstuff.com/index.html
http://www.paulandsabrinasevstuff.com/evmotorcontrollers.html


另一個

http://www.instructables.com/id/Homemade-100-HP-Motor-Controller-for-an-Electric-C/?ALLSTEPS




Homemade 100 HP Motor Controller for an Electric Car



This instructable explains how to build your own 100 HP (peak) motor controller for use in an electric car or 
motorcycle conversion.  It can take any voltage up to 144v, and the peak current is 500 amps.  The cost of
 the components is a few hundred dollars, which means you can save over $1000 by putting one together 
yourself.   At 144v, you can expect a top speed of around 75 MPH in a car. 
Check out  http://ecomodder.com/forum/open-revolt-open-sourhttp://ecomodder.com/forum/open-revolt-open-source-dc-motor-controller.htmlce-dc-motor-controller.html
if you want to read about the whole story!

Experience in soldering is important.  If you want to really keep costs down, a mill is helpful, but that work
 can be outsourced to a local metal shop.


You are going to need a control board and etched power board.  The power board needs to be at least 3 ounce copper.   Ebay is a good place to look for heavy cheap copper clad PCB.  For example:

You could print the picture from this link and somehow transfer it onto a piece of heavy blank PCB, and etch it with a dremel if you have a ver y steady hand.  The dimensions are 8"x6".  This link also has the G-code that you can use to etch with a CNC mill or you could give the G-code to a machine shop.

Picture 2 and 3 below is an example of an early power board I made with a Dremel.

You can get a control board from me or you can make the control board in your favorite PCB layout software using the schematic here::
http://home.cogeco.ca/~tkooistra/Cougar_Controller_Rev2C_Schematic.pdf
And here are some pictures of the PCB layers:

////////////////// 電機 測試 監控

    Projects

    I really enjoy working on projects. Much of what I do is software oriented, but I also enjoy electronics and other hands-on opportunities.
  • Software projects
  • Hardware projects
  • Other projects - such as hybrid hardware & software projects, or even completely non-technological projects

To-Do List

Here is a list of projects that I want to do, some are partially implemented as proof-of-concept, while others are mere ideas:
Repository management system. Needs to handle: git, hg, svn, cvs, fossil, etc... Provide simple mirroring and update features, etc...
Plant pot water level sensor. Raises an alarm when the plat needs watering - perhaps even one day turn on a tap too??
Pulse Oximeter. I've always liked the idea of developing medical equipment, this sounds easy, and I'd like to have one!
Smart PC Power Control/Monitor. I've got a basic power control and monitor setup for my PCs, but I'd like to develop this to a less prototype-esque state. Key features are remote power state monitor and control, and remote reset. The module acts like physical switches and runs on it's own... sort of like HP's iLO and Dell's DRAC, but as a retro-fit accessory.


////////////////// 直流馬達 無刷 三相 馬達



Atmels ATmega48 (or ATmega88 for smarter ones) that does all the work. For some weird reason Chinese manufacturers LOVE ATmega48, it is in every design. Like always it is clocked at 16MHz with resonator. AVR in this design is in QFN package, in most of the cases TQFP is more common.5V voltage regulator in D-pack and some ceramic capacitors.Maxim MAX662 12V 30mA charge pump for high side gate driving. The output of the charge pump is stored on the ceramic capacitor on the right.
International Rectifier IR2101S high and low side mosfet driver. One for every channel. On the right of every driver there is a diode and a capacitor. This is probably bootstrap circuit that collects higher voltage for gate driving from inductance spikes of outputs.
In between of gate drivers are resistors for feedback.
The top part is for BEC. It looks identical to very common switching regulator block used in ebay products. Texas Instruments LM2575, originally a 1A step-down but now apparently a 5A one. 





拆 超音波 清洗機 原理 Vintage ultrasonic cleaner teardown



http://www.scubaboard.com/forums/do-it-yourself-diy/427800-when-your-ultrasonic-cleaner-stops-working.html

http://www.eevblog.com/forum/reviews/eumax-digital-ultrasonic-cleaner-teardown-and-review/

This is a new line of MemoryQuick ultrasonic cleaners from Eumax, and the only thing new is the memory button that preserves your settings in case you need to leave the room and "pause" the cleaner in its work.

The model is http://www.eumax-cleaner.com/en/pro_show.asp?id=17

Its a wide model with full tank capacity 2 L. However you need to take in account when buying one that you can fill approximately 70 % of tank with liquid and that comes to 1.4 L of useful volume.

The units is quite simple and good quality at first look. The maximal setting on the timer is 30 minuttes and on the heater 80 C. Nice thing about the unit is that you get metal mesh basket while some other manufacturers sell it separately.

Although it is made of stainless steel it is a lower grade (i cant surely claim which type) and they are somewhat saving money by not including the outside of unit with stainless steel screws since the unit can be moist at times of changing the liquid. The handle on the lid is made from low quality plastic and comes already half broken.

I got the unit mainly for cleaning my CNC router bits. Since im using a carpet tape to fix the blank PCB to the work table the bits get contaminated with glue and PCB material dust sticks to them. I bought similiar 50 W product in local electronics store but it did not work as it should because you can see it does not use proper transducer (the last photo) which is not 50 W as stated on the package.

The inside build quality is good and simple. It features a SMPS power supply for the transducer and heater. The SMPS is controlled by the board on the front of the unit which is powered by a small transformer and on board switching regulator.

Regarding the cleaning efficiency it is superb! I throw a handful of glued and full of dust CNC bits inside, added water, 2 drops of dish washing detergent and set the temp to 30 C and timer to 5 minutes.

They come out so clean like new, and whatever i thrown at it later came out as new. Since this unit is a genuine with proper 50 W transducer it really cleans and im perfectly happy with it.

Arduino 好站 分享 紀錄


Jean-Claude Wippler. “Jee” stands for JC’s environmental electronics.

http://jeelabs.org

http://jeelabs.org/2010/11/

http://jeelabs.org/2015/10/14/arduino-ide-w-lpc824/

About

You’re looking at a weblog maintained by Jean-Claude Wippler. “Jee” stands for JC’s environmental electronics.

This is the place where I report on my adventures in “Computing Stuff tied to the Physical World”. I’ve  started working on some hardware / firmware / software to better get to grips with energy consumption in and around the house. I’d also like to automate things a bit more, but only to the point where such domotics really feels like a genuine improvement. My goal is to reduce the number of gadgets and appliances where possible, not to add yet more non-intuitive technology to my living environment.


I’ve been a self-employed IT consultant for some 20 years now. I have a masters degree in mathematics and computer science and have recently re-discovered my passion for stuff that does stuff – with a meaningful purpose, preferably. When I found out that small MPU chips are now powerful enough to perform fairly complex tasks, can be programmed in plain C / C++, and are amazingly affordable, it was like a dream come true. A lot of things are coming together for me in this new idea space.

步進馬達 當成 旋轉編碼 分度盤 光學編碼 Hard Drive Stepper Motor as Rotary Encoder



Debounce Stepper Motor Rotary Encoder Quadrature stepper

http://rfanat.ru/s6/mbu.html#_top

linuxcnc 是 一個 由 社群開發 的 cnc nc 數值控制軟體 他目的是 用於 cnc 車床 切割

http://linuxcnc.org


LinuxCNC 2.7.0 Released!

Fresh install instructions. Updating from 2.6.x instructions. Release (changelog).

Last Updated on Sunday, 06 September 2015 11:43

LinuxCNC: Software for realtime control

Welcome to the home of the LinuxCNC


Here you'll find information about the software, how to get it, how to configure it, how to run it, and especially where to ask for help.

Community maintained wiki with lots of information and examples about configuration and using LinuxCNC.

LinuxCNC is a software system for computer control of machines such as milling machines, lathes, plasma cutters, cutting machines, robots, hexapods, etc.

LinuxCNC is Free software released under the terms of the GNU GPLv2 (General Public License version 2).

LinuxCNC is a descendent of the original NIST Enhanced Machine Controller software, which is in the Public Domain.
LinuxCNC has many exciting new features and brings a lot of new functionality (a flexible and powerful Hardware Abstraction Layer that allows you to adapt it to many kinds of machinery, a software PLC controller, easier-than-ever installation, a new trajectory planner, and more.)

LinuxCNC is precompiled with Debian Wheezy (or, previously, Ubuntu LTS) for ease of installation and longevity.

Note: Do Not upgrade the Linux operating system from the installed version as it will prevent LinuxCNC from working as a specific kernel is required.


Last Updated on Wednesday, 20 May 2015 14:39


linuxcnc 是 一個 由 社群開發 的 cnc nc 數值控制軟體 他目的是 用於 cnc 車床 切割  
主要是針對 (original NIST Enhanced Machine Controller software)是一個PLC軟體控制器

作業系統 : 
 Ubuntu LTS

低成本 直流 無刷 馬達控制器 MOSFET OPAMP Low Cost Controller of BLDC motor.

直流 無刷 馬達 簡介 Introduction to InstaSPIN™-BLDC Motor Control Solution

網版印刷 Multi-Color Screen Printing T-shirt 網版 印刷 製作 分色 製版












https://www.youtube.com/watch?v=cHkuti0EXgw&list=PLD407EE02571D2253

iPhone iOS 藍芽 支援 AVAudioSession 音響 切換 耳機


iPhone iOS 藍芽 支援 音響 切換 耳機

AVAudioSession bluetooth support
 December 17, 2014  Nikola Sobadjiev
Adding Bluetooth audio support to an iOS app 

[session setCategory:AVAudioSessionCategoryPlayAndRecord 
         withOptions:AVAudioSessionCategoryOptionAllowBluetooth
               error:&error]; 

Switching to bluetooth

- (AVAudioSessionPortDescription*)bluetoothAudioDevice
{
    NSArray* bluetoothRoutes = @[AVAudioSessionPortBluetoothA2DP, AVAudioSessionPortBluetoothLE, AVAudioSessionPortBluetoothHFP];
    return [self audioDeviceFromTypes:bluetoothRoutes];
}

- (AVAudioSessionPortDescription*)builtinAudioDevice
{
    NSArray* builtinRoutes = @[AVAudioSessionPortBuiltInMic];
    return [self audioDeviceFromTypes:builtinRoutes];
}

- (AVAudioSessionPortDescription*)speakerAudioDevice
{
    NSArray* builtinRoutes = @[AVAudioSessionPortBuiltInSpeaker];
    return [self audioDeviceFromTypes:builtinRoutes];
}

- (AVAudioSessionPortDescription*)audioDeviceFromTypes:(NSArray*)types
{
    NSArray* routes = [[AVAudioSession sharedInstance] availableInputs];
    for (AVAudioSessionPortDescription* route in routes)
    {
        if ([types containsObject:route.portType])
        {
            return route;
        }
    }
    return nil;
}

- (BOOL)switchBluetooth:(BOOL)onOrOff
{
    NSError* audioError = nil;
    BOOL changeResult = NO;
    if (onOrOff == YES)
    {
        AVAudioSessionPortDescription* _bluetoothPort = [self bluetoothAudioDevice];
        changeResult = [[AVAudioSession sharedInstance] setPreferredInput:_bluetoothPort
                                                     error:&audioError];
    }
    else
    {
        AVAudioSessionPortDescription* builtinPort = [self builtinAudioDevice];
        changeResult = [[AVAudioSession sharedInstance] setPreferredInput:builtinPort
                                                     error:&audioError];
    }
    return changeResult;
}
Wow, that was a lot of code! Well, the important bit is setting the preferred input in the last method. The other code is just to get the right AVAudioSessionPortDescription object for speaker, earphone or bluetooth.

Switching to speaker
While there are other way to do that, this is what I prefer to use:

- (BOOL)switchSpeaker:(BOOL)onOrOff
{
    NSError* audioError = nil;
    BOOL changeResult = NO;
    if (onOrOff == YES)
    {
        changeResult = [[AVAudioSession sharedInstance] overrideOutputAudioPort:AVAudioSessionPortOverrideSpeaker
                                                           error:&audioError];
    }
    else
    {
        AVAudioSessionPortDescription* builtinPort = [self builtinAudioDevice];
        changeResult = [[AVAudioSession sharedInstance] setPreferredInput:builtinPort
                                                                    error:&audioError];
    }
    return changeResult;
}
Switching to earpiece
This one is easy. It’s just the opposite of switching to speaker:

- (BOOL)switchEarphone:(BOOL)onOrOff
{
    return [self switchSpeaker:!onOrOff];
}

AVAudioSession bluetooth support can be a daunting task. And there isn't much information about it in the internet. I hope this article helps you with your task. Thanks for reading!
Share this:
Share
Related Posts:

Text to speech in iOS – AVSpeechSynthesizer tutorial 

UIPageViewController tutorial 

NSURLProtocol tutorial
Tutorials AVAudioSession, bluetooth, ios, Objective-C
Post navigation
← DevMonologue has a new lookTop articles for 2014 →
10 thoughts on “AVAudioSession bluetooth support”

 S
- February 16, 2015 at 4:37 pm
builtinAudioDevice is used in switchSpeaker? And speakerAudioDevice isn’t used. Are you sure this is ok?

Reply
 Nikola Sobadjiev
- February 17, 2015 at 3:22 pm
Yes, it should be OK. We cannot use speakerAudioDevice to go to speaker in switchSpeaker. That’s because we rely on the setPreferredInput:error: method to switch the audio device. However, it sets the preferred input. And the speaker is an output, not input. In fact, the earpiece and the speaker use the same input device – the built-in mic.

In my testing the only reliable way to go to the speaker is via the overrideOutputAudioPort:error: method and AVAudioSessionPortOverrideSpeaker.

Reply
 Jakob Olsen
- March 6, 2015 at 7:11 am
Hi, great post.

Would it be possible to make the audio route from builtin Microphone to bluetooth headset ?
if how yes could ou be so kind and show me in an example ?

Br
Jakob

Reply
 Nikola Sobadjiev
- March 9, 2015 at 11:41 am
Doesn’t the sample code in the article work? It should be something like:

NSArray* bluetoothRoutes = @[AVAudioSessionPortBluetoothA2DP, AVAudioSessionPortBluetoothLE, AVAudioSessionPortBluetoothHFP];
AVAudioSessionPortDescription* _bluetoothPort = [self audioDeviceFromTypes:bluetoothRoutes];
changeResult = [[AVAudioSession sharedInstance] setPreferredInput:_bluetoothPort
error:&audioError];

Reply
 Stas
- April 7, 2015 at 10:30 pm
Hi
Is it possible to make bluetooth mic for input and device speaker for output?

Or they still didn’t changed this rule?
Moreover, selecting a Bluetooth HFP output using the MPVolumeView’s route picker will automatically change the input to the Bluetooth HFP input. Therefore both the input and output will always end up on the Bluetooth HFP device even though only the input or output was set individually.

Thx

Reply
 Nikola Sobadjiev
- April 10, 2015 at 1:46 pm
I personally haven’t tried to achieve that, but it seems that every time you change either the input or output, iOS changes the audio device altogether.

Reply
 Subrata Laha
- August 4, 2015 at 5:12 am
Hi , anyone have tried the same problem (bluetooth mic for input and device speaker for output) ? Please let me know , thanks in advance .

Reply
 Nikola Sobadjiev
- August 4, 2015 at 8:23 am
I don’t think you’ll be able to achieve this with AVAudioSession. If you really need to implement that feature, you’ll probably have to use CoreBluetooth and handle things from a really low level.

Reply
 raja
- April 20, 2015 at 2:45 pm
i am doing music app.

this is my stackoverflow link about my problem

http://stackoverflow.com/questions/29740589/ios-how-to-play-buffering-audio-in-bluetooth-headset-in-my-music-app

i applied your code. now my doubt is

when we need to call these below methods?
– (BOOL)switchBluetooth:(BOOL)onOrOff
– (BOOL)switchEarphone:(BOOL)onOrOff
– (BOOL)switchSpeaker:(BOOL)onOrOff


Reply

Nikola Sobadjiev
- April 22, 2015 at 8:30 am
Normally, you’d call one of these methods in response to a user action. When you support multiple audio sources, you’d want to allow your users to choose between them at runtime.

You can call them reliably even after playback has started. They’ll still change the audio device.

In your case, provided that you always what the audio to go through the bluetooth headset, you’d want to call switchBluetooth: before starting your audio, but after you activate the audio session and set the category via the setCategory: method of AVAudioSession

Reply