A 19 inch rack system is used to house all power electronics for the Bolderbot. A aluminium rack has been used, mainly because it is sturdy. The power rack is designed around a 12Vdc battery which is mounted inside the rack.
The load consists of several consumers:
- System use
The box needs some power itself The battery is always (no switch) connected to the SCC. The SCC consumes 12,5mA @ 12Vdc = 150mW. This power is also consumed when the load is turned off.
- User consumption
The purple power unit provides us with several voltages, all derived from the 12Vdc connection. The wattages are the maximum power continuously.
- 3.3Vdc 5W
This is stabilised with a LM317, 5 Watt. This power seems more then enough for the moment since this voltage is used for modern chips only.
- 5 Vdc 50W
This voltage is created with a 7805, 4 Watt. This one should be able to feed Smelly though. That requires 50W which can be achieved with a DC Converter 12-35Vdc to 5Vdc 10A
- 9 Vdc 100W
This voltage is derived from the 12 Vdc. It is made by a self etched 12Vdc => 3-10Vdc converter which is set to 9Vdc, 100 Watt. Commonly used to power Arduino.
- 12 Vdc 240W
Directly connected to the battery.
- Engines
The battery is fused at 12Vdc/60A = app. max. 200 Watt per engine. Glass fuses only go up to about 6A. Blade fuses only go up to 40 Ampere. That is why we can only use a ANL fuse (screw) or a AGU glass fuses 40A. Both these fuses are mainly designed for oversized car audio systems and sizeable to 100A or more.
Legacy
Het 19 inch rack systeem is gebaseerd op een voeding van 12 Vdc, zodat het met een autoaccu kan worden gevoed. Of met 230Vac indien voorhanden. In dat geval wordt een aangesloten accu opgeladen. Voor de electronica is echter ook nog 5 Vdc nodig. Of 3,3Vdc. Deze schakeling levert al deze spanningen direct indien aangesloten op 230Vac. Veder is er ook nog een variable voeding die een regelbare uitgang (1,8 - 10 Vdc) bevat. Verdere details van deze regelbare schakeling zijn te vinden bij de voedingen.
Het front is 3 eenheden breed omdat de gebruikte PC voeding ook precies 3 eenheden breed is.
- Het linker front (groen) bevat de 2 ingangen voor de voeding. Van boven naar beneden:
- Een 12Vdc rood LED lampje om te laten zien of er een 12Vdc bron is aangesloten. Voorschakelweerstand = 1200 Ohm.
- Op dezelfde hoogte een 2 polige schroefconnector om een 12Vdc ingang aan te sluiten zoals auto-aansteker contact. Niet bedoeld voor een accu die ook moet opladen, want die moet op het derde, zilveren frontje worden aangesloten.
- Een schakelaar dubbelpolig om: Naar boven 12Vdc is geselecteerd als ingang, naar beneden is 220 Vac geselecteerd als ingang.
- Op dezelfde hoogte een schakelaar voor de ventilator van de voeding. Naar beneden staat de ventilator uit en naar boven staat de ventilator aan. Dit is om geluid te besparen.
- Een Euro 220Vac male chassis connector.
- Een zekeringhouder voor een snelle glaszekering van 220Vac, 10A.
- Op dezelfde hoogte een rood neonlampje, indicator of 220Vac is aangesloten.
- Het middelste front (paars) bevat de uitgangen van diverse spanningen. Van boven naar beneden:
- 12,0Vdc auto aansteker chassisdeel. Deze is middels een schakelaar op het linker groene front rechtstreeks aangesloten op of een externe 12Vdc bron of op de uitgang van een PC-voeding.
- 12,0Vdc Banaansteker female chassisdelen rood en zwart. Deze zijn identiek met het 12Vdc chassisdeel.
- 5,0Vdc Banaansteker female chassisdelen rood en zwart. Deze spanning wordt met een 7805 gemaakt van de 12Vdc.
- 3,3Vdc Banaansteker female chassisdelen rood en zwart. Ook deze spanning wordt van 12 Vdc afgeleid. Maar de spanning wordt gestabiliseerd door een LM317. De spanning is op de print instelbaar tussen 1,25 Vdc en 6 Vdc.
- 1,5-10Vdc regelbare voeding Banaansteker female chassisdelen rood en zwart
- Led groen 5mm 5Vdc, voorschakelweerstand 1200 Ohm. Indien deze LED brandt, dan zou alles in de voeding correct moeten werken.
- Het rechtse front (zilverkleurig) bevat de accuaansluiting. Van boven naar beneden:
- Aan/Uit schakelaar, mini dubbelpolig om. Op dezelfde hoogte:
- Centrale resetbutton
- (+- 1.) (8.) (8.) Spanningmeter uitlezing
- Selectieknop bron spanningsmeter. Mogelijke bronnen:
- Accu
- 12Vdc ingang
- 12Vdc uitgang
- 5,0Vdc uitgang
- 3,3Vdc uitgang
- 1,2-10,0Vdc regelbare uitgang
- Uit
- een draaiknop (10k lineair) om de regelbare spanning in te stellen tussen 1,8 Vdc en 10 Vdc.
- Accuaansluiting van 2 banaansteker chassisdelen met een zekering ertussen.
- Multicolor LED 5mm 5Vdc met voorschakel weerstanden van 220 Ohm. De kleur van deze LED geeft de status van de accu aan. Het knipperen wordt bepaald door de microcontroller. Indien de statuskleur is rood dan is er geen accu aangesloten, of de accu is helemaal leeg. Indien ook blauw is opgelicht, dan is de accu aan het opladen.
//This is an include, so no parsing needed
$qry2 = ("SELECT onderdelen.*,
soortonderdeel.id
FROM onderdelen
JOIN soortonderdeel ON onderdelen.idsrtodd = soortonderdeel.id
WHERE onderdelen.partid = $idpart
;");
$result2 = pg_query($con1, $qry2);
$row4 = pg_fetch_array($result2); //Make the fields accesible
foreach( $row4 AS $key => $val ){
$$key = stripslashes( $val );
}
$jaar = substr($changeddate,0,4);
$maand = substr($changeddate,5,2);
$dag = substr($changeddate,8,2);
$lastupdate = ("$jaar $maand $dag");
$prtsrttxt = get_txt($con1, 26, 1, $idsrtodd);
$jaar = substr($createddate,0,4);
$maand = substr($createddate,5,2);
$dag = substr($createddate,8,2);
$create_stamp = ("$dag $maand $jaar");
//GENERAL INFO FOR EVERY USER **************************************************
echo (" ");
echo (""); //Header
$tmp = get_txt($con1, 9, $koekje[2], 3923); //Fieldname at screen
if ($koekje[3]=="1") { //If this user wants to translate then
echo ("$tmp"); //If desired
}else{ echo ("$tmp"); } //Else just show if no need to translate
if ($koekje[0]>0 and $koekje[3]>0){ //User is logged in and translates
echo (" (edit)");
}
echo ("Algemene informatie test | ");
if ($codetext) { //Code like KY-026 or NA-41
echo ("");
$tmp = get_txt($con1, 9, $koekje[2], 3739); //Fieldname at screen
if ($koekje[3]=="1") { //If this user wants to translate then
echo ("$tmp"); //Class for colour
}else{ //So you are not allowed to translate
echo $tmp; //Show screenname of this field in user language
} //End of If you want to translate this fieldname at screen
echo ("  | ");
if ($codelink) {
echo ("$codetext");
}else{
echo ("$codetext");
} //End of if ($pinoutlink)
echo (" | ");
} //End of if ($codetext)
$tmp = get_txt($con1, 9, $koekje[2], 3741); //Fieldname at screen
if ($prijseurinclbtw > 0){ //Show price indication
$prijs_formatted = number_format($prijseurinclbtw / 100, 2, ',', '.');
echo ("$tmp   | ");
echo ("");
if ($urlprijs){
echo ("€  $prijs_formatted");
}else{
echo ("€  $prijs_formatted");
} //End of if ($urlprijs > "")
echo (" | ");
} //End of if ($prijseurinclbtw > 0)
if ($sketchtext) { //Link to OWN SOFTWARE
$tmp = get_txt($con1, 9, $koekje[2], 3738); //Fieldname at screen
echo ("$tmp   | ");
if ($sketchlink) {
echo ("$sketchtext");
}else{
echo ("$sketchtext");
} //End of if ($sketchlink)
echo (" | ");
} //End of if ($sketchtext)
$tmp = get_txt($con1, 9, $koekje[2], 3744); //Fieldname at screen
if ($pinouttext) { //Pinout
echo ("$tmp   | ");
if ($pinoutlink) {
echo ("$pinouttext");
}else{
echo ("$pinouttext");
} //End of if ($pinoutlink)
echo (" | ");
}
$tmp = get_txt($con1, 9, 1, 3735); //Fieldname at screen
$tmp2 = get_txt($con1, 26, 1, $row4[16]); //Group name in its language
echo ("$tmp   | "); //MENU GROUP
echo ("");
echo ("$tmp2 | ");
if ($koekje[0]>0 and $koekje[3]>0){ //User is logged in and translates
$tmp = get_txt($con1, 9, $koekje[2], 3918); //Fieldname at screen LANGUAGE
if ($row4[26] == 1) {$imgname = "nederland.png";}
if ($row4[26] == 2) {$imgname = "deutschland.png";}
if ($row4[26] == 3) {$imgname = "uk.png";}
if ($row4[26] == 4) {$imgname = "france.png";}
echo ("$tmp | ");
echo ("");
echo (" | ");
$tmp = get_txt($con1, 9, $row4[27], 3919); //Fieldname at screen
$statuskey = get_status_key($con1, $status);
$tmp2 = get_txt($con1, 61, $koekje[2], $statuskey); //Fieldname at screen
echo ("$tmp   | "); //STATUS
echo ("$status $tmp2 | ");
}
$tmp = get_txt($con1, 9, 1, 3966); //Fieldname at screen
echo ("$tmp   | "); //LAST CHANGED
$tmp = substr($changeddate, 0, 10);
echo ("$tmp | ");
echo (" ");
return;
////////////////////////////////////////////////////////////////////////////////
function get_status_key($con, $num){
$qry = ("SELECT id FROM status WHERE nr = $num ;");
$result = pg_query($con, $qry);
$row = pg_fetch_array($result);
return ("$row[0]");
}
// LIST ALL SOFTWARE THAT WILL RUN OM THIS PART *****************************
// INCLUDED IN ALL ROBOTS TO CHECK THEIR DIRECTORY
$qry2=("SELECT tblsystext.txtname
, software.urlmain
, software.sftname
, software.sftid
, software.controller
FROM software
LEFT JOIN tblsystext ON software.controller = tblsystext.recordid
WHERE position(' $idpart ' in software.prtlst) > 0
AND software.rstid = 2
AND tblsystext.lanid = $koekje[2]
AND tblsystext.txlid = 19
ORDER BY sftname ASC
, controller ASC
;");
$result = pg_query($con1, $qry2);
if (pg_num_rows($result)>0) { //Only if at least 1 program exists
echo (' ');
echo (""); //Header
$tmp = get_txt($con1, 9, $koekje[2], 3922); //Fieldname at screen
if ($koekje[3]=="1") { //If this user wants to translate then
echo ("$tmp"); //If desired
}else{ echo ("$tmp"); } //Else just show if no need to translate
echo (" |
---|
");
while($col = pg_fetch_array($result)){
$col[0] = ("$col[0]");
echo (" ");
echo ("$col[2]   | ");
echo ("$col[0] | ");
if ($koekje[0] > 0 and $koekje[3]>0){ //User is logged in and translates
echo ("");
echo ("(Edit) | ");
}
echo (' ');
}
echo (' ');
}
?>
// LIST ALL ROBOTS THAT INCLUDE THIS PART ***********************************
// $idpart
// INCLUDED IN ALL ROBOTS TO CHECK THEIR DIRECTORY
$qry_bpp=("SELECT farmbotversie.id
, farmbotversie.part_list
, tblsystext.txtname
FROM farmbotversie
LEFT JOIN tblsystext ON farmbotversie.id = tblsystext.recordid
WHERE tblsystext.txlid = 27
AND tblsystext.lanid = $koekje[2]
ORDER BY tblsystext.txtname ASC
;");
$result_bpp = pg_query($con1, $qry_bpp);
$header = 0;
while($colbpp = pg_fetch_array($result_bpp)){ //Only if at least 1 robot exists
if(substr_count($colbpp[1], " $idpart ") > 0){
if ($header == 0) {
echo ("");
echo (""); //Header
$tmp = get_txt($con1, 9, $koekje[2], 3879); //Fieldname at screen
if ($koekje[3]=="1") { //If this user wants to translate then
echo ("$tmp"); //If desired
}else{ echo ("$tmp"); } //Else just show if no need to translate
echo (" | ");
$header++;
} //End of if ($header == 0)
echo ("");
echo ("$colbpp[2]");
//Show software van deze bot
$qry=("SELECT software_basedir
FROM farmbotversie
WHERE id = $colbpp[0];");
$result = pg_query($con1, $qry);
$col = pg_fetch_array ($result ,0);
$dir1 = "/var/www/html/robotigs/software/$col[0]";
$arr1 = glob($dir1, GLOB_ONLYDIR);
if (isset($arr1[0])){
$folder = $arr1[0];
$countertmp = 0;
echo ("");
foreach (scandir($folder, 1) as $filename) {
if ($filename<>"." AND $filename <>".."){
if ($countertmp == 0){
$countertmp++;
} //End of if ($countertmp == 0)
$tmp = "/";
$dir = substr($folder, 14) ."/";
$link = $tmp .$dir .$filename;
$showname = substr($filename, 0 ,-4);
echo ("- ");
echo "$showname";
echo ("
");
} //End of if ($filename<>"." AND $filename <>".."){
} //End of foreach (scandir($folder, 1) as $filename)
echo ("");
} //End of if (isset($arr1[0]))
echo (" | ");
}
}
if ($header > 0){
echo (" ");
}
?>
Warning: include(/var/www/html/robotigs/includes/wishlistperpart.php): Failed to open stream: No such file or directory in /var/www/html/robotigs/includes/parts_header.php on line 128
Warning: include(): Failed opening '/var/www/html/robotigs/includes/wishlistperpart.php' for inclusion (include_path='.:/usr/share/php') in /var/www/html/robotigs/includes/parts_header.php on line 128
| //Location:/robotigs/includes/ picts_show.php
// Requieres: $pict_list and several picture handling javascript routines
//*** FROM HERE ON THE PICTURE CORNER STARTS -----------------------------------
if ($pict_list){ //There are 1 or more pictures to be printed
echo ("");
$counter = 0;
$aantal = str_word_count($pict_list, 0, "0123456789");
$lijst = str_word_count($pict_list, 1, "0123456789");
while($counter < $aantal){
$pictkey = $lijst[$counter];
$qryy1 = ("SELECT *
FROM illustrations
WHERE ill_id = $pictkey
;");
$resulty1 = pg_query($con1, $qryy1);
while($row = pg_fetch_array($resulty1)){ //Fields accesible by their name
foreach( $row AS $key => $val ){
$$key = stripslashes( $val );
}
}
$image = ("/robotigs/documentatie/plaatjes/$ill_name");
$pictfull = str_replace('_small', '', $image); //Pictfull=biggest version
$alt = ("Just wait till your 57....");
$txtname = get_txt($con1, 18, $koekje[2], $ill_id); //Robot illustrations subtitles
echo ("");
echo (' ');
$nummer = $counter + 1;
$txtAfb = get_txt($con1, 9, $koekje[2], 3865); //Pic Afb
if ($koekje[0]>0 and $koekje[3]>0){ //User is logged in and translates
echo ("$txtAfb $nummer: ");
echo ("$txtname");
echo (" ");
echo ("Ontkoppelen ");
if ($counter==0){
echo ("Up ");
}else{
echo ("Up ");
}
if ($nummer == $aantal){
echo ("Down");
}else{
echo ("Down");
}
}else{ //Else of if Meaning the current useer is logged in
echo ("$txtAfb $nummer: $txtname");
}
echo (''); //End of this picture
$counter++; //Prepair for next picture
}
echo (' | '); //All pictures are printed
} //End of if there are 1 or more pictures to be printed ----------------------
?>