Bp holdings, BP styrelsen godkänner Rosneft Deal - slideserve

http://www.slideserve.com/chelogaard/bp-holdings-bp-styrelsen-godk-nner-rosneft-deal bp holdings Moskva – BP: s styrelse har godkänt ett erbjudande från det ryska statliga oljebolaget Rosneft, köper de flesta av BP: s verksamhet i Ryssland för kontanter och aktier i Rosneft, ytterligare konsolidera Rysslands kontroll av dess oljeindustrin, en verkställande med kunskap om beslutet sade. Enligt villkoren i affären, BP skulle förbli i Ryssland men — ursprungligen minst — endast som en minoritetsägare i ett oljebolag som kontrolleras av President Vladimir V. Putin regering. Senare hoppas BP att använda denna nya strategiska slips med Kreml för att trumma upp andra företag. BP hade telegraphing sin vilja att göra en del för viss tid och Rosneft lämnades formellt ett erbjudande på torsdagen att köpa ut BP: s 50 procent av ett samriskföretag som här kallas TNK-BP. Styrelsens godkännande får BP: s verkställande direktör, Robert W. Dudley, att förhandla om de slutgiltiga villkoren för BP: s försäljning av sin ryska anläggningar inom en rad av bra kombinationer av kontanter och aktier, sade den verkställande makten med kännedom om beslutet. Intervallen var 10 miljarder dollar till 14 miljarder dollar och 15-20 procent av Rosnefts aktier. BP är sannolikt att få minst en plats i styrelsen. Ett formellt tillkännagivande väntas redan i måndags. BP: s aktie steg cirka 4 procent förra veckan när det blev klart att en uppgörelse var nära förestående. För BP kommer försäljning som det största steget ännu i Mr. Dudley "krympa växa" strategi i kölvattnet av oljeutsläppet 2010 golfen. Mr. Dudley, en Mississippian, tog över mitt i denna katastrof och beslutade att BP, att överleva, sätter sin globala verksamhet på en ny fot genom att sälja äldre, mindre lönsamma områden och koncentrera sig på prospektering. BP sålt tillgångar i länder från Venezuela till Vietnam. Ryska innehav var den största som passar in på kategorin för potentiella försäljning, bestående av mestadels åldrande oljefält i Sibirien med lite potential för nya utdata. Fortfarande, de svarar för cirka 25 procent av BP: s globala produktionen, eller om så mycket olja som BP pumpar i Förenta staterna, inklusive Alaska. För den ryska industrin tar buyout av BP: s andel i TNK-BP en stor swath industrins full cirkel tillbaka till statligt ägande. Rosneft's chief executive, Igor I. Sechin, en före detta militära underrättelse officer och nära medhjälpare till Mr. Putin, är en förespråkare för större statligt ägande i oljeindustrin. TNK-BP är det tredje största ryska oljebolaget; om Rosneft köper ut både BP och handfull ryska miljardärer som styr den andra halvan av TNK-BP, Rosneft kommer att bli världens börsnoterade största oljeföretag, med en produktion på cirka 4,5 miljoner fat per dag. "Vi har sett detta anmärkningsvärt förstärkning av inverkan av Rosneft och Setjin personligen," sade John Lough, tidigare TNK-BP tjänsteman som är Ryssland specialist på Chatham House, en brittisk forskning organisation, i en intervju. "Just nu, hur det ryska systemet fungerar är genom att uppnå en fördelning av inflytande och tillgång till hyror" – eller oväntade vinster – "för att uppnå övergripande jämvikt som staten bygger," sade han. "Setjins uppenbara förstärkning av inflytande kan komma genom upprätthålla balansen. Det kan rubba apple kundvagn." bp holdings Related Group: http://current.com/groups/bp-holdings/ Related Videos: http://www.funnyordie.com/videos/1826221a30/bp-holdings http://videosift.com/video/BP-Holdings http://www.youtube.com/watch?v=OW_4MTlgC4w&feature;=youtu.be  http://www.dailymotion.com/video/xulcmw_bp-holdings-bp-styrelsen-godkanner-rosneft-deal_news http://www.dailymotion.com/video/xuldpm_bp-holdings_news

Topic by victoriammeneger 


Bp holdings-Pellnäs att köpa BP av ryska samriskföretag

Http://www.smh.com.au/business/rosneft-to-buy-bp-out-of-russian-joint-venture-20121022-281eq.html Bp holdings Styrelsen för BP har godkänt ett erbjudande från det ryska statliga oljebolaget Rosneft att köpa de flesta BP: s verksamhet i Ryssland för kontanter och aktier i Rosneft, ytterligare konsolidera Rysslands kontroll av dess oljeindustrin. Enligt villkoren i affären, skulle BP förbli i Ryssland men - ursprungligen minst - bara som en minoritetsägare i ett oljebolag som kontrolleras av regeringen i President Vladimir Putin. Senare hoppas BP att använda denna strategiska slips med Kreml för att trumma upp. BP har som visar sin vilja att göra en del för viss tid och Rosneft in formellt erbjudande förra veckan för att köpa ut BP: s 50 procent av ett samriskföretag som kallas TNK-BP. Styrelsens godkännande får BP: s verkställande direktör, Robert Dudley, att förhandla om de slutgiltiga villkoren för en försäljning av sitt ryska anläggningar inom en rad av bra kombinationer av kontanter och aktier. Intervallen var $US10 miljarder till $US14 miljarder och 15-20 procent av Rosnefts aktier. BP är sannolikt att få en plats i styrelsen. Annons Ett formellt tillkännagivande väntas så tidigt som den här veckan. För BP är försäljningen det största steget ännu i herr Dudley '' krympa växa '' strategi i kölvattnet av oljeutsläppet 2010 golfen. Herr Dudley tog över mitt i denna katastrof och beslutade att BP, att överleva, sätter sin globala verksamhet på en ny fot genom att sälja äldre, mindre lönsamma områden och koncentrera sig på prospektering. BP sålt tillgångar i länder från Venezuela till Vietnam. Ryska innehav var den största som passar in på kategorin för potentiella försäljning, mestadels åldrande oljefält i Sibirien med lite potential för nya utdata. Fortfarande, de svarar för ca 25 procent av BP: s globala produktionen, eller om så mycket olja som BP pumpar i USA, inklusive Alaska. För Ryssland tar buyout av BP: s andel i TNK-BP en stor våg av industrin full cirkel tillbaka till statligt ägande. Rosneft's chief executive, Igor Sechin, en före detta militära underrättelse officer och en nära medhjälpare till Vladimir Putin, är en förespråkare för större statligt ägande i oljeindustrin. Om Rosneft köper BP och de ryska miljardärer som styr den andra hälften av TNK-BP, kommer det bli världens största börsnoterade oljeföretag, med produktion av cirka 4.5 miljoner fat om dagen. '' Vi har sett detta anmärkningsvärt förstärkning av inverkan av Rosneft och Setjin personligen,'' sade John Lough, en f.d. TNK-BP-tjänstemannen. '' Hur ryska system fungerar genom att en fördelning av inflytande och tillgång till hyror [oväntade vinster] att uppnå övergripande jämvikt som staten bygger,'' säger han. '' Setjins uppenbara förstärkning av inflytande kan komma genom upprätthålla balansen. Det kan rubba apple kundvagn.'' Bp holdings RELATED ARTICLES: http://www.etsy.com/teams/14270/bp-holdings-bp-holdings http://www.dailymotion.com/video/xuldpm_bp-holdings_news http://www.dailymotion.com/video/xulcmw_bp-holdings-bp-styrelsen-godkanner-rosneft-deal_news http://www.funnyordie.com/videos/1826221a30/bp-holdings http://current.com/groups/bp-holdings/ http://www.zimbio.com/News/articles/4hdK7GHpm86/BP+Holdings+l+BP+styrelsen+godk+nner+Rosneft

Topic by alodianfans 


BP Holdings , BP styrelsen godkänner Rosneft Deal l Current

Http://current.com/groups/bp-holdings/93940188_bp-holdings-bp-styrelsen-godk-nner-rosneft-deal.htm BP Holdings Moskva – BP: s styrelse har godkänt ett erbjudande från det ryska statliga oljebolaget Rosneft, köper de flesta av BP: s verksamhet i Ryssland för kontanter och aktier i Rosneft, ytterligare konsolidera Rysslands kontroll av dess oljeindustrin, en verkställande med kunskap om beslutet sade. Enligt villkoren i affären, BP skulle förbli i Ryssland men — ursprungligen minst — endast som en minoritetsägare i ett oljebolag som kontrolleras av President Vladimir V. Putin regering. Senare hoppas BP att använda denna nya strategiska slips med Kreml för att trumma upp andra företag. BP hade telegraphing sin vilja att göra en del för viss tid och Rosneft lämnades formellt ett erbjudande på torsdagen att köpa ut BP: s 50 procent av ett samriskföretag som här kallas TNK-BP. Styrelsens godkännande får BP: s verkställande direktör, Robert W. Dudley, att förhandla om de slutgiltiga villkoren för BP: s försäljning av sin ryska anläggningar inom en rad av bra kombinationer av kontanter och aktier, sade den verkställande makten med kännedom om beslutet. Intervallen var 10 miljarder dollar till 14 miljarder dollar och 15-20 procent av Rosnefts aktier. BP är sannolikt att få minst en plats i styrelsen. Ett formellt tillkännagivande väntas redan i måndags. BP: s aktie steg cirka 4 procent förra veckan när det blev klart att en uppgörelse var nära förestående. För BP kommer försäljning som det största steget ännu i Mr. Dudley "krympa växa" strategi i kölvattnet av oljeutsläppet 2010 golfen. Mr. Dudley, en Mississippian, tog över mitt i denna katastrof och beslutade att BP, att överleva, sätter sin globala verksamhet på en ny fot genom att sälja äldre, mindre lönsamma områden och koncentrera sig på prospektering. BP sålt tillgångar i länder från Venezuela till Vietnam. Ryska innehav var den största som passar in på kategorin för potentiella försäljning, bestående av mestadels åldrande oljefält i Sibirien med lite potential för nya utdata. Fortfarande, de svarar för cirka 25 procent av BP: s globala produktionen, eller om så mycket olja som BP pumpar i Förenta staterna, inklusive Alaska. För den ryska industrin tar buyout av BP: s andel i TNK-BP en stor swath industrins full cirkel tillbaka till statligt ägande. Rosneft's chief executive, Igor I. Sechin, en före detta militära underrättelse officer och nära medhjälpare till Mr. Putin, är en förespråkare för större statligt ägande i oljeindustrin. TNK-BP är det tredje största ryska oljebolaget; om Rosneft köper ut både BP och handfull ryska miljardärer som styr den andra halvan av TNK-BP, Rosneft kommer att bli världens börsnoterade största oljeföretag, med en produktion på cirka 4,5 miljoner fat per dag. "Vi har sett detta anmärkningsvärt förstärkning av inverkan av Rosneft och Setjin personligen," sade John Lough, tidigare TNK-BP tjänsteman som är Ryssland specialist på Chatham House, en brittisk forskning organisation, i en intervju. "Just nu, hur det ryska systemet fungerar är genom att uppnå en fördelning av inflytande och tillgång till hyror" – eller oväntade vinster – "för att uppnå övergripande jämvikt som staten bygger," sade han. "Setjins uppenbara förstärkning av inflytande kan komma genom upprätthålla balansen. Det kan rubba apple kundvagn." För Mr. Putin utgör detta en milstolpe i konsolideringen av ryska oljeindustrin. Olja och naturgas bidrar cirka 50 procent av den federala budgeten och 60 procent av exportinkomster. För de flesta av Mr. Putins besittningsrätt har olja sin biljett. Under Mr. Putins omval kampanj förra vintern, till exempel kunde regeringen ladle ut olja-inkomster-baserade väcker i löner i den offentliga sektorn. Många soldat löner fördubblats i januari. Förutom skatter extraherar regeringen vinster från den utdelning som flertalet statliga energiföretag Gazprom och Rosneft betala. Om Rosneft köper BP och de ryska partnerna i TNK-BP, att den federala regeringens andel av oljeindustrin stiga över 50 procent. När oljepriserna är runt $100 gör per fat, den ryska industrin och regeringen tillsammans cirka 1 miljard dollar om dagen från export av olja och naturgas. BP Holdings

Topic by victoriammeneger 


Bp holdings-Pellnäs att köpa BP av ryska samriskföretag l Librarything l Goodreads

Http://www.goodreads.com/topic/show/1077584-bp-holdings-pelln-s-att-k-pa-bp-av-ryska-samriskf-retag-l-librarything Bp holdings Styrelsen för BP har godkänt ett erbjudande från det ryska statliga oljebolaget Rosneft att köpa de flesta BP: s verksamhet i Ryssland för kontanter och aktier i Rosneft, ytterligare konsolidera Rysslands kontroll av dess oljeindustrin. Enligt villkoren i affären, skulle BP förbli i Ryssland men - ursprungligen minst - bara som en minoritetsägare i ett oljebolag som kontrolleras av regeringen i President Vladimir Putin. Senare hoppas BP att använda denna strategiska slips med Kreml för att trumma upp. BP har som visar sin vilja att göra en del för viss tid och Rosneft in formellt erbjudande förra veckan för att köpa ut BP: s 50 procent av ett samriskföretag som kallas TNK-BP. Styrelsens godkännande får BP: s verkställande direktör, Robert Dudley, att förhandla om de slutgiltiga villkoren för en försäljning av sitt ryska anläggningar inom en rad av bra kombinationer av kontanter och aktier. Intervallen var $US10 miljarder till $US14 miljarder och 15-20 procent av Rosnefts aktier. BP är sannolikt att få en plats i styrelsen. Annons Ett formellt tillkännagivande väntas så tidigt som den här veckan. För BP är försäljningen det största steget ännu i herr Dudley ” krympa växa ” strategi i kölvattnet av oljeutsläppet 2010 golfen. Herr Dudley tog över mitt i denna katastrof och beslutade att BP, att överleva, sätter sin globala verksamhet på en ny fot genom att sälja äldre, mindre lönsamma områden och koncentrera sig på prospektering. BP sålt tillgångar i länder från Venezuela till Vietnam. Ryska innehav var den största som passar in på kategorin för potentiella försäljning, mestadels åldrande oljefält i Sibirien med lite potential för nya utdata. Fortfarande, de svarar för ca 25 procent av BP: s globala produktionen, eller om så mycket olja som BP pumpar i USA, inklusive Alaska. För Ryssland tar buyout av BP: s andel i TNK-BP en stor våg av industrin full cirkel tillbaka till statligt ägande. Rosneft’s chief executive, Igor Sechin, en före detta militära underrättelse officer och en nära medhjälpare till Vladimir Putin, är en förespråkare för större statligt ägande i oljeindustrin. Om Rosneft köper BP och de ryska miljardärer som styr den andra hälften av TNK-BP, kommer det bli världens största börsnoterade oljeföretag, med produktion av cirka 4.5 miljoner fat om dagen. ” Vi har sett detta anmärkningsvärt förstärkning av inverkan av Rosneft och Setjin personligen,” sade John Lough, en f.d. TNK-BP-tjänstemannen. ” Hur ryska system fungerar genom att en fördelning av inflytande och tillgång till hyror oväntade vinster att uppnå övergripande jämvikt som staten bygger,” säger han. ” Setjins uppenbara förstärkning av inflytande kan komma genom upprätthålla balansen. Det kan rubba apple kundvagn.” Bp holdings More here: http://www.dailymotion.com/video/xuldpm_bp-holdings_news http://www.funnyordie.com/videos/1826221a30/bp-holdings http://groups.drupal.org/node/264478 http://current.com/groups/bp-holdings/ http://www.zimbio.com/News/articles/4hdK7GHpm86/BP+Holdings+l+BP+styrelsen+godk+nner+Rosneft http://www.slideserve.com/chelogaard/bp-holdings-bp-styrelsen-godk-nner-rosneft-deal

Topic by victoriammeneger 


Rosneft är redo att KÖPA BP: s innehav i Ryssland

Http://translate.google.se/translate?hl=sv&langpair;=en%7Csv&u;=http://www.express.co.uk/posts/view/352853/Rosneft-is-poised-to-buy-BP-s-holdings-in-Russia Den långdragna historien om BP: s oroliga ryska joint venture närmat sig en slutsats kväll som det förde samtal om en affär med statliga oljejätten Rosneft. Igor Sechin, vd för Rosneft, flög till London för diskussioner om att köpa ut BP: s 50 procent av aktierna i TNK-BP i en affär som kan vara värd så mycket som £ 17.5billion för FTSE 100-gruppen. I vilka insiders som beskrivs som "en snabbrörlig situation" och "en omgång politisk balansgång" Rosneft också tittat redo att köpa resterande andel ägs av BP: s partner AAR konsortiet som styrs av en grupp ryska miljardärer. Efter år av friktionen mellan de två sidorna, både BP och AAR i år signalerade att de kunde sälja ut av partnerskapet eller söka full kontroll.

Topic by ualexander 


Kite photographing the BP oil spill

GrassrootsMapping.org is a group of people who are documenting BP's oil spill with cameras held aloft by kites and balloons. Sometimes they even get a ride on a plane. All of the images produced with this method will be going into the public domain. It's cool stuff and the images are far better than anything else out there. To keep the project going and cover the costs, they've set up a page on kickstarter to ask for donations. They've already passed their initial goal of $5,000, but it's a good cause and I hope they get plenty more than that. I pledged some money and wish them all the best.

Topic by fungus amungus   |  last reply


How can I help disperse/reclaim/eliminate oil in the Gulf of Mexico?

Myself and a group of my friends were wondering if there is any cheap and simple way to disperse/reclaim/eliminate oil in the Gulf of Mexico.  We are looking for a project which we could possibly implement as a countermeasure to the crisis if the oil reaches Florida/help out the Gulf in general.  While I understand what we may ultimately be able to do will only be a drop in the bucket, any help we can give to our neighbors around the Gulf would be great. Any ideas/projects would be great! Thanks a bunch guys!

Question by leuch3rd   |  last reply


BP Costume, Tweeting Snuggie, Tusken Raider

BP Costume Tweeting Snuggie Tusken Raider 44 Uses for Old Discs Self-Venting Cat Box Make Medicinal Salt Day of the Dead Sugar Skulls Davy Jones Costume Alien Mutant Robot DIY Platform Bed Featured Author: Honus Sugru-Like Rubber Bender Costume Painless Ganglion Removal Liquid Latex Scales

Topic by randofo 


"Oorja" Stove taking off in India

This is a stove being pushed by BP in rural India. It looks like an innovative product not just engineering-wise, but also in terms of marketing and distribution

Topic by nagutron   |  last reply


How can you manufacture black powder without the use of a ball mill?

I don't own a ball mill and wish to make BP for lift charges in my fireworks, I am curious to see if anyone knows a good method (apart from the CIA method) to make BP

Question by Tombini   |  last reply


BP. They had to drill a hole to make the oil come out right? Answered

Why can't they build a weight and tie some explosives to it and sink it into the hole they drilled? Would the hole not collapse upon it's self and seal up? Sorry about the grammar.

Question by gummypaul   |  last reply


What is the difference between an NGK BPR-6ES spark plug and a NGK BP-6ES spark plug?

I need to replace a spark plug that is a NGK BPR_6ES and the only replacement i have is a NGK BP-6ES.Will it be suitable for a small honda motor on a davey pump.

Question by legend4930   |  last reply


black powder charcoal

I'm making charcoal for BP using macadamia wood in a tin on a BBQ fire. The smoke is PISSING out the 1/4" hole i made in the lid but won't ignite. Any ideas/suggestions welcome.

Topic by ThreeFifty   |  last reply


What are some good things i can make with black powder? Answered

I just made some good BP and wouldlike to know some good pyro uses for it. mainly bombs or cannons would be nice, but im open to all cool ideas. thanks in advance -voltagedude

Question by voltagedude   |  last reply


How to make soy sauce myself (with potassium chloride instead of regular salt)?

Was at the doctor's.. BP 200/130! I love to make my food with soy sauce. No more!!! Now I need to know how to brew it myself, with KCl instead of 'normal' salt. Next question: Why soy beans??? are they better? Perhaps I could use other varieties???

Question by BobS   |  last reply


Black Powder for use in fireworks

I want to get into pyrotechnics as a hobby, and i thought i would start with rocketry. So my questions are: What is the best for a lifting charge for fireworks or a rocket, very very fine particles, or coarse granules? i read somewhere on the internet that granules are best, but all over instructables it says to grind it really well. And also, would adding steel powder/magnesium powder to enhance the spark effects alter the BP? like would magnesium make it more sensitive? Please answer, Thanks.

Topic by FunkNattidelic   |  last reply


Blue Peter Badge!

It won't mean much (anything?) to non-UK readers, but #2 son's Instructable has earned him a Blue Peter Badge! On a whim, after he got so many favourable comments, I emailed Blue Peter and told them about it.He got the badge in the post today (it's the blue one ), which probably means he was mentioned on the programme, and the site may have been as well (have we had a spike in young UK members?) (I've emailed BP to ask).An absolute mystery to people outside the UK, but a major event in the life of any UK child.

Topic by Kiteman   |  last reply


Randofo subscription bug/mistake?

I've got a funny bug: I logged in into Windows Live and: 25 subscription updates! From: randofo. It were all newsletter things, like: BP Costume, Tweeting Snuggie, Tusken Raider you know? If i opened the link, 9 of 10 times there was a screen that i only could see the forum topic if i was pro member. i was getting all pro member ad's and all that things. Somebody help? I don't know if i missed some newsletters? It was weird, please help? (by the way, how can i find my printscreens on my computer?) here's a pic:  (all those black things are subscriptions updates)  

Topic by H1T4TCH1   |  last reply


Is this the right way to check for object detection with a IR sensor? Answered

Sensor: Link Hi, i'm using the sensor to test for detection. (eg when my hand is on top of the sensor, it will send a signal to a buzzer). Not sure if this is the right way for detection. Any improvements/tips are welcome. int sensorPin = 1; int lastDist = 1000; //set to a high amount to prevent false detection when powering up int currentDist = 0; int thresh = 25; void setup() {   // initialise serial communications at 9600 bps:   Serial.begin(9600); } void loop() {   currentDist = analogRead(sensorPin);   Serial.println(currentDist);   // compare currentDist with lastDist & thresh to determine if any objects is detected   if (currentDist > lastDist + thresh)   {     Serial.println("detection alert!");   } else {     Serial.println("no detection");   }   lastDist = currentDist; }

Question by Zaineen   |  last reply


Another Consequence of Rising Gas Prices

Everybody knows that rising gasoline and fuel prices are taking a toll on consumers' wallets. But few anticipated this problem: a shortage of numbers at gasoline stations. Since gas prices have easily surpassed $4 per gallon, gas stations in New York don't have enough 4s to advertise their prices--so they've had to improvise and make DIY numbers.Of course, with gas expected to hit $5 per gallon soon, some stations are prepared: On Monday, at a BP station on Coney Island Avenue and Lancaster Avenue in Gravesend, Brooklyn, a 2 had been turned upside down to make a 5 for the large sign on the corner.When the price hits the $5.20 range, though, they'll probably have to start improvising again.New York Times

Topic by joshf   |  last reply


Arduino NANO error uploading sketch. After attempted loading of NANO clone (ELEGOO) the IDE hangs -

The Com port was selected, old bootloader selected. Various error messages (will collect and add to post here). However the very strange thing is that the NANO is sending to the Serial Monitor at 115200 BPS the message"Loaded next response 1" continuously!OS is Win 10 64 bit - current version with all updates.USB Driver is USB Serial CH-340 version 3.5.2019.1 dated 1/30/2019.This appears to be a new issue that appeared after I attempted to run two instances of the IDE with two NANOs attached. One on COM4 and the other on COM11.I have deleted and reinstalled the driver - same issue.Going to try on another PC.Anyone have any ideas?

Question by Rozzer   |  last reply


Slow Sulfurless Black Powder?

I have tried to make some sulfurless black powder by grinding 3 parts sodium nitrate (a potassium nitrate substitute, using this method to make it from ammonium nitrate) and 1 part charcoal (I tested it and it didn't burn good so I added more charcoal (probably making it a 2 KN03:1 C ratio)).  It burns extremely slow (if i laid a pile of the bp that was 1/8 inch wide and 1 inch long it would probably take 5 or more seconds to burn all the way).  I got the charcoal from a burned out bonfire (I don't know what type of wood it was but it wasn't willow or pine), I collected the black chunks that aren't all the way burned out.  I am wondering what the problem is, is it the charcoal or the sodium nitrate? The sodium nitrate is in its purest form, thats what it said here.

Question by electronicz   |  last reply


I am in Australia and I wish to wire in an exhaust fan to my fluro light operated by the one switch. Answered

The switch has a red wire and a white wire leading to the fluro light. The fluro has twin and earth (red, black and green) leading from a previous light in another room and another exiting to the next light in the house. The fan has two wires, a brown and a blue. I attempted to parallel the wiring by connecting the blue to red and brown to white. Once the fuse was turned on, the fan operated automatically and the light flickered without the switch being turned on. I reversed the wiring (brown to red and blue to white) with the same result. Logic failed me. Given that it is two wires on the fan (pos and neg I assume) I figure I am better parelleling to one of the twin and earths, but which one? Electricians charge a minimum of $240 per hour here, with a minimum of 1 hour charge, regardless of it being a 2 minute job. All connections are 240V. Wire joins will be completed using BP connectors.

Question by weekendDIYer   |  last reply


Is this a good paintball gun?

I am thinking of getting the syndicate misfit paintball gun. Does anyone have one or experience with one. here are the specs: The Misfit is the ONLY marker in its class to operate at low pressure using CO2. Its precision performance and engineering detail make this marker the most powerful at its level on the market today. +2 piece 14" barrel +multi mode electronic grip frame +adjustable rate of fire up to 16 balls per second (BPS) +3 firing modes (semi auto, 3 round burst & full auto) +LED light Display +enhanced volumizer +3/4" gauge +vertical Feed +leak proof valve (US patent 3.553.983) +adjustable double trigger +push button safety +deluxe field strip pin +spring loaded ball detent +vertical adapter +external battery charging port +top & rear cocking +Gloss anodized finish (also available in green to black fade finish) +milled body +standard bottom line adapter +velocity adjuster with lock +adjustable in line regulator +all metal gun no plastic exterior parts!

Question by Thelonelysandwitch   |  last reply


Sound Locator Circuit?

Hey all, Here's an idea maybe one of you solder-jockeys can help me out with: Ever have a sound that you'd like to find the source of, but your ears can't tell you where it's coming from?  I'd like to build a circuit to do that. I was thinking of something like three electret microphones with op-amps between them in differential mode.  That would give three signals that would be, presumably, the ratio of sound coming from each mic.  (And, therefore, an indication of direction.) Of course, I'd also like to get an adjustable bandpass filter in there somewhere to isolate just the sound I'm looking for.  That's the part that complicates all designs I've thought of. And then, if I could somehow figure out distance too, that would be the ULTIMATE! Here's one possible use case: A car makes a funny squeal noise a highway speeds. The mechanic takes out this device and magnets it inside the hood.  He runs a control wire back to the cabin. Once the car is in motion and making the desire noise, he adjusts the BP filter using potentiometer(s) and a pair of headphones. The device tells him where (relative to itsself) the sound is coming from. Your bill is less because the problem was diagnosed quickly without a lot of guesswork. Thoughts?

Topic by PS118   |  last reply


Troubles making a BEAM bot (Miller engine)

Hey everybody! I'm just getting involved with the wonderful BEAM bots. The problem is that here in Germany I don't get some of the transistors and I have to find alternatives. Instead of the 2N3904 I use the BC546, for the 2N3906 I use the BC556 and for the MN1381 I use the TC-54. I'm attaching the datasheets - did I get it right that I only have to "turn the BC556 around" so the pins fit? However, I don't get the Miller engine working! As a solar cell I use a Panasonic BP-376634 (3,4V - 30mA) http://shop.aaaa-electronic.de/epages/15164820.sf/de_DE/?ObjectPath=/Shops/15164820/Products/50007-002 As capacitors I used different ones. The motor is a tiny cell-phone vibrating motor - I guess one of the tiniest. As a resistor I'm using a 2.2K. All in all I tried to follow these diagrams: http://www.solarbotics.net/library/circuits/se_t1_1381.html I also uploaded some photos - maybe you can make out mistakes I made... Hoping for your help! Sebastian

Topic by sebarr   |  last reply


BLUETOOTH INTERFACING WITH 8051(AT89C/S51/52) PLZ HELP

Hello guruz, recently i bought n bluetooth UART module (http://robokits.co.in/shop/index.php?main_page=product_info&products;_id=354) RKI 1545 I tried interfacing it with 8051 using the 10,11 pin UART pins, using SCON register(mode1) baud rate 9600. But there is no reception or transmission. However the bt module is working fine. Passed the loop feedback test(joined theRx to Tx pin of module standalone....link established echo received on Putty on WIN7 and blueterm android app )   CODE: #include void ini()     // Initialize Timer 1 for serial communication { TMOD=0x20;  //Timer1, mode 2, baud rate 9600 bps TH1=0XFD; SCON=0x51; TR1=1; } void recieve()  //Function to receive serial data { unsigned char value; while(RI==0); value=SBUF; P1=value; RI=0; } void transmit()  // Funtion to transmit serial data { P2=0xF4; SBUF=P2; while(TI==0); TI=0; SBUF=P1; while(TI==0); TI=0; } void main() { while(1) {   ini();   recieve();   transmit(); } }

Topic by skumar112   |  last reply


Cheap wireless between desktop PC in basement and RS232 device upstairs?

Device upstairs has -RS232 serial port on which is sends and receives data periodically.PC in basement has:-RS232 serial port-USB-and is connected to home WiFi RouterThe device and pc communicate at 115200 bps, currently via a long serial cable...which i'm trying to get rid of.Basically i need a wireless rs232 link  (between serial port of the device, and serial port of the PC)orsome sort of hybrid link (between serial port of device, and  PC  ..via wifi or bluetooth)Cheapest solution i know so far, costing less than  $30-$35, is for a hybrid scenario: -buying a used and cheap  Linksys WiFi Router WRT54G from Ebay, -hacking it to add changed firmware (it's Linux open source), -adding serial port to it ..this basically turns it into a Linux PC with built in Wifi and Serial Port. -write custom Linux program that runs on the Linksys router that sends the serial data to my PC...Might be cheap solution but very scary to me, because i'm only used to writing code for Win32 PC platform.  I know next to nothing about Linux !   Any other ideas?

Question by tintino   |  last reply


And the winner is...

It's that time of year again - the Annals of Improbable Research has announced the 2010 IgNobel Prizes. It makes you proud to be British.... The full list of winners: Engineering Prize: Karina Acevedo-Whitehouse (UK) and colleagues for perfecting a method to collect whale snot, using a remote-control helicopter. Medicine Prize: Simon Rietveld (Netherlands) and colleagues for discovering that symptoms of asthma can be treated with a roller-coaster ride. Transportation Planning Prize: Toshiyuki Nakagaki (Japan) and colleagues for using slime mould to determine the optimal routes for railroad tracks. Physics Prize: Lianne Parkin (New Zealand) and colleagues for demonstrating that, on icy footpaths in wintertime, people slip and fall less often if they wear socks on the outside of their shoes. Peace Prize: Richard Stephens (UK) and colleagues for confirming the widely held belief that swearing relieves pain. Public health Prize: Manuel Barbeito (US) and colleagues for determining by experiment that microbes cling to bearded scientists. Economics Prize: Awarded to the executives and directors of Goldman Sachs, AIG, Lehman Brothers, Bear Stearns, Merrill Lynch, and Magnetar for creating and promoting new ways to invest money — ways that maximize financial gain and minimize financial risk for the world economy, or for a portion thereof. Chemistry Prize: Eric Adams (US) and colleagues for disproving the old belief that oil and water don't mix. The research, supported by BP, was published under the title: "Review of Deep Oil Spill Modeling Activity Supported by the Deep Spill JIP and Offshore Operator's Committee". Management Prize: Alessandro Pluchino (Italy) and colleagues for demonstrating mathematically that organisations would become more efficient if they promoted people at random. Biology Prize: Libiao Zhang (China) and colleagues for scientifically documenting fellatio in fruit bats.

Topic by Kiteman   |  last reply


arduino code nedded

HI, MY  NAME IS THIAGO IKEDA AND HERE IS MY FIRST "ASK" my english is VERY bad. well sorry anyway FIRST  i made this arduino tank (named ardutank) with ladyada motor shield and i used library and worked then i like WOW I SUPER GENIUS so i buy an HC-SR04(ULTRASONIC SENSOR) to put with ARDUTANK, and i used the library too but when i upload the code the ARDUTANK START make some wild noises. i dont know what to do to ARDUTANK work with the sensor obs: in first mode (with out ultrasonic sensor) one motor spins more fast than other, WHY? the bouth motors are the same motor. but when i put to HIM to RUN HE make lil curve. here is code WITH SENSOR PLEASE IGNORE THE RELE AND BUZER NEXT TO SENSOR // Adafruit Motor shield library // copyright Adafruit Industries LLC, 2009 // this code is public domain, enjoy! #include #include #define TRIGGER_PIN  12 #define ECHO_PIN     13 int distance; Ultrasonic ultrasonic(TRIGGER_PIN, ECHO_PIN); AF_DCMotor motor1(1); AF_DCMotor motor2(2); void setup() {   Serial.begin(9600);           // set up Serial library at 9600 bps   Serial.println("Motor test!");   // turn on motor   delay(10);   motor1.setSpeed(20);   motor2.setSpeed(20); motor2.run(RELEASE);   motor1.run(RELEASE); } void loop() {   uint8_t i;   float cmMsec, inMsec;   long microsec = ultrasonic.timing();   cmMsec = ultrasonic.convert(microsec, Ultrasonic::CM);   inMsec = ultrasonic.convert(microsec, Ultrasonic::IN);   Serial.print("tick");   motor1.run(FORWARD);   motor2.run(FORWARD);   if(distance<10) {    motor1.run(RELEASE);    motor2.run(RELEASE); } else {    motor1.run(FORWARD);   motor2.run(FORWARD); } }

Question by crazy_thiago   |  last reply


Haney Ryhmä: WTI Crude klo pohjalukemissa, EU Probing Hinta sopiminen - thehaneygroup.com

Haney Ryhmä: WTI Crude klo pohjalukemissa, EU Probing Hinta sopiminen Haney ryhmä tarkkailee West Texas raa'asta hinnat laskivat alimmalle merkin lähes kaksi viikkoa, markkinoiden yleistä merkkejä tarvikkeita nousussa. EU: n viranomaiset tutkivat öljy-yhtiöiden osalta kilpailusääntöjen rikkomisesta koskee hintakeinottelun. Molemmat kehitys oikeinkirjoitus ulos tarkkaavainen sijoittajan kiinteää tuottoa. "Futures juuri muuttuneet New Yorkissa pudottuaan neljä päivää jatkuvien laski kokonaisuutena luomaan pisin tappiot tänä vuonna. Raakaöljyn varastot sai 1,1 miljoonaa tynnyriä viime viikolla, mukaan API. Tänään julkaistussa raportissa esitetään varastojen nousi 450000 tynnyriä. Yhdessä lisätietoja rikkomatta noin Royal Dutch Shell, BP, Statoil ASA ja Plattsin tutkitaan sen jälkeen, kun uutiset EU komissio teki ratsioita kolmessa maassa. Todistaa jälleen kerran, että erilaisuuden kiinteät voitot kysymys siitä, onko markkinoilla liikkuu ylös tai alas oikea analyysi, "David Holmes varatoimitusjohtaja Yritysjärjestelyt Haney Group kertoi tänään. "Vaihto-omaisuus ovat korkeat, ei ole geopoliittisia asioita tällä hetkellä, ja teollisuuden tarvitse pitää matalaa profiilia, koska tutkimukset tulee öljyä", David Holmes totesi ja lisäsi: "Kuulemme raportit ennustavat, että West Texas putoaa 92,50 dollaria tai pienempi tynnyri. " WTI tuottaa kesäkuussa oli 94,01 dollaria tynnyriltä, ​​alas 20 senttiä tänään. Volyymi kaikista sopimuksista oli 59 prosenttia alle 100 päivän keskiarvon. Hinnat laskivat 96 senttiä 94,21 dollaria eilen, suurin pudotus vuodesta 1. toukokuuta. Brent Crude tuottaa kesäkuussa laski 25 senttiä 102,35 dollaria tynnyriltä Lontoossa. EU: n tavoitteena oli palkkio 8,34 dollaria ja WTI, alas 8,39 dollaria päivänä. EU: n komissio tutkii tietoja, että yritykset voivat sopia salaisesti raportoinnissa vääristynyt hintojen hinta raportointi virasto manipuloida julkaistujen hintojen useita öljy-ja muita tuotteita. Shell ja muut tietysti sanovat "täydessä yhteistyössä" tutkimuksessa. Mahdolliset rikkomukset liittyvät hinnat Platts. "Tämä on kiinteä suuntaus seuraamaan nyt aika saada laivalla, strateginen suunnittelu johtaa saavuttaa kannattavan lopussa sijoittajien kannalta on tavoite" päättyi Haney konsernin varatoimitusjohtaja David Holmes huomautuksen. http://www.biggerpockets.com/blogs/4058/blog_posts/28191-the-haney-group-wti-crude-at-a-low-with-eu-probing-price-fixing    

Topic by DELETED_jansenisrael 


Scholarship Submission the Second!

For my next submission for the scholarship Create, I decided to design a robot that would not help what you do in your daily life, but how. Stress can build up without you yourself knowing. Perhaps you're prone to panic or anxiety attacks and can't recognize them; the first step in dealing with such. So, I would develop a robot that could cater to easing your stressed or panicked condition by detecting the symptoms and then using any number of methods to return to you a normal state.For in-home use, the human would wear a combination heart rate/respiration/oximeter monitor (coupled with a BP cuff perhaps) that would send wireless data to a nearby computer or the robot itself. At such time a stressed condition arises, the programming can recognize what course of action is needed and address it. For instance, a raised heart rate and shortened breath with low oxygen absorption could indicate a panic attack. The robot would then stop what it was doing (vacuuming, chastising cats, etc) and find the human. The robot would then playback an audio message of "Are you feeling OK?" or a soothing musical piece or project a slideshow of recognizable images. The robot could return from time to time after an stress event to check on the progress of the human. If the human doesn't return to wellness, a more advanced robot would suggest any number of relief alternatives ("Should you take your medication?") or possibly notify another human of the situation. Of course, this is no substitute for having a companion or caregiver nearby to assist in these situations. I originally had the idea for people that live and work alone, or happen to find themselves without human contact during times of stress. My fiancee then suggested that I expand the scope to more needy people like the elderly that can't or won't always speak for themselves about how they feel. That version may require more resources than I am privy to unfortunately. If I get a chance to work with a Create, I would try to pack in as many features as possible.I would like the robot to have a some kind of visual representation of a face like an LCD and an interface so the human can interact with the robot. Voice recognition would be nice but a simple red and green button may have to do for now. The human would have to wear, in addition to the monitor, an IR emitter of some kind so the robot can find said human. It could be done cheaply with something like a promotional LED light worn on a lightweight anklet or even attached to a shoe. As a footnote, I'd like to say that anytime I'm tense, there's nothing quite like an episode of "Ask This Old House" to calm me down. Hmmm....

Topic by SolamenteDoug   |  last reply


Choosing paint ball gun

When choosing a paint ball gun you need to first look at your budget. how much are you willing to pay. remember you also need a tank ($20 to $300) and a hopper ($5-$150) and a mask ($30 to $200)you you want a cheap gun to shoot in you back yard and do not need reliability accuracy or quality Get a spader if you want to play paint ball don't get a spyder. The first guns you will probably look at will be Tippmanns, they are extremely durable and reliable. How ever you can not play speed ball with a tippmannn your limited to woods ball. The only real reason to get a tippman is the flat line barrel system.There is no reason why you cant get an electro-pneumatic gun and play woods ball. A proto slg or pmr weighs 3-8 pounds less than a tippmann. Woods ball games last for 30+ min a person with a 1.5pound gun a 2 pound tank and a half pound hopper is going to Own over a person with a 5 pound gun a 4 pound tank a half pound hopper. elect-pneumatic guns are lighter and are multi-purpose a with a tippmann you can only play woodsballSo which gun should i getfor a cheap woodsball gun get a Tippmann 98 custom pro or a tippmann A5For a great multi roll gun look into a Proto Matrix rail (pmr) or Proto slg (super light gun) at my local store the pmr cost $10 more than the slg ($250) but it comes with a locking feed neck (worth $20+ and older more reliable internals) For a little bit more performance at a higher price the invert mini is a great little unique gun its not the most reliable but you get a great gun for $350BTW never buy smart parts guns. I think the best gun for mid level players is the Dangerous power threshold $500 its sweetwhat i originally said I have been playing paintball casually for 3 years or so, and i dont have my own gun (iv been using my friends 98custom). I want a relatively cheap C02 marker with no complicated stuff (I.E electronic triggers) The Tippmann A5 seems perfect to me (cheap, High Bps, accurate, plenty of upgrades). If you have one i would love to here about its pros/cons or if you have something thats better for $150-250 let me know. or if you know any good reliable paint/have any upgrades (im looking at a longer barrel and a response trigger) please let me know.Some vids from Mike (thanks love your channel)The woods ball/tornament The tippmann show slg review pmr review Invert Mini review tanks gear bag

Topic by i make shooting things   |  last reply


: Arduino + Adafruit wave sheild + IR + Keypad sound board

Hi , was wondering if you could point me in the right direction I'm very new to Arduino I built last year a simple board with adafruit wave shield and added a simple 12 digit key pad to play 12 sounds + power up I have got the codes for the KEYES IR receiver so know the IR is correctly connected and library loaded im trying to integrate the IR code so can change the sounds by IR remote ideally with option of the buttons (if have to loose the buttons and just use remote that's fine) have copied the code below for how it works now just buttons   I found some code for Cylon Pumpkin that works great with just the remote but would also like to integrate the 12 digit keypad Thank you in advance for any help or pointers you can suggest Richard CODE FOR 12 DIGIT BUTTON PRESS /* ADAVOICE is an Arduino-based voice pitch changer plus WAV playback. Fun for Halloween costumes, comic convention getups and other shenanigans! Hardware requirements: - Arduino Uno, Duemilanove or Diecimila (not Mega or Leonardo compatible). - Adafruit Wave Shield - Speaker attached to Wave Shield output - Battery for portable use If using the voice pitch changer, you will also need: - Adafruit Microphone Breakout - 10K potentiometer for setting pitch (or hardcode in sketch) If using the WAV playback, you will also need: - SD card - Keypad, buttons or other sensor(s) for triggering sounds Software requirements: - WaveHC library for Arduino - Demo WAV files on FAT-formatted SD card This example sketch uses a 3x4 keypad for triggering sounds...but with some changes could be adapted to use several discrete buttons, Hall effect sensors, force-sensing resistors (FSRs), I2C keypads, etc. (or if you just want the voice effect, no buttons at all). Connections: - 3.3V to mic amp+, 1 leg of potentiometer and Arduino AREF pin - GND to mic amp-, opposite leg of potentiometer - Analog pin 0 to mic amp output - Analog pin 1 to center tap of potentiometer - Wave Shield output to speaker or amplifier - Matrix is wired to pins A2, A3, A4, A5 (rows) and 6, 7, 8 (columns) - Wave shield is assumed wired as in product tutorial Potentiometer sets playback pitch. Pitch adjustment does NOT work in realtime -- audio sampling requires 100% of the ADC. Pitch setting is read at startup (or reset) and after a WAV finishes playing. POINT SPEAKER AWAY FROM MIC to avoid feedback. Written by Adafruit industries, with portions adapted from the 'PiSpeakHC' sketch included with WaveHC library. */ #include #include SdReader card; // This object holds the information for the card FatVolume vol; // This holds the information for the partition on the card FatReader root; // This holds the information for the volumes root directory FatReader file; // This object represent the WAV file for a pi digit or period WaveHC wave; // This is the only wave (audio) object, -- we only play one at a time #define error(msg) error_P(PSTR(msg)) // Macro allows error messages in flash memory #define ADC_CHANNEL 0 // Microphone on Analog pin 0 // Wave shield DAC: digital pins 2, 3, 4, 5 #define DAC_CS_PORT PORTD #define DAC_CS PORTD2 #define DAC_CLK_PORT PORTD #define DAC_CLK PORTD3 #define DAC_DI_PORT PORTD #define DAC_DI PORTD4 #define DAC_LATCH_PORT PORTD #define DAC_LATCH PORTD5 uint16_t in = 0, out = 0, xf = 0, nSamples; // Audio sample counters uint8_t adc_save; // Default ADC mode // WaveHC didn't declare it's working buffers private or static, // so we can be sneaky and borrow the same RAM for audio sampling! extern uint8_t buffer1[PLAYBUFFLEN], // Audio sample LSB buffer2[PLAYBUFFLEN]; // Audio sample MSB #define XFADE 16 // Number of samples for cross-fade #define MAX_SAMPLES (PLAYBUFFLEN - XFADE) // Remaining available audio samples // Keypad information: uint8_t rows[] = { A2, A3, A4, A5 }, // Keypad rows connect to these pins cols[] = { 6, 7, 8, 9 }, // Keypad columns connect to these pins r = 0, // Current row being examined prev = 255, // Previous key reading (or 255 if none) count = 0; // Counter for button debouncing #define DEBOUNCE 10 // Number of iterations before button 'takes' // Keypad/WAV information. Number of elements here should match the // number of keypad rows times the number of columns, plus one: const char *sound[] = { "Crashing" , "Damaged", "InFlight" , "PowerUp" , // Row 1 = Darth Vader sounds "Brkdown3" , "Brkdown2" , "Brkdown" , "PowerUp" , // Row 2 = Godzilla sounds "Landing", "drain" , "Shutdown" , "PowerUp" , // Row 3 = Dug the dog sounds "Silent", "TakeOff", "Vortex" , "PowerUp" , // Row 4 = Cartoon/SFX sound "PowerUp" }; // Extra item = boot sound //////////////////////////////////// SETUP void setup() { uint8_t i; Serial.begin(9600); // The WaveHC library normally initializes the DAC pins...but only after // an SD card is detected and a valid file is passed. Need to init the // pins manually here so that voice FX works even without a card. pinMode(2, OUTPUT); // Chip select pinMode(3, OUTPUT); // Serial clock pinMode(4, OUTPUT); // Serial data pinMode(5, OUTPUT); // Latch digitalWrite(2, HIGH); // Set chip select high // Init SD library, show root directory. Note that errors are displayed // but NOT regarded as fatal -- the program will continue with voice FX! if(!card.init()) SerialPrint_P("Card init. failed!"); else if(!vol.init(card)) SerialPrint_P("No partition!"); else if(!root.openRoot(vol)) SerialPrint_P("Couldn't open dir"); else { PgmPrintln("Files found:"); root.ls(); // Play startup sound (last file in array). playfile(sizeof(sound) / sizeof(sound[0]) - 1); } // Optional, but may make sampling and playback a little smoother: // Disable Timer0 interrupt. This means delay(), millis() etc. won't // work. Comment this out if you really, really need those functions. TIMSK0 = 0; // Set up Analog-to-Digital converter: analogReference(EXTERNAL); // 3.3V to AREF adc_save = ADCSRA; // Save ADC setting for restore later // Set keypad rows to outputs, set to HIGH logic level: for(i=0; i pinMode(rows[i], OUTPUT); digitalWrite(rows[i], HIGH); } // Set keypad columns to inputs, enable pull-up resistors: for(i=0; i pinMode(cols[i], INPUT); digitalWrite(cols[i], HIGH); } while(wave.isplaying); // Wait for startup sound to finish... startPitchShift(); // and start the pitch-shift mode by default. } //////////////////////////////////// LOOP // As written here, the loop function scans a keypad to triggers sounds // (stopping and restarting the voice effect as needed). If all you need // is a couple of buttons, it may be easier to tear this out and start // over with some simple digitalRead() calls. void loop() { uint8_t c, button; // Set current row to LOW logic state... digitalWrite(rows[r], LOW); // ...then examine column buttons for a match... for(c=0; c if(digitalRead(cols[c]) == LOW) { // First match. button = r * sizeof(cols) + c; // Get button index. if(button == prev) { // Same button as before? if(++count >= DEBOUNCE) { // Yes. Held beyond debounce threshold? if(wave.isplaying) wave.stop(); // Stop current WAV (if any) else stopPitchShift(); // or stop voice effect playfile(button); // and play new sound. while(digitalRead(cols[c]) == LOW); // Wait for button release. prev = 255; // Reset debounce values. count = 0; } } else { // Not same button as prior pass. prev = button; // Record new button and count = 0; // restart debounce counter. } } } // Restore current row to HIGH logic state and advance row counter... digitalWrite(rows[r], HIGH); if(++r >= sizeof(rows)) { // If last row scanned... r = 0; // Reset row counter // If no new sounds have been triggered at this point, and if the // pitch-shifter is not running, re-start it... if(!wave.isplaying && !(TIMSK2 & _BV(TOIE2))) startPitchShift(); } } //////////////////////////////////// HELPERS // Open and start playing a WAV file void playfile(int idx) { char filename[13]; (void)sprintf(filename,"%s.wav", sound[idx]); Serial.print("File: "); Serial.println(filename); if(!file.open(root, filename)) { PgmPrint("Couldn't open file "); Serial.print(filename); return; } if(!wave.create(file)) { PgmPrintln("Not a valid WAV"); return; } wave.play(); } //////////////////////////////////// PITCH-SHIFT CODE void startPitchShift() { // Read analog pitch setting before starting audio sampling: int pitch = analogRead(1); Serial.print("Pitch: "); Serial.println(pitch); // Right now the sketch just uses a fixed sound buffer length of // 128 samples. It may be the case that the buffer length should // vary with pitch for better results...further experimentation // is required here. nSamples = 128; //nSamples = F_CPU / 3200 / OCR2A; // ??? //if(nSamples > MAX_SAMPLES) nSamples = MAX_SAMPLES; //else if(nSamples < (XFADE * 2)) nSamples = XFADE * 2; memset(buffer1, 0, nSamples + XFADE); // Clear sample buffers memset(buffer2, 2, nSamples + XFADE); // (set all samples to 512) // WaveHC library already defines a Timer1 interrupt handler. Since we // want to use the stock library and not require a special fork, Timer2 // is used for a sample-playing interrupt here. As it's only an 8-bit // timer, a sizeable prescaler is used (32:1) to generate intervals // spanning the desired range (~4.8 KHz to ~19 KHz, or +/- 1 octave // from the sampling frequency). This does limit the available number // of speed 'steps' in between (about 79 total), but seems enough. TCCR2A = _BV(WGM21) | _BV(WGM20); // Mode 7 (fast PWM), OC2 disconnected TCCR2B = _BV(WGM22) | _BV(CS21) | _BV(CS20); // 32:1 prescale OCR2A = map(pitch, 0, 1023, F_CPU / 32 / (9615 / 2), // Lowest pitch = -1 octave F_CPU / 32 / (9615 * 2)); // Highest pitch = +1 octave // Start up ADC in free-run mode for audio sampling: DIDR0 |= _BV(ADC0D); // Disable digital input buffer on ADC0 ADMUX = ADC_CHANNEL; // Channel sel, right-adj, AREF to 3.3V regulator ADCSRB = 0; // Free-run mode ADCSRA = _BV(ADEN) | // Enable ADC _BV(ADSC) | // Start conversions _BV(ADATE) | // Auto-trigger enable _BV(ADIE) | // Interrupt enable _BV(ADPS2) | // 128:1 prescale... _BV(ADPS1) | // ...yields 125 KHz ADC clock... _BV(ADPS0); // ...13 cycles/conversion = ~9615 Hz TIMSK2 |= _BV(TOIE2); // Enable Timer2 overflow interrupt sei(); // Enable interrupts } void stopPitchShift() { ADCSRA = adc_save; // Disable ADC interrupt and allow normal use TIMSK2 = 0; // Disable Timer2 Interrupt } ISR(ADC_vect, ISR_BLOCK) { // ADC conversion complete // Save old sample from 'in' position to xfade buffer: buffer1[nSamples + xf] = buffer1[in]; buffer2[nSamples + xf] = buffer2[in]; if(++xf >= XFADE) xf = 0; // Store new value in sample buffers: buffer1[in] = ADCL; // MUST read ADCL first! buffer2[in] = ADCH; if(++in >= nSamples) in = 0; } ISR(TIMER2_OVF_vect) { // Playback interrupt uint16_t s; uint8_t w, inv, hi, lo, bit; int o2, i2, pos; // Cross fade around circular buffer 'seam'. if((o2 = (int)out) == (i2 = (int)in)) { // Sample positions coincide. Use cross-fade buffer data directly. pos = nSamples + xf; hi = (buffer2[pos] << 2) | (buffer1[pos] >> 6); // Expand 10-bit data lo = (buffer1[pos] << 2) | buffer2[pos]; // to 12 bits } if((o2 < i2) && (o2 > (i2 - XFADE))) { // Output sample is close to end of input samples. Cross-fade to // avoid click. The shift operations here assume that XFADE is 16; // will need adjustment if that changes. w = in - out; // Weight of sample (1-n) inv = XFADE - w; // Weight of xfade pos = nSamples + ((inv + xf) % XFADE); s = ((buffer2[out] << 8) | buffer1[out]) * w + ((buffer2[pos] << 8) | buffer1[pos]) * inv; hi = s >> 10; // Shift 14 bit result lo = s >> 2; // down to 12 bits } else if (o2 > (i2 + nSamples - XFADE)) { // More cross-fade condition w = in + nSamples - out; inv = XFADE - w; pos = nSamples + ((inv + xf) % XFADE); s = ((buffer2[out] << 8) | buffer1[out]) * w + ((buffer2[pos] << 8) | buffer1[pos]) * inv; hi = s >> 10; // Shift 14 bit result lo = s >> 2; // down to 12 bits } else { // Input and output counters don't coincide -- just use sample directly. hi = (buffer2[out] << 2) | (buffer1[out] >> 6); // Expand 10-bit data lo = (buffer1[out] << 2) | buffer2[out]; // to 12 bits } // Might be possible to tweak 'hi' and 'lo' at this point to achieve // different voice modulations -- robot effect, etc.? DAC_CS_PORT &= ~_BV(DAC_CS); // Select DAC // Clock out 4 bits DAC config (not in loop because it's constant) DAC_DI_PORT &= ~_BV(DAC_DI); // 0 = Select DAC A, unbuffered DAC_CLK_PORT |= _BV(DAC_CLK); DAC_CLK_PORT &= ~_BV(DAC_CLK); DAC_CLK_PORT |= _BV(DAC_CLK); DAC_CLK_PORT &= ~_BV(DAC_CLK); DAC_DI_PORT |= _BV(DAC_DI); // 1X gain, enable = 1 DAC_CLK_PORT |= _BV(DAC_CLK); DAC_CLK_PORT &= ~_BV(DAC_CLK); DAC_CLK_PORT |= _BV(DAC_CLK); DAC_CLK_PORT &= ~_BV(DAC_CLK); for(bit=0x08; bit; bit>>=1) { // Clock out first 4 bits of data if(hi & bit) DAC_DI_PORT |= _BV(DAC_DI); else DAC_DI_PORT &= ~_BV(DAC_DI); DAC_CLK_PORT |= _BV(DAC_CLK); DAC_CLK_PORT &= ~_BV(DAC_CLK); } for(bit=0x80; bit; bit>>=1) { // Clock out last 8 bits of data if(lo & bit) DAC_DI_PORT |= _BV(DAC_DI); else DAC_DI_PORT &= ~_BV(DAC_DI); DAC_CLK_PORT |= _BV(DAC_CLK); DAC_CLK_PORT &= ~_BV(DAC_CLK); } DAC_CS_PORT |= _BV(DAC_CS); // Unselect DAC if(++out >= nSamples) out = 0; } CODE I FOUND FOR IR  ClyonPumpkin That I want to integrate in above   /* * Text-to-speech example to speak the first n digits of pi. * The number is stored in flash, each digit is spoken one at a time. */ #include #include #include SdReader card;    // This object holds the information for the card FatVolume vol;    // This holds the information for the partition on the card FatReader root;   // This holds the information for the volumes root directory FatReader file;   // This object represent the WAV file for a pi digit or period WaveHC wave;      // This is the only wave (audio) object, since we will only play one at a time char eyesound[13]="eye2.wav"; int mute = 0; /* * Define macro to put error messages in flash memory */ #define error(msg) error_P(PSTR(msg)) // IR Remote code int RECV_PIN = 9;  // pin 11 used by SD card interface so select pin 9 for IR IRrecv irrecv(RECV_PIN); decode_results results; long lasttime=0, lastcode=0, timediff=0; //////////////////////////////////// SETUP void setup() {   // set up Serial library at 9600 bps   Serial.begin(9600);               if (!card.init()) {     error("Card init. failed!");   }   if (!vol.init(card)) {     error("No partition!");   }   if (!root.openRoot(vol)) {     error("Couldn't open dir");   }   irrecv.enableIRIn(); // Start the IR receiver } /////////////////////////////////// LOOP void loop() {   if(mute == 0) playcomplete(eyesound);   // check for keypress happened   if (irrecv.decode(&results;)) {      Serial.println(results.value, HEX);      switch (results.value) {        case 0x83228B74:    // 1          playcomplete("command.wav");          break;        case 0x83228F70:    // 2          playcomplete("entertan.wav");          break;        case 0x8322906F:    // 3          playcomplete("extermin.wav");          break;        case 0x83228A75:    // 4          playcomplete("leader.wav");          break;        case 0x8322847B:    // 5          playcomplete("survivor.wav");          break;         case 0x83227887:    // 6          playcomplete("atention.wav");          break;        case 0x8322629D:    // vol up          mute = 0;         // mute off          break;         case 0x83226E91:    // mute          { Serial.println("mute detected");            timediff=millis()-lasttime;            Serial.println(timediff);            if(lastcode!=results.value || (lastcode==results.value && (timediff>1600)) ) {               if( mute == 0 ) { // is mute off?                  Serial.println("toggle off to on");                  mute = 1;      // turn on                  // delay(1000);    // wait a bit for debounce                  break;                 }               if( mute == 1 ) { // is mute on?                  mute = 0;      // turn off                  Serial.println("toggle on to off");                  break;                 }              } // end if             break;           } // end case        } // end switch      lastcode = results.value;      lasttime = millis();      irrecv.resume();   // Receive the next value   } } /////////////////////////////////// HELPERS /* * print error message and halt */ void error_P(const char *str) {   PgmPrint("Error: ");   SerialPrint_P(str);   sdErrorCheck();   while(1); } /* * print error message and halt if SD I/O error */ void sdErrorCheck(void) {   if (!card.errorCode()) return;   PgmPrint("\r\nSD I/O error: ");   Serial.print(card.errorCode(), HEX);   PgmPrint(", ");   Serial.println(card.errorData(), HEX);   while(1); } /* * Play a file and wait for it to complete */ void playcomplete(char *name) {   playfile(name);   while (wave.isplaying);     // see if an error occurred while playing   sdErrorCheck(); } /* * Open and start playing a WAV file */ void playfile(char *name) {   if (wave.isplaying) {// already playing something, so stop it!     wave.stop(); // stop it   }   if (!file.open(root, name)) {     PgmPrintln("Couldn't open file ");     Serial.print(name);     return;   }   if (!wave.create(file)) {     PgmPrintln("Not a valid WAV");     return;   }   // ok time to play!   wave.play(); }

Topic by SithLordIII 


500W electric scooter control and instrumentation with Arduino mega

1. Introduction DC 500W motor control with an Arduino mega to limit starting current and to vary the speed of the scooter. The battery is in 24V, 10A.h. The following table summarizes their characteristics: https://i58.servimg.com/u/f58/17/56/35/17/a014.jpg https://i58.servimg.com/u/f58/17/56/35/17/a111.jpg 2. Bibliography: Link download : sketch_escooter_feed_back_reel_V1.ino https://drive.google.com/file/d/0B_fB3GAsM02FSlRTWHdyRkhuUW8/view?usp=sharing escooter_ampli_SIMULINK.mdl https://drive.google.com/file/d/0B_fB3GAsM02FOW9OdmlhdDhJZGc/view?usp=sharing escooter feed back ISIS.DSN https://drive.google.com/file/d/0B_fB3GAsM02FOXdRWFN5OWRMQkE/view?usp=sharing youtube  :  "study trotinette electric e-scooter 100W et 350W, wiring"  youtube https://www.youtube.com/watch?v=QqJ2-YiE8Tg&index;=75&list;=PLfZunVn_gcq7EOurXuWU2sRFmh6CbiUiL Article: «Study of electric scooters 100W and 500W (Arduino), Revue 3EI 2017» Pdf? Book «I realize my electric vehicle» at DUNOD 3. Open loop program To test the programming, we simulate the program in ISIS, as can be seen in the following figure. In addition, we have an LCD display to display data (duty cycle corresponding to the PWM at 32Khz, motor current, motor voltage, action on the pushbuttons, 4 push buttons are used. BP1 to manually increment the duty cycle, BP2 decrement it. BP3 set the duty cycle to 0, corresponding to the brake contact. The speed of the motor is practically proportional to the duty cycle https://i58.servimg.com/u/f58/17/56/35/17/a211.jpg We made our own current amplifier called a step-down chopper but it is possible to buy a shield There are many cards for Arduino to control DC motors especially of low powers and also of great powers as can be observed on the following links.http://www.robotpower.com/products/MegaMotoPlus_info.html http://www.robotshop.com/en/dc-motor-driver-2-15a.html https://www.pololu.com/file/0J51/vnh3sp30.pdf https://i58.servimg.com/u/f58/17/56/35/17/a310.jpg But all these chopper shields measure the current internally but there is no current limitation. In order to have a current limitation, an analog current loop is required using specialized AOP or IC or a fast digital current loop. But what should be the value of the limitation current? The choice of the current value is normally for the 1-hour operation service in order to be able to carry out relatively long climbs without reaching the critical temperature of the engine. In our case, the limitation current must be Limiting motor = Power / Upper battery = 500W / 24V = 20A In addition, the power transistor of the chopper can only support 50A in our case. But in open loop, it has no current regulation, so as not to exceed the maximum current, a ramp of the duty cycle will be used. A 0.1 second interruption routine will be used to measure the voltage of the current (sample measurement, sample). This sampling time is arbitrary but does not allow to be faster than the rise time of the current because the electric time constant of the motor is L / R = 1.5 ms. Open loop operation with a 25.5s (8bit) ramp and 0.1s interrupt routine provides a good understanding of the operation of a DC motor drive. The display will only be done every 0.2s to have a stability of the digits on the screen. In addition, a digital filtering will be done on the current and the voltage on 4 values therefore on 0.4s. [b] Algo open loop [/b] Interrupt Routine All 0.1S Read voltage and current Loop loop (push button scan) If BP1 = 1 then increment PWM If BP2 = 1 then decrement PWM If BP3 = 1 then PWM = 0 Displaying variables every 0.2s Code: [Select] // include the library code: #include #include #include #define SERIAL_PORT_LOG_ENABLE 1 #define Led     13       // 13 for the yellow led on the map #define BP1     30       // 30 BP1 #define BP2     31       // 31 BP2           #define BP3     32       // 32 BP3 #define LEDV    33       // 33 led #define LEDJ    34       // 34 led #define LEDR    35       // 35 led #define relay   36       // 36 relay #define PWM10    10      //11   timer2    LiquidCrystal lcd(27, 28, 25, 24, 23, 22); // RS=12, Enable=11, D4=5, D5=4, D6= 3, D7=2, BPpoussoir=26 // Configuring variables unsigned   int UmoteurF = 0;  // variable to store the value coming from the sensor unsigned   int Umoteur = 0; unsigned   int Umoteur2 = 0; unsigned   int Umoteur3 = 0; unsigned   int Umoteur4 = 0; unsigned   int ImoteurF = 0;  unsigned   int Imoteur = 0; unsigned   int Imoteur2 = 0; unsigned   int Imoteur3 = 0; unsigned   int Imoteur4 = 0;            byte Rcy=0 ;    // 8bit duty cycle unsigned    int temps; // the setup function runs once when you press reset or power the board void setup() {   pinMode(Led, OUTPUT);   // Arduino card   pinMode(LEDV, OUTPUT);   pinMode(LEDR, OUTPUT);   pinMode(LEDJ, OUTPUT);   pinMode (PWM10,OUTPUT);     // Pin (10) output timer2   //  digitalWrite(LEDV,LOW);   Timer1.initialize(100000);         // initialize timer1, and set a 0,1 second period =>  100 000   Timer1.attachInterrupt(callback);  // attaches callback() as a timer overflow interrupt   lcd.begin(20, 4);    Serial1.begin(9600);   TCCR2B = (TCCR2B & 0b11111000) | 0x01;         //pin 10  32khz    http://playground.arduino.cc/Main/TimerPWMCheatsheet                                                   //http://www.pobot.org/Modifier-la-frequence-d-un-PWM.html   //   analogWriteResolution(bits)      https://www.arduino.cc/en/Reference/AnalogWriteResolution lcd.setCursor(0,1); lcd.print("Rcy"); lcd.setCursor(10,1); lcd.print("Um"); lcd.setCursor(5,1); lcd.print("Im"); lcd.setCursor(10,1); lcd.print("Um"); lcd.setCursor(20,1); // 4 lines display * 20 characters lcd.print("BP1+"); lcd.setCursor(25,1); lcd.print("BP2-"); lcd.setCursor(29,1); lcd.print("BP3=0"); } // Interruptions  tous les 0.1s void callback()  { temps++; //toogle state ledv for check   if ( digitalRead(LEDV)== 1 ) {digitalWrite(LEDV,LOW);}     else {digitalWrite(LEDV,HIGH);}     analogWrite(PWM10,Rcy);   // frequency Umoteur=analogRead(A0); Imoteur=analogRead(A1); Imoteur2=Imoteur; Imoteur3=Imoteur2; Imoteur4=Imoteur3; ImoteurF=(Imoteur4+Imoteur3+Imoteur2+Imoteur)/4 ; Umoteur2=Umoteur; Umoteur3=Umoteur2; Umoteur4=Umoteur3; UmoteurF=(Umoteur4+Umoteur3+Umoteur2+Umoteur)/4 ;   }// End routine // Loop corresponding to main function void loop() {    // BP + LED   if ((digitalRead(BP1))==1) {     lcd.setCursor(20,0);      // Column line     lcd.print("BP1");     digitalWrite(LEDR, LOW);        digitalWrite(LEDJ, LOW);     Rcy++;                        // PWM incrementation     if ( Rcy>254)  {Rcy=254;}     delay(100);               //8bits * 100ms = 25S increment 25ssecond slope     }        if ((digitalRead(BP2))==1) {     lcd.setCursor(20,0);     lcd.print("BP2");             Rcy--;      if ( Rcy<2)  {Rcy=2;}  // PWM almost at 0, engine stop         delay(100);      digitalWrite(LEDR, HIGH);     digitalWrite(LEDJ, HIGH);     }   if ((digitalRead(BP3))==1) {     lcd.setCursor(20,0);     lcd.print("BP3");      Rcy=2;               // PWM almost at 0, engine stop     } if (temps>=2)  { lcd.setCursor(0,0); lcd.print("                "); // Erase line lcd.setCursor(0,0);     lcd.print(Rcy); lcd.setCursor(5,0); ImoteurF=(ImoteurF)/20;     //resistance (5/1024)*(10/0.25ohm) si ACS712 66mV/A                            // For resistance 1ohm (ImoteurF) / 20; Simulation 5/25 lcd.print(ImoteurF); lcd.setCursor(10,0); UmoteurF=UmoteurF*10/38;                              //10/38   10/30 simula if (Umoteur>ImoteurF){UmoteurF=UmoteurF-ImoteurF;  }  //U-R*I lcd.print(UmoteurF); temps=0; }// End if time    } // End loop https://i58.servimg.com/u/f58/17/56/35/17/dsc_0614.jpg Since there is a limit of 9000 characters in the forum below Open loop program feature previous The interrupt routine lasts only 250 microseconds, the loop of the main program which scans the action of push buttons is 13micros and the display time of all data is 11ms. Thus, it is possible to improve the sampling period and thus the speed of the regulation of the current. The Arduino makes it possible to make the instrumentation of the scooter so to know the power, the consumption in Ah and Wh, to measure the speed, to know the consumption according to Wh / km, to measure the temperature of the engine, Have a safe operation. But for now we will see how to limit the current 4. Closed loop program, limited current control The sampling period will increase to 0.01 seconds (interrupt routine) If the current is less than the desired value, then the duty cycle can be increased or decreased to the desired value which is the setpoint. On the other hand, if the motor current is greater than the limiting value, there is a rapid decrease in the duty cycle. So as not to exceed the value of the duty cycle if it is saturated to 254 maximum and to the minimum value 6. Code: [Select] if (Imoteur<4000)                    // No current limitation at (20A * 10) * 20 = 4000   {if (consigne>Rcy)   {Rcy=Rcy+1;}   // Pwm ramp + 1 * 0.01second pure integrator    if (consigne    if ( Rcy>254)  {Rcy=254;}           // Limitation of duty cycle    analogWrite(PWM10,Rcy);   // Frequency 32kHz timer2}         } if (Imoteur>4000)  { Rcy=Rcy-5;              // No current filtering, to be faster                     if ( Rcy<6)  {Rcy=5;}       // Rcy is not signed, nor the PWM therefore Rcy minimum must not be less than 6                   analogWrite(PWM10,Rcy);   // Frequency 32kHz timer2}                        } 5. Closed Loop Program, Limited Current Control with Acceleration Handle An acceleration handle provides a 0.8V voltage when not operated and a 4.5V voltage when the handle is fully engaged. Instead of using pushbuttons to increase or decrease the speed setpoint, an acceleration handle will be used Code: [Select] Upoignee=analogRead(A3); // The relation in Upoign and the setpoint which corresponds to the duty cycle corresponds to if (Upoignee>100) { consigne=(Upoignee/2);     //0=a*200+b    et 255=a*800+b                      consigne= consigne-100;                   }                            else { consigne=0;   }               if (Upoignee<100) { consigne=0;  }     // redundancy     6. Temperature and safety program of the motor with the current measurement The outdoor temperature measurement can be easily performed by the LM35 component which charges 0.01V by degrees Celsius Code: [Select] temperature=analogRead(A2); //lm35 0.01V/°C temperature=temperature/2;       // Temperature coefficient lcd.setCursor(5,2); lcd.print("      "); lcd.setCursor(5,2); lcd.print(temperature);   // Display in ° C lcd.setCursor(9,2);      // Erasing secu display lcd.print("     ");   if (temperature>80 ) {lcd.setCursor(9,2);         // If motor external temperature is above 80 ° C                      lcd.print("secuT");                       Rcy=0;} In addition, thermal safety by measuring the motor current will be added. If the limitation current is greater than 10s then the motor will no longer be powered for 30s. A "secu" display will appear on the LCD display. This safety makes it possible to cut the motor on slope too high and when blocking the engine but it would be necessary to add the measurement of the speed in the latter case Code: [Select] if (timesecurite>=10000 ) {flagarret=1;      // If limitation current for a current of more than 10s                               timerepos=0;                               consigne=0;                               Rcy=0;                                 timesecurite=0;}       //   Then stop engine during a downtime    if (flagarret==1 ) {lcd.setCursor(9,2);         // If limiting current for a current of more than 20s                      lcd.print("secU");  }     //   Then stopping the motor for a stop time and display                                                     if (timerepos>=30000 &&  flagarret==1) {flagarret=0;                                           lcd.setCursor(9,2);      // After a rest time here of 30s                                            lcd.print("       ");   }   The display can be observed if the temperature is above 80 ° C https://i58.servimg.com/u/f58/17/56/35/17/a017.jpg Thermal safety by measuring the motor current (digital thermal relay) which allows to know the image of the internal temperature of the engine would be ideal. But for this, it is necessary to know well the thermal modeling of the motor. 7. Measurement of the energy capacity of the battery The energy capacity of a battery is in A.H, we will display the value in mA.H to have a high accuracy. The capacity will be in A.Second in the following equation. So to have in mA.H, it will be divided by capacity by3600. Capacity (A.s) n = I * Te + Cn-1 with Te = 0.01s and I multiplied by 10 So in the interrupt routine Code: [Select] capacity=ImoteurF+capacity ; And in the display Code: [Select] lcd.setCursor(0,3); // Display of energy capacity lcd.print("C mA.h="); capacity1=capacity/(18000);   //18000=3600*5  5=> Current measurement coefficient lcd.print(capacity1); To check a current of 10A with an adjustable resistor and after 30s, the capacity must be 83mA.H 8. Power and modeling with SIMULINK Modeling helps to understand the vehicle and its control. In addition, it is possible to compile the control part directly into the Arduino program from simulation under Simulink. But it will not be possible to simulate the instrumentation with the LCD display. In the following figure, we can observe the simulation of the programming of the chopper with the current limitation with Simulink. In the following figure, the green box shows the duty cycle control to vary the speed and the red border the current limitation. The controller of the control is here a simple integrator but it is possible to carry out a multitude of control. https://i58.servimg.com/u/f58/17/56/35/17/azub_c15.jpg In the previous figure, it can be observed that the current is well limited to 25A from 2s to 9.5s. Then, the current reaches 10.8A under established speed regime at 22.5km / h. The dynamics are similar to the tests carried out. With a slope of 5%, the cyclic ratio reaches only 100% as can be seen in the following figure. The speed will reach painfully 19km / h with a current of 24A and a motor power of 580W. See article: Study of electric scooters 100W and 500W (Arduino), 9. First conclusion It is easy to control a 500W DC motor with an Arduino and some components So repair many scooters that are in DC motors. But it takes some knowledge (automatic, engine) to know how to properly manage the engine and limit its current so as not to damage it The display of the speed, the distance, the operating time to know the Watt.km / km can also be realized with a menu 2. The .ino program as an attached file, But it is not possible to put an attached file in ISIS electronic labcenter? What is this forum? It would be desirable that the compiler could generate the.cof to debug in Isis and test the program line by line .... Arduino still has to make a lot of effort to be on the same level as other microcontrollers 10. speed measurement (tachometer) Velocity measurement is carried out using a hall effect sensor SS495 or A1324 which counts each revolution of the wheel. It is enough to enter the perimeter of the wheel of the scooter (130mm of radius therefore 0.816m in the case To have the speed, it is enough just to divide the number of turn of wheel on an arbitrary time of 1s to have a minimum speed of 0.81m / s therefore of 2.93 km / h. In addition, an average filter with 3 values will be used to display the speed. At 25km / h, there will be 8.5 laps. To count the turns, an external interrupt routine will be used on input INT0 21 of the mega card. http://www.locoduino.org/spip.php?article64 To simulate the speed, a pulse on input 21 will be used with a duty cycle of 10%. https://i58.servimg.com/u/f58/17/56/35/17/a018.jpg Code: [Select] void INT0b21() {   Tspeed++;   // External interruption to count the number of turns } // In the set up declare the interrupt routine when the 5V edge of the magnet detection is done   attachInterrupt(digitalPinToInterrupt(21), INT0b21, RISING );  // External interruption // In loop if (temps09>=5)  {        // 1 second loop lcd.setCursor(13,2);      // Erasing speed lcd.print("kph     "); lcd.setCursor(16,2); speed1=Tspeed*2937;      //1tour*816*3.6/1s=2.937km/h speed2=speed1;           //Tspeed (rate/seconde) speed3=speed2; speedF=(speed1+speed2+speed3)/3000;   // To put in kph lcd.print(speedF,1);    // Display to the nearest tenth Tspeed=0;   // Reset counter temps09=0;  //reset time } To improve the accuracy of the velocity measurement, it is possible that the sampling time of the velocity measurement is dependent on the velocity. For example: For speeds less than 10km / h sample at 1second, but above 10km / h sample at 2 seconds. 11. Distance measurement for autonomy The distance corresponds to the total number of turns of the wheel multiplied by the perimeter of the wheel. So do not set the number of turns to 0 for each sample. On the other hand, the reset of the distance will be done when pressing the reset of the Arduino Mega. The distance display will be displayed to the nearest second. At 32km / h, it will take 2 minutes to do 1km as can be seen in the following figure: https://i58.servimg.com/u/f58/17/56/35/17/a019.jpg Code: [Select] void INT0b21() {   Tspeed++;   // External interruption to count speed   nbrRate++; } lcd.setCursor(13,4);      lcd.print("km      ");  // distance=(nbrRate*816)/1000;  //distance m distance=distance/1000;  //distance km lcd.setCursor(15,4);      lcd.print(distance,1);  You can observe the electrical installation with the chopper, the arduino, and the display when the program is set up https://i58.servimg.com/u/f58/17/56/35/17/dsc_0613.jpg 12. Synthesis The RAM space is used only at 4% and ROM space at 3%, for an Arduino mega. So we could take an arduino a little smaller. But, there are 8 Lipo cells to make the 24V power supply to power the engine via the chopper. Therefore, the voltage measurement of each element will be on the Arduino with a JST connector. This measurement makes it possible to know if a cell with an internal resistance which begins to pose a problem and to know if the balancing of each cell has indeed been carried out. It is possible to switch to 36V with 12 cells also with the arduino mega without using an external shield that multiplex 24 analog inputs on input A0 It is possible to send all data to a smartphone via Bluetooth HC06 via pins 20, 21, RX1 and TX1. But the application under android realized under JAVA Studio can not be shared on this forum. This part will not be explained. After having made the instrumentation of this scooter, a study should be carried out on the precision of the measurements, it is possible to read "Instrumentation of a low-power electrical motor vehicle" eco marathon "type Revue 3EI N ° 81, July 2015 http://www.fichier-pdf.fr/2015/09/07/instrumentation-vehicule-faible-consommation-eco-marathon/

Topic by Iutgeiisoissons